# {.deadCodeElim: on.}
# type
# xcb_extension_t* {.bycopy.} = object
# name*: cstring
# global_id*: cint
# const
# XCB_BIGREQUESTS_MAJOR_VERSION* = 0
# XCB_BIGREQUESTS_MINOR_VERSION* = 0
# var xcb_big_requests_id*: xcb_extension_t
# ## *
# ## @brief xcb_big_requests_enable_cookie_t
# ##
# type
# xcb_big_requests_enable_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_big_requests_enable.
# const
# XCB_BIG_REQUESTS_ENABLE* = 0
# ## *
# ## @brief xcb_big_requests_enable_request_t
# ##
# type
# xcb_big_requests_enable_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_big_requests_enable_reply_t
# ##
# type
# xcb_big_requests_enable_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# maximum_request_length*: uint32
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# #proc xcb_big_requests_enable*(c: ptr xcb_connection_t): xcb_big_requests_enable_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# #proc xcb_big_requests_enable_unchecked*(c: ptr xcb_connection_t): xcb_big_requests_enable_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_big_requests_enable_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# # proc xcb_big_requests_enable_reply*(c: ptr xcb_connection_t; cookie: xcb_big_requests_enable_cookie_t; ## *<
# # e: ptr ptr xcb_generic_error_t): ptr xcb_big_requests_enable_reply_t
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from composite.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB_Composite_API XCB Composite API
# ## @brief Composite XCB Protocol Implementation.
# ## @{
# ##
# import
# xcb, xproto, xfixes
# const
# XCB_COMPOSITE_MAJOR_VERSION* = 0
# XCB_COMPOSITE_MINOR_VERSION* = 4
# var xcb_composite_id*: xcb_extension_t
# type
# xcb_composite_redirect_t* = enum
# XCB_COMPOSITE_REDIRECT_AUTOMATIC = 0, XCB_COMPOSITE_REDIRECT_MANUAL = 1
# ## *
# ## @brief xcb_composite_query_version_cookie_t
# ##
# type
# xcb_composite_query_version_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_composite_query_version.
# const
# XCB_COMPOSITE_QUERY_VERSION* = 0
# ## *
# ## @brief xcb_composite_query_version_request_t
# ##
# type
# xcb_composite_query_version_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# client_major_version*: uint32
# client_minor_version*: uint32
# ## *
# ## @brief xcb_composite_query_version_reply_t
# ##
# type
# xcb_composite_query_version_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# major_version*: uint32
# minor_version*: uint32
# pad1*: array[16, uint8]
# ## * Opcode for xcb_composite_redirect_window.
# const
# XCB_COMPOSITE_REDIRECT_WINDOW* = 1
# ## *
# ## @brief xcb_composite_redirect_window_request_t
# ##
# type
# xcb_composite_redirect_window_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# update*: uint8
# pad0*: array[3, uint8]
# ## * Opcode for xcb_composite_redirect_subwindows.
# const
# XCB_COMPOSITE_REDIRECT_SUBWINDOWS* = 2
# ## *
# ## @brief xcb_composite_redirect_subwindows_request_t
# ##
# type
# xcb_composite_redirect_subwindows_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# update*: uint8
# pad0*: array[3, uint8]
# ## * Opcode for xcb_composite_unredirect_window.
# const
# XCB_COMPOSITE_UNREDIRECT_WINDOW* = 3
# ## *
# ## @brief xcb_composite_unredirect_window_request_t
# ##
# type
# xcb_composite_unredirect_window_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# update*: uint8
# pad0*: array[3, uint8]
# ## * Opcode for xcb_composite_unredirect_subwindows.
# const
# XCB_COMPOSITE_UNREDIRECT_SUBWINDOWS* = 4
# ## *
# ## @brief xcb_composite_unredirect_subwindows_request_t
# ##
# type
# xcb_composite_unredirect_subwindows_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# update*: uint8
# pad0*: array[3, uint8]
# ## * Opcode for xcb_composite_create_region_from_border_clip.
# const
# XCB_COMPOSITE_CREATE_REGION_FROM_BORDER_CLIP* = 5
# ## *
# ## @brief xcb_composite_create_region_from_border_clip_request_t
# ##
# type
# xcb_composite_create_region_from_border_clip_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# region*: xcb_xfixes_region_t
# window*: xcb_window_t
# ## * Opcode for xcb_composite_name_window_pixmap.
# const
# XCB_COMPOSITE_NAME_WINDOW_PIXMAP* = 6
# ## *
# ## @brief xcb_composite_name_window_pixmap_request_t
# ##
# type
# xcb_composite_name_window_pixmap_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# pixmap*: xcb_pixmap_t
# ## *
# ## @brief xcb_composite_get_overlay_window_cookie_t
# ##
# type
# xcb_composite_get_overlay_window_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_composite_get_overlay_window.
# const
# XCB_COMPOSITE_GET_OVERLAY_WINDOW* = 7
# ## *
# ## @brief xcb_composite_get_overlay_window_request_t
# ##
# type
# xcb_composite_get_overlay_window_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# ## *
# ## @brief xcb_composite_get_overlay_window_reply_t
# ##
# type
# xcb_composite_get_overlay_window_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# overlay_win*: xcb_window_t
# pad1*: array[20, uint8]
# ## * Opcode for xcb_composite_release_overlay_window.
# const
# XCB_COMPOSITE_RELEASE_OVERLAY_WINDOW* = 8
# ## *
# ## @brief xcb_composite_release_overlay_window_request_t
# ##
# type
# xcb_composite_release_overlay_window_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_composite_query_version*(c: ptr xcb_connection_t;
# client_major_version: uint32;
# client_minor_version: uint32): xcb_composite_query_version_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_composite_query_version_unchecked*(c: ptr xcb_connection_t;
# client_major_version: uint32; client_minor_version: uint32): xcb_composite_query_version_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_composite_query_version_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_composite_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_composite_query_version_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_composite_query_version_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_composite_redirect_window_checked*(c: ptr xcb_connection_t;
# window: xcb_window_t; update: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_composite_redirect_window*(c: ptr xcb_connection_t; window: xcb_window_t;
# update: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_composite_redirect_subwindows_checked*(c: ptr xcb_connection_t;
# window: xcb_window_t; update: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_composite_redirect_subwindows*(c: ptr xcb_connection_t;
# window: xcb_window_t; update: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_composite_unredirect_window_checked*(c: ptr xcb_connection_t;
# window: xcb_window_t; update: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_composite_unredirect_window*(c: ptr xcb_connection_t; window: xcb_window_t;
# update: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_composite_unredirect_subwindows_checked*(c: ptr xcb_connection_t;
# window: xcb_window_t; update: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_composite_unredirect_subwindows*(c: ptr xcb_connection_t;
# window: xcb_window_t; update: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_composite_create_region_from_border_clip_checked*(
# c: ptr xcb_connection_t; region: xcb_xfixes_region_t; window: xcb_window_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_composite_create_region_from_border_clip*(c: ptr xcb_connection_t;
# region: xcb_xfixes_region_t; window: xcb_window_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_composite_name_window_pixmap_checked*(c: ptr xcb_connection_t;
# window: xcb_window_t; pixmap: xcb_pixmap_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_composite_name_window_pixmap*(c: ptr xcb_connection_t;
# window: xcb_window_t; pixmap: xcb_pixmap_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_composite_get_overlay_window*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_composite_get_overlay_window_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_composite_get_overlay_window_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t): xcb_composite_get_overlay_window_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_composite_get_overlay_window_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_composite_get_overlay_window_reply*(c: ptr xcb_connection_t; cookie: xcb_composite_get_overlay_window_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_composite_get_overlay_window_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_composite_release_overlay_window_checked*(c: ptr xcb_connection_t;
# window: xcb_window_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_composite_release_overlay_window*(c: ptr xcb_connection_t;
# window: xcb_window_t): xcb_void_cookie_t
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from damage.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB_Damage_API XCB Damage API
# ## @brief Damage XCB Protocol Implementation.
# ## @{
# ##
# import
# xcb, xproto, xfixes
# const
# XCB_DAMAGE_MAJOR_VERSION* = 1
# XCB_DAMAGE_MINOR_VERSION* = 1
# var xcb_damage_id*: xcb_extension_t
# type
# xcb_damage_damage_t* = uint32
# ## *
# ## @brief xcb_damage_damage_iterator_t
# ##
# type
# xcb_damage_damage_iterator_t* {.bycopy.} = object
# data*: ptr xcb_damage_damage_t
# rem*: cint
# index*: cint
# xcb_damage_report_level_t* = enum
# XCB_DAMAGE_REPORT_LEVEL_RAW_RECTANGLES = 0,
# XCB_DAMAGE_REPORT_LEVEL_DELTA_RECTANGLES = 1,
# XCB_DAMAGE_REPORT_LEVEL_BOUNDING_BOX = 2, XCB_DAMAGE_REPORT_LEVEL_NON_EMPTY = 3
# ## * Opcode for xcb_damage_bad_damage.
# const
# XCB_DAMAGE_BAD_DAMAGE* = 0
# ## *
# ## @brief xcb_damage_bad_damage_error_t
# ##
# type
# xcb_damage_bad_damage_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# ## *
# ## @brief xcb_damage_query_version_cookie_t
# ##
# type
# xcb_damage_query_version_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_damage_query_version.
# const
# XCB_DAMAGE_QUERY_VERSION* = 0
# ## *
# ## @brief xcb_damage_query_version_request_t
# ##
# type
# xcb_damage_query_version_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# client_major_version*: uint32
# client_minor_version*: uint32
# ## *
# ## @brief xcb_damage_query_version_reply_t
# ##
# type
# xcb_damage_query_version_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# major_version*: uint32
# minor_version*: uint32
# pad1*: array[16, uint8]
# ## * Opcode for xcb_damage_create.
# const
# XCB_DAMAGE_CREATE* = 1
# ## *
# ## @brief xcb_damage_create_request_t
# ##
# type
# xcb_damage_create_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# damage*: xcb_damage_damage_t
# drawable*: xcb_drawable_t
# level*: uint8
# pad0*: array[3, uint8]
# ## * Opcode for xcb_damage_destroy.
# const
# XCB_DAMAGE_DESTROY* = 2
# ## *
# ## @brief xcb_damage_destroy_request_t
# ##
# type
# xcb_damage_destroy_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# damage*: xcb_damage_damage_t
# ## * Opcode for xcb_damage_subtract.
# const
# XCB_DAMAGE_SUBTRACT* = 3
# ## *
# ## @brief xcb_damage_subtract_request_t
# ##
# type
# xcb_damage_subtract_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# damage*: xcb_damage_damage_t
# repair*: xcb_xfixes_region_t
# parts*: xcb_xfixes_region_t
# ## * Opcode for xcb_damage_add.
# const
# XCB_DAMAGE_ADD* = 4
# ## *
# ## @brief xcb_damage_add_request_t
# ##
# type
# xcb_damage_add_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# region*: xcb_xfixes_region_t
# ## * Opcode for xcb_damage_notify.
# const
# XCB_DAMAGE_NOTIFY* = 0
# ## *
# ## @brief xcb_damage_notify_event_t
# ##
# type
# xcb_damage_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# level*: uint8
# sequence*: uint16
# drawable*: xcb_drawable_t
# damage*: xcb_damage_damage_t
# timestamp*: xcb_timestamp_t
# area*: xcb_rectangle_t
# geometry*: xcb_rectangle_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_damage_damage_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_damage_damage_t)
# ##
# proc xcb_damage_damage_next*(i: ptr xcb_damage_damage_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_damage_damage_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_damage_damage_end*(i: xcb_damage_damage_iterator_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_damage_query_version*(c: ptr xcb_connection_t;
# client_major_version: uint32;
# client_minor_version: uint32): xcb_damage_query_version_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_damage_query_version_unchecked*(c: ptr xcb_connection_t;
# client_major_version: uint32;
# client_minor_version: uint32): xcb_damage_query_version_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_damage_query_version_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_damage_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_damage_query_version_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_damage_query_version_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_damage_create_checked*(c: ptr xcb_connection_t;
# damage: xcb_damage_damage_t;
# drawable: xcb_drawable_t; level: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_damage_create*(c: ptr xcb_connection_t; damage: xcb_damage_damage_t;
# drawable: xcb_drawable_t; level: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_damage_destroy_checked*(c: ptr xcb_connection_t;
# damage: xcb_damage_damage_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_damage_destroy*(c: ptr xcb_connection_t; damage: xcb_damage_damage_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_damage_subtract_checked*(c: ptr xcb_connection_t;
# damage: xcb_damage_damage_t;
# repair: xcb_xfixes_region_t;
# parts: xcb_xfixes_region_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_damage_subtract*(c: ptr xcb_connection_t; damage: xcb_damage_damage_t;
# repair: xcb_xfixes_region_t; parts: xcb_xfixes_region_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_damage_add_checked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# region: xcb_xfixes_region_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_damage_add*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# region: xcb_xfixes_region_t): xcb_void_cookie_t
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from dpms.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB_DPMS_API XCB DPMS API
# ## @brief DPMS XCB Protocol Implementation.
# ## @{
# ##
# import
# xcb
# const
# XCB_DPMS_MAJOR_VERSION* = 0
# XCB_DPMS_MINOR_VERSION* = 0
# var xcb_dpms_id*: xcb_extension_t
# ## *
# ## @brief xcb_dpms_get_version_cookie_t
# ##
# type
# xcb_dpms_get_version_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_dpms_get_version.
# const
# XCB_DPMS_GET_VERSION* = 0
# ## *
# ## @brief xcb_dpms_get_version_request_t
# ##
# type
# xcb_dpms_get_version_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# client_major_version*: uint16
# client_minor_version*: uint16
# ## *
# ## @brief xcb_dpms_get_version_reply_t
# ##
# type
# xcb_dpms_get_version_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# server_major_version*: uint16
# server_minor_version*: uint16
# ## *
# ## @brief xcb_dpms_capable_cookie_t
# ##
# type
# xcb_dpms_capable_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_dpms_capable.
# const
# XCB_DPMS_CAPABLE* = 1
# ## *
# ## @brief xcb_dpms_capable_request_t
# ##
# type
# xcb_dpms_capable_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_dpms_capable_reply_t
# ##
# type
# xcb_dpms_capable_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# capable*: uint8
# pad1*: array[23, uint8]
# ## *
# ## @brief xcb_dpms_get_timeouts_cookie_t
# ##
# type
# xcb_dpms_get_timeouts_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_dpms_get_timeouts.
# const
# XCB_DPMS_GET_TIMEOUTS* = 2
# ## *
# ## @brief xcb_dpms_get_timeouts_request_t
# ##
# type
# xcb_dpms_get_timeouts_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_dpms_get_timeouts_reply_t
# ##
# type
# xcb_dpms_get_timeouts_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# standby_timeout*: uint16
# suspend_timeout*: uint16
# off_timeout*: uint16
# pad1*: array[18, uint8]
# ## * Opcode for xcb_dpms_set_timeouts.
# const
# XCB_DPMS_SET_TIMEOUTS* = 3
# ## *
# ## @brief xcb_dpms_set_timeouts_request_t
# ##
# type
# xcb_dpms_set_timeouts_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# standby_timeout*: uint16
# suspend_timeout*: uint16
# off_timeout*: uint16
# ## * Opcode for xcb_dpms_enable.
# const
# XCB_DPMS_ENABLE* = 4
# ## *
# ## @brief xcb_dpms_enable_request_t
# ##
# type
# xcb_dpms_enable_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## * Opcode for xcb_dpms_disable.
# const
# XCB_DPMS_DISABLE* = 5
# ## *
# ## @brief xcb_dpms_disable_request_t
# ##
# type
# xcb_dpms_disable_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# xcb_dpms_dpms_mode_t* = enum
# XCB_DPMS_DPMS_MODE_ON = 0, XCB_DPMS_DPMS_MODE_STANDBY = 1,
# XCB_DPMS_DPMS_MODE_SUSPEND = 2, XCB_DPMS_DPMS_MODE_OFF = 3
# ## * Opcode for xcb_dpms_force_level.
# const
# XCB_DPMS_FORCE_LEVEL* = 6
# ## *
# ## @brief xcb_dpms_force_level_request_t
# ##
# type
# xcb_dpms_force_level_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# power_level*: uint16
# ## *
# ## @brief xcb_dpms_info_cookie_t
# ##
# type
# xcb_dpms_info_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_dpms_info.
# const
# XCB_DPMS_INFO* = 7
# ## *
# ## @brief xcb_dpms_info_request_t
# ##
# type
# xcb_dpms_info_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_dpms_info_reply_t
# ##
# type
# xcb_dpms_info_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# power_level*: uint16
# state*: uint8
# pad1*: array[21, uint8]
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dpms_get_version*(c: ptr xcb_connection_t; client_major_version: uint16;
# client_minor_version: uint16): xcb_dpms_get_version_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_dpms_get_version_unchecked*(c: ptr xcb_connection_t;
# client_major_version: uint16;
# client_minor_version: uint16): xcb_dpms_get_version_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_dpms_get_version_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_dpms_get_version_reply*(c: ptr xcb_connection_t; cookie: xcb_dpms_get_version_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_dpms_get_version_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dpms_capable*(c: ptr xcb_connection_t): xcb_dpms_capable_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_dpms_capable_unchecked*(c: ptr xcb_connection_t): xcb_dpms_capable_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_dpms_capable_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_dpms_capable_reply*(c: ptr xcb_connection_t; cookie: xcb_dpms_capable_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_dpms_capable_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dpms_get_timeouts*(c: ptr xcb_connection_t): xcb_dpms_get_timeouts_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_dpms_get_timeouts_unchecked*(c: ptr xcb_connection_t): xcb_dpms_get_timeouts_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_dpms_get_timeouts_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_dpms_get_timeouts_reply*(c: ptr xcb_connection_t; cookie: xcb_dpms_get_timeouts_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_dpms_get_timeouts_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_dpms_set_timeouts_checked*(c: ptr xcb_connection_t;
# standby_timeout: uint16;
# suspend_timeout: uint16;
# off_timeout: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dpms_set_timeouts*(c: ptr xcb_connection_t; standby_timeout: uint16;
# suspend_timeout: uint16; off_timeout: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# #proc xcb_dpms_enable_checked*(c: ptr xcb_connection_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dpms_enable*(c: ptr xcb_connection_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_dpms_disable_checked*(c: ptr xcb_connection_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dpms_disable*(c: ptr xcb_connection_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_dpms_force_level_checked*(c: ptr xcb_connection_t; power_level: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dpms_force_level*(c: ptr xcb_connection_t; power_level: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dpms_info*(c: ptr xcb_connection_t): xcb_dpms_info_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_dpms_info_unchecked*(c: ptr xcb_connection_t): xcb_dpms_info_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_dpms_info_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_dpms_info_reply*(c: ptr xcb_connection_t; cookie: xcb_dpms_info_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_dpms_info_reply_t
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from dri2.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB_DRI2_API XCB DRI2 API
# ## @brief DRI2 XCB Protocol Implementation.
# ## @{
# ##
# import
# xcb, xproto
# const
# XCB_DRI2_MAJOR_VERSION* = 1
# XCB_DRI2_MINOR_VERSION* = 4
# var xcb_dri2_id*: xcb_extension_t
# type
# xcb_dri2_attachment_t* = enum
# XCB_DRI2_ATTACHMENT_BUFFER_FRONT_LEFT = 0,
# XCB_DRI2_ATTACHMENT_BUFFER_BACK_LEFT = 1,
# XCB_DRI2_ATTACHMENT_BUFFER_FRONT_RIGHT = 2,
# XCB_DRI2_ATTACHMENT_BUFFER_BACK_RIGHT = 3,
# XCB_DRI2_ATTACHMENT_BUFFER_DEPTH = 4, XCB_DRI2_ATTACHMENT_BUFFER_STENCIL = 5,
# XCB_DRI2_ATTACHMENT_BUFFER_ACCUM = 6,
# XCB_DRI2_ATTACHMENT_BUFFER_FAKE_FRONT_LEFT = 7,
# XCB_DRI2_ATTACHMENT_BUFFER_FAKE_FRONT_RIGHT = 8,
# XCB_DRI2_ATTACHMENT_BUFFER_DEPTH_STENCIL = 9,
# XCB_DRI2_ATTACHMENT_BUFFER_HIZ = 10
# xcb_dri2_driver_type_t* = enum
# XCB_DRI2_DRIVER_TYPE_DRI = 0, XCB_DRI2_DRIVER_TYPE_VDPAU = 1
# xcb_dri2_event_type_t* = enum
# XCB_DRI2_EVENT_TYPE_EXCHANGE_COMPLETE = 1,
# XCB_DRI2_EVENT_TYPE_BLIT_COMPLETE = 2, XCB_DRI2_EVENT_TYPE_FLIP_COMPLETE = 3
# ## *
# ## @brief xcb_dri2_dri2_buffer_t
# ##
# type
# xcb_dri2_dri2_buffer_t* {.bycopy.} = object
# attachment*: uint32
# name*: uint32
# pitch*: uint32
# cpp*: uint32
# flags*: uint32
# ## *
# ## @brief xcb_dri2_dri2_buffer_iterator_t
# ##
# type
# xcb_dri2_dri2_buffer_iterator_t* {.bycopy.} = object
# data*: ptr xcb_dri2_dri2_buffer_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_dri2_attach_format_t
# ##
# type
# xcb_dri2_attach_format_t* {.bycopy.} = object
# attachment*: uint32
# format*: uint32
# ## *
# ## @brief xcb_dri2_attach_format_iterator_t
# ##
# type
# xcb_dri2_attach_format_iterator_t* {.bycopy.} = object
# data*: ptr xcb_dri2_attach_format_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_dri2_query_version_cookie_t
# ##
# type
# xcb_dri2_query_version_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_dri2_query_version.
# const
# XCB_DRI2_QUERY_VERSION* = 0
# ## *
# ## @brief xcb_dri2_query_version_request_t
# ##
# type
# xcb_dri2_query_version_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# major_version*: uint32
# minor_version*: uint32
# ## *
# ## @brief xcb_dri2_query_version_reply_t
# ##
# type
# xcb_dri2_query_version_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# major_version*: uint32
# minor_version*: uint32
# ## *
# ## @brief xcb_dri2_connect_cookie_t
# ##
# type
# xcb_dri2_connect_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_dri2_connect.
# const
# XCB_DRI2_CONNECT* = 1
# ## *
# ## @brief xcb_dri2_connect_request_t
# ##
# type
# xcb_dri2_connect_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# driver_type*: uint32
# ## *
# ## @brief xcb_dri2_connect_reply_t
# ##
# type
# xcb_dri2_connect_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# driver_name_length*: uint32
# device_name_length*: uint32
# pad1*: array[16, uint8]
# ## *
# ## @brief xcb_dri2_authenticate_cookie_t
# ##
# type
# xcb_dri2_authenticate_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_dri2_authenticate.
# const
# XCB_DRI2_AUTHENTICATE* = 2
# ## *
# ## @brief xcb_dri2_authenticate_request_t
# ##
# type
# xcb_dri2_authenticate_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# magic*: uint32
# ## *
# ## @brief xcb_dri2_authenticate_reply_t
# ##
# type
# xcb_dri2_authenticate_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# authenticated*: uint32
# ## * Opcode for xcb_dri2_create_drawable.
# const
# XCB_DRI2_CREATE_DRAWABLE* = 3
# ## *
# ## @brief xcb_dri2_create_drawable_request_t
# ##
# type
# xcb_dri2_create_drawable_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# ## * Opcode for xcb_dri2_destroy_drawable.
# const
# XCB_DRI2_DESTROY_DRAWABLE* = 4
# ## *
# ## @brief xcb_dri2_destroy_drawable_request_t
# ##
# type
# xcb_dri2_destroy_drawable_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# ## *
# ## @brief xcb_dri2_get_buffers_cookie_t
# ##
# type
# xcb_dri2_get_buffers_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_dri2_get_buffers.
# const
# XCB_DRI2_GET_BUFFERS* = 5
# ## *
# ## @brief xcb_dri2_get_buffers_request_t
# ##
# type
# xcb_dri2_get_buffers_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# count*: uint32
# ## *
# ## @brief xcb_dri2_get_buffers_reply_t
# ##
# type
# xcb_dri2_get_buffers_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# width*: uint32
# height*: uint32
# count*: uint32
# pad1*: array[12, uint8]
# ## *
# ## @brief xcb_dri2_copy_region_cookie_t
# ##
# type
# xcb_dri2_copy_region_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_dri2_copy_region.
# const
# XCB_DRI2_COPY_REGION* = 6
# ## *
# ## @brief xcb_dri2_copy_region_request_t
# ##
# type
# xcb_dri2_copy_region_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# region*: uint32
# dest*: uint32
# src*: uint32
# ## *
# ## @brief xcb_dri2_copy_region_reply_t
# ##
# type
# xcb_dri2_copy_region_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# ## *
# ## @brief xcb_dri2_get_buffers_with_format_cookie_t
# ##
# type
# xcb_dri2_get_buffers_with_format_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_dri2_get_buffers_with_format.
# const
# XCB_DRI2_GET_BUFFERS_WITH_FORMAT* = 7
# ## *
# ## @brief xcb_dri2_get_buffers_with_format_request_t
# ##
# type
# xcb_dri2_get_buffers_with_format_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# count*: uint32
# ## *
# ## @brief xcb_dri2_get_buffers_with_format_reply_t
# ##
# type
# xcb_dri2_get_buffers_with_format_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# width*: uint32
# height*: uint32
# count*: uint32
# pad1*: array[12, uint8]
# ## *
# ## @brief xcb_dri2_swap_buffers_cookie_t
# ##
# type
# xcb_dri2_swap_buffers_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_dri2_swap_buffers.
# const
# XCB_DRI2_SWAP_BUFFERS* = 8
# ## *
# ## @brief xcb_dri2_swap_buffers_request_t
# ##
# type
# xcb_dri2_swap_buffers_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# target_msc_hi*: uint32
# target_msc_lo*: uint32
# divisor_hi*: uint32
# divisor_lo*: uint32
# remainder_hi*: uint32
# remainder_lo*: uint32
# ## *
# ## @brief xcb_dri2_swap_buffers_reply_t
# ##
# type
# xcb_dri2_swap_buffers_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# swap_hi*: uint32
# swap_lo*: uint32
# ## *
# ## @brief xcb_dri2_get_msc_cookie_t
# ##
# type
# xcb_dri2_get_msc_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_dri2_get_msc.
# const
# XCB_DRI2_GET_MSC* = 9
# ## *
# ## @brief xcb_dri2_get_msc_request_t
# ##
# type
# xcb_dri2_get_msc_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# ## *
# ## @brief xcb_dri2_get_msc_reply_t
# ##
# type
# xcb_dri2_get_msc_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# ust_hi*: uint32
# ust_lo*: uint32
# msc_hi*: uint32
# msc_lo*: uint32
# sbc_hi*: uint32
# sbc_lo*: uint32
# ## *
# ## @brief xcb_dri2_wait_msc_cookie_t
# ##
# type
# xcb_dri2_wait_msc_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_dri2_wait_msc.
# const
# XCB_DRI2_WAIT_MSC* = 10
# ## *
# ## @brief xcb_dri2_wait_msc_request_t
# ##
# type
# xcb_dri2_wait_msc_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# target_msc_hi*: uint32
# target_msc_lo*: uint32
# divisor_hi*: uint32
# divisor_lo*: uint32
# remainder_hi*: uint32
# remainder_lo*: uint32
# ## *
# ## @brief xcb_dri2_wait_msc_reply_t
# ##
# type
# xcb_dri2_wait_msc_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# ust_hi*: uint32
# ust_lo*: uint32
# msc_hi*: uint32
# msc_lo*: uint32
# sbc_hi*: uint32
# sbc_lo*: uint32
# ## *
# ## @brief xcb_dri2_wait_sbc_cookie_t
# ##
# type
# xcb_dri2_wait_sbc_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_dri2_wait_sbc.
# const
# XCB_DRI2_WAIT_SBC* = 11
# ## *
# ## @brief xcb_dri2_wait_sbc_request_t
# ##
# type
# xcb_dri2_wait_sbc_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# target_sbc_hi*: uint32
# target_sbc_lo*: uint32
# ## *
# ## @brief xcb_dri2_wait_sbc_reply_t
# ##
# type
# xcb_dri2_wait_sbc_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# ust_hi*: uint32
# ust_lo*: uint32
# msc_hi*: uint32
# msc_lo*: uint32
# sbc_hi*: uint32
# sbc_lo*: uint32
# ## * Opcode for xcb_dri2_swap_interval.
# const
# XCB_DRI2_SWAP_INTERVAL* = 12
# ## *
# ## @brief xcb_dri2_swap_interval_request_t
# ##
# type
# xcb_dri2_swap_interval_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# interval*: uint32
# ## *
# ## @brief xcb_dri2_get_param_cookie_t
# ##
# type
# xcb_dri2_get_param_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_dri2_get_param.
# const
# XCB_DRI2_GET_PARAM* = 13
# ## *
# ## @brief xcb_dri2_get_param_request_t
# ##
# type
# xcb_dri2_get_param_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# param*: uint32
# ## *
# ## @brief xcb_dri2_get_param_reply_t
# ##
# type
# xcb_dri2_get_param_reply_t* {.bycopy.} = object
# response_type*: uint8
# is_param_recognized*: uint8
# sequence*: uint16
# length*: uint32
# value_hi*: uint32
# value_lo*: uint32
# ## * Opcode for xcb_dri2_buffer_swap_complete.
# const
# XCB_DRI2_BUFFER_SWAP_COMPLETE* = 0
# ## *
# ## @brief xcb_dri2_buffer_swap_complete_event_t
# ##
# type
# xcb_dri2_buffer_swap_complete_event_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# event_type*: uint16
# pad1*: array[2, uint8]
# drawable*: xcb_drawable_t
# ust_hi*: uint32
# ust_lo*: uint32
# msc_hi*: uint32
# msc_lo*: uint32
# sbc*: uint32
# ## * Opcode for xcb_dri2_invalidate_buffers.
# const
# XCB_DRI2_INVALIDATE_BUFFERS* = 1
# ## *
# ## @brief xcb_dri2_invalidate_buffers_event_t
# ##
# type
# xcb_dri2_invalidate_buffers_event_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# drawable*: xcb_drawable_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_dri2_dri2_buffer_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_dri2_dri2_buffer_t)
# ##
# proc xcb_dri2_dri2_buffer_next*(i: ptr xcb_dri2_dri2_buffer_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_dri2_dri2_buffer_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_dri2_dri2_buffer_end*(i: xcb_dri2_dri2_buffer_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_dri2_attach_format_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_dri2_attach_format_t)
# ##
# proc xcb_dri2_attach_format_next*(i: ptr xcb_dri2_attach_format_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_dri2_attach_format_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_dri2_attach_format_end*(i: xcb_dri2_attach_format_iterator_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dri2_query_version*(c: ptr xcb_connection_t; major_version: uint32;
# minor_version: uint32): xcb_dri2_query_version_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_dri2_query_version_unchecked*(c: ptr xcb_connection_t;
# major_version: uint32;
# minor_version: uint32): xcb_dri2_query_version_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_dri2_query_version_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_dri2_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_dri2_query_version_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_dri2_query_version_reply_t
# proc xcb_dri2_connect_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dri2_connect*(c: ptr xcb_connection_t; window: xcb_window_t;
# driver_type: uint32): xcb_dri2_connect_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_dri2_connect_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t;
# driver_type: uint32): xcb_dri2_connect_cookie_t
# proc xcb_dri2_connect_driver_name*(R: ptr xcb_dri2_connect_reply_t): cstring
# proc xcb_dri2_connect_driver_name_length*(R: ptr xcb_dri2_connect_reply_t): cint
# proc xcb_dri2_connect_driver_name_end*(R: ptr xcb_dri2_connect_reply_t): xcb_generic_iterator_t
# proc xcb_dri2_connect_alignment_pad*(R: ptr xcb_dri2_connect_reply_t): pointer
# proc xcb_dri2_connect_alignment_pad_length*(R: ptr xcb_dri2_connect_reply_t): cint
# proc xcb_dri2_connect_alignment_pad_end*(R: ptr xcb_dri2_connect_reply_t): xcb_generic_iterator_t
# proc xcb_dri2_connect_device_name*(R: ptr xcb_dri2_connect_reply_t): cstring
# proc xcb_dri2_connect_device_name_length*(R: ptr xcb_dri2_connect_reply_t): cint
# proc xcb_dri2_connect_device_name_end*(R: ptr xcb_dri2_connect_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_dri2_connect_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_dri2_connect_reply*(c: ptr xcb_connection_t; cookie: xcb_dri2_connect_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_dri2_connect_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dri2_authenticate*(c: ptr xcb_connection_t; window: xcb_window_t;
# magic: uint32): xcb_dri2_authenticate_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_dri2_authenticate_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t;
# magic: uint32): xcb_dri2_authenticate_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_dri2_authenticate_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_dri2_authenticate_reply*(c: ptr xcb_connection_t; cookie: xcb_dri2_authenticate_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_dri2_authenticate_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_dri2_create_drawable_checked*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dri2_create_drawable*(c: ptr xcb_connection_t; drawable: xcb_drawable_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_dri2_destroy_drawable_checked*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dri2_destroy_drawable*(c: ptr xcb_connection_t; drawable: xcb_drawable_t): xcb_void_cookie_t
# proc xcb_dri2_get_buffers_sizeof*(_buffer: pointer; attachments_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dri2_get_buffers*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# count: uint32; attachments_len: uint32;
# attachments: ptr uint32): xcb_dri2_get_buffers_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_dri2_get_buffers_unchecked*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t; count: uint32;
# attachments_len: uint32;
# attachments: ptr uint32): xcb_dri2_get_buffers_cookie_t
# proc xcb_dri2_get_buffers_buffers*(R: ptr xcb_dri2_get_buffers_reply_t): ptr xcb_dri2_dri2_buffer_t
# proc xcb_dri2_get_buffers_buffers_length*(R: ptr xcb_dri2_get_buffers_reply_t): cint
# proc xcb_dri2_get_buffers_buffers_iterator*(R: ptr xcb_dri2_get_buffers_reply_t): xcb_dri2_dri2_buffer_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_dri2_get_buffers_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_dri2_get_buffers_reply*(c: ptr xcb_connection_t; cookie: xcb_dri2_get_buffers_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_dri2_get_buffers_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dri2_copy_region*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# region: uint32; dest: uint32; src: uint32): xcb_dri2_copy_region_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_dri2_copy_region_unchecked*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t; region: uint32;
# dest: uint32; src: uint32): xcb_dri2_copy_region_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_dri2_copy_region_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_dri2_copy_region_reply*(c: ptr xcb_connection_t; cookie: xcb_dri2_copy_region_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_dri2_copy_region_reply_t
# proc xcb_dri2_get_buffers_with_format_sizeof*(_buffer: pointer;
# attachments_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dri2_get_buffers_with_format*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t; count: uint32;
# attachments_len: uint32;
# attachments: ptr xcb_dri2_attach_format_t): xcb_dri2_get_buffers_with_format_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_dri2_get_buffers_with_format_unchecked*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t; count: uint32; attachments_len: uint32;
# attachments: ptr xcb_dri2_attach_format_t): xcb_dri2_get_buffers_with_format_cookie_t
# proc xcb_dri2_get_buffers_with_format_buffers*(
# R: ptr xcb_dri2_get_buffers_with_format_reply_t): ptr xcb_dri2_dri2_buffer_t
# proc xcb_dri2_get_buffers_with_format_buffers_length*(
# R: ptr xcb_dri2_get_buffers_with_format_reply_t): cint
# proc xcb_dri2_get_buffers_with_format_buffers_iterator*(
# R: ptr xcb_dri2_get_buffers_with_format_reply_t): xcb_dri2_dri2_buffer_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_dri2_get_buffers_with_format_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_dri2_get_buffers_with_format_reply*(c: ptr xcb_connection_t; cookie: xcb_dri2_get_buffers_with_format_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_dri2_get_buffers_with_format_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dri2_swap_buffers*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# target_msc_hi: uint32; target_msc_lo: uint32;
# divisor_hi: uint32; divisor_lo: uint32;
# remainder_hi: uint32; remainder_lo: uint32): xcb_dri2_swap_buffers_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_dri2_swap_buffers_unchecked*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t;
# target_msc_hi: uint32;
# target_msc_lo: uint32;
# divisor_hi: uint32; divisor_lo: uint32;
# remainder_hi: uint32;
# remainder_lo: uint32): xcb_dri2_swap_buffers_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_dri2_swap_buffers_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_dri2_swap_buffers_reply*(c: ptr xcb_connection_t; cookie: xcb_dri2_swap_buffers_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_dri2_swap_buffers_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dri2_get_msc*(c: ptr xcb_connection_t; drawable: xcb_drawable_t): xcb_dri2_get_msc_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_dri2_get_msc_unchecked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t): xcb_dri2_get_msc_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_dri2_get_msc_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_dri2_get_msc_reply*(c: ptr xcb_connection_t; cookie: xcb_dri2_get_msc_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_dri2_get_msc_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dri2_wait_msc*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# target_msc_hi: uint32; target_msc_lo: uint32;
# divisor_hi: uint32; divisor_lo: uint32;
# remainder_hi: uint32; remainder_lo: uint32): xcb_dri2_wait_msc_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_dri2_wait_msc_unchecked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# target_msc_hi: uint32; target_msc_lo: uint32;
# divisor_hi: uint32; divisor_lo: uint32;
# remainder_hi: uint32; remainder_lo: uint32): xcb_dri2_wait_msc_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_dri2_wait_msc_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_dri2_wait_msc_reply*(c: ptr xcb_connection_t; cookie: xcb_dri2_wait_msc_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_dri2_wait_msc_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dri2_wait_sbc*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# target_sbc_hi: uint32; target_sbc_lo: uint32): xcb_dri2_wait_sbc_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_dri2_wait_sbc_unchecked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# target_sbc_hi: uint32; target_sbc_lo: uint32): xcb_dri2_wait_sbc_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_dri2_wait_sbc_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_dri2_wait_sbc_reply*(c: ptr xcb_connection_t; cookie: xcb_dri2_wait_sbc_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_dri2_wait_sbc_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_dri2_swap_interval_checked*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t; interval: uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dri2_swap_interval*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# interval: uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dri2_get_param*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# param: uint32): xcb_dri2_get_param_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_dri2_get_param_unchecked*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t; param: uint32): xcb_dri2_get_param_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_dri2_get_param_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_dri2_get_param_reply*(c: ptr xcb_connection_t; cookie: xcb_dri2_get_param_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_dri2_get_param_reply_t
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from dri3.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB_DRI3_API XCB DRI3 API
# ## @brief DRI3 XCB Protocol Implementation.
# ## @{
# ##
# import
# xcb, xproto
# const
# XCB_DRI3_MAJOR_VERSION* = 1
# XCB_DRI3_MINOR_VERSION* = 2
# var xcb_dri3_id*: xcb_extension_t
# ## *
# ## @brief xcb_dri3_query_version_cookie_t
# ##
# type
# xcb_dri3_query_version_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_dri3_query_version.
# const
# XCB_DRI3_QUERY_VERSION* = 0
# ## *
# ## @brief xcb_dri3_query_version_request_t
# ##
# type
# xcb_dri3_query_version_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# major_version*: uint32
# minor_version*: uint32
# ## *
# ## @brief xcb_dri3_query_version_reply_t
# ##
# type
# xcb_dri3_query_version_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# major_version*: uint32
# minor_version*: uint32
# ## *
# ## @brief xcb_dri3_open_cookie_t
# ##
# type
# xcb_dri3_open_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_dri3_open.
# const
# XCB_DRI3_OPEN* = 1
# ## *
# ## @brief xcb_dri3_open_request_t
# ##
# type
# xcb_dri3_open_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# provider*: uint32
# ## *
# ## @brief xcb_dri3_open_reply_t
# ##
# type
# xcb_dri3_open_reply_t* {.bycopy.} = object
# response_type*: uint8
# nfd*: uint8
# sequence*: uint16
# length*: uint32
# pad0*: array[24, uint8]
# ## * Opcode for xcb_dri3_pixmap_from_buffer.
# const
# XCB_DRI3_PIXMAP_FROM_BUFFER* = 2
# ## *
# ## @brief xcb_dri3_pixmap_from_buffer_request_t
# ##
# type
# xcb_dri3_pixmap_from_buffer_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# pixmap*: xcb_pixmap_t
# drawable*: xcb_drawable_t
# size*: uint32
# width*: uint16
# height*: uint16
# stride*: uint16
# depth*: uint8
# bpp*: uint8
# ## *
# ## @brief xcb_dri3_buffer_from_pixmap_cookie_t
# ##
# type
# xcb_dri3_buffer_from_pixmap_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_dri3_buffer_from_pixmap.
# const
# XCB_DRI3_BUFFER_FROM_PIXMAP* = 3
# ## *
# ## @brief xcb_dri3_buffer_from_pixmap_request_t
# ##
# type
# xcb_dri3_buffer_from_pixmap_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# pixmap*: xcb_pixmap_t
# ## *
# ## @brief xcb_dri3_buffer_from_pixmap_reply_t
# ##
# type
# xcb_dri3_buffer_from_pixmap_reply_t* {.bycopy.} = object
# response_type*: uint8
# nfd*: uint8
# sequence*: uint16
# length*: uint32
# size*: uint32
# width*: uint16
# height*: uint16
# stride*: uint16
# depth*: uint8
# bpp*: uint8
# pad0*: array[12, uint8]
# ## * Opcode for xcb_dri3_fence_from_fd.
# const
# XCB_DRI3_FENCE_FROM_FD* = 4
# ## *
# ## @brief xcb_dri3_fence_from_fd_request_t
# ##
# type
# xcb_dri3_fence_from_fd_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# fence*: uint32
# initially_triggered*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_dri3_fd_from_fence_cookie_t
# ##
# type
# xcb_dri3_fd_from_fence_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_dri3_fd_from_fence.
# const
# XCB_DRI3_FD_FROM_FENCE* = 5
# ## *
# ## @brief xcb_dri3_fd_from_fence_request_t
# ##
# type
# xcb_dri3_fd_from_fence_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# fence*: uint32
# ## *
# ## @brief xcb_dri3_fd_from_fence_reply_t
# ##
# type
# xcb_dri3_fd_from_fence_reply_t* {.bycopy.} = object
# response_type*: uint8
# nfd*: uint8
# sequence*: uint16
# length*: uint32
# pad0*: array[24, uint8]
# ## *
# ## @brief xcb_dri3_get_supported_modifiers_cookie_t
# ##
# type
# xcb_dri3_get_supported_modifiers_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_dri3_get_supported_modifiers.
# const
# XCB_DRI3_GET_SUPPORTED_MODIFIERS* = 6
# ## *
# ## @brief xcb_dri3_get_supported_modifiers_request_t
# ##
# type
# xcb_dri3_get_supported_modifiers_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: uint32
# depth*: uint8
# bpp*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_dri3_get_supported_modifiers_reply_t
# ##
# type
# xcb_dri3_get_supported_modifiers_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# num_window_modifiers*: uint32
# num_screen_modifiers*: uint32
# pad1*: array[16, uint8]
# ## * Opcode for xcb_dri3_pixmap_from_buffers.
# const
# XCB_DRI3_PIXMAP_FROM_BUFFERS* = 7
# ## *
# ## @brief xcb_dri3_pixmap_from_buffers_request_t
# ##
# type
# xcb_dri3_pixmap_from_buffers_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# pixmap*: xcb_pixmap_t
# window*: xcb_window_t
# num_buffers*: uint8
# pad0*: array[3, uint8]
# width*: uint16
# height*: uint16
# stride0*: uint32
# offset0*: uint32
# stride1*: uint32
# offset1*: uint32
# stride2*: uint32
# offset2*: uint32
# stride3*: uint32
# offset3*: uint32
# depth*: uint8
# bpp*: uint8
# pad1*: array[2, uint8]
# modifier*: uint64
# ## *
# ## @brief xcb_dri3_buffers_from_pixmap_cookie_t
# ##
# type
# xcb_dri3_buffers_from_pixmap_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_dri3_buffers_from_pixmap.
# const
# XCB_DRI3_BUFFERS_FROM_PIXMAP* = 8
# ## *
# ## @brief xcb_dri3_buffers_from_pixmap_request_t
# ##
# type
# xcb_dri3_buffers_from_pixmap_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# pixmap*: xcb_pixmap_t
# ## *
# ## @brief xcb_dri3_buffers_from_pixmap_reply_t
# ##
# type
# xcb_dri3_buffers_from_pixmap_reply_t* {.bycopy.} = object
# response_type*: uint8
# nfd*: uint8
# sequence*: uint16
# length*: uint32
# width*: uint16
# height*: uint16
# pad0*: array[4, uint8]
# modifier*: uint64
# depth*: uint8
# bpp*: uint8
# pad1*: array[6, uint8]
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dri3_query_version*(c: ptr xcb_connection_t; major_version: uint32;
# minor_version: uint32): xcb_dri3_query_version_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_dri3_query_version_unchecked*(c: ptr xcb_connection_t;
# major_version: uint32;
# minor_version: uint32): xcb_dri3_query_version_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_dri3_query_version_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_dri3_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_dri3_query_version_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_dri3_query_version_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dri3_open*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# provider: uint32): xcb_dri3_open_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_dri3_open_unchecked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# provider: uint32): xcb_dri3_open_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_dri3_open_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_dri3_open_reply*(c: ptr xcb_connection_t; cookie: xcb_dri3_open_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_dri3_open_reply_t
# ## *
# ## Return the reply fds
# ## @param c The connection
# ## @param reply The reply
# ##
# ## Returns the array of reply fds of the request asked by
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_dri3_open_reply_fds*(c: ptr xcb_connection_t; ## *<
# reply: ptr xcb_dri3_open_reply_t): ptr cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_dri3_pixmap_from_buffer_checked*(c: ptr xcb_connection_t;
# pixmap: xcb_pixmap_t; drawable: xcb_drawable_t; size: uint32; width: uint16;
# height: uint16; stride: uint16; depth: uint8; bpp: uint8; pixmap_fd: int32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dri3_pixmap_from_buffer*(c: ptr xcb_connection_t; pixmap: xcb_pixmap_t;
# drawable: xcb_drawable_t; size: uint32;
# width: uint16; height: uint16;
# stride: uint16; depth: uint8; bpp: uint8;
# pixmap_fd: int32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dri3_buffer_from_pixmap*(c: ptr xcb_connection_t; pixmap: xcb_pixmap_t): xcb_dri3_buffer_from_pixmap_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_dri3_buffer_from_pixmap_unchecked*(c: ptr xcb_connection_t;
# pixmap: xcb_pixmap_t): xcb_dri3_buffer_from_pixmap_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_dri3_buffer_from_pixmap_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_dri3_buffer_from_pixmap_reply*(c: ptr xcb_connection_t; cookie: xcb_dri3_buffer_from_pixmap_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_dri3_buffer_from_pixmap_reply_t
# ## *
# ## Return the reply fds
# ## @param c The connection
# ## @param reply The reply
# ##
# ## Returns the array of reply fds of the request asked by
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_dri3_buffer_from_pixmap_reply_fds*(c: ptr xcb_connection_t; ## *<
# reply: ptr xcb_dri3_buffer_from_pixmap_reply_t): ptr cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_dri3_fence_from_fd_checked*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t; fence: uint32;
# initially_triggered: uint8;
# fence_fd: int32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dri3_fence_from_fd*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# fence: uint32; initially_triggered: uint8;
# fence_fd: int32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dri3_fd_from_fence*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# fence: uint32): xcb_dri3_fd_from_fence_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_dri3_fd_from_fence_unchecked*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t; fence: uint32): xcb_dri3_fd_from_fence_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_dri3_fd_from_fence_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_dri3_fd_from_fence_reply*(c: ptr xcb_connection_t; cookie: xcb_dri3_fd_from_fence_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_dri3_fd_from_fence_reply_t
# ## *
# ## Return the reply fds
# ## @param c The connection
# ## @param reply The reply
# ##
# ## Returns the array of reply fds of the request asked by
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_dri3_fd_from_fence_reply_fds*(c: ptr xcb_connection_t; ## *<
# reply: ptr xcb_dri3_fd_from_fence_reply_t): ptr cint
# proc xcb_dri3_get_supported_modifiers_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dri3_get_supported_modifiers*(c: ptr xcb_connection_t; window: uint32;
# depth: uint8; bpp: uint8): xcb_dri3_get_supported_modifiers_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_dri3_get_supported_modifiers_unchecked*(c: ptr xcb_connection_t;
# window: uint32; depth: uint8; bpp: uint8): xcb_dri3_get_supported_modifiers_cookie_t
# proc xcb_dri3_get_supported_modifiers_window_modifiers*(
# R: ptr xcb_dri3_get_supported_modifiers_reply_t): ptr uint64
# proc xcb_dri3_get_supported_modifiers_window_modifiers_length*(
# R: ptr xcb_dri3_get_supported_modifiers_reply_t): cint
# proc xcb_dri3_get_supported_modifiers_window_modifiers_end*(
# R: ptr xcb_dri3_get_supported_modifiers_reply_t): xcb_generic_iterator_t
# proc xcb_dri3_get_supported_modifiers_screen_modifiers*(
# R: ptr xcb_dri3_get_supported_modifiers_reply_t): ptr uint64
# proc xcb_dri3_get_supported_modifiers_screen_modifiers_length*(
# R: ptr xcb_dri3_get_supported_modifiers_reply_t): cint
# proc xcb_dri3_get_supported_modifiers_screen_modifiers_end*(
# R: ptr xcb_dri3_get_supported_modifiers_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_dri3_get_supported_modifiers_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_dri3_get_supported_modifiers_reply*(c: ptr xcb_connection_t; cookie: xcb_dri3_get_supported_modifiers_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_dri3_get_supported_modifiers_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_dri3_pixmap_from_buffers_checked*(c: ptr xcb_connection_t;
# pixmap: xcb_pixmap_t; window: xcb_window_t; num_buffers: uint8; width: uint16;
# height: uint16; stride0: uint32; offset0: uint32; stride1: uint32;
# offset1: uint32; stride2: uint32; offset2: uint32; stride3: uint32;
# offset3: uint32; depth: uint8; bpp: uint8; modifier: uint64;
# buffers: ptr int32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dri3_pixmap_from_buffers*(c: ptr xcb_connection_t; pixmap: xcb_pixmap_t;
# window: xcb_window_t; num_buffers: uint8;
# width: uint16; height: uint16;
# stride0: uint32; offset0: uint32;
# stride1: uint32; offset1: uint32;
# stride2: uint32; offset2: uint32;
# stride3: uint32; offset3: uint32;
# depth: uint8; bpp: uint8; modifier: uint64;
# buffers: ptr int32): xcb_void_cookie_t
# proc xcb_dri3_buffers_from_pixmap_sizeof*(_buffer: pointer; buffers: int32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_dri3_buffers_from_pixmap*(c: ptr xcb_connection_t; pixmap: xcb_pixmap_t): xcb_dri3_buffers_from_pixmap_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_dri3_buffers_from_pixmap_unchecked*(c: ptr xcb_connection_t;
# pixmap: xcb_pixmap_t): xcb_dri3_buffers_from_pixmap_cookie_t
# proc xcb_dri3_buffers_from_pixmap_strides*(
# R: ptr xcb_dri3_buffers_from_pixmap_reply_t): ptr uint32
# proc xcb_dri3_buffers_from_pixmap_strides_length*(
# R: ptr xcb_dri3_buffers_from_pixmap_reply_t): cint
# proc xcb_dri3_buffers_from_pixmap_strides_end*(
# R: ptr xcb_dri3_buffers_from_pixmap_reply_t): xcb_generic_iterator_t
# proc xcb_dri3_buffers_from_pixmap_offsets*(
# R: ptr xcb_dri3_buffers_from_pixmap_reply_t): ptr uint32
# proc xcb_dri3_buffers_from_pixmap_offsets_length*(
# R: ptr xcb_dri3_buffers_from_pixmap_reply_t): cint
# proc xcb_dri3_buffers_from_pixmap_offsets_end*(
# R: ptr xcb_dri3_buffers_from_pixmap_reply_t): xcb_generic_iterator_t
# proc xcb_dri3_buffers_from_pixmap_buffers*(
# R: ptr xcb_dri3_buffers_from_pixmap_reply_t): ptr int32
# proc xcb_dri3_buffers_from_pixmap_buffers_length*(
# R: ptr xcb_dri3_buffers_from_pixmap_reply_t): cint
# proc xcb_dri3_buffers_from_pixmap_buffers_end*(
# R: ptr xcb_dri3_buffers_from_pixmap_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_dri3_buffers_from_pixmap_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_dri3_buffers_from_pixmap_reply*(c: ptr xcb_connection_t; cookie: xcb_dri3_buffers_from_pixmap_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_dri3_buffers_from_pixmap_reply_t
# ## *
# ## Return the reply fds
# ## @param c The connection
# ## @param reply The reply
# ##
# ## Returns the array of reply fds of the request asked by
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_dri3_buffers_from_pixmap_reply_fds*(c: ptr xcb_connection_t; ## *<
# reply: ptr xcb_dri3_buffers_from_pixmap_reply_t): ptr cint
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from ge.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB_GenericEvent_API XCB GenericEvent API
# ## @brief GenericEvent XCB Protocol Implementation.
# ## @{
# ##
# import
# xcb
# const
# XCB_GENERICEVENT_MAJOR_VERSION* = 1
# XCB_GENERICEVENT_MINOR_VERSION* = 0
# var xcb_genericevent_id*: xcb_extension_t
# ## *
# ## @brief xcb_genericevent_query_version_cookie_t
# ##
# type
# xcb_genericevent_query_version_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_genericevent_query_version.
# const
# XCB_GENERICEVENT_QUERY_VERSION* = 0
# ## *
# ## @brief xcb_genericevent_query_version_request_t
# ##
# type
# xcb_genericevent_query_version_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# client_major_version*: uint16
# client_minor_version*: uint16
# ## *
# ## @brief xcb_genericevent_query_version_reply_t
# ##
# type
# xcb_genericevent_query_version_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# major_version*: uint16
# minor_version*: uint16
# pad1*: array[20, uint8]
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_genericevent_query_version*(c: ptr xcb_connection_t;
# client_major_version: uint16;
# client_minor_version: uint16): xcb_genericevent_query_version_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_genericevent_query_version_unchecked*(c: ptr xcb_connection_t;
# client_major_version: uint16; client_minor_version: uint16): xcb_genericevent_query_version_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_genericevent_query_version_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_genericevent_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_genericevent_query_version_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_genericevent_query_version_reply_t
# import
# xcb, xproto
# import
# xcb, xproto, randr, xfixes, sync
# const
# XCB_PRESENT_MAJOR_VERSION* = 1
# XCB_PRESENT_MINOR_VERSION* = 2
# var xcb_present_id*: xcb_extension_t
# type
# xcb_present_event_enum_t* = enum
# XCB_PRESENT_EVENT_CONFIGURE_NOTIFY = 0, XCB_PRESENT_EVENT_COMPLETE_NOTIFY = 1,
# XCB_PRESENT_EVENT_IDLE_NOTIFY = 2, XCB_PRESENT_EVENT_REDIRECT_NOTIFY = 3
# xcb_present_event_mask_t* = enum
# XCB_PRESENT_EVENT_MASK_NO_EVENT = 0,
# XCB_PRESENT_EVENT_MASK_CONFIGURE_NOTIFY = 1,
# XCB_PRESENT_EVENT_MASK_COMPLETE_NOTIFY = 2,
# XCB_PRESENT_EVENT_MASK_IDLE_NOTIFY = 4,
# XCB_PRESENT_EVENT_MASK_REDIRECT_NOTIFY = 8
# xcb_present_option_t* = enum
# XCB_PRESENT_OPTION_NONE = 0, XCB_PRESENT_OPTION_ASYNC = 1,
# XCB_PRESENT_OPTION_COPY = 2, XCB_PRESENT_OPTION_UST = 4,
# XCB_PRESENT_OPTION_SUBOPTIMAL = 8
# xcb_present_capability_t* = enum
# XCB_PRESENT_CAPABILITY_NONE = 0, XCB_PRESENT_CAPABILITY_ASYNC = 1,
# XCB_PRESENT_CAPABILITY_FENCE = 2, XCB_PRESENT_CAPABILITY_UST = 4
# xcb_present_complete_kind_t* = enum
# XCB_PRESENT_COMPLETE_KIND_PIXMAP = 0, XCB_PRESENT_COMPLETE_KIND_NOTIFY_MSC = 1
# xcb_present_complete_mode_t* = enum
# XCB_PRESENT_COMPLETE_MODE_COPY = 0, XCB_PRESENT_COMPLETE_MODE_FLIP = 1,
# XCB_PRESENT_COMPLETE_MODE_SKIP = 2,
# XCB_PRESENT_COMPLETE_MODE_SUBOPTIMAL_COPY = 3
# ## *
# ## @brief xcb_present_notify_t
# ##
# type
# xcb_present_notify_t* {.bycopy.} = object
# window*: xcb_window_t
# serial*: uint32
# ## *
# ## @brief xcb_present_notify_iterator_t
# ##
# type
# xcb_present_notify_iterator_t* {.bycopy.} = object
# data*: ptr xcb_present_notify_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_present_query_version_cookie_t
# ##
# type
# xcb_present_query_version_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_present_query_version.
# const
# XCB_PRESENT_QUERY_VERSION* = 0
# ## *
# ## @brief xcb_present_query_version_request_t
# ##
# type
# xcb_present_query_version_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# major_version*: uint32
# minor_version*: uint32
# ## *
# ## @brief xcb_present_query_version_reply_t
# ##
# type
# xcb_present_query_version_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# major_version*: uint32
# minor_version*: uint32
# ## * Opcode for xcb_present_pixmap.
# const
# XCB_PRESENT_PIXMAP* = 1
# ## *
# ## @brief xcb_present_pixmap_request_t
# ##
# type
# xcb_present_pixmap_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# pixmap*: xcb_pixmap_t
# serial*: uint32
# valid*: xcb_xfixes_region_t
# update*: xcb_xfixes_region_t
# x_off*: int16
# y_off*: int16
# target_crtc*: xcb_randr_crtc_t
# wait_fence*: xcb_sync_fence_t
# idle_fence*: xcb_sync_fence_t
# options*: uint32
# pad0*: array[4, uint8]
# target_msc*: uint64
# divisor*: uint64
# remainder*: uint64
# ## * Opcode for xcb_present_notify_msc.
# const
# XCB_PRESENT_NOTIFY_MSC* = 2
# ## *
# ## @brief xcb_present_notify_msc_request_t
# ##
# type
# xcb_present_notify_msc_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# serial*: uint32
# pad0*: array[4, uint8]
# target_msc*: uint64
# divisor*: uint64
# remainder*: uint64
# xcb_present_event_t* = uint32
# ## *
# ## @brief xcb_present_event_iterator_t
# ##
# type
# xcb_present_event_iterator_t* {.bycopy.} = object
# data*: ptr xcb_present_event_t
# rem*: cint
# index*: cint
# ## * Opcode for xcb_present_select_input.
# const
# XCB_PRESENT_SELECT_INPUT* = 3
# ## *
# ## @brief xcb_present_select_input_request_t
# ##
# type
# xcb_present_select_input_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# eid*: xcb_present_event_t
# window*: xcb_window_t
# event_mask*: uint32
# ## *
# ## @brief xcb_present_query_capabilities_cookie_t
# ##
# type
# xcb_present_query_capabilities_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_present_query_capabilities.
# const
# XCB_PRESENT_QUERY_CAPABILITIES* = 4
# ## *
# ## @brief xcb_present_query_capabilities_request_t
# ##
# type
# xcb_present_query_capabilities_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# target*: uint32
# ## *
# ## @brief xcb_present_query_capabilities_reply_t
# ##
# type
# xcb_present_query_capabilities_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# capabilities*: uint32
# ## * Opcode for xcb_present_generic.
# const
# XCB_PRESENT_GENERIC* = 0
# ## *
# ## @brief xcb_present_generic_event_t
# ##
# type
# xcb_present_generic_event_t* {.bycopy.} = object
# response_type*: uint8
# extension*: uint8
# sequence*: uint16
# length*: uint32
# evtype*: uint16
# pad0*: array[2, uint8]
# event*: xcb_present_event_t
# ## * Opcode for xcb_present_configure_notify.
# const
# XCB_PRESENT_CONFIGURE_NOTIFY* = 0
# ## *
# ## @brief xcb_present_configure_notify_event_t
# ##
# type
# xcb_present_configure_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# extension*: uint8
# sequence*: uint16
# length*: uint32
# event_type*: uint16
# pad0*: array[2, uint8]
# event*: xcb_present_event_t
# window*: xcb_window_t
# x*: int16
# y*: int16
# width*: uint16
# height*: uint16
# off_x*: int16
# off_y*: int16
# full_sequence*: uint32
# pixmap_width*: uint16
# pixmap_height*: uint16
# pixmap_flags*: uint32
# ## * Opcode for xcb_present_complete_notify.
# const
# XCB_PRESENT_COMPLETE_NOTIFY* = 1
# ## *
# ## @brief xcb_present_complete_notify_event_t
# ##
# type
# xcb_present_complete_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# extension*: uint8
# sequence*: uint16
# length*: uint32
# event_type*: uint16
# kind*: uint8
# mode*: uint8
# event*: xcb_present_event_t
# window*: xcb_window_t
# serial*: uint32
# ust*: uint64
# full_sequence*: uint32
# msc*: uint64
# ## * Opcode for xcb_present_idle_notify.
# const
# XCB_PRESENT_IDLE_NOTIFY* = 2
# ## *
# ## @brief xcb_present_idle_notify_event_t
# ##
# type
# xcb_present_idle_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# extension*: uint8
# sequence*: uint16
# length*: uint32
# event_type*: uint16
# pad0*: array[2, uint8]
# event*: xcb_present_event_t
# window*: xcb_window_t
# serial*: uint32
# pixmap*: xcb_pixmap_t
# idle_fence*: xcb_sync_fence_t
# full_sequence*: uint32
# ## * Opcode for xcb_present_redirect_notify.
# const
# XCB_PRESENT_REDIRECT_NOTIFY* = 3
# ## *
# ## @brief xcb_present_redirect_notify_event_t
# ##
# type
# xcb_present_redirect_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# extension*: uint8
# sequence*: uint16
# length*: uint32
# event_type*: uint16
# update_window*: uint8
# pad0*: uint8
# event*: xcb_present_event_t
# event_window*: xcb_window_t
# window*: xcb_window_t
# pixmap*: xcb_pixmap_t
# serial*: uint32
# full_sequence*: uint32
# valid_region*: xcb_xfixes_region_t
# update_region*: xcb_xfixes_region_t
# valid_rect*: xcb_rectangle_t
# update_rect*: xcb_rectangle_t
# x_off*: int16
# y_off*: int16
# target_crtc*: xcb_randr_crtc_t
# wait_fence*: xcb_sync_fence_t
# idle_fence*: xcb_sync_fence_t
# options*: uint32
# pad1*: array[4, uint8]
# target_msc*: uint64
# divisor*: uint64
# remainder*: uint64
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_present_notify_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_present_notify_t)
# ##
# proc xcb_present_notify_next*(i: ptr xcb_present_notify_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_present_notify_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_present_notify_end*(i: xcb_present_notify_iterator_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_present_query_version*(c: ptr xcb_connection_t; major_version: uint32;
# minor_version: uint32): xcb_present_query_version_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_present_query_version_unchecked*(c: ptr xcb_connection_t;
# major_version: uint32; minor_version: uint32): xcb_present_query_version_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_present_query_version_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_present_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_present_query_version_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_present_query_version_reply_t
# proc xcb_present_pixmap_sizeof*(_buffer: pointer; notifies_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_present_pixmap_checked*(c: ptr xcb_connection_t; window: xcb_window_t;
# pixmap: xcb_pixmap_t; serial: uint32;
# valid: xcb_xfixes_region_t;
# update: xcb_xfixes_region_t; x_off: int16;
# y_off: int16; target_crtc: xcb_randr_crtc_t;
# wait_fence: xcb_sync_fence_t;
# idle_fence: xcb_sync_fence_t; options: uint32;
# target_msc: uint64; divisor: uint64;
# remainder: uint64; notifies_len: uint32;
# notifies: ptr xcb_present_notify_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_present_pixmap*(c: ptr xcb_connection_t; window: xcb_window_t;
# pixmap: xcb_pixmap_t; serial: uint32;
# valid: xcb_xfixes_region_t; update: xcb_xfixes_region_t;
# x_off: int16; y_off: int16;
# target_crtc: xcb_randr_crtc_t;
# wait_fence: xcb_sync_fence_t;
# idle_fence: xcb_sync_fence_t; options: uint32;
# target_msc: uint64; divisor: uint64;
# remainder: uint64; notifies_len: uint32;
# notifies: ptr xcb_present_notify_t): xcb_void_cookie_t
# proc xcb_present_pixmap_notifies*(R: ptr xcb_present_pixmap_request_t): ptr xcb_present_notify_t
# proc xcb_present_pixmap_notifies_length*(R: ptr xcb_present_pixmap_request_t): cint
# proc xcb_present_pixmap_notifies_iterator*(R: ptr xcb_present_pixmap_request_t): xcb_present_notify_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_present_notify_msc_checked*(c: ptr xcb_connection_t; window: xcb_window_t;
# serial: uint32; target_msc: uint64;
# divisor: uint64; remainder: uint64): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_present_notify_msc*(c: ptr xcb_connection_t; window: xcb_window_t;
# serial: uint32; target_msc: uint64;
# divisor: uint64; remainder: uint64): xcb_void_cookie_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_present_event_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_present_event_t)
# ##
# proc xcb_present_event_next*(i: ptr xcb_present_event_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_present_event_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_present_event_end*(i: xcb_present_event_iterator_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_present_select_input_checked*(c: ptr xcb_connection_t;
# eid: xcb_present_event_t;
# window: xcb_window_t; event_mask: uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_present_select_input*(c: ptr xcb_connection_t; eid: xcb_present_event_t;
# window: xcb_window_t; event_mask: uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_present_query_capabilities*(c: ptr xcb_connection_t; target: uint32): xcb_present_query_capabilities_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_present_query_capabilities_unchecked*(c: ptr xcb_connection_t;
# target: uint32): xcb_present_query_capabilities_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_present_query_capabilities_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_present_query_capabilities_reply*(c: ptr xcb_connection_t; cookie: xcb_present_query_capabilities_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_present_query_capabilities_reply_t
# proc xcb_present_redirect_notify_sizeof*(_buffer: pointer; notifies_len: uint32): cint
# proc xcb_present_redirect_notify_notifies*(
# R: ptr xcb_present_redirect_notify_event_t): ptr xcb_present_notify_t
# proc xcb_present_redirect_notify_notifies_length*(
# R: ptr xcb_present_redirect_notify_event_t): cint
# proc xcb_present_redirect_notify_notifies_iterator*(
# R: ptr xcb_present_redirect_notify_event_t): xcb_present_notify_iterator_t
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from randr.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB_RandR_API XCB RandR API
# ## @brief RandR XCB Protocol Implementation.
# ## @{
# ##
# import
# xcb, xproto, render
# const
# XCB_RANDR_MAJOR_VERSION* = 1
# XCB_RANDR_MINOR_VERSION* = 6
# var xcb_randr_id*: xcb_extension_t
# type
# xcb_randr_mode_t* = uint32
# ## *
# ## @brief xcb_randr_mode_iterator_t
# ##
# type
# xcb_randr_mode_iterator_t* {.bycopy.} = object
# data*: ptr xcb_randr_mode_t
# rem*: cint
# index*: cint
# xcb_randr_crtc_t* = uint32
# ## *
# ## @brief xcb_randr_crtc_iterator_t
# ##
# type
# xcb_randr_crtc_iterator_t* {.bycopy.} = object
# data*: ptr xcb_randr_crtc_t
# rem*: cint
# index*: cint
# xcb_randr_output_t* = uint32
# ## *
# ## @brief xcb_randr_output_iterator_t
# ##
# type
# xcb_randr_output_iterator_t* {.bycopy.} = object
# data*: ptr xcb_randr_output_t
# rem*: cint
# index*: cint
# xcb_randr_provider_t* = uint32
# ## *
# ## @brief xcb_randr_provider_iterator_t
# ##
# type
# xcb_randr_provider_iterator_t* {.bycopy.} = object
# data*: ptr xcb_randr_provider_t
# rem*: cint
# index*: cint
# xcb_randr_lease_t* = uint32
# ## *
# ## @brief xcb_randr_lease_iterator_t
# ##
# type
# xcb_randr_lease_iterator_t* {.bycopy.} = object
# data*: ptr xcb_randr_lease_t
# rem*: cint
# index*: cint
# ## * Opcode for xcb_randr_bad_output.
# const
# XCB_RANDR_BAD_OUTPUT* = 0
# ## *
# ## @brief xcb_randr_bad_output_error_t
# ##
# type
# xcb_randr_bad_output_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# ## * Opcode for xcb_randr_bad_crtc.
# const
# XCB_RANDR_BAD_CRTC* = 1
# ## *
# ## @brief xcb_randr_bad_crtc_error_t
# ##
# type
# xcb_randr_bad_crtc_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# ## * Opcode for xcb_randr_bad_mode.
# const
# XCB_RANDR_BAD_MODE* = 2
# ## *
# ## @brief xcb_randr_bad_mode_error_t
# ##
# type
# xcb_randr_bad_mode_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# ## * Opcode for xcb_randr_bad_provider.
# const
# XCB_RANDR_BAD_PROVIDER* = 3
# ## *
# ## @brief xcb_randr_bad_provider_error_t
# ##
# type
# xcb_randr_bad_provider_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# xcb_randr_rotation_t* = enum
# XCB_RANDR_ROTATION_ROTATE_0 = 1, XCB_RANDR_ROTATION_ROTATE_90 = 2,
# XCB_RANDR_ROTATION_ROTATE_180 = 4, XCB_RANDR_ROTATION_ROTATE_270 = 8,
# XCB_RANDR_ROTATION_REFLECT_X = 16, XCB_RANDR_ROTATION_REFLECT_Y = 32
# ## *
# ## @brief xcb_randr_screen_size_t
# ##
# type
# xcb_randr_screen_size_t* {.bycopy.} = object
# width*: uint16
# height*: uint16
# mwidth*: uint16
# mheight*: uint16
# ## *
# ## @brief xcb_randr_screen_size_iterator_t
# ##
# type
# xcb_randr_screen_size_iterator_t* {.bycopy.} = object
# data*: ptr xcb_randr_screen_size_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_randr_refresh_rates_t
# ##
# type
# xcb_randr_refresh_rates_t* {.bycopy.} = object
# nRates*: uint16
# ## *
# ## @brief xcb_randr_refresh_rates_iterator_t
# ##
# type
# xcb_randr_refresh_rates_iterator_t* {.bycopy.} = object
# data*: ptr xcb_randr_refresh_rates_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_randr_query_version_cookie_t
# ##
# type
# xcb_randr_query_version_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_randr_query_version.
# const
# XCB_RANDR_QUERY_VERSION* = 0
# ## *
# ## @brief xcb_randr_query_version_request_t
# ##
# type
# xcb_randr_query_version_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# major_version*: uint32
# minor_version*: uint32
# ## *
# ## @brief xcb_randr_query_version_reply_t
# ##
# type
# xcb_randr_query_version_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# major_version*: uint32
# minor_version*: uint32
# pad1*: array[16, uint8]
# xcb_randr_set_config_t* = enum
# XCB_RANDR_SET_CONFIG_SUCCESS = 0, XCB_RANDR_SET_CONFIG_INVALID_CONFIG_TIME = 1,
# XCB_RANDR_SET_CONFIG_INVALID_TIME = 2, XCB_RANDR_SET_CONFIG_FAILED = 3
# ## *
# ## @brief xcb_randr_set_screen_config_cookie_t
# ##
# type
# xcb_randr_set_screen_config_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_randr_set_screen_config.
# const
# XCB_RANDR_SET_SCREEN_CONFIG* = 2
# ## *
# ## @brief xcb_randr_set_screen_config_request_t
# ##
# type
# xcb_randr_set_screen_config_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# timestamp*: xcb_timestamp_t
# config_timestamp*: xcb_timestamp_t
# sizeID*: uint16
# rotation*: uint16
# rate*: uint16
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_randr_set_screen_config_reply_t
# ##
# type
# xcb_randr_set_screen_config_reply_t* {.bycopy.} = object
# response_type*: uint8
# status*: uint8
# sequence*: uint16
# length*: uint32
# new_timestamp*: xcb_timestamp_t
# config_timestamp*: xcb_timestamp_t
# root*: xcb_window_t
# subpixel_order*: uint16
# pad0*: array[10, uint8]
# xcb_randr_notify_mask_t* = enum
# XCB_RANDR_NOTIFY_MASK_SCREEN_CHANGE = 1, XCB_RANDR_NOTIFY_MASK_CRTC_CHANGE = 2,
# XCB_RANDR_NOTIFY_MASK_OUTPUT_CHANGE = 4,
# XCB_RANDR_NOTIFY_MASK_OUTPUT_PROPERTY = 8,
# XCB_RANDR_NOTIFY_MASK_PROVIDER_CHANGE = 16,
# XCB_RANDR_NOTIFY_MASK_PROVIDER_PROPERTY = 32,
# XCB_RANDR_NOTIFY_MASK_RESOURCE_CHANGE = 64, XCB_RANDR_NOTIFY_MASK_LEASE = 128
# ## * Opcode for xcb_randr_select_input.
# const
# XCB_RANDR_SELECT_INPUT* = 4
# ## *
# ## @brief xcb_randr_select_input_request_t
# ##
# type
# xcb_randr_select_input_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# enable*: uint16
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_randr_get_screen_info_cookie_t
# ##
# type
# xcb_randr_get_screen_info_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_randr_get_screen_info.
# const
# XCB_RANDR_GET_SCREEN_INFO* = 5
# ## *
# ## @brief xcb_randr_get_screen_info_request_t
# ##
# type
# xcb_randr_get_screen_info_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# ## *
# ## @brief xcb_randr_get_screen_size_range_cookie_t
# ##
# type
# xcb_randr_get_screen_size_range_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_randr_get_screen_size_range.
# const
# XCB_RANDR_GET_SCREEN_SIZE_RANGE* = 6
# ## *
# ## @brief xcb_randr_get_screen_size_range_request_t
# ##
# type
# xcb_randr_get_screen_size_range_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# ## *
# ## @brief xcb_randr_get_screen_size_range_reply_t
# ##
# type
# xcb_randr_get_screen_size_range_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# min_width*: uint16
# min_height*: uint16
# max_width*: uint16
# max_height*: uint16
# pad1*: array[16, uint8]
# ## * Opcode for xcb_randr_set_screen_size.
# const
# XCB_RANDR_SET_SCREEN_SIZE* = 7
# ## *
# ## @brief xcb_randr_set_screen_size_request_t
# ##
# type
# xcb_randr_set_screen_size_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# width*: uint16
# height*: uint16
# mm_width*: uint32
# mm_height*: uint32
# xcb_randr_mode_flag_t* = enum
# XCB_RANDR_MODE_FLAG_HSYNC_POSITIVE = 1, XCB_RANDR_MODE_FLAG_HSYNC_NEGATIVE = 2,
# XCB_RANDR_MODE_FLAG_VSYNC_POSITIVE = 4, XCB_RANDR_MODE_FLAG_VSYNC_NEGATIVE = 8,
# XCB_RANDR_MODE_FLAG_INTERLACE = 16, XCB_RANDR_MODE_FLAG_DOUBLE_SCAN = 32,
# XCB_RANDR_MODE_FLAG_CSYNC = 64, XCB_RANDR_MODE_FLAG_CSYNC_POSITIVE = 128,
# XCB_RANDR_MODE_FLAG_CSYNC_NEGATIVE = 256,
# XCB_RANDR_MODE_FLAG_HSKEW_PRESENT = 512, XCB_RANDR_MODE_FLAG_BCAST = 1024,
# XCB_RANDR_MODE_FLAG_PIXEL_MULTIPLEX = 2048,
# XCB_RANDR_MODE_FLAG_DOUBLE_CLOCK = 4096, XCB_RANDR_MODE_FLAG_HALVE_CLOCK = 8192
# type
# xcb_randr_mode_info_iterator_t* {.bycopy.} = object
# data*: ptr xcb_randr_mode_info_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_randr_get_screen_resources_cookie_t
# ##
# type
# xcb_randr_get_screen_resources_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_randr_get_screen_resources.
# const
# XCB_RANDR_GET_SCREEN_RESOURCES* = 8
# ## *
# ## @brief xcb_randr_get_screen_resources_request_t
# ##
# type
# xcb_randr_get_screen_resources_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# ## *
# ## @brief xcb_randr_get_screen_resources_reply_t
# ##
# type
# xcb_randr_connection_t* = enum
# XCB_RANDR_CONNECTION_CONNECTED = 0, XCB_RANDR_CONNECTION_DISCONNECTED = 1,
# XCB_RANDR_CONNECTION_UNKNOWN = 2
# type
# xcb_randr_get_output_info_cookie_t* {.bycopy.} = object
# sequence*: uint8
# const
# XCB_RANDR_GET_OUTPUT_INFO* = 9
# type
# xcb_randr_get_output_info_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# output*: xcb_randr_output_t
# config_timestamp*: xcb_timestamp_t
# ## *
# ## @brief xcb_randr_get_output_info_reply_t
# ##
# ## *
# ## @brief xcb_randr_list_output_properties_cookie_t
# ##
# type
# xcb_randr_list_output_properties_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_randr_list_output_properties.
# const
# XCB_RANDR_LIST_OUTPUT_PROPERTIES* = 10
# ## *
# ## @brief xcb_randr_list_output_properties_request_t
# ##
# type
# xcb_randr_list_output_properties_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# output*: xcb_randr_output_t
# ## *
# ## @brief xcb_randr_list_output_properties_reply_t
# ##
# type
# xcb_randr_list_output_properties_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# num_atoms*: uint16
# pad1*: array[22, uint8]
# ## *
# ## @brief xcb_randr_query_output_property_cookie_t
# ##
# type
# xcb_randr_query_output_property_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_randr_query_output_property.
# const
# XCB_RANDR_QUERY_OUTPUT_PROPERTY* = 11
# ## *
# ## @brief xcb_randr_query_output_property_request_t
# ##
# type
# xcb_randr_query_output_property_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# output*: xcb_randr_output_t
# property*: xcb_atom_t
# ## *
# ## @brief xcb_randr_query_output_property_reply_t
# ##
# type
# xcb_randr_query_output_property_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# pending*: uint8
# range*: uint8
# immutable*: uint8
# pad1*: array[21, uint8]
# ## * Opcode for xcb_randr_configure_output_property.
# const
# XCB_RANDR_CONFIGURE_OUTPUT_PROPERTY* = 12
# ## *
# ## @brief xcb_randr_configure_output_property_request_t
# ##
# type
# xcb_randr_configure_output_property_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# output*: xcb_randr_output_t
# property*: xcb_atom_t
# pending*: uint8
# range*: uint8
# pad0*: array[2, uint8]
# ## * Opcode for xcb_randr_change_output_property.
# const
# XCB_RANDR_CHANGE_OUTPUT_PROPERTY* = 13
# ## *
# ## @brief xcb_randr_change_output_property_request_t
# ##
# type
# xcb_randr_change_output_property_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# output*: xcb_randr_output_t
# property*: xcb_atom_t
# `type`*: xcb_atom_t
# format*: uint8
# mode*: uint8
# pad0*: array[2, uint8]
# num_units*: uint32
# ## * Opcode for xcb_randr_delete_output_property.
# const
# XCB_RANDR_DELETE_OUTPUT_PROPERTY* = 14
# ## *
# ## @brief xcb_randr_delete_output_property_request_t
# ##
# type
# xcb_randr_delete_output_property_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# output*: xcb_randr_output_t
# property*: xcb_atom_t
# type
# xcb_randr_get_output_property_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_randr_get_output_property.
# const
# XCB_RANDR_GET_OUTPUT_PROPERTY* = 15
# ## *
# ## @brief xcb_randr_get_output_property_request_t
# ##
# type
# xcb_randr_get_output_property_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# output*: xcb_randr_output_t
# property*: xcb_atom_t
# `type`*: xcb_atom_t
# long_offset*: uint32
# long_length*: uint32
# _delete*: uint8
# pending*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_randr_get_output_property_reply_t
# ##
# type
# xcb_randr_get_output_property_reply_t* {.bycopy.} = object
# response_type*: uint8
# format*: uint8
# sequence*: uint16
# length*: uint32
# `type`*: xcb_atom_t
# bytes_after*: uint32
# num_items*: uint32
# pad0*: array[12, uint8]
# ## *
# ## @brief xcb_randr_create_mode_cookie_t
# ##
# type
# xcb_randr_create_mode_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_randr_create_mode.
# const
# XCB_RANDR_CREATE_MODE* = 16
# ## *
# ## @brief xcb_randr_create_mode_request_t
# ##
# type
# xcb_randr_create_mode_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# mode_info*: xcb_randr_mode_info_t
# ## *
# ## @brief xcb_randr_create_mode_reply_t
# ##
# type
# xcb_randr_create_mode_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# mode*: xcb_randr_mode_t
# pad1*: array[20, uint8]
# ## * Opcode for xcb_randr_destroy_mode.
# const
# XCB_RANDR_DESTROY_MODE* = 17
# ## *
# ## @brief xcb_randr_destroy_mode_request_t
# ##
# type
# xcb_randr_destroy_mode_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# mode*: xcb_randr_mode_t
# ## * Opcode for xcb_randr_add_output_mode.
# const
# XCB_RANDR_ADD_OUTPUT_MODE* = 18
# ## *
# ## @brief xcb_randr_add_output_mode_request_t
# ##
# type
# xcb_randr_add_output_mode_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# output*: xcb_randr_output_t
# mode*: xcb_randr_mode_t
# ## * Opcode for xcb_randr_delete_output_mode.
# const
# XCB_RANDR_DELETE_OUTPUT_MODE* = 19
# ## *
# ## @brief xcb_randr_delete_output_mode_request_t
# ##
# type
# xcb_randr_delete_output_mode_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# output*: xcb_randr_output_t
# mode*: xcb_randr_mode_t
# ## *
# ## @brief xcb_randr_get_crtc_info_cookie_t
# ##
# type
# xcb_randr_get_crtc_info_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_randr_get_crtc_info.
# const
# XCB_RANDR_GET_CRTC_INFO* = 20
# ## *
# ## @brief xcb_randr_get_crtc_info_request_t
# ##
# type
# xcb_randr_get_crtc_info_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# crtc*: xcb_randr_crtc_t
# config_timestamp*: xcb_timestamp_t
# type
# xcb_randr_set_crtc_config_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_randr_set_crtc_config.
# const
# XCB_RANDR_SET_CRTC_CONFIG* = 21
# ## *
# ## @brief xcb_randr_set_crtc_config_request_t
# ##
# type
# xcb_randr_set_crtc_config_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# crtc*: xcb_randr_crtc_t
# timestamp*: xcb_timestamp_t
# config_timestamp*: xcb_timestamp_t
# x*: int16
# y*: int16
# mode*: xcb_randr_mode_t
# rotation*: uint16
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_randr_set_crtc_config_reply_t
# ##
# type
# xcb_randr_set_crtc_config_reply_t* {.bycopy.} = object
# response_type*: uint8
# status*: uint8
# sequence*: uint16
# length*: uint32
# timestamp*: xcb_timestamp_t
# pad0*: array[20, uint8]
# ## *
# ## @brief xcb_randr_get_crtc_gamma_size_cookie_t
# ##
# type
# xcb_randr_get_crtc_gamma_size_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_randr_get_crtc_gamma_size.
# const
# XCB_RANDR_GET_CRTC_GAMMA_SIZE* = 22
# ## *
# ## @brief xcb_randr_get_crtc_gamma_size_request_t
# ##
# type
# xcb_randr_get_crtc_gamma_size_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# crtc*: xcb_randr_crtc_t
# ## *
# ## @brief xcb_randr_get_crtc_gamma_size_reply_t
# ##
# type
# xcb_randr_get_crtc_gamma_size_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# size*: uint16
# pad1*: array[22, uint8]
# ## *
# ## @brief xcb_randr_get_crtc_gamma_cookie_t
# ##
# type
# xcb_randr_get_crtc_gamma_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_randr_get_crtc_gamma.
# const
# XCB_RANDR_GET_CRTC_GAMMA* = 23
# ## *
# ## @brief xcb_randr_get_crtc_gamma_request_t
# ##
# type
# xcb_randr_get_crtc_gamma_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# crtc*: xcb_randr_crtc_t
# ## *
# ## @brief xcb_randr_get_crtc_gamma_reply_t
# ##
# type
# xcb_randr_get_crtc_gamma_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# size*: uint16
# pad1*: array[22, uint8]
# ## * Opcode for xcb_randr_set_crtc_gamma.
# const
# XCB_RANDR_SET_CRTC_GAMMA* = 24
# ## *
# ## @brief xcb_randr_set_crtc_gamma_request_t
# ##
# type
# xcb_randr_set_crtc_gamma_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# crtc*: xcb_randr_crtc_t
# size*: uint16
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_randr_get_screen_resources_current_cookie_t
# ##
# type
# xcb_randr_get_screen_resources_current_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_randr_get_screen_resources_current.
# const
# XCB_RANDR_GET_SCREEN_RESOURCES_CURRENT* = 25
# ## *
# ## @brief xcb_randr_get_screen_resources_current_request_t
# ##
# type
# xcb_randr_get_screen_resources_current_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# ## *
# ## @brief xcb_randr_get_screen_resources_current_reply_t
# ##
# type
# xcb_randr_get_screen_resources_current_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# timestamp*: xcb_timestamp_t
# config_timestamp*: xcb_timestamp_t
# num_crtcs*: uint16
# num_outputs*: uint16
# num_modes*: uint16
# names_len*: uint16
# pad1*: array[8, uint8]
# xcb_randr_transform_t* = enum
# XCB_RANDR_TRANSFORM_UNIT = 1, XCB_RANDR_TRANSFORM_SCALE_UP = 2,
# XCB_RANDR_TRANSFORM_SCALE_DOWN = 4, XCB_RANDR_TRANSFORM_PROJECTIVE = 8
# ## * Opcode for xcb_randr_set_crtc_transform.
# const
# XCB_RANDR_SET_CRTC_TRANSFORM* = 26
# ## *
# ## @brief xcb_randr_set_crtc_transform_request_t
# ##
# type
# xcb_randr_set_crtc_transform_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# crtc*: xcb_randr_crtc_t
# transform*: xcb_render_transform_t
# filter_len*: uint16
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_randr_get_crtc_transform_cookie_t
# ##
# type
# xcb_randr_get_crtc_transform_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_randr_get_crtc_transform.
# const
# XCB_RANDR_GET_CRTC_TRANSFORM* = 27
# ## *
# ## @brief xcb_randr_get_crtc_transform_request_t
# ##
# type
# xcb_randr_get_crtc_transform_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# crtc*: xcb_randr_crtc_t
# ## *
# ## @brief xcb_randr_get_crtc_transform_reply_t
# ##
# type
# xcb_randr_get_crtc_transform_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# pending_transform*: xcb_render_transform_t
# has_transforms*: uint8
# pad1*: array[3, uint8]
# current_transform*: xcb_render_transform_t
# pad2*: array[4, uint8]
# pending_len*: uint16
# pending_nparams*: uint16
# current_len*: uint16
# current_nparams*: uint16
# ## *
# ## @brief xcb_randr_get_panning_cookie_t
# ##
# type
# xcb_randr_get_panning_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_randr_get_panning.
# const
# XCB_RANDR_GET_PANNING* = 28
# ## *
# ## @brief xcb_randr_get_panning_request_t
# ##
# type
# xcb_randr_get_panning_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# crtc*: xcb_randr_crtc_t
# ## *
# ## @brief xcb_randr_get_panning_reply_t
# ##
# type
# xcb_randr_get_panning_reply_t* {.bycopy.} = object
# response_type*: uint8
# status*: uint8
# sequence*: uint16
# length*: uint32
# timestamp*: xcb_timestamp_t
# left*: uint16
# top*: uint16
# width*: uint16
# height*: uint16
# track_left*: uint16
# track_top*: uint16
# track_width*: uint16
# track_height*: uint16
# border_left*: int16
# border_top*: int16
# border_right*: int16
# border_bottom*: int16
# ## *
# ## @brief xcb_randr_set_panning_cookie_t
# ##
# type
# xcb_randr_set_panning_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_randr_set_panning.
# const
# XCB_RANDR_SET_PANNING* = 29
# ## *
# ## @brief xcb_randr_set_panning_request_t
# ##
# type
# xcb_randr_set_panning_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# crtc*: xcb_randr_crtc_t
# timestamp*: xcb_timestamp_t
# left*: uint16
# top*: uint16
# width*: uint16
# height*: uint16
# track_left*: uint16
# track_top*: uint16
# track_width*: uint16
# track_height*: uint16
# border_left*: int16
# border_top*: int16
# border_right*: int16
# border_bottom*: int16
# ## *
# ## @brief xcb_randr_set_panning_reply_t
# ##
# type
# xcb_randr_set_panning_reply_t* {.bycopy.} = object
# response_type*: uint8
# status*: uint8
# sequence*: uint16
# length*: uint32
# timestamp*: xcb_timestamp_t
# ## * Opcode for xcb_randr_set_output_primary.
# const
# XCB_RANDR_SET_OUTPUT_PRIMARY* = 30
# ## *
# ## @brief xcb_randr_set_output_primary_request_t
# ##
# type
# xcb_randr_set_output_primary_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# output*: xcb_randr_output_t
# ## *
# ## @brief xcb_randr_get_output_primary_cookie_t
# ##
# type
# xcb_randr_get_output_primary_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_randr_get_output_primary.
# const
# XCB_RANDR_GET_OUTPUT_PRIMARY* = 31
# ## *
# ## @brief xcb_randr_get_output_primary_request_t
# ##
# type
# xcb_randr_get_output_primary_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# ## *
# ## @brief xcb_randr_get_output_primary_reply_t
# ##
# type
# xcb_randr_get_output_primary_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# output*: xcb_randr_output_t
# ## *
# ## @brief xcb_randr_get_providers_cookie_t
# ##
# type
# xcb_randr_get_providers_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_randr_get_providers.
# const
# XCB_RANDR_GET_PROVIDERS* = 32
# ## *
# ## @brief xcb_randr_get_providers_request_t
# ##
# type
# xcb_randr_get_providers_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# ## *
# ## @brief xcb_randr_get_providers_reply_t
# ##
# type
# xcb_randr_get_providers_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# timestamp*: xcb_timestamp_t
# num_providers*: uint16
# pad1*: array[18, uint8]
# xcb_randr_provider_capability_t* = enum
# XCB_RANDR_PROVIDER_CAPABILITY_SOURCE_OUTPUT = 1,
# XCB_RANDR_PROVIDER_CAPABILITY_SINK_OUTPUT = 2,
# XCB_RANDR_PROVIDER_CAPABILITY_SOURCE_OFFLOAD = 4,
# XCB_RANDR_PROVIDER_CAPABILITY_SINK_OFFLOAD = 8
# ## *
# ## @brief xcb_randr_get_provider_info_cookie_t
# ##
# type
# xcb_randr_get_provider_info_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_randr_get_provider_info.
# const
# XCB_RANDR_GET_PROVIDER_INFO* = 33
# ## *
# ## @brief xcb_randr_get_provider_info_request_t
# ##
# type
# xcb_randr_get_provider_info_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# provider*: xcb_randr_provider_t
# config_timestamp*: xcb_timestamp_t
# ## *
# ## @brief xcb_randr_get_provider_info_reply_t
# ##
# type
# xcb_randr_get_provider_info_reply_t* {.bycopy.} = object
# response_type*: uint8
# status*: uint8
# sequence*: uint16
# length*: uint32
# timestamp*: xcb_timestamp_t
# capabilities*: uint32
# num_crtcs*: uint16
# num_outputs*: uint16
# num_associated_providers*: uint16
# name_len*: uint16
# pad0*: array[8, uint8]
# ## * Opcode for xcb_randr_set_provider_offload_sink.
# const
# XCB_RANDR_SET_PROVIDER_OFFLOAD_SINK* = 34
# ## *
# ## @brief xcb_randr_set_provider_offload_sink_request_t
# ##
# type
# xcb_randr_set_provider_offload_sink_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# provider*: xcb_randr_provider_t
# sink_provider*: xcb_randr_provider_t
# config_timestamp*: xcb_timestamp_t
# ## * Opcode for xcb_randr_set_provider_output_source.
# const
# XCB_RANDR_SET_PROVIDER_OUTPUT_SOURCE* = 35
# ## *
# ## @brief xcb_randr_set_provider_output_source_request_t
# ##
# type
# xcb_randr_set_provider_output_source_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# provider*: xcb_randr_provider_t
# source_provider*: xcb_randr_provider_t
# config_timestamp*: xcb_timestamp_t
# ## *
# ## @brief xcb_randr_list_provider_properties_cookie_t
# ##
# type
# xcb_randr_list_provider_properties_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_randr_list_provider_properties.
# const
# XCB_RANDR_LIST_PROVIDER_PROPERTIES* = 36
# ## *
# ## @brief xcb_randr_list_provider_properties_request_t
# ##
# type
# xcb_randr_list_provider_properties_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# provider*: xcb_randr_provider_t
# ## *
# ## @brief xcb_randr_list_provider_properties_reply_t
# ##
# type
# xcb_randr_list_provider_properties_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# num_atoms*: uint16
# pad1*: array[22, uint8]
# ## *
# ## @brief xcb_randr_query_provider_property_cookie_t
# ##
# type
# xcb_randr_query_provider_property_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_randr_query_provider_property.
# const
# XCB_RANDR_QUERY_PROVIDER_PROPERTY* = 37
# ## *
# ## @brief xcb_randr_query_provider_property_request_t
# ##
# type
# xcb_randr_query_provider_property_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# provider*: xcb_randr_provider_t
# property*: xcb_atom_t
# ## *
# ## @brief xcb_randr_query_provider_property_reply_t
# ##
# type
# xcb_randr_query_provider_property_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# pending*: uint8
# range*: uint8
# immutable*: uint8
# pad1*: array[21, uint8]
# ## * Opcode for xcb_randr_configure_provider_property.
# const
# XCB_RANDR_CONFIGURE_PROVIDER_PROPERTY* = 38
# ## *
# ## @brief xcb_randr_configure_provider_property_request_t
# ##
# type
# xcb_randr_configure_provider_property_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# provider*: xcb_randr_provider_t
# property*: xcb_atom_t
# pending*: uint8
# range*: uint8
# pad0*: array[2, uint8]
# ## * Opcode for xcb_randr_change_provider_property.
# const
# XCB_RANDR_CHANGE_PROVIDER_PROPERTY* = 39
# ## *
# ## @brief xcb_randr_change_provider_property_request_t
# ##
# type
# xcb_randr_change_provider_property_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# provider*: xcb_randr_provider_t
# property*: xcb_atom_t
# `type`*: xcb_atom_t
# format*: uint8
# mode*: uint8
# pad0*: array[2, uint8]
# num_items*: uint32
# ## * Opcode for xcb_randr_delete_provider_property.
# const
# XCB_RANDR_DELETE_PROVIDER_PROPERTY* = 40
# ## *
# ## @brief xcb_randr_delete_provider_property_request_t
# ##
# type
# xcb_randr_delete_provider_property_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# provider*: xcb_randr_provider_t
# property*: xcb_atom_t
# ## *
# ## @brief xcb_randr_get_provider_property_cookie_t
# ##
# type
# xcb_randr_get_provider_property_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_randr_get_provider_property.
# const
# XCB_RANDR_GET_PROVIDER_PROPERTY* = 41
# ## *
# ## @brief xcb_randr_get_provider_property_request_t
# ##
# type
# xcb_randr_get_provider_property_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# provider*: xcb_randr_provider_t
# property*: xcb_atom_t
# `type`*: xcb_atom_t
# long_offset*: uint32
# long_length*: uint32
# _delete*: uint8
# pending*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_randr_get_provider_property_reply_t
# ##
# type
# xcb_randr_get_provider_property_reply_t* {.bycopy.} = object
# response_type*: uint8
# format*: uint8
# sequence*: uint16
# length*: uint32
# `type`*: xcb_atom_t
# bytes_after*: uint32
# num_items*: uint32
# pad0*: array[12, uint8]
# ## * Opcode for xcb_randr_screen_change_notify.
# const
# XCB_RANDR_SCREEN_CHANGE_NOTIFY* = 0
# ## *
# ## @brief xcb_randr_screen_change_notify_event_t
# ##
# type
# xcb_randr_screen_change_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# rotation*: uint8
# sequence*: uint16
# timestamp*: xcb_timestamp_t
# config_timestamp*: xcb_timestamp_t
# root*: xcb_window_t
# request_window*: xcb_window_t
# sizeID*: uint16
# subpixel_order*: uint16
# width*: uint16
# height*: uint16
# mwidth*: uint16
# mheight*: uint16
# xcb_randr_notify_t* = enum
# XCB_RANDR_NOTIFY_CRTC_CHANGE = 0, XCB_RANDR_NOTIFY_OUTPUT_CHANGE = 1,
# XCB_RANDR_NOTIFY_OUTPUT_PROPERTY = 2, XCB_RANDR_NOTIFY_PROVIDER_CHANGE = 3,
# XCB_RANDR_NOTIFY_PROVIDER_PROPERTY = 4, XCB_RANDR_NOTIFY_RESOURCE_CHANGE = 5,
# XCB_RANDR_NOTIFY_LEASE = 6
# ## *
# ## @brief xcb_randr_crtc_change_t
# ##
# type
# xcb_randr_crtc_change_t* {.bycopy.} = object
# timestamp*: xcb_timestamp_t
# window*: xcb_window_t
# crtc*: xcb_randr_crtc_t
# mode*: xcb_randr_mode_t
# rotation*: uint16
# pad0*: array[2, uint8]
# x*: int16
# y*: int16
# width*: uint16
# height*: uint16
# ## *
# ## @brief xcb_randr_crtc_change_iterator_t
# ##
# type
# xcb_randr_crtc_change_iterator_t* {.bycopy.} = object
# data*: ptr xcb_randr_crtc_change_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_randr_output_change_t
# ##
# type
# xcb_randr_output_change_t* {.bycopy.} = object
# timestamp*: xcb_timestamp_t
# config_timestamp*: xcb_timestamp_t
# window*: xcb_window_t
# output*: xcb_randr_output_t
# crtc*: xcb_randr_crtc_t
# mode*: xcb_randr_mode_t
# rotation*: uint16
# connection*: uint8
# subpixel_order*: uint8
# ## *
# ## @brief xcb_randr_output_change_iterator_t
# ##
# type
# xcb_randr_output_change_iterator_t* {.bycopy.} = object
# data*: ptr xcb_randr_output_change_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_randr_output_property_t
# ##
# type
# xcb_randr_output_property_t* {.bycopy.} = object
# window*: xcb_window_t
# output*: xcb_randr_output_t
# atom*: xcb_atom_t
# timestamp*: xcb_timestamp_t
# status*: uint8
# pad0*: array[11, uint8]
# ## *
# ## @brief xcb_randr_output_property_iterator_t
# ##
# type
# xcb_randr_output_property_iterator_t* {.bycopy.} = object
# data*: ptr xcb_randr_output_property_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_randr_provider_change_t
# ##
# type
# xcb_randr_provider_change_t* {.bycopy.} = object
# timestamp*: xcb_timestamp_t
# window*: xcb_window_t
# provider*: xcb_randr_provider_t
# pad0*: array[16, uint8]
# ## *
# ## @brief xcb_randr_provider_change_iterator_t
# ##
# type
# xcb_randr_provider_change_iterator_t* {.bycopy.} = object
# data*: ptr xcb_randr_provider_change_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_randr_provider_property_t
# ##
# type
# xcb_randr_provider_property_t* {.bycopy.} = object
# window*: xcb_window_t
# provider*: xcb_randr_provider_t
# atom*: xcb_atom_t
# timestamp*: xcb_timestamp_t
# state*: uint8
# pad0*: array[11, uint8]
# ## *
# ## @brief xcb_randr_provider_property_iterator_t
# ##
# type
# xcb_randr_provider_property_iterator_t* {.bycopy.} = object
# data*: ptr xcb_randr_provider_property_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_randr_resource_change_t
# ##
# type
# xcb_randr_resource_change_t* {.bycopy.} = object
# timestamp*: xcb_timestamp_t
# window*: xcb_window_t
# pad0*: array[20, uint8]
# ## *
# ## @brief xcb_randr_resource_change_iterator_t
# ##
# type
# xcb_randr_resource_change_iterator_t* {.bycopy.} = object
# data*: ptr xcb_randr_resource_change_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_randr_monitor_info_t
# ##
# type
# xcb_randr_monitor_info_t* {.bycopy.} = object
# name*: xcb_atom_t
# primary*: uint8
# automatic*: uint8
# nOutput*: uint16
# x*: int16
# y*: int16
# width*: uint16
# height*: uint16
# width_in_millimeters*: uint32
# height_in_millimeters*: uint32
# ## *
# ## @brief xcb_randr_monitor_info_iterator_t
# ##
# type
# xcb_randr_monitor_info_iterator_t* {.bycopy.} = object
# data*: ptr xcb_randr_monitor_info_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_randr_get_monitors_cookie_t
# ##
# type
# xcb_randr_get_monitors_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_randr_get_monitors.
# const
# XCB_RANDR_GET_MONITORS* = 42
# ## *
# ## @brief xcb_randr_get_monitors_request_t
# ##
# type
# xcb_randr_get_monitors_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# get_active*: uint8
# ## *
# ## @brief xcb_randr_get_monitors_reply_t
# ##
# type
# xcb_randr_get_monitors_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# timestamp*: xcb_timestamp_t
# nMonitors*: uint32
# nOutputs*: uint32
# pad1*: array[12, uint8]
# ## * Opcode for xcb_randr_set_monitor.
# const
# XCB_RANDR_SET_MONITOR* = 43
# ## *
# ## @brief xcb_randr_set_monitor_request_t
# ##
# type
# xcb_randr_set_monitor_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# ## * Opcode for xcb_randr_delete_monitor.
# const
# XCB_RANDR_DELETE_MONITOR* = 44
# ## *
# ## @brief xcb_randr_delete_monitor_request_t
# ##
# type
# xcb_randr_delete_monitor_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# name*: xcb_atom_t
# ## *
# ## @brief xcb_randr_create_lease_cookie_t
# ##
# type
# xcb_randr_create_lease_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_randr_create_lease.
# const
# XCB_RANDR_CREATE_LEASE* = 45
# ## *
# ## @brief xcb_randr_create_lease_request_t
# ##
# type
# xcb_randr_create_lease_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# lid*: xcb_randr_lease_t
# num_crtcs*: uint16
# num_outputs*: uint16
# ## *
# ## @brief xcb_randr_create_lease_reply_t
# ##
# type
# xcb_randr_create_lease_reply_t* {.bycopy.} = object
# response_type*: uint8
# nfd*: uint8
# sequence*: uint16
# length*: uint32
# pad0*: array[24, uint8]
# ## * Opcode for xcb_randr_free_lease.
# const
# XCB_RANDR_FREE_LEASE* = 46
# ## *
# ## @brief xcb_randr_free_lease_request_t
# ##
# type
# xcb_randr_free_lease_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# lid*: xcb_randr_lease_t
# terminate*: uint8
# ## *
# ## @brief xcb_randr_lease_notify_t
# ##
# type
# xcb_randr_lease_notify_t* {.bycopy.} = object
# timestamp*: xcb_timestamp_t
# window*: xcb_window_t
# lease*: xcb_randr_lease_t
# created*: uint8
# pad0*: array[15, uint8]
# ## *
# ## @brief xcb_randr_lease_notify_iterator_t
# ##
# type
# xcb_randr_lease_notify_iterator_t* {.bycopy.} = object
# data*: ptr xcb_randr_lease_notify_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_randr_notify_data_t
# ##
# type
# xcb_randr_notify_data_t* {.bycopy.} = object {.union.}
# cc*: xcb_randr_crtc_change_t
# oc*: xcb_randr_output_change_t
# op*: xcb_randr_output_property_t
# pc*: xcb_randr_provider_change_t
# pp*: xcb_randr_provider_property_t
# rc*: xcb_randr_resource_change_t
# lc*: xcb_randr_lease_notify_t
# ## *
# ## @brief xcb_randr_notify_data_iterator_t
# ##
# type
# xcb_randr_notify_data_iterator_t* {.bycopy.} = object
# data*: ptr xcb_randr_notify_data_t
# rem*: cint
# index*: cint
# ## * Opcode for xcb_randr_notify.
# const
# XCB_RANDR_NOTIFY* = 1
# ## *
# ## @brief xcb_randr_notify_event_t
# ##
# type
# xcb_randr_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# subCode*: uint8
# sequence*: uint16
# u*: xcb_randr_notify_data_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_randr_mode_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_randr_mode_t)
# ##
# proc xcb_randr_list_output_properties_sizeof*(buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_randr_list_output_properties_unchecked*(c: ptr xcb_connection_t;
# output: xcb_randr_output_t): xcb_randr_list_output_properties_cookie_t
# proc xcb_randr_list_output_properties_atoms_length*(
# R: ptr xcb_randr_list_output_properties_reply_t): cint
# proc xcb_randr_list_output_properties_atoms_end*(
# R: ptr xcb_randr_list_output_properties_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_randr_list_output_properties_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_randr_query_output_property_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_query_output_property*(c: ptr xcb_connection_t;
# output: xcb_randr_output_t;
# property: xcb_atom_t): xcb_randr_query_output_property_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_randr_query_output_property_unchecked*(c: ptr xcb_connection_t;
# output: xcb_randr_output_t; property: xcb_atom_t): xcb_randr_query_output_property_cookie_t
# proc xcb_randr_query_output_property_valid_values*(
# R: ptr xcb_randr_query_output_property_reply_t): ptr int32
# proc xcb_randr_query_output_property_valid_values_length*(
# R: ptr xcb_randr_query_output_property_reply_t): cint
# proc xcb_randr_query_output_property_valid_values_end*(
# R: ptr xcb_randr_query_output_property_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_randr_query_output_property_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_randr_query_output_property_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_query_output_property_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_query_output_property_reply_t
# proc xcb_randr_configure_output_property_sizeof*(_buffer: pointer;
# values_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_randr_configure_output_property_checked*(c: ptr xcb_connection_t;
# output: xcb_randr_output_t; property: xcb_atom_t; pending: uint8;
# range: uint8; values_len: uint32; values: ptr int32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_configure_output_property*(c: ptr xcb_connection_t;
# output: xcb_randr_output_t; property: xcb_atom_t; pending: uint8;
# range: uint8; values_len: uint32; values: ptr int32): xcb_void_cookie_t
# proc xcb_randr_configure_output_property_values*(
# R: ptr xcb_randr_configure_output_property_request_t): ptr int32
# proc xcb_randr_configure_output_property_values_length*(
# R: ptr xcb_randr_configure_output_property_request_t): cint
# proc xcb_randr_configure_output_property_values_end*(
# R: ptr xcb_randr_configure_output_property_request_t): xcb_generic_iterator_t
# proc xcb_randr_change_output_property_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_randr_change_output_property_checked*(c: ptr xcb_connection_t;
# output: xcb_randr_output_t; property: xcb_atom_t; `type`: xcb_atom_t;
# format: uint8; mode: uint8; num_units: uint32; data: pointer): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_change_output_property*(c: ptr xcb_connection_t;
# output: xcb_randr_output_t;
# property: xcb_atom_t; `type`: xcb_atom_t;
# format: uint8; mode: uint8;
# num_units: uint32; data: pointer): xcb_void_cookie_t
# proc xcb_randr_change_output_property_data*(
# R: ptr xcb_randr_change_output_property_request_t): pointer
# proc xcb_randr_change_output_property_data_length*(
# R: ptr xcb_randr_change_output_property_request_t): cint
# proc xcb_randr_change_output_property_data_end*(
# R: ptr xcb_randr_change_output_property_request_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_randr_delete_output_property_checked*(c: ptr xcb_connection_t;
# output: xcb_randr_output_t; property: xcb_atom_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_delete_output_property*(c: ptr xcb_connection_t;
# output: xcb_randr_output_t;
# property: xcb_atom_t): xcb_void_cookie_t
# proc xcb_randr_get_output_property_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_randr_get_output_property_unchecked*(c: ptr xcb_connection_t;
# output: xcb_randr_output_t; property: xcb_atom_t; `type`: xcb_atom_t;
# long_offset: uint32; long_length: uint32; _delete: uint8; pending: uint8): xcb_randr_get_output_property_cookie_t
# proc xcb_randr_get_output_property_data_end*(
# R: ptr xcb_randr_get_output_property_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_randr_get_output_property_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_randr_create_mode_sizeof*(_buffer: pointer; name_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_randr_create_mode_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t;
# mode_info: xcb_randr_mode_info_t;
# name_len: uint32; name: cstring): xcb_randr_create_mode_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_randr_create_mode_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_randr_destroy_mode_checked*(c: ptr xcb_connection_t; mode: xcb_randr_mode_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_destroy_mode*(c: ptr xcb_connection_t; mode: xcb_randr_mode_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_randr_add_output_mode_checked*(c: ptr xcb_connection_t;
# output: xcb_randr_output_t;
# mode: xcb_randr_mode_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_add_output_mode*(c: ptr xcb_connection_t; output: xcb_randr_output_t;
# mode: xcb_randr_mode_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_randr_delete_output_mode_checked*(c: ptr xcb_connection_t;
# output: xcb_randr_output_t; mode: xcb_randr_mode_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_delete_output_mode*(c: ptr xcb_connection_t;
# output: xcb_randr_output_t;
# mode: xcb_randr_mode_t): xcb_void_cookie_t
# proc xcb_randr_get_crtc_info_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_get_crtc_info*(c: ptr xcb_connection_t; crtc: xcb_randr_crtc_t;
# config_timestamp: xcb_timestamp_t): xcb_randr_get_crtc_info_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_randr_get_crtc_info_unchecked*(c: ptr xcb_connection_t;
# crtc: xcb_randr_crtc_t;
# config_timestamp: xcb_timestamp_t): xcb_randr_get_crtc_info_cookie_t
# proc xcb_randr_get_crtc_info_possible_end*(R: ptr xcb_randr_get_crtc_info_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_randr_get_crtc_info_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_randr_set_crtc_config_sizeof*(_buffer: pointer; outputs_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_set_crtc_config*(c: ptr xcb_connection_t; crtc: xcb_randr_crtc_t;
# timestamp: xcb_timestamp_t;
# config_timestamp: xcb_timestamp_t; x: int16;
# y: int16; mode: xcb_randr_mode_t;
# rotation: uint16; outputs_len: uint32;
# outputs: ptr xcb_randr_output_t): xcb_randr_set_crtc_config_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_randr_set_crtc_config_unchecked*(c: ptr xcb_connection_t;
# crtc: xcb_randr_crtc_t; timestamp: xcb_timestamp_t;
# config_timestamp: xcb_timestamp_t; x: int16; y: int16; mode: xcb_randr_mode_t;
# rotation: uint16; outputs_len: uint32; outputs: ptr xcb_randr_output_t): xcb_randr_set_crtc_config_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_randr_set_crtc_config_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_randr_set_crtc_config_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_set_crtc_config_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_set_crtc_config_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_get_crtc_gamma_size*(c: ptr xcb_connection_t; crtc: xcb_randr_crtc_t): xcb_randr_get_crtc_gamma_size_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_randr_get_crtc_gamma_size_unchecked*(c: ptr xcb_connection_t;
# crtc: xcb_randr_crtc_t): xcb_randr_get_crtc_gamma_size_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_randr_get_crtc_gamma_size_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_randr_get_crtc_gamma_size_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_get_crtc_gamma_size_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_get_crtc_gamma_size_reply_t
# proc xcb_randr_get_crtc_gamma_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_get_crtc_gamma*(c: ptr xcb_connection_t; crtc: xcb_randr_crtc_t): xcb_randr_get_crtc_gamma_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_randr_get_crtc_gamma_unchecked*(c: ptr xcb_connection_t;
# crtc: xcb_randr_crtc_t): xcb_randr_get_crtc_gamma_cookie_t
# proc xcb_randr_get_crtc_gamma_red*(R: ptr xcb_randr_get_crtc_gamma_reply_t): ptr uint16
# proc xcb_randr_get_crtc_gamma_red_length*(R: ptr xcb_randr_get_crtc_gamma_reply_t): cint
# proc xcb_randr_get_crtc_gamma_red_end*(R: ptr xcb_randr_get_crtc_gamma_reply_t): xcb_generic_iterator_t
# proc xcb_randr_get_crtc_gamma_green*(R: ptr xcb_randr_get_crtc_gamma_reply_t): ptr uint16
# proc xcb_randr_get_crtc_gamma_green_length*(
# R: ptr xcb_randr_get_crtc_gamma_reply_t): cint
# proc xcb_randr_get_crtc_gamma_green_end*(R: ptr xcb_randr_get_crtc_gamma_reply_t): xcb_generic_iterator_t
# proc xcb_randr_get_crtc_gamma_blue*(R: ptr xcb_randr_get_crtc_gamma_reply_t): ptr uint16
# proc xcb_randr_get_crtc_gamma_blue_length*(
# R: ptr xcb_randr_get_crtc_gamma_reply_t): cint
# proc xcb_randr_get_crtc_gamma_blue_end*(R: ptr xcb_randr_get_crtc_gamma_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_randr_get_crtc_gamma_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_randr_get_crtc_gamma_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_get_crtc_gamma_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_get_crtc_gamma_reply_t
# proc xcb_randr_set_crtc_gamma_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_randr_set_crtc_gamma_checked*(c: ptr xcb_connection_t;
# crtc: xcb_randr_crtc_t; size: uint16;
# red: ptr uint16; green: ptr uint16;
# blue: ptr uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_set_crtc_gamma*(c: ptr xcb_connection_t; crtc: xcb_randr_crtc_t;
# size: uint16; red: ptr uint16; green: ptr uint16;
# blue: ptr uint16): xcb_void_cookie_t
# proc xcb_randr_set_crtc_gamma_red*(R: ptr xcb_randr_set_crtc_gamma_request_t): ptr uint16
# proc xcb_randr_set_crtc_gamma_red_length*(
# R: ptr xcb_randr_set_crtc_gamma_request_t): cint
# proc xcb_randr_set_crtc_gamma_red_end*(R: ptr xcb_randr_set_crtc_gamma_request_t): xcb_generic_iterator_t
# proc xcb_randr_set_crtc_gamma_green*(R: ptr xcb_randr_set_crtc_gamma_request_t): ptr uint16
# proc xcb_randr_set_crtc_gamma_green_length*(
# R: ptr xcb_randr_set_crtc_gamma_request_t): cint
# proc xcb_randr_set_crtc_gamma_green_end*(R: ptr xcb_randr_set_crtc_gamma_request_t): xcb_generic_iterator_t
# proc xcb_randr_set_crtc_gamma_blue*(R: ptr xcb_randr_set_crtc_gamma_request_t): ptr uint16
# proc xcb_randr_set_crtc_gamma_blue_length*(
# R: ptr xcb_randr_set_crtc_gamma_request_t): cint
# proc xcb_randr_set_crtc_gamma_blue_end*(R: ptr xcb_randr_set_crtc_gamma_request_t): xcb_generic_iterator_t
# proc xcb_randr_get_screen_resources_current_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_get_screen_resources_current*(c: ptr xcb_connection_t;
# window: xcb_window_t): xcb_randr_get_screen_resources_current_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_randr_get_screen_resources_current_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_randr_get_screen_resources_current_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_get_screen_resources_current_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_get_screen_resources_current_reply_t
# proc xcb_randr_set_crtc_transform_sizeof*(_buffer: pointer;
# filter_params_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_randr_set_crtc_transform_checked*(c: ptr xcb_connection_t;
# crtc: xcb_randr_crtc_t; transform: xcb_render_transform_t; filter_len: uint16;
# filter_name: cstring; filter_params_len: uint32;
# filter_params: ptr xcb_render_fixed_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_set_crtc_transform*(c: ptr xcb_connection_t; crtc: xcb_randr_crtc_t;
# transform: xcb_render_transform_t;
# filter_len: uint16; filter_name: cstring;
# filter_params_len: uint32;
# filter_params: ptr xcb_render_fixed_t): xcb_void_cookie_t
# proc xcb_randr_set_crtc_transform_filter_name*(
# R: ptr xcb_randr_set_crtc_transform_request_t): cstring
# proc xcb_randr_set_crtc_transform_filter_name_length*(
# R: ptr xcb_randr_set_crtc_transform_request_t): cint
# proc xcb_randr_set_crtc_transform_filter_name_end*(
# R: ptr xcb_randr_set_crtc_transform_request_t): xcb_generic_iterator_t
# proc xcb_randr_set_crtc_transform_filter_params*(
# R: ptr xcb_randr_set_crtc_transform_request_t): ptr xcb_render_fixed_t
# proc xcb_randr_set_crtc_transform_filter_params_length*(
# R: ptr xcb_randr_set_crtc_transform_request_t): cint
# proc xcb_randr_set_crtc_transform_filter_params_end*(
# R: ptr xcb_randr_set_crtc_transform_request_t): xcb_generic_iterator_t
# proc xcb_randr_get_crtc_transform_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_get_crtc_transform*(c: ptr xcb_connection_t; crtc: xcb_randr_crtc_t): xcb_randr_get_crtc_transform_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_randr_get_crtc_transform_unchecked*(c: ptr xcb_connection_t;
# crtc: xcb_randr_crtc_t): xcb_randr_get_crtc_transform_cookie_t
# proc xcb_randr_get_crtc_transform_pending_filter_name*(
# R: ptr xcb_randr_get_crtc_transform_reply_t): cstring
# proc xcb_randr_get_crtc_transform_pending_filter_name_length*(
# R: ptr xcb_randr_get_crtc_transform_reply_t): cint
# proc xcb_randr_get_crtc_transform_pending_filter_name_end*(
# R: ptr xcb_randr_get_crtc_transform_reply_t): xcb_generic_iterator_t
# proc xcb_randr_get_crtc_transform_pending_params*(
# R: ptr xcb_randr_get_crtc_transform_reply_t): ptr xcb_render_fixed_t
# proc xcb_randr_get_crtc_transform_pending_params_length*(
# R: ptr xcb_randr_get_crtc_transform_reply_t): cint
# proc xcb_randr_get_crtc_transform_pending_params_end*(
# R: ptr xcb_randr_get_crtc_transform_reply_t): xcb_generic_iterator_t
# proc xcb_randr_get_crtc_transform_current_filter_name*(
# R: ptr xcb_randr_get_crtc_transform_reply_t): cstring
# proc xcb_randr_get_crtc_transform_current_filter_name_length*(
# R: ptr xcb_randr_get_crtc_transform_reply_t): cint
# proc xcb_randr_get_crtc_transform_current_filter_name_end*(
# R: ptr xcb_randr_get_crtc_transform_reply_t): xcb_generic_iterator_t
# proc xcb_randr_get_crtc_transform_current_params*(
# R: ptr xcb_randr_get_crtc_transform_reply_t): ptr xcb_render_fixed_t
# proc xcb_randr_get_crtc_transform_current_params_length*(
# R: ptr xcb_randr_get_crtc_transform_reply_t): cint
# proc xcb_randr_get_crtc_transform_current_params_end*(
# R: ptr xcb_randr_get_crtc_transform_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_randr_get_crtc_transform_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_randr_get_crtc_transform_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_get_crtc_transform_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_get_crtc_transform_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_get_panning*(c: ptr xcb_connection_t; crtc: xcb_randr_crtc_t): xcb_randr_get_panning_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_randr_get_panning_unchecked*(c: ptr xcb_connection_t;
# crtc: xcb_randr_crtc_t): xcb_randr_get_panning_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_randr_get_panning_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_randr_get_panning_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_get_panning_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_get_panning_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_set_panning*(c: ptr xcb_connection_t; crtc: xcb_randr_crtc_t;
# timestamp: xcb_timestamp_t; left: uint16;
# top: uint16; width: uint16; height: uint16;
# track_left: uint16; track_top: uint16;
# track_width: uint16; track_height: uint16;
# border_left: int16; border_top: int16;
# border_right: int16; border_bottom: int16): xcb_randr_set_panning_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_randr_set_panning_unchecked*(c: ptr xcb_connection_t;
# crtc: xcb_randr_crtc_t;
# timestamp: xcb_timestamp_t; left: uint16;
# top: uint16; width: uint16;
# height: uint16; track_left: uint16;
# track_top: uint16; track_width: uint16;
# track_height: uint16; border_left: int16;
# border_top: int16; border_right: int16;
# border_bottom: int16): xcb_randr_set_panning_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_randr_set_panning_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_randr_set_panning_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_set_panning_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_set_panning_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_randr_set_output_primary_checked*(c: ptr xcb_connection_t;
# window: xcb_window_t; output: xcb_randr_output_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_set_output_primary*(c: ptr xcb_connection_t; window: xcb_window_t;
# output: xcb_randr_output_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_randr_get_output_primary_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t): xcb_randr_get_output_primary_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_randr_get_output_primary_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_randr_get_providers_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_get_providers*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_randr_get_providers_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_randr_get_providers_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t): xcb_randr_get_providers_cookie_t
# proc xcb_randr_get_providers_providers*(R: ptr xcb_randr_get_providers_reply_t): ptr xcb_randr_provider_t
# proc xcb_randr_get_providers_providers_length*(
# R: ptr xcb_randr_get_providers_reply_t): cint
# proc xcb_randr_get_providers_providers_end*(
# R: ptr xcb_randr_get_providers_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_randr_get_providers_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_randr_get_providers_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_get_providers_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_get_providers_reply_t
# proc xcb_randr_get_provider_info_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_get_provider_info*(c: ptr xcb_connection_t;
# provider: xcb_randr_provider_t;
# config_timestamp: xcb_timestamp_t): xcb_randr_get_provider_info_cookie_t
# proc xcb_randr_get_provider_info_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_get_provider_info_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_get_provider_info_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_randr_set_provider_offload_sink_checked*(c: ptr xcb_connection_t;
# provider: xcb_randr_provider_t; sink_provider: xcb_randr_provider_t;
# config_timestamp: xcb_timestamp_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_set_provider_offload_sink*(c: ptr xcb_connection_t;
# provider: xcb_randr_provider_t; sink_provider: xcb_randr_provider_t;
# config_timestamp: xcb_timestamp_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_randr_set_provider_output_source_checked*(c: ptr xcb_connection_t;
# provider: xcb_randr_provider_t; source_provider: xcb_randr_provider_t;
# config_timestamp: xcb_timestamp_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_set_provider_output_source*(c: ptr xcb_connection_t;
# provider: xcb_randr_provider_t; source_provider: xcb_randr_provider_t;
# config_timestamp: xcb_timestamp_t): xcb_void_cookie_t
# proc xcb_randr_list_provider_properties_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_query_provider_property_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_query_provider_property*(c: ptr xcb_connection_t;
# provider: xcb_randr_provider_t;
# property: xcb_atom_t): xcb_randr_query_provider_property_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_randr_query_provider_property_unchecked*(c: ptr xcb_connection_t;
# provider: xcb_randr_provider_t; property: xcb_atom_t): xcb_randr_query_provider_property_cookie_t
# proc xcb_randr_query_provider_property_valid_values*(
# R: ptr xcb_randr_query_provider_property_reply_t): ptr int32
# proc xcb_randr_query_provider_property_valid_values_length*(
# R: ptr xcb_randr_query_provider_property_reply_t): cint
# proc xcb_randr_query_provider_property_valid_values_end*(
# R: ptr xcb_randr_query_provider_property_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_randr_query_provider_property_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_randr_query_provider_property_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_query_provider_property_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_query_provider_property_reply_t
# proc xcb_randr_configure_provider_property_sizeof*(_buffer: pointer;
# values_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_randr_configure_provider_property_checked*(c: ptr xcb_connection_t;
# provider: xcb_randr_provider_t; property: xcb_atom_t; pending: uint8;
# range: uint8; values_len: uint32; values: ptr int32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_configure_provider_property*(c: ptr xcb_connection_t;
# provider: xcb_randr_provider_t; property: xcb_atom_t; pending: uint8;
# range: uint8; values_len: uint32; values: ptr int32): xcb_void_cookie_t
# proc xcb_randr_configure_provider_property_values*(
# R: ptr xcb_randr_configure_provider_property_request_t): ptr int32
# proc xcb_randr_configure_provider_property_values_length*(
# R: ptr xcb_randr_configure_provider_property_request_t): cint
# proc xcb_randr_configure_provider_property_values_end*(
# R: ptr xcb_randr_configure_provider_property_request_t): xcb_generic_iterator_t
# proc xcb_randr_change_provider_property_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_randr_change_provider_property_checked*(c: ptr xcb_connection_t;
# provider: xcb_randr_provider_t; property: xcb_atom_t; `type`: xcb_atom_t;
# format: uint8; mode: uint8; num_items: uint32; data: pointer): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_change_provider_property*(c: ptr xcb_connection_t;
# provider: xcb_randr_provider_t;
# property: xcb_atom_t; `type`: xcb_atom_t;
# format: uint8; mode: uint8;
# num_items: uint32; data: pointer): xcb_void_cookie_t
# proc xcb_randr_change_provider_property_data*(
# R: ptr xcb_randr_change_provider_property_request_t): pointer
# proc xcb_randr_change_provider_property_data_length*(
# R: ptr xcb_randr_change_provider_property_request_t): cint
# proc xcb_randr_change_provider_property_data_end*(
# R: ptr xcb_randr_change_provider_property_request_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_randr_delete_provider_property_checked*(c: ptr xcb_connection_t;
# provider: xcb_randr_provider_t; property: xcb_atom_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_delete_provider_property*(c: ptr xcb_connection_t;
# provider: xcb_randr_provider_t;
# property: xcb_atom_t): xcb_void_cookie_t
# proc xcb_randr_get_provider_property_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_get_provider_property*(c: ptr xcb_connection_t;
# provider: xcb_randr_provider_t;
# property: xcb_atom_t; `type`: xcb_atom_t;
# long_offset: uint32; long_length: uint32;
# _delete: uint8; pending: uint8): xcb_randr_get_provider_property_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_randr_get_provider_property_unchecked*(c: ptr xcb_connection_t;
# provider: xcb_randr_provider_t; property: xcb_atom_t; `type`: xcb_atom_t;
# long_offset: uint32; long_length: uint32; _delete: uint8; pending: uint8): xcb_randr_get_provider_property_cookie_t
# proc xcb_randr_get_provider_property_data*(
# R: ptr xcb_randr_get_provider_property_reply_t): pointer
# proc xcb_randr_get_provider_property_data_length*(
# R: ptr xcb_randr_get_provider_property_reply_t): cint
# proc xcb_randr_get_provider_property_data_end*(
# R: ptr xcb_randr_get_provider_property_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_randr_get_provider_property_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_randr_get_provider_property_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_get_provider_property_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_get_provider_property_reply_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_randr_crtc_change_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_randr_crtc_change_t)
# ##
# proc xcb_randr_crtc_change_next*(i: ptr xcb_randr_crtc_change_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_randr_crtc_change_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_randr_crtc_change_end*(i: xcb_randr_crtc_change_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_randr_output_change_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_randr_output_change_t)
# ##
# proc xcb_randr_output_change_next*(i: ptr xcb_randr_output_change_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_randr_output_change_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_randr_output_change_end*(i: xcb_randr_output_change_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_randr_output_property_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_randr_output_property_t)
# ##
# proc xcb_randr_output_property_next*(i: ptr xcb_randr_output_property_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_randr_output_property_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_randr_output_property_end*(i: xcb_randr_output_property_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_randr_provider_change_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_randr_provider_change_t)
# ##
# proc xcb_randr_provider_change_next*(i: ptr xcb_randr_provider_change_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_randr_provider_change_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_randr_provider_change_end*(i: xcb_randr_provider_change_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_randr_provider_property_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_randr_provider_property_t)
# ##
# proc xcb_randr_provider_property_next*(i: ptr xcb_randr_provider_property_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_randr_provider_property_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_randr_provider_property_end*(i: xcb_randr_provider_property_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_randr_resource_change_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_randr_resource_change_t)
# ##
# proc xcb_randr_resource_change_next*(i: ptr xcb_randr_resource_change_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_randr_resource_change_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_randr_resource_change_end*(i: xcb_randr_resource_change_iterator_t): xcb_generic_iterator_t
# proc xcb_randr_monitor_info_sizeof*(_buffer: pointer): cint
# proc xcb_randr_monitor_info_outputs_end*(R: ptr xcb_randr_monitor_info_t): xcb_generic_iterator_t
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_randr_monitor_info_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_randr_monitor_info_end*(i: xcb_randr_monitor_info_iterator_t): xcb_generic_iterator_t
# proc xcb_randr_set_monitor_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_randr_set_monitor_checked*(c: ptr xcb_connection_t; window: xcb_window_t;
# monitorinfo: ptr xcb_randr_monitor_info_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_set_monitor*(c: ptr xcb_connection_t; window: xcb_window_t;
# monitorinfo: ptr xcb_randr_monitor_info_t): xcb_void_cookie_t
# proc xcb_randr_set_monitor_monitorinfo*(R: ptr xcb_randr_set_monitor_request_t): ptr xcb_randr_monitor_info_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_randr_delete_monitor_checked*(c: ptr xcb_connection_t;
# window: xcb_window_t; name: xcb_atom_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_delete_monitor*(c: ptr xcb_connection_t; window: xcb_window_t;
# name: xcb_atom_t): xcb_void_cookie_t
# proc xcb_randr_create_lease_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_create_lease*(c: ptr xcb_connection_t; window: xcb_window_t;
# lid: xcb_randr_lease_t; num_crtcs: uint16;
# num_outputs: uint16; crtcs: ptr xcb_randr_crtc_t;
# outputs: ptr xcb_randr_output_t): xcb_randr_create_lease_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_randr_create_lease_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t;
# lid: xcb_randr_lease_t; num_crtcs: uint16;
# num_outputs: uint16;
# crtcs: ptr xcb_randr_crtc_t;
# outputs: ptr xcb_randr_output_t): xcb_randr_create_lease_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_randr_create_lease_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_randr_create_lease_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_create_lease_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_create_lease_reply_t
# ## *
# ## Return the reply fds
# ## @param c The connection
# ## @param reply The reply
# ##
# ## Returns the array of reply fds of the request asked by
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_randr_create_lease_reply_fds*(c: ptr xcb_connection_t; ## *<
# reply: ptr xcb_randr_create_lease_reply_t): ptr cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_randr_free_lease_checked*(c: ptr xcb_connection_t; lid: xcb_randr_lease_t;
# terminate: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_randr_free_lease*(c: ptr xcb_connection_t; lid: xcb_randr_lease_t;
# terminate: uint8): xcb_void_cookie_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_randr_lease_notify_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_randr_lease_notify_t)
# ##
# proc xcb_randr_lease_notify_next*(i: ptr xcb_randr_lease_notify_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_randr_lease_notify_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_randr_lease_notify_end*(i: xcb_randr_lease_notify_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_randr_notify_data_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_randr_notify_data_t)
# ##
# proc xcb_randr_notify_data_next*(i: ptr xcb_randr_notify_data_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_randr_notify_data_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_randr_notify_data_end*(i: xcb_randr_notify_data_iterator_t): xcb_generic_iterator_t
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from record.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB_Record_API XCB Record API
# ## @brief Record XCB Protocol Implementation.
# ## @{
# ##
# import
# xcb
# const
# XCB_RECORD_MAJOR_VERSION* = 1
# XCB_RECORD_MINOR_VERSION* = 13
# var xcb_record_id*: xcb_extension_t
# type
# xcb_record_context_t* = uint32
# ## *
# ## @brief xcb_record_context_iterator_t
# ##
# type
# xcb_record_context_iterator_t* {.bycopy.} = object
# data*: ptr xcb_record_context_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_record_range_8_t
# ##
# type
# xcb_record_range_8_t* {.bycopy.} = object
# first*: uint8
# last*: uint8
# ## *
# ## @brief xcb_record_range_8_iterator_t
# ##
# type
# xcb_record_range_8_iterator_t* {.bycopy.} = object
# data*: ptr xcb_record_range_8_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_record_range_16_t
# ##
# type
# xcb_record_range_16_t* {.bycopy.} = object
# first*: uint16
# last*: uint16
# ## *
# ## @brief xcb_record_range_16_iterator_t
# ##
# type
# xcb_record_range_16_iterator_t* {.bycopy.} = object
# data*: ptr xcb_record_range_16_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_record_ext_range_t
# ##
# type
# xcb_record_ext_range_t* {.bycopy.} = object
# major*: xcb_record_range_8_t
# minor*: xcb_record_range_16_t
# ## *
# ## @brief xcb_record_ext_range_iterator_t
# ##
# type
# xcb_record_ext_range_iterator_t* {.bycopy.} = object
# data*: ptr xcb_record_ext_range_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_record_range_t
# ##
# type
# xcb_record_range_t* {.bycopy.} = object
# core_requests*: xcb_record_range_8_t
# core_replies*: xcb_record_range_8_t
# ext_requests*: xcb_record_ext_range_t
# ext_replies*: xcb_record_ext_range_t
# delivered_events*: xcb_record_range_8_t
# device_events*: xcb_record_range_8_t
# errors*: xcb_record_range_8_t
# client_started*: uint8
# client_died*: uint8
# ## *
# ## @brief xcb_record_range_iterator_t
# ##
# type
# xcb_record_range_iterator_t* {.bycopy.} = object
# data*: ptr xcb_record_range_t
# rem*: cint
# index*: cint
# xcb_record_element_header_t* = uint8
# ## *
# ## @brief xcb_record_element_header_iterator_t
# ##
# type
# xcb_record_element_header_iterator_t* {.bycopy.} = object
# data*: ptr xcb_record_element_header_t
# rem*: cint
# index*: cint
# xcb_record_h_type_t* = enum
# XCB_RECORD_H_TYPE_FROM_SERVER_TIME = 1, XCB_RECORD_H_TYPE_FROM_CLIENT_TIME = 2,
# XCB_RECORD_H_TYPE_FROM_CLIENT_SEQUENCE = 4
# xcb_record_client_spec_t* = uint32
# ## *
# ## @brief xcb_record_client_spec_iterator_t
# ##
# type
# xcb_record_client_spec_iterator_t* {.bycopy.} = object
# data*: ptr xcb_record_client_spec_t
# rem*: cint
# index*: cint
# xcb_record_cs_t* = enum
# XCB_RECORD_CS_CURRENT_CLIENTS = 1, XCB_RECORD_CS_FUTURE_CLIENTS = 2,
# XCB_RECORD_CS_ALL_CLIENTS = 3
# ## *
# ## @brief xcb_record_client_info_t
# ##
# type
# xcb_record_client_info_t* {.bycopy.} = object
# client_resource*: xcb_record_client_spec_t
# num_ranges*: uint32
# ## *
# ## @brief xcb_record_client_info_iterator_t
# ##
# type
# xcb_record_client_info_iterator_t* {.bycopy.} = object
# data*: ptr xcb_record_client_info_t
# rem*: cint
# index*: cint
# ## * Opcode for xcb_record_bad_context.
# const
# XCB_RECORD_BAD_CONTEXT* = 0
# ## *
# ## @brief xcb_record_bad_context_error_t
# ##
# type
# xcb_record_bad_context_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# invalid_record*: uint32
# ## *
# ## @brief xcb_record_query_version_cookie_t
# ##
# type
# xcb_record_query_version_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_record_query_version.
# const
# XCB_RECORD_QUERY_VERSION* = 0
# ## *
# ## @brief xcb_record_query_version_request_t
# ##
# type
# xcb_record_query_version_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# major_version*: uint16
# minor_version*: uint16
# ## *
# ## @brief xcb_record_query_version_reply_t
# ##
# type
# xcb_record_query_version_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# major_version*: uint16
# minor_version*: uint16
# ## * Opcode for xcb_record_create_context.
# const
# XCB_RECORD_CREATE_CONTEXT* = 1
# ## *
# ## @brief xcb_record_create_context_request_t
# ##
# type
# xcb_record_create_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context*: xcb_record_context_t
# element_header*: xcb_record_element_header_t
# pad0*: array[3, uint8]
# num_client_specs*: uint32
# num_ranges*: uint32
# ## * Opcode for xcb_record_register_clients.
# const
# XCB_RECORD_REGISTER_CLIENTS* = 2
# ## *
# ## @brief xcb_record_register_clients_request_t
# ##
# type
# xcb_record_register_clients_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context*: xcb_record_context_t
# element_header*: xcb_record_element_header_t
# pad0*: array[3, uint8]
# num_client_specs*: uint32
# num_ranges*: uint32
# ## * Opcode for xcb_record_unregister_clients.
# const
# XCB_RECORD_UNREGISTER_CLIENTS* = 3
# ## *
# ## @brief xcb_record_unregister_clients_request_t
# ##
# type
# xcb_record_unregister_clients_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context*: xcb_record_context_t
# num_client_specs*: uint32
# ## *
# ## @brief xcb_record_get_context_cookie_t
# ##
# type
# xcb_record_get_context_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_record_get_context.
# const
# XCB_RECORD_GET_CONTEXT* = 4
# ## *
# ## @brief xcb_record_get_context_request_t
# ##
# type
# xcb_record_get_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context*: xcb_record_context_t
# ## *
# ## @brief xcb_record_get_context_reply_t
# ##
# type
# xcb_record_get_context_reply_t* {.bycopy.} = object
# response_type*: uint8
# enabled*: uint8
# sequence*: uint16
# length*: uint32
# element_header*: xcb_record_element_header_t
# pad0*: array[3, uint8]
# num_intercepted_clients*: uint32
# pad1*: array[16, uint8]
# ## *
# ## @brief xcb_record_enable_context_cookie_t
# ##
# type
# xcb_record_enable_context_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_record_enable_context.
# const
# XCB_RECORD_ENABLE_CONTEXT* = 5
# ## *
# ## @brief xcb_record_enable_context_request_t
# ##
# type
# xcb_record_enable_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context*: xcb_record_context_t
# ## *
# ## @brief xcb_record_enable_context_reply_t
# ##
# type
# xcb_record_enable_context_reply_t* {.bycopy.} = object
# response_type*: uint8
# category*: uint8
# sequence*: uint16
# length*: uint32
# element_header*: xcb_record_element_header_t
# client_swapped*: uint8
# pad0*: array[2, uint8]
# xid_base*: uint32
# server_time*: uint32
# rec_sequence_num*: uint32
# pad1*: array[8, uint8]
# ## * Opcode for xcb_record_disable_context.
# const
# XCB_RECORD_DISABLE_CONTEXT* = 6
# ## *
# ## @brief xcb_record_disable_context_request_t
# ##
# type
# xcb_record_disable_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context*: xcb_record_context_t
# ## * Opcode for xcb_record_free_context.
# const
# XCB_RECORD_FREE_CONTEXT* = 7
# ## *
# ## @brief xcb_record_free_context_request_t
# ##
# type
# xcb_record_free_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context*: xcb_record_context_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_record_context_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_record_context_t)
# ##
# proc xcb_record_context_next*(i: ptr xcb_record_context_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_record_context_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_record_context_end*(i: xcb_record_context_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_record_range_8_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_record_range_8_t)
# ##
# proc xcb_record_range_8_next*(i: ptr xcb_record_range_8_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_record_range_8_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_record_range_8_end*(i: xcb_record_range_8_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_record_range_16_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_record_range_16_t)
# ##
# proc xcb_record_range_16_next*(i: ptr xcb_record_range_16_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_record_range_16_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_record_range_16_end*(i: xcb_record_range_16_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_record_ext_range_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_record_ext_range_t)
# ##
# proc xcb_record_ext_range_next*(i: ptr xcb_record_ext_range_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_record_ext_range_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_record_ext_range_end*(i: xcb_record_ext_range_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_record_range_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_record_range_t)
# ##
# proc xcb_record_range_next*(i: ptr xcb_record_range_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_record_range_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_record_range_end*(i: xcb_record_range_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_record_element_header_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_record_element_header_t)
# ##
# proc xcb_record_element_header_next*(i: ptr xcb_record_element_header_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_record_element_header_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_record_element_header_end*(i: xcb_record_element_header_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_record_client_spec_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_record_client_spec_t)
# ##
# proc xcb_record_client_spec_next*(i: ptr xcb_record_client_spec_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_record_client_spec_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_record_client_spec_end*(i: xcb_record_client_spec_iterator_t): xcb_generic_iterator_t
# proc xcb_record_client_info_sizeof*(_buffer: pointer): cint
# proc xcb_record_client_info_ranges*(R: ptr xcb_record_client_info_t): ptr xcb_record_range_t
# proc xcb_record_client_info_ranges_length*(R: ptr xcb_record_client_info_t): cint
# proc xcb_record_client_info_ranges_iterator*(R: ptr xcb_record_client_info_t): xcb_record_range_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_record_client_info_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_record_client_info_t)
# ##
# proc xcb_record_client_info_next*(i: ptr xcb_record_client_info_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_record_client_info_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_record_client_info_end*(i: xcb_record_client_info_iterator_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_record_query_version*(c: ptr xcb_connection_t; major_version: uint16;
# minor_version: uint16): xcb_record_query_version_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_record_query_version_unchecked*(c: ptr xcb_connection_t;
# major_version: uint16;
# minor_version: uint16): xcb_record_query_version_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_record_query_version_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_record_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_record_query_version_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_record_query_version_reply_t
# proc xcb_record_create_context_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_record_create_context_checked*(c: ptr xcb_connection_t;
# context: xcb_record_context_t;
# element_header: xcb_record_element_header_t; num_client_specs: uint32;
# num_ranges: uint32; client_specs: ptr xcb_record_client_spec_t;
# ranges: ptr xcb_record_range_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_record_create_context*(c: ptr xcb_connection_t;
# context: xcb_record_context_t;
# element_header: xcb_record_element_header_t;
# num_client_specs: uint32; num_ranges: uint32;
# client_specs: ptr xcb_record_client_spec_t;
# ranges: ptr xcb_record_range_t): xcb_void_cookie_t
# proc xcb_record_create_context_client_specs*(
# R: ptr xcb_record_create_context_request_t): ptr xcb_record_client_spec_t
# proc xcb_record_create_context_client_specs_length*(
# R: ptr xcb_record_create_context_request_t): cint
# proc xcb_record_create_context_client_specs_end*(
# R: ptr xcb_record_create_context_request_t): xcb_generic_iterator_t
# proc xcb_record_create_context_ranges*(R: ptr xcb_record_create_context_request_t): ptr xcb_record_range_t
# proc xcb_record_create_context_ranges_length*(
# R: ptr xcb_record_create_context_request_t): cint
# proc xcb_record_create_context_ranges_iterator*(
# R: ptr xcb_record_create_context_request_t): xcb_record_range_iterator_t
# proc xcb_record_register_clients_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_record_register_clients_checked*(c: ptr xcb_connection_t;
# context: xcb_record_context_t; element_header: xcb_record_element_header_t;
# num_client_specs: uint32; num_ranges: uint32;
# client_specs: ptr xcb_record_client_spec_t; ranges: ptr xcb_record_range_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_record_register_clients*(c: ptr xcb_connection_t;
# context: xcb_record_context_t;
# element_header: xcb_record_element_header_t;
# num_client_specs: uint32; num_ranges: uint32;
# client_specs: ptr xcb_record_client_spec_t;
# ranges: ptr xcb_record_range_t): xcb_void_cookie_t
# proc xcb_record_register_clients_client_specs*(
# R: ptr xcb_record_register_clients_request_t): ptr xcb_record_client_spec_t
# proc xcb_record_register_clients_client_specs_length*(
# R: ptr xcb_record_register_clients_request_t): cint
# proc xcb_record_register_clients_client_specs_end*(
# R: ptr xcb_record_register_clients_request_t): xcb_generic_iterator_t
# proc xcb_record_register_clients_ranges*(R: ptr xcb_record_register_clients_request_t): ptr xcb_record_range_t
# proc xcb_record_register_clients_ranges_length*(
# R: ptr xcb_record_register_clients_request_t): cint
# proc xcb_record_register_clients_ranges_iterator*(
# R: ptr xcb_record_register_clients_request_t): xcb_record_range_iterator_t
# proc xcb_record_unregister_clients_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_record_unregister_clients_checked*(c: ptr xcb_connection_t;
# context: xcb_record_context_t; num_client_specs: uint32;
# client_specs: ptr xcb_record_client_spec_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_record_unregister_clients*(c: ptr xcb_connection_t;
# context: xcb_record_context_t;
# num_client_specs: uint32;
# client_specs: ptr xcb_record_client_spec_t): xcb_void_cookie_t
# proc xcb_record_unregister_clients_client_specs*(
# R: ptr xcb_record_unregister_clients_request_t): ptr xcb_record_client_spec_t
# proc xcb_record_unregister_clients_client_specs_length*(
# R: ptr xcb_record_unregister_clients_request_t): cint
# proc xcb_record_unregister_clients_client_specs_end*(
# R: ptr xcb_record_unregister_clients_request_t): xcb_generic_iterator_t
# proc xcb_record_get_context_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_record_get_context*(c: ptr xcb_connection_t; context: xcb_record_context_t): xcb_record_get_context_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_record_get_context_unchecked*(c: ptr xcb_connection_t;
# context: xcb_record_context_t): xcb_record_get_context_cookie_t
# proc xcb_record_get_context_intercepted_clients_length*(
# R: ptr xcb_record_get_context_reply_t): cint
# proc xcb_record_get_context_intercepted_clients_iterator*(
# R: ptr xcb_record_get_context_reply_t): xcb_record_client_info_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_record_get_context_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_record_get_context_reply*(c: ptr xcb_connection_t; cookie: xcb_record_get_context_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_record_get_context_reply_t
# proc xcb_record_enable_context_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_record_enable_context*(c: ptr xcb_connection_t;
# context: xcb_record_context_t): xcb_record_enable_context_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_record_enable_context_unchecked*(c: ptr xcb_connection_t;
# context: xcb_record_context_t): xcb_record_enable_context_cookie_t
# proc xcb_record_enable_context_data*(R: ptr xcb_record_enable_context_reply_t): ptr uint8
# proc xcb_record_enable_context_data_length*(
# R: ptr xcb_record_enable_context_reply_t): cint
# proc xcb_record_enable_context_data_end*(R: ptr xcb_record_enable_context_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_record_enable_context_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_record_enable_context_reply*(c: ptr xcb_connection_t; cookie: xcb_record_enable_context_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_record_enable_context_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_record_disable_context_checked*(c: ptr xcb_connection_t;
# context: xcb_record_context_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_record_disable_context*(c: ptr xcb_connection_t;
# context: xcb_record_context_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_record_free_context_checked*(c: ptr xcb_connection_t;
# context: xcb_record_context_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_record_free_context*(c: ptr xcb_connection_t; context: xcb_record_context_t): xcb_void_cookie_t
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from render.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB_Render_API XCB Render API
# ## @brief Render XCB Protocol Implementation.
# ## @{
# ##
# import
# xcb, xproto
# const
# XCB_RENDER_MAJOR_VERSION* = 0
# XCB_RENDER_MINOR_VERSION* = 11
# var xcb_render_id*: xcb_extension_t
# type
# xcb_render_pict_type_t* = enum
# XCB_RENDER_PICT_TYPE_INDEXED = 0, XCB_RENDER_PICT_TYPE_DIRECT = 1
# xcb_render_picture_enum_t* = enum
# XCB_RENDER_PICTURE_NONE = 0
# xcb_render_pict_op_t* = enum
# XCB_RENDER_PICT_OP_CLEAR = 0, XCB_RENDER_PICT_OP_SRC = 1,
# XCB_RENDER_PICT_OP_DST = 2, XCB_RENDER_PICT_OP_OVER = 3,
# XCB_RENDER_PICT_OP_OVER_REVERSE = 4, XCB_RENDER_PICT_OP_IN = 5,
# XCB_RENDER_PICT_OP_IN_REVERSE = 6, XCB_RENDER_PICT_OP_OUT = 7,
# XCB_RENDER_PICT_OP_OUT_REVERSE = 8, XCB_RENDER_PICT_OP_ATOP = 9,
# XCB_RENDER_PICT_OP_ATOP_REVERSE = 10, XCB_RENDER_PICT_OP_XOR = 11,
# XCB_RENDER_PICT_OP_ADD = 12, XCB_RENDER_PICT_OP_SATURATE = 13,
# XCB_RENDER_PICT_OP_DISJOINT_CLEAR = 16, XCB_RENDER_PICT_OP_DISJOINT_SRC = 17,
# XCB_RENDER_PICT_OP_DISJOINT_DST = 18, XCB_RENDER_PICT_OP_DISJOINT_OVER = 19,
# XCB_RENDER_PICT_OP_DISJOINT_OVER_REVERSE = 20,
# XCB_RENDER_PICT_OP_DISJOINT_IN = 21,
# XCB_RENDER_PICT_OP_DISJOINT_IN_REVERSE = 22,
# XCB_RENDER_PICT_OP_DISJOINT_OUT = 23,
# XCB_RENDER_PICT_OP_DISJOINT_OUT_REVERSE = 24,
# XCB_RENDER_PICT_OP_DISJOINT_ATOP = 25,
# XCB_RENDER_PICT_OP_DISJOINT_ATOP_REVERSE = 26,
# XCB_RENDER_PICT_OP_DISJOINT_XOR = 27, XCB_RENDER_PICT_OP_CONJOINT_CLEAR = 32,
# XCB_RENDER_PICT_OP_CONJOINT_SRC = 33, XCB_RENDER_PICT_OP_CONJOINT_DST = 34,
# XCB_RENDER_PICT_OP_CONJOINT_OVER = 35,
# XCB_RENDER_PICT_OP_CONJOINT_OVER_REVERSE = 36,
# XCB_RENDER_PICT_OP_CONJOINT_IN = 37,
# XCB_RENDER_PICT_OP_CONJOINT_IN_REVERSE = 38,
# XCB_RENDER_PICT_OP_CONJOINT_OUT = 39,
# XCB_RENDER_PICT_OP_CONJOINT_OUT_REVERSE = 40,
# XCB_RENDER_PICT_OP_CONJOINT_ATOP = 41,
# XCB_RENDER_PICT_OP_CONJOINT_ATOP_REVERSE = 42,
# XCB_RENDER_PICT_OP_CONJOINT_XOR = 43, XCB_RENDER_PICT_OP_MULTIPLY = 48,
# XCB_RENDER_PICT_OP_SCREEN = 49, XCB_RENDER_PICT_OP_OVERLAY = 50,
# XCB_RENDER_PICT_OP_DARKEN = 51, XCB_RENDER_PICT_OP_LIGHTEN = 52,
# XCB_RENDER_PICT_OP_COLOR_DODGE = 53, XCB_RENDER_PICT_OP_COLOR_BURN = 54,
# XCB_RENDER_PICT_OP_HARD_LIGHT = 55, XCB_RENDER_PICT_OP_SOFT_LIGHT = 56,
# XCB_RENDER_PICT_OP_DIFFERENCE = 57, XCB_RENDER_PICT_OP_EXCLUSION = 58,
# XCB_RENDER_PICT_OP_HSL_HUE = 59, XCB_RENDER_PICT_OP_HSL_SATURATION = 60,
# XCB_RENDER_PICT_OP_HSL_COLOR = 61, XCB_RENDER_PICT_OP_HSL_LUMINOSITY = 62
# xcb_render_poly_edge_t* = enum
# XCB_RENDER_POLY_EDGE_SHARP = 0, XCB_RENDER_POLY_EDGE_SMOOTH = 1
# xcb_render_poly_mode_t* = enum
# XCB_RENDER_POLY_MODE_PRECISE = 0, XCB_RENDER_POLY_MODE_IMPRECISE = 1
# xcb_render_cp_t* = enum
# XCB_RENDER_CP_REPEAT = 1, XCB_RENDER_CP_ALPHA_MAP = 2,
# XCB_RENDER_CP_ALPHA_X_ORIGIN = 4, XCB_RENDER_CP_ALPHA_Y_ORIGIN = 8,
# XCB_RENDER_CP_CLIP_X_ORIGIN = 16, XCB_RENDER_CP_CLIP_Y_ORIGIN = 32,
# XCB_RENDER_CP_CLIP_MASK = 64, XCB_RENDER_CP_GRAPHICS_EXPOSURE = 128,
# XCB_RENDER_CP_SUBWINDOW_MODE = 256, XCB_RENDER_CP_POLY_EDGE = 512,
# XCB_RENDER_CP_POLY_MODE = 1024, XCB_RENDER_CP_DITHER = 2048,
# XCB_RENDER_CP_COMPONENT_ALPHA = 4096
# xcb_render_sub_pixel_t* = enum
# XCB_RENDER_SUB_PIXEL_UNKNOWN = 0, XCB_RENDER_SUB_PIXEL_HORIZONTAL_RGB = 1,
# XCB_RENDER_SUB_PIXEL_HORIZONTAL_BGR = 2, XCB_RENDER_SUB_PIXEL_VERTICAL_RGB = 3,
# XCB_RENDER_SUB_PIXEL_VERTICAL_BGR = 4, XCB_RENDER_SUB_PIXEL_NONE = 5
# xcb_render_repeat_t* = enum
# XCB_RENDER_REPEAT_NONE = 0, XCB_RENDER_REPEAT_NORMAL = 1,
# XCB_RENDER_REPEAT_PAD = 2, XCB_RENDER_REPEAT_REFLECT = 3
# xcb_render_glyph_t* = uint32
# ## *
# ## @brief xcb_render_glyph_iterator_t
# ##
# type
# xcb_render_glyph_iterator_t* {.bycopy.} = object
# data*: ptr xcb_render_glyph_t
# rem*: cint
# index*: cint
# xcb_render_glyphset_t* = uint32
# ## *
# ## @brief xcb_render_glyphset_iterator_t
# ##
# type
# xcb_render_glyphset_iterator_t* {.bycopy.} = object
# data*: ptr xcb_render_glyphset_t
# rem*: cint
# index*: cint
# xcb_render_picture_t* = uint32
# ## *
# ## @brief xcb_render_picture_iterator_t
# ##
# type
# xcb_render_picture_iterator_t* {.bycopy.} = object
# data*: ptr xcb_render_picture_t
# rem*: cint
# index*: cint
# xcb_render_pictformat_t* = uint32
# ## *
# ## @brief xcb_render_pictformat_iterator_t
# ##
# type
# xcb_render_pictformat_iterator_t* {.bycopy.} = object
# data*: ptr xcb_render_pictformat_t
# rem*: cint
# index*: cint
# xcb_render_fixed_t* = int32
# ## *
# ## @brief xcb_render_fixed_iterator_t
# ##
# type
# xcb_render_fixed_iterator_t* {.bycopy.} = object
# data*: ptr xcb_render_fixed_t
# rem*: cint
# index*: cint
# ## * Opcode for xcb_render_pict_format.
# const
# XCB_RENDER_PICT_FORMAT* = 0
# ## *
# ## @brief xcb_render_pict_format_error_t
# ##
# type
# xcb_render_pict_format_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# ## * Opcode for xcb_render_picture.
# const
# XCB_RENDER_PICTURE* = 1
# ## *
# ## @brief xcb_render_picture_error_t
# ##
# type
# xcb_render_picture_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# ## * Opcode for xcb_render_pict_op.
# const
# XCB_RENDER_PICT_OP* = 2
# ## *
# ## @brief xcb_render_pict_op_error_t
# ##
# type
# xcb_render_pict_op_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# ## * Opcode for xcb_render_glyph_set.
# const
# XCB_RENDER_GLYPH_SET* = 3
# ## *
# ## @brief xcb_render_glyph_set_error_t
# ##
# type
# xcb_render_glyph_set_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# ## * Opcode for xcb_render_glyph.
# const
# XCB_RENDER_GLYPH* = 4
# ## *
# ## @brief xcb_render_glyph_error_t
# ##
# type
# xcb_render_glyph_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# ## *
# ## @brief xcb_render_directformat_t
# ##
# type
# xcb_render_directformat_t* {.bycopy.} = object
# red_shift*: uint16
# red_mask*: uint16
# green_shift*: uint16
# green_mask*: uint16
# blue_shift*: uint16
# blue_mask*: uint16
# alpha_shift*: uint16
# alpha_mask*: uint16
# ## *
# ## @brief xcb_render_directformat_iterator_t
# ##
# type
# xcb_render_directformat_iterator_t* {.bycopy.} = object
# data*: ptr xcb_render_directformat_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_render_pictforminfo_t
# ##
# type
# xcb_render_pictforminfo_t* {.bycopy.} = object
# id*: xcb_render_pictformat_t
# `type`*: uint8
# depth*: uint8
# pad0*: array[2, uint8]
# direct*: xcb_render_directformat_t
# colormap*: xcb_colormap_t
# ## *
# ## @brief xcb_render_pictforminfo_iterator_t
# ##
# type
# xcb_render_pictforminfo_iterator_t* {.bycopy.} = object
# data*: ptr xcb_render_pictforminfo_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_render_pictvisual_t
# ##
# type
# xcb_render_pictvisual_t* {.bycopy.} = object
# visual*: xcb_visualid_t
# format*: xcb_render_pictformat_t
# ## *
# ## @brief xcb_render_pictvisual_iterator_t
# ##
# type
# xcb_render_pictvisual_iterator_t* {.bycopy.} = object
# data*: ptr xcb_render_pictvisual_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_render_pictdepth_t
# ##
# type
# xcb_render_pictdepth_t* {.bycopy.} = object
# depth*: uint8
# pad0*: uint8
# num_visuals*: uint16
# pad1*: array[4, uint8]
# ## *
# ## @brief xcb_render_pictdepth_iterator_t
# ##
# type
# xcb_render_pictdepth_iterator_t* {.bycopy.} = object
# data*: ptr xcb_render_pictdepth_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_render_pictscreen_t
# ##
# type
# xcb_render_pictscreen_t* {.bycopy.} = object
# num_depths*: uint32
# fallback*: xcb_render_pictformat_t
# ## *
# ## @brief xcb_render_pictscreen_iterator_t
# ##
# type
# xcb_render_pictscreen_iterator_t* {.bycopy.} = object
# data*: ptr xcb_render_pictscreen_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_render_indexvalue_t
# ##
# type
# xcb_render_indexvalue_t* {.bycopy.} = object
# pixel*: uint32
# red*: uint16
# green*: uint16
# blue*: uint16
# alpha*: uint16
# ## *
# ## @brief xcb_render_indexvalue_iterator_t
# ##
# type
# xcb_render_indexvalue_iterator_t* {.bycopy.} = object
# data*: ptr xcb_render_indexvalue_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_render_color_t
# ##
# type
# xcb_render_color_t* {.bycopy.} = object
# red*: uint16
# green*: uint16
# blue*: uint16
# alpha*: uint16
# ## *
# ## @brief xcb_render_color_iterator_t
# ##
# type
# xcb_render_color_iterator_t* {.bycopy.} = object
# data*: ptr xcb_render_color_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_render_pointfix_t
# ##
# type
# xcb_render_pointfix_t* {.bycopy.} = object
# x*: xcb_render_fixed_t
# y*: xcb_render_fixed_t
# ## *
# ## @brief xcb_render_pointfix_iterator_t
# ##
# type
# xcb_render_pointfix_iterator_t* {.bycopy.} = object
# data*: ptr xcb_render_pointfix_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_render_linefix_t
# ##
# type
# xcb_render_linefix_t* {.bycopy.} = object
# p1*: xcb_render_pointfix_t
# p2*: xcb_render_pointfix_t
# ## *
# ## @brief xcb_render_linefix_iterator_t
# ##
# type
# xcb_render_linefix_iterator_t* {.bycopy.} = object
# data*: ptr xcb_render_linefix_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_render_triangle_t
# ##
# type
# xcb_render_triangle_t* {.bycopy.} = object
# p1*: xcb_render_pointfix_t
# p2*: xcb_render_pointfix_t
# p3*: xcb_render_pointfix_t
# ## *
# ## @brief xcb_render_triangle_iterator_t
# ##
# type
# xcb_render_triangle_iterator_t* {.bycopy.} = object
# data*: ptr xcb_render_triangle_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_render_trapezoid_t
# ##
# type
# xcb_render_trapezoid_t* {.bycopy.} = object
# top*: xcb_render_fixed_t
# bottom*: xcb_render_fixed_t
# left*: xcb_render_linefix_t
# right*: xcb_render_linefix_t
# ## *
# ## @brief xcb_render_trapezoid_iterator_t
# ##
# type
# xcb_render_trapezoid_iterator_t* {.bycopy.} = object
# data*: ptr xcb_render_trapezoid_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_render_glyphinfo_t
# ##
# type
# xcb_render_glyphinfo_t* {.bycopy.} = object
# width*: uint16
# height*: uint16
# x*: int16
# y*: int16
# x_off*: int16
# y_off*: int16
# ## *
# ## @brief xcb_render_glyphinfo_iterator_t
# ##
# type
# xcb_render_glyphinfo_iterator_t* {.bycopy.} = object
# data*: ptr xcb_render_glyphinfo_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_render_query_version_cookie_t
# ##
# type
# xcb_render_query_version_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_render_query_version.
# const
# XCB_RENDER_QUERY_VERSION* = 0
# ## *
# ## @brief xcb_render_query_version_request_t
# ##
# type
# xcb_render_query_version_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# client_major_version*: uint32
# client_minor_version*: uint32
# ## *
# ## @brief xcb_render_query_version_reply_t
# ##
# type
# xcb_render_query_version_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# major_version*: uint32
# minor_version*: uint32
# pad1*: array[16, uint8]
# ## *
# ## @brief xcb_render_query_pict_formats_cookie_t
# ##
# type
# xcb_render_query_pict_formats_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_render_query_pict_formats.
# const
# XCB_RENDER_QUERY_PICT_FORMATS* = 1
# ## *
# ## @brief xcb_render_query_pict_formats_request_t
# ##
# type
# xcb_render_query_pict_formats_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_render_query_pict_formats_reply_t
# ##
# type
# xcb_render_query_pict_formats_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# num_formats*: uint32
# num_screens*: uint32
# num_depths*: uint32
# num_visuals*: uint32
# num_subpixel*: uint32
# pad1*: array[4, uint8]
# ## *
# ## @brief xcb_render_query_pict_index_values_cookie_t
# ##
# type
# xcb_render_query_pict_index_values_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_render_query_pict_index_values.
# const
# XCB_RENDER_QUERY_PICT_INDEX_VALUES* = 2
# ## *
# ## @brief xcb_render_query_pict_index_values_request_t
# ##
# type
# xcb_render_query_pict_index_values_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# format*: xcb_render_pictformat_t
# ## *
# ## @brief xcb_render_query_pict_index_values_reply_t
# ##
# type
# xcb_render_query_pict_index_values_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# num_values*: uint32
# pad1*: array[20, uint8]
# ## *
# ## @brief xcb_render_create_picture_value_list_t
# ##
# type
# xcb_render_create_picture_value_list_t* {.bycopy.} = object
# repeat*: uint32
# alphamap*: xcb_render_picture_t
# alphaxorigin*: int32
# alphayorigin*: int32
# clipxorigin*: int32
# clipyorigin*: int32
# clipmask*: xcb_pixmap_t
# graphicsexposure*: uint32
# subwindowmode*: uint32
# polyedge*: uint32
# polymode*: uint32
# dither*: xcb_atom_t
# componentalpha*: uint32
# ## * Opcode for xcb_render_create_picture.
# const
# XCB_RENDER_CREATE_PICTURE* = 4
# ## *
# ## @brief xcb_render_create_picture_request_t
# ##
# type
# xcb_render_create_picture_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# pid*: xcb_render_picture_t
# drawable*: xcb_drawable_t
# format*: xcb_render_pictformat_t
# value_mask*: uint32
# ## *
# ## @brief xcb_render_change_picture_value_list_t
# ##
# type
# xcb_render_change_picture_value_list_t* {.bycopy.} = object
# repeat*: uint32
# alphamap*: xcb_render_picture_t
# alphaxorigin*: int32
# alphayorigin*: int32
# clipxorigin*: int32
# clipyorigin*: int32
# clipmask*: xcb_pixmap_t
# graphicsexposure*: uint32
# subwindowmode*: uint32
# polyedge*: uint32
# polymode*: uint32
# dither*: xcb_atom_t
# componentalpha*: uint32
# ## * Opcode for xcb_render_change_picture.
# const
# XCB_RENDER_CHANGE_PICTURE* = 5
# ## *
# ## @brief xcb_render_change_picture_request_t
# ##
# type
# xcb_render_change_picture_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# picture*: xcb_render_picture_t
# value_mask*: uint32
# ## * Opcode for xcb_render_set_picture_clip_rectangles.
# const
# XCB_RENDER_SET_PICTURE_CLIP_RECTANGLES* = 6
# ## *
# ## @brief xcb_render_set_picture_clip_rectangles_request_t
# ##
# type
# xcb_render_set_picture_clip_rectangles_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# picture*: xcb_render_picture_t
# clip_x_origin*: int16
# clip_y_origin*: int16
# ## * Opcode for xcb_render_free_picture.
# const
# XCB_RENDER_FREE_PICTURE* = 7
# ## *
# ## @brief xcb_render_free_picture_request_t
# ##
# type
# xcb_render_free_picture_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# picture*: xcb_render_picture_t
# ## * Opcode for xcb_render_composite.
# const
# XCB_RENDER_COMPOSITE* = 8
# ## *
# ## @brief xcb_render_composite_request_t
# ##
# type
# xcb_render_composite_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# op*: uint8
# pad0*: array[3, uint8]
# src*: xcb_render_picture_t
# mask*: xcb_render_picture_t
# dst*: xcb_render_picture_t
# src_x*: int16
# src_y*: int16
# mask_x*: int16
# mask_y*: int16
# dst_x*: int16
# dst_y*: int16
# width*: uint16
# height*: uint16
# ## * Opcode for xcb_render_trapezoids.
# const
# XCB_RENDER_TRAPEZOIDS* = 10
# ## *
# ## @brief xcb_render_trapezoids_request_t
# ##
# type
# xcb_render_trapezoids_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# op*: uint8
# pad0*: array[3, uint8]
# src*: xcb_render_picture_t
# dst*: xcb_render_picture_t
# mask_format*: xcb_render_pictformat_t
# src_x*: int16
# src_y*: int16
# ## * Opcode for xcb_render_triangles.
# const
# XCB_RENDER_TRIANGLES* = 11
# ## *
# ## @brief xcb_render_triangles_request_t
# ##
# type
# xcb_render_triangles_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# op*: uint8
# pad0*: array[3, uint8]
# src*: xcb_render_picture_t
# dst*: xcb_render_picture_t
# mask_format*: xcb_render_pictformat_t
# src_x*: int16
# src_y*: int16
# ## * Opcode for xcb_render_tri_strip.
# const
# XCB_RENDER_TRI_STRIP* = 12
# ## *
# ## @brief xcb_render_tri_strip_request_t
# ##
# type
# xcb_render_tri_strip_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# op*: uint8
# pad0*: array[3, uint8]
# src*: xcb_render_picture_t
# dst*: xcb_render_picture_t
# mask_format*: xcb_render_pictformat_t
# src_x*: int16
# src_y*: int16
# ## * Opcode for xcb_render_tri_fan.
# const
# XCB_RENDER_TRI_FAN* = 13
# ## *
# ## @brief xcb_render_tri_fan_request_t
# ##
# type
# xcb_render_tri_fan_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# op*: uint8
# pad0*: array[3, uint8]
# src*: xcb_render_picture_t
# dst*: xcb_render_picture_t
# mask_format*: xcb_render_pictformat_t
# src_x*: int16
# src_y*: int16
# ## * Opcode for xcb_render_create_glyph_set.
# const
# XCB_RENDER_CREATE_GLYPH_SET* = 17
# ## *
# ## @brief xcb_render_create_glyph_set_request_t
# ##
# type
# xcb_render_create_glyph_set_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# gsid*: xcb_render_glyphset_t
# format*: xcb_render_pictformat_t
# ## * Opcode for xcb_render_reference_glyph_set.
# const
# XCB_RENDER_REFERENCE_GLYPH_SET* = 18
# ## *
# ## @brief xcb_render_reference_glyph_set_request_t
# ##
# type
# xcb_render_reference_glyph_set_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# gsid*: xcb_render_glyphset_t
# existing*: xcb_render_glyphset_t
# ## * Opcode for xcb_render_free_glyph_set.
# const
# XCB_RENDER_FREE_GLYPH_SET* = 19
# ## *
# ## @brief xcb_render_free_glyph_set_request_t
# ##
# type
# xcb_render_free_glyph_set_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# glyphset*: xcb_render_glyphset_t
# ## * Opcode for xcb_render_add_glyphs.
# const
# XCB_RENDER_ADD_GLYPHS* = 20
# ## *
# ## @brief xcb_render_add_glyphs_request_t
# ##
# type
# xcb_render_add_glyphs_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# glyphset*: xcb_render_glyphset_t
# glyphs_len*: uint32
# ## * Opcode for xcb_render_free_glyphs.
# const
# XCB_RENDER_FREE_GLYPHS* = 22
# ## *
# ## @brief xcb_render_free_glyphs_request_t
# ##
# type
# xcb_render_free_glyphs_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# glyphset*: xcb_render_glyphset_t
# ## * Opcode for xcb_render_composite_glyphs_8.
# const
# XCB_RENDER_COMPOSITE_GLYPHS_8* = 23
# ## *
# ## @brief xcb_render_composite_glyphs_8_request_t
# ##
# type
# xcb_render_composite_glyphs_8_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# op*: uint8
# pad0*: array[3, uint8]
# src*: xcb_render_picture_t
# dst*: xcb_render_picture_t
# mask_format*: xcb_render_pictformat_t
# glyphset*: xcb_render_glyphset_t
# src_x*: int16
# src_y*: int16
# ## * Opcode for xcb_render_composite_glyphs_16.
# const
# XCB_RENDER_COMPOSITE_GLYPHS_16* = 24
# ## *
# ## @brief xcb_render_composite_glyphs_16_request_t
# ##
# type
# xcb_render_composite_glyphs_16_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# op*: uint8
# pad0*: array[3, uint8]
# src*: xcb_render_picture_t
# dst*: xcb_render_picture_t
# mask_format*: xcb_render_pictformat_t
# glyphset*: xcb_render_glyphset_t
# src_x*: int16
# src_y*: int16
# ## * Opcode for xcb_render_composite_glyphs_32.
# const
# XCB_RENDER_COMPOSITE_GLYPHS_32* = 25
# ## *
# ## @brief xcb_render_composite_glyphs_32_request_t
# ##
# type
# xcb_render_composite_glyphs_32_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# op*: uint8
# pad0*: array[3, uint8]
# src*: xcb_render_picture_t
# dst*: xcb_render_picture_t
# mask_format*: xcb_render_pictformat_t
# glyphset*: xcb_render_glyphset_t
# src_x*: int16
# src_y*: int16
# ## * Opcode for xcb_render_fill_rectangles.
# const
# XCB_RENDER_FILL_RECTANGLES* = 26
# ## *
# ## @brief xcb_render_fill_rectangles_request_t
# ##
# type
# xcb_render_fill_rectangles_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# op*: uint8
# pad0*: array[3, uint8]
# dst*: xcb_render_picture_t
# color*: xcb_render_color_t
# ## * Opcode for xcb_render_create_cursor.
# const
# XCB_RENDER_CREATE_CURSOR* = 27
# ## *
# ## @brief xcb_render_create_cursor_request_t
# ##
# type
# xcb_render_create_cursor_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# cid*: xcb_cursor_t
# source*: xcb_render_picture_t
# x*: uint16
# y*: uint16
# ## *
# ## @brief xcb_render_transform_t
# ##
# type
# xcb_render_transform_t* {.bycopy.} = object
# matrix11*: xcb_render_fixed_t
# matrix12*: xcb_render_fixed_t
# matrix13*: xcb_render_fixed_t
# matrix21*: xcb_render_fixed_t
# matrix22*: xcb_render_fixed_t
# matrix23*: xcb_render_fixed_t
# matrix31*: xcb_render_fixed_t
# matrix32*: xcb_render_fixed_t
# matrix33*: xcb_render_fixed_t
# ## *
# ## @brief xcb_render_transform_iterator_t
# ##
# type
# xcb_render_transform_iterator_t* {.bycopy.} = object
# data*: ptr xcb_render_transform_t
# rem*: cint
# index*: cint
# ## * Opcode for xcb_render_set_picture_transform.
# const
# XCB_RENDER_SET_PICTURE_TRANSFORM* = 28
# ## *
# ## @brief xcb_render_set_picture_transform_request_t
# ##
# type
# xcb_render_set_picture_transform_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# picture*: xcb_render_picture_t
# transform*: xcb_render_transform_t
# ## *
# ## @brief xcb_render_query_filters_cookie_t
# ##
# type
# xcb_render_query_filters_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_render_query_filters.
# const
# XCB_RENDER_QUERY_FILTERS* = 29
# ## *
# ## @brief xcb_render_query_filters_request_t
# ##
# type
# xcb_render_query_filters_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# ## *
# ## @brief xcb_render_query_filters_reply_t
# ##
# type
# xcb_render_query_filters_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# num_aliases*: uint32
# num_filters*: uint32
# pad1*: array[16, uint8]
# ## * Opcode for xcb_render_set_picture_filter.
# const
# XCB_RENDER_SET_PICTURE_FILTER* = 30
# ## *
# ## @brief xcb_render_set_picture_filter_request_t
# ##
# type
# xcb_render_set_picture_filter_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# picture*: xcb_render_picture_t
# filter_len*: uint16
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_render_animcursorelt_t
# ##
# type
# xcb_render_animcursorelt_t* {.bycopy.} = object
# cursor*: xcb_cursor_t
# delay*: uint32
# ## *
# ## @brief xcb_render_animcursorelt_iterator_t
# ##
# type
# xcb_render_animcursorelt_iterator_t* {.bycopy.} = object
# data*: ptr xcb_render_animcursorelt_t
# rem*: cint
# index*: cint
# ## * Opcode for xcb_render_create_anim_cursor.
# const
# XCB_RENDER_CREATE_ANIM_CURSOR* = 31
# ## *
# ## @brief xcb_render_create_anim_cursor_request_t
# ##
# type
# xcb_render_create_anim_cursor_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# cid*: xcb_cursor_t
# ## *
# ## @brief xcb_render_spanfix_t
# ##
# type
# xcb_render_spanfix_t* {.bycopy.} = object
# l*: xcb_render_fixed_t
# r*: xcb_render_fixed_t
# y*: xcb_render_fixed_t
# ## *
# ## @brief xcb_render_spanfix_iterator_t
# ##
# type
# xcb_render_spanfix_iterator_t* {.bycopy.} = object
# data*: ptr xcb_render_spanfix_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_render_trap_t
# ##
# type
# xcb_render_trap_t* {.bycopy.} = object
# top*: xcb_render_spanfix_t
# bot*: xcb_render_spanfix_t
# ## *
# ## @brief xcb_render_trap_iterator_t
# ##
# type
# xcb_render_trap_iterator_t* {.bycopy.} = object
# data*: ptr xcb_render_trap_t
# rem*: cint
# index*: cint
# ## * Opcode for xcb_render_add_traps.
# const
# XCB_RENDER_ADD_TRAPS* = 32
# ## *
# ## @brief xcb_render_add_traps_request_t
# ##
# type
# xcb_render_add_traps_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# picture*: xcb_render_picture_t
# x_off*: int16
# y_off*: int16
# ## * Opcode for xcb_render_create_solid_fill.
# const
# XCB_RENDER_CREATE_SOLID_FILL* = 33
# ## *
# ## @brief xcb_render_create_solid_fill_request_t
# ##
# type
# xcb_render_create_solid_fill_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# picture*: xcb_render_picture_t
# color*: xcb_render_color_t
# ## * Opcode for xcb_render_create_linear_gradient.
# const
# XCB_RENDER_CREATE_LINEAR_GRADIENT* = 34
# ## *
# ## @brief xcb_render_create_linear_gradient_request_t
# ##
# type
# xcb_render_create_linear_gradient_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# picture*: xcb_render_picture_t
# p1*: xcb_render_pointfix_t
# p2*: xcb_render_pointfix_t
# num_stops*: uint32
# ## * Opcode for xcb_render_create_radial_gradient.
# const
# XCB_RENDER_CREATE_RADIAL_GRADIENT* = 35
# ## *
# ## @brief xcb_render_create_radial_gradient_request_t
# ##
# type
# xcb_render_create_radial_gradient_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# picture*: xcb_render_picture_t
# inner*: xcb_render_pointfix_t
# outer*: xcb_render_pointfix_t
# inner_radius*: xcb_render_fixed_t
# outer_radius*: xcb_render_fixed_t
# num_stops*: uint32
# ## * Opcode for xcb_render_create_conical_gradient.
# const
# XCB_RENDER_CREATE_CONICAL_GRADIENT* = 36
# ## *
# ## @brief xcb_render_create_conical_gradient_request_t
# ##
# type
# xcb_render_create_conical_gradient_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# picture*: xcb_render_picture_t
# center*: xcb_render_pointfix_t
# angle*: xcb_render_fixed_t
# num_stops*: uint32
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_render_glyph_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_render_glyph_t)
# ##
# proc xcb_render_glyph_next*(i: ptr xcb_render_glyph_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_render_glyph_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_render_glyph_end*(i: xcb_render_glyph_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_render_glyphset_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_render_glyphset_t)
# ##
# proc xcb_render_glyphset_next*(i: ptr xcb_render_glyphset_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_render_glyphset_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_render_glyphset_end*(i: xcb_render_glyphset_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_render_picture_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_render_picture_t)
# ##
# proc xcb_render_picture_next*(i: ptr xcb_render_picture_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_render_picture_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_render_picture_end*(i: xcb_render_picture_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_render_pictformat_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_render_pictformat_t)
# ##
# proc xcb_render_pictformat_next*(i: ptr xcb_render_pictformat_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_render_pictformat_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_render_pictformat_end*(i: xcb_render_pictformat_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_render_fixed_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_render_fixed_t)
# ##
# proc xcb_render_fixed_next*(i: ptr xcb_render_fixed_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_render_fixed_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_render_fixed_end*(i: xcb_render_fixed_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_render_directformat_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_render_directformat_t)
# ##
# proc xcb_render_directformat_next*(i: ptr xcb_render_directformat_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_render_directformat_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_render_directformat_end*(i: xcb_render_directformat_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_render_pictforminfo_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_render_pictforminfo_t)
# ##
# proc xcb_render_pictforminfo_next*(i: ptr xcb_render_pictforminfo_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_render_pictforminfo_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_render_pictforminfo_end*(i: xcb_render_pictforminfo_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_render_pictvisual_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_render_pictvisual_t)
# ##
# proc xcb_render_pictvisual_next*(i: ptr xcb_render_pictvisual_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_render_pictvisual_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_render_pictvisual_end*(i: xcb_render_pictvisual_iterator_t): xcb_generic_iterator_t
# proc xcb_render_pictdepth_sizeof*(_buffer: pointer): cint
# proc xcb_render_pictdepth_visuals*(R: ptr xcb_render_pictdepth_t): ptr xcb_render_pictvisual_t
# proc xcb_render_pictdepth_visuals_length*(R: ptr xcb_render_pictdepth_t): cint
# proc xcb_render_pictdepth_visuals_iterator*(R: ptr xcb_render_pictdepth_t): xcb_render_pictvisual_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_render_pictdepth_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_render_pictdepth_t)
# ##
# proc xcb_render_pictdepth_next*(i: ptr xcb_render_pictdepth_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_render_pictdepth_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_render_pictdepth_end*(i: xcb_render_pictdepth_iterator_t): xcb_generic_iterator_t
# proc xcb_render_pictscreen_sizeof*(_buffer: pointer): cint
# proc xcb_render_pictscreen_depths_length*(R: ptr xcb_render_pictscreen_t): cint
# proc xcb_render_pictscreen_depths_iterator*(R: ptr xcb_render_pictscreen_t): xcb_render_pictdepth_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_render_pictscreen_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_render_pictscreen_t)
# ##
# proc xcb_render_pictscreen_next*(i: ptr xcb_render_pictscreen_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_render_pictscreen_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_render_pictscreen_end*(i: xcb_render_pictscreen_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_render_indexvalue_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_render_indexvalue_t)
# ##
# proc xcb_render_indexvalue_next*(i: ptr xcb_render_indexvalue_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_render_indexvalue_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_render_indexvalue_end*(i: xcb_render_indexvalue_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_render_color_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_render_color_t)
# ##
# proc xcb_render_color_next*(i: ptr xcb_render_color_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_render_color_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_render_color_end*(i: xcb_render_color_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_render_pointfix_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_render_pointfix_t)
# ##
# proc xcb_render_pointfix_next*(i: ptr xcb_render_pointfix_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_render_pointfix_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_render_pointfix_end*(i: xcb_render_pointfix_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_render_linefix_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_render_linefix_t)
# ##
# proc xcb_render_linefix_next*(i: ptr xcb_render_linefix_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_render_linefix_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_render_linefix_end*(i: xcb_render_linefix_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_render_triangle_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_render_triangle_t)
# ##
# proc xcb_render_triangle_next*(i: ptr xcb_render_triangle_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_render_triangle_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_render_triangle_end*(i: xcb_render_triangle_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_render_trapezoid_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_render_trapezoid_t)
# ##
# proc xcb_render_trapezoid_next*(i: ptr xcb_render_trapezoid_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_render_trapezoid_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_render_trapezoid_end*(i: xcb_render_trapezoid_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_render_glyphinfo_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_render_glyphinfo_t)
# ##
# proc xcb_render_glyphinfo_next*(i: ptr xcb_render_glyphinfo_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_render_glyphinfo_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_render_glyphinfo_end*(i: xcb_render_glyphinfo_iterator_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_query_version*(c: ptr xcb_connection_t;
# client_major_version: uint32;
# client_minor_version: uint32): xcb_render_query_version_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_render_query_version_unchecked*(c: ptr xcb_connection_t;
# client_major_version: uint32;
# client_minor_version: uint32): xcb_render_query_version_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_render_query_version_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_render_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_render_query_version_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_render_query_version_reply_t
# proc xcb_render_query_pict_formats_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_query_pict_formats*(c: ptr xcb_connection_t): xcb_render_query_pict_formats_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_render_query_pict_formats_unchecked*(c: ptr xcb_connection_t): xcb_render_query_pict_formats_cookie_t
# proc xcb_render_query_pict_formats_formats*(
# R: ptr xcb_render_query_pict_formats_reply_t): ptr xcb_render_pictforminfo_t
# proc xcb_render_query_pict_formats_formats_length*(
# R: ptr xcb_render_query_pict_formats_reply_t): cint
# proc xcb_render_query_pict_formats_formats_iterator*(
# R: ptr xcb_render_query_pict_formats_reply_t): xcb_render_pictforminfo_iterator_t
# proc xcb_render_query_pict_formats_screens_length*(
# R: ptr xcb_render_query_pict_formats_reply_t): cint
# proc xcb_render_query_pict_formats_screens_iterator*(
# R: ptr xcb_render_query_pict_formats_reply_t): xcb_render_pictscreen_iterator_t
# proc xcb_render_query_pict_formats_subpixels*(
# R: ptr xcb_render_query_pict_formats_reply_t): ptr uint32
# proc xcb_render_query_pict_formats_subpixels_length*(
# R: ptr xcb_render_query_pict_formats_reply_t): cint
# proc xcb_render_query_pict_formats_subpixels_end*(
# R: ptr xcb_render_query_pict_formats_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_render_query_pict_formats_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_render_query_pict_formats_reply*(c: ptr xcb_connection_t; cookie: xcb_render_query_pict_formats_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_render_query_pict_formats_reply_t
# proc xcb_render_query_pict_index_values_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_query_pict_index_values*(c: ptr xcb_connection_t;
# format: xcb_render_pictformat_t): xcb_render_query_pict_index_values_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_render_query_pict_index_values_unchecked*(c: ptr xcb_connection_t;
# format: xcb_render_pictformat_t): xcb_render_query_pict_index_values_cookie_t
# proc xcb_render_query_pict_index_values_values*(
# R: ptr xcb_render_query_pict_index_values_reply_t): ptr xcb_render_indexvalue_t
# proc xcb_render_query_pict_index_values_values_length*(
# R: ptr xcb_render_query_pict_index_values_reply_t): cint
# proc xcb_render_query_pict_index_values_values_iterator*(
# R: ptr xcb_render_query_pict_index_values_reply_t): xcb_render_indexvalue_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_render_query_pict_index_values_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_render_query_pict_index_values_reply*(c: ptr xcb_connection_t; cookie: xcb_render_query_pict_index_values_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_render_query_pict_index_values_reply_t
# proc xcb_render_create_picture_value_list_serialize*(_buffer: ptr pointer;
# value_mask: uint32; _aux: ptr xcb_render_create_picture_value_list_t): cint
# proc xcb_render_create_picture_value_list_unpack*(_buffer: pointer;
# value_mask: uint32; _aux: ptr xcb_render_create_picture_value_list_t): cint
# proc xcb_render_create_picture_value_list_sizeof*(_buffer: pointer;
# value_mask: uint32): cint
# proc xcb_render_create_picture_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_create_picture_checked*(c: ptr xcb_connection_t;
# pid: xcb_render_picture_t;
# drawable: xcb_drawable_t;
# format: xcb_render_pictformat_t;
# value_mask: uint32; value_list: pointer): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_create_picture*(c: ptr xcb_connection_t; pid: xcb_render_picture_t;
# drawable: xcb_drawable_t;
# format: xcb_render_pictformat_t;
# value_mask: uint32; value_list: pointer): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_create_picture_aux_checked*(c: ptr xcb_connection_t;
# pid: xcb_render_picture_t; drawable: xcb_drawable_t;
# format: xcb_render_pictformat_t; value_mask: uint32;
# value_list: ptr xcb_render_create_picture_value_list_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_create_picture_aux*(c: ptr xcb_connection_t;
# pid: xcb_render_picture_t;
# drawable: xcb_drawable_t;
# format: xcb_render_pictformat_t;
# value_mask: uint32; value_list: ptr xcb_render_create_picture_value_list_t): xcb_void_cookie_t
# proc xcb_render_create_picture_value_list*(
# R: ptr xcb_render_create_picture_request_t): pointer
# proc xcb_render_change_picture_value_list_serialize*(_buffer: ptr pointer;
# value_mask: uint32; _aux: ptr xcb_render_change_picture_value_list_t): cint
# proc xcb_render_change_picture_value_list_unpack*(_buffer: pointer;
# value_mask: uint32; _aux: ptr xcb_render_change_picture_value_list_t): cint
# proc xcb_render_change_picture_value_list_sizeof*(_buffer: pointer;
# value_mask: uint32): cint
# proc xcb_render_change_picture_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_change_picture_checked*(c: ptr xcb_connection_t;
# picture: xcb_render_picture_t;
# value_mask: uint32; value_list: pointer): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_change_picture*(c: ptr xcb_connection_t;
# picture: xcb_render_picture_t;
# value_mask: uint32; value_list: pointer): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_change_picture_aux_checked*(c: ptr xcb_connection_t;
# picture: xcb_render_picture_t; value_mask: uint32;
# value_list: ptr xcb_render_change_picture_value_list_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_change_picture_aux*(c: ptr xcb_connection_t;
# picture: xcb_render_picture_t;
# value_mask: uint32; value_list: ptr xcb_render_change_picture_value_list_t): xcb_void_cookie_t
# proc xcb_render_change_picture_value_list*(
# R: ptr xcb_render_change_picture_request_t): pointer
# proc xcb_render_set_picture_clip_rectangles_sizeof*(_buffer: pointer;
# rectangles_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_set_picture_clip_rectangles_checked*(c: ptr xcb_connection_t;
# picture: xcb_render_picture_t; clip_x_origin: int16; clip_y_origin: int16;
# rectangles_len: uint32; rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_set_picture_clip_rectangles*(c: ptr xcb_connection_t;
# picture: xcb_render_picture_t; clip_x_origin: int16; clip_y_origin: int16;
# rectangles_len: uint32; rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t
# proc xcb_render_set_picture_clip_rectangles_rectangles*(
# R: ptr xcb_render_set_picture_clip_rectangles_request_t): ptr xcb_rectangle_t
# proc xcb_render_set_picture_clip_rectangles_rectangles_length*(
# R: ptr xcb_render_set_picture_clip_rectangles_request_t): cint
# proc xcb_render_set_picture_clip_rectangles_rectangles_iterator*(
# R: ptr xcb_render_set_picture_clip_rectangles_request_t): xcb_rectangle_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_free_picture_checked*(c: ptr xcb_connection_t;
# picture: xcb_render_picture_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_free_picture*(c: ptr xcb_connection_t; picture: xcb_render_picture_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_composite_checked*(c: ptr xcb_connection_t; op: uint8;
# src: xcb_render_picture_t;
# mask: xcb_render_picture_t;
# dst: xcb_render_picture_t; src_x: int16;
# src_y: int16; mask_x: int16; mask_y: int16;
# dst_x: int16; dst_y: int16; width: uint16;
# height: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_composite*(c: ptr xcb_connection_t; op: uint8;
# src: xcb_render_picture_t; mask: xcb_render_picture_t;
# dst: xcb_render_picture_t; src_x: int16; src_y: int16;
# mask_x: int16; mask_y: int16; dst_x: int16;
# dst_y: int16; width: uint16; height: uint16): xcb_void_cookie_t
# proc xcb_render_trapezoids_sizeof*(_buffer: pointer; traps_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_trapezoids_checked*(c: ptr xcb_connection_t; op: uint8;
# src: xcb_render_picture_t;
# dst: xcb_render_picture_t;
# mask_format: xcb_render_pictformat_t;
# src_x: int16; src_y: int16;
# traps_len: uint32;
# traps: ptr xcb_render_trapezoid_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_trapezoids*(c: ptr xcb_connection_t; op: uint8;
# src: xcb_render_picture_t; dst: xcb_render_picture_t;
# mask_format: xcb_render_pictformat_t; src_x: int16;
# src_y: int16; traps_len: uint32;
# traps: ptr xcb_render_trapezoid_t): xcb_void_cookie_t
# proc xcb_render_trapezoids_traps*(R: ptr xcb_render_trapezoids_request_t): ptr xcb_render_trapezoid_t
# proc xcb_render_trapezoids_traps_length*(R: ptr xcb_render_trapezoids_request_t): cint
# proc xcb_render_trapezoids_traps_iterator*(R: ptr xcb_render_trapezoids_request_t): xcb_render_trapezoid_iterator_t
# proc xcb_render_triangles_sizeof*(_buffer: pointer; triangles_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_triangles_checked*(c: ptr xcb_connection_t; op: uint8;
# src: xcb_render_picture_t;
# dst: xcb_render_picture_t;
# mask_format: xcb_render_pictformat_t;
# src_x: int16; src_y: int16;
# triangles_len: uint32;
# triangles: ptr xcb_render_triangle_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_triangles*(c: ptr xcb_connection_t; op: uint8;
# src: xcb_render_picture_t; dst: xcb_render_picture_t;
# mask_format: xcb_render_pictformat_t; src_x: int16;
# src_y: int16; triangles_len: uint32;
# triangles: ptr xcb_render_triangle_t): xcb_void_cookie_t
# proc xcb_render_triangles_triangles*(R: ptr xcb_render_triangles_request_t): ptr xcb_render_triangle_t
# proc xcb_render_triangles_triangles_length*(R: ptr xcb_render_triangles_request_t): cint
# proc xcb_render_triangles_triangles_iterator*(
# R: ptr xcb_render_triangles_request_t): xcb_render_triangle_iterator_t
# proc xcb_render_tri_strip_sizeof*(_buffer: pointer; points_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_tri_strip_checked*(c: ptr xcb_connection_t; op: uint8;
# src: xcb_render_picture_t;
# dst: xcb_render_picture_t;
# mask_format: xcb_render_pictformat_t;
# src_x: int16; src_y: int16;
# points_len: uint32;
# points: ptr xcb_render_pointfix_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_tri_strip*(c: ptr xcb_connection_t; op: uint8;
# src: xcb_render_picture_t; dst: xcb_render_picture_t;
# mask_format: xcb_render_pictformat_t; src_x: int16;
# src_y: int16; points_len: uint32;
# points: ptr xcb_render_pointfix_t): xcb_void_cookie_t
# proc xcb_render_tri_strip_points*(R: ptr xcb_render_tri_strip_request_t): ptr xcb_render_pointfix_t
# proc xcb_render_tri_strip_points_length*(R: ptr xcb_render_tri_strip_request_t): cint
# proc xcb_render_tri_strip_points_iterator*(R: ptr xcb_render_tri_strip_request_t): xcb_render_pointfix_iterator_t
# proc xcb_render_tri_fan_sizeof*(_buffer: pointer; points_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_tri_fan_checked*(c: ptr xcb_connection_t; op: uint8;
# src: xcb_render_picture_t;
# dst: xcb_render_picture_t;
# mask_format: xcb_render_pictformat_t;
# src_x: int16; src_y: int16;
# points_len: uint32;
# points: ptr xcb_render_pointfix_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_tri_fan*(c: ptr xcb_connection_t; op: uint8;
# src: xcb_render_picture_t; dst: xcb_render_picture_t;
# mask_format: xcb_render_pictformat_t; src_x: int16;
# src_y: int16; points_len: uint32;
# points: ptr xcb_render_pointfix_t): xcb_void_cookie_t
# proc xcb_render_tri_fan_points*(R: ptr xcb_render_tri_fan_request_t): ptr xcb_render_pointfix_t
# proc xcb_render_tri_fan_points_length*(R: ptr xcb_render_tri_fan_request_t): cint
# proc xcb_render_tri_fan_points_iterator*(R: ptr xcb_render_tri_fan_request_t): xcb_render_pointfix_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_create_glyph_set_checked*(c: ptr xcb_connection_t;
# gsid: xcb_render_glyphset_t; format: xcb_render_pictformat_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_create_glyph_set*(c: ptr xcb_connection_t;
# gsid: xcb_render_glyphset_t;
# format: xcb_render_pictformat_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_reference_glyph_set_checked*(c: ptr xcb_connection_t;
# gsid: xcb_render_glyphset_t; existing: xcb_render_glyphset_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_reference_glyph_set*(c: ptr xcb_connection_t;
# gsid: xcb_render_glyphset_t;
# existing: xcb_render_glyphset_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_free_glyph_set_checked*(c: ptr xcb_connection_t;
# glyphset: xcb_render_glyphset_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_free_glyph_set*(c: ptr xcb_connection_t;
# glyphset: xcb_render_glyphset_t): xcb_void_cookie_t
# proc xcb_render_add_glyphs_sizeof*(_buffer: pointer; data_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_add_glyphs_checked*(c: ptr xcb_connection_t;
# glyphset: xcb_render_glyphset_t;
# glyphs_len: uint32; glyphids: ptr uint32;
# glyphs: ptr xcb_render_glyphinfo_t;
# data_len: uint32; data: ptr uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_add_glyphs*(c: ptr xcb_connection_t;
# glyphset: xcb_render_glyphset_t; glyphs_len: uint32;
# glyphids: ptr uint32;
# glyphs: ptr xcb_render_glyphinfo_t; data_len: uint32;
# data: ptr uint8): xcb_void_cookie_t
# proc xcb_render_add_glyphs_glyphids*(R: ptr xcb_render_add_glyphs_request_t): ptr uint32
# proc xcb_render_add_glyphs_glyphids_length*(
# R: ptr xcb_render_add_glyphs_request_t): cint
# proc xcb_render_add_glyphs_glyphids_end*(R: ptr xcb_render_add_glyphs_request_t): xcb_generic_iterator_t
# proc xcb_render_add_glyphs_glyphs*(R: ptr xcb_render_add_glyphs_request_t): ptr xcb_render_glyphinfo_t
# proc xcb_render_add_glyphs_glyphs_length*(R: ptr xcb_render_add_glyphs_request_t): cint
# proc xcb_render_add_glyphs_glyphs_iterator*(
# R: ptr xcb_render_add_glyphs_request_t): xcb_render_glyphinfo_iterator_t
# proc xcb_render_add_glyphs_data*(R: ptr xcb_render_add_glyphs_request_t): ptr uint8
# proc xcb_render_add_glyphs_data_length*(R: ptr xcb_render_add_glyphs_request_t): cint
# proc xcb_render_add_glyphs_data_end*(R: ptr xcb_render_add_glyphs_request_t): xcb_generic_iterator_t
# proc xcb_render_free_glyphs_sizeof*(_buffer: pointer; glyphs_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_free_glyphs_checked*(c: ptr xcb_connection_t;
# glyphset: xcb_render_glyphset_t;
# glyphs_len: uint32;
# glyphs: ptr xcb_render_glyph_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_free_glyphs*(c: ptr xcb_connection_t;
# glyphset: xcb_render_glyphset_t; glyphs_len: uint32;
# glyphs: ptr xcb_render_glyph_t): xcb_void_cookie_t
# proc xcb_render_free_glyphs_glyphs*(R: ptr xcb_render_free_glyphs_request_t): ptr xcb_render_glyph_t
# proc xcb_render_free_glyphs_glyphs_length*(
# R: ptr xcb_render_free_glyphs_request_t): cint
# proc xcb_render_free_glyphs_glyphs_end*(R: ptr xcb_render_free_glyphs_request_t): xcb_generic_iterator_t
# proc xcb_render_composite_glyphs_8_sizeof*(_buffer: pointer;
# glyphcmds_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_composite_glyphs_8_checked*(c: ptr xcb_connection_t; op: uint8;
# src: xcb_render_picture_t; dst: xcb_render_picture_t;
# mask_format: xcb_render_pictformat_t; glyphset: xcb_render_glyphset_t;
# src_x: int16; src_y: int16; glyphcmds_len: uint32; glyphcmds: ptr uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_composite_glyphs_8*(c: ptr xcb_connection_t; op: uint8;
# src: xcb_render_picture_t;
# dst: xcb_render_picture_t;
# mask_format: xcb_render_pictformat_t;
# glyphset: xcb_render_glyphset_t;
# src_x: int16; src_y: int16;
# glyphcmds_len: uint32; glyphcmds: ptr uint8): xcb_void_cookie_t
# proc xcb_render_composite_glyphs_8_glyphcmds*(
# R: ptr xcb_render_composite_glyphs_8_request_t): ptr uint8
# proc xcb_render_composite_glyphs_8_glyphcmds_length*(
# R: ptr xcb_render_composite_glyphs_8_request_t): cint
# proc xcb_render_composite_glyphs_8_glyphcmds_end*(
# R: ptr xcb_render_composite_glyphs_8_request_t): xcb_generic_iterator_t
# proc xcb_render_composite_glyphs_16_sizeof*(_buffer: pointer;
# glyphcmds_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_composite_glyphs_16_checked*(c: ptr xcb_connection_t; op: uint8;
# src: xcb_render_picture_t; dst: xcb_render_picture_t;
# mask_format: xcb_render_pictformat_t; glyphset: xcb_render_glyphset_t;
# src_x: int16; src_y: int16; glyphcmds_len: uint32; glyphcmds: ptr uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_composite_glyphs_16*(c: ptr xcb_connection_t; op: uint8;
# src: xcb_render_picture_t;
# dst: xcb_render_picture_t;
# mask_format: xcb_render_pictformat_t;
# glyphset: xcb_render_glyphset_t;
# src_x: int16; src_y: int16;
# glyphcmds_len: uint32;
# glyphcmds: ptr uint8): xcb_void_cookie_t
# proc xcb_render_composite_glyphs_16_glyphcmds*(
# R: ptr xcb_render_composite_glyphs_16_request_t): ptr uint8
# proc xcb_render_composite_glyphs_16_glyphcmds_length*(
# R: ptr xcb_render_composite_glyphs_16_request_t): cint
# proc xcb_render_composite_glyphs_16_glyphcmds_end*(
# R: ptr xcb_render_composite_glyphs_16_request_t): xcb_generic_iterator_t
# proc xcb_render_composite_glyphs_32_sizeof*(_buffer: pointer;
# glyphcmds_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_composite_glyphs_32_checked*(c: ptr xcb_connection_t; op: uint8;
# src: xcb_render_picture_t; dst: xcb_render_picture_t;
# mask_format: xcb_render_pictformat_t; glyphset: xcb_render_glyphset_t;
# src_x: int16; src_y: int16; glyphcmds_len: uint32; glyphcmds: ptr uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_composite_glyphs_32*(c: ptr xcb_connection_t; op: uint8;
# src: xcb_render_picture_t;
# dst: xcb_render_picture_t;
# mask_format: xcb_render_pictformat_t;
# glyphset: xcb_render_glyphset_t;
# src_x: int16; src_y: int16;
# glyphcmds_len: uint32;
# glyphcmds: ptr uint8): xcb_void_cookie_t
# proc xcb_render_composite_glyphs_32_glyphcmds*(
# R: ptr xcb_render_composite_glyphs_32_request_t): ptr uint8
# proc xcb_render_composite_glyphs_32_glyphcmds_length*(
# R: ptr xcb_render_composite_glyphs_32_request_t): cint
# proc xcb_render_composite_glyphs_32_glyphcmds_end*(
# R: ptr xcb_render_composite_glyphs_32_request_t): xcb_generic_iterator_t
# proc xcb_render_fill_rectangles_sizeof*(_buffer: pointer; rects_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_fill_rectangles_checked*(c: ptr xcb_connection_t; op: uint8;
# dst: xcb_render_picture_t;
# color: xcb_render_color_t;
# rects_len: uint32;
# rects: ptr xcb_rectangle_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_fill_rectangles*(c: ptr xcb_connection_t; op: uint8;
# dst: xcb_render_picture_t;
# color: xcb_render_color_t; rects_len: uint32;
# rects: ptr xcb_rectangle_t): xcb_void_cookie_t
# proc xcb_render_fill_rectangles_rects*(R: ptr xcb_render_fill_rectangles_request_t): ptr xcb_rectangle_t
# proc xcb_render_fill_rectangles_rects_length*(
# R: ptr xcb_render_fill_rectangles_request_t): cint
# proc xcb_render_fill_rectangles_rects_iterator*(
# R: ptr xcb_render_fill_rectangles_request_t): xcb_rectangle_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_create_cursor_checked*(c: ptr xcb_connection_t; cid: xcb_cursor_t;
# source: xcb_render_picture_t; x: uint16;
# y: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_create_cursor*(c: ptr xcb_connection_t; cid: xcb_cursor_t;
# source: xcb_render_picture_t; x: uint16; y: uint16): xcb_void_cookie_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_render_transform_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_render_transform_t)
# ##
# proc xcb_render_transform_next*(i: ptr xcb_render_transform_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_render_transform_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_render_transform_end*(i: xcb_render_transform_iterator_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_set_picture_transform_checked*(c: ptr xcb_connection_t;
# picture: xcb_render_picture_t; transform: xcb_render_transform_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_set_picture_transform*(c: ptr xcb_connection_t;
# picture: xcb_render_picture_t;
# transform: xcb_render_transform_t): xcb_void_cookie_t
# proc xcb_render_query_filters_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_query_filters*(c: ptr xcb_connection_t; drawable: xcb_drawable_t): xcb_render_query_filters_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_render_query_filters_unchecked*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t): xcb_render_query_filters_cookie_t
# proc xcb_render_query_filters_aliases*(R: ptr xcb_render_query_filters_reply_t): ptr uint16
# proc xcb_render_query_filters_aliases_length*(
# R: ptr xcb_render_query_filters_reply_t): cint
# proc xcb_render_query_filters_aliases_end*(
# R: ptr xcb_render_query_filters_reply_t): xcb_generic_iterator_t
# proc xcb_render_query_filters_filters_length*(
# R: ptr xcb_render_query_filters_reply_t): cint
# proc xcb_render_query_filters_filters_iterator*(
# R: ptr xcb_render_query_filters_reply_t): xcb_str_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_render_query_filters_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_render_query_filters_reply*(c: ptr xcb_connection_t; cookie: xcb_render_query_filters_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_render_query_filters_reply_t
# proc xcb_render_set_picture_filter_sizeof*(_buffer: pointer; values_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_set_picture_filter_checked*(c: ptr xcb_connection_t;
# picture: xcb_render_picture_t; filter_len: uint16; filter: cstring;
# values_len: uint32; values: ptr xcb_render_fixed_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_set_picture_filter*(c: ptr xcb_connection_t;
# picture: xcb_render_picture_t;
# filter_len: uint16; filter: cstring;
# values_len: uint32;
# values: ptr xcb_render_fixed_t): xcb_void_cookie_t
# proc xcb_render_set_picture_filter_filter*(
# R: ptr xcb_render_set_picture_filter_request_t): cstring
# proc xcb_render_set_picture_filter_filter_length*(
# R: ptr xcb_render_set_picture_filter_request_t): cint
# proc xcb_render_set_picture_filter_filter_end*(
# R: ptr xcb_render_set_picture_filter_request_t): xcb_generic_iterator_t
# proc xcb_render_set_picture_filter_values*(
# R: ptr xcb_render_set_picture_filter_request_t): ptr xcb_render_fixed_t
# proc xcb_render_set_picture_filter_values_length*(
# R: ptr xcb_render_set_picture_filter_request_t): cint
# proc xcb_render_set_picture_filter_values_end*(
# R: ptr xcb_render_set_picture_filter_request_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_render_animcursorelt_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_render_animcursorelt_t)
# ##
# proc xcb_render_animcursorelt_next*(i: ptr xcb_render_animcursorelt_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_render_animcursorelt_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_render_animcursorelt_end*(i: xcb_render_animcursorelt_iterator_t): xcb_generic_iterator_t
# proc xcb_render_create_anim_cursor_sizeof*(_buffer: pointer; cursors_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_create_anim_cursor_checked*(c: ptr xcb_connection_t;
# cid: xcb_cursor_t; cursors_len: uint32;
# cursors: ptr xcb_render_animcursorelt_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_create_anim_cursor*(c: ptr xcb_connection_t; cid: xcb_cursor_t;
# cursors_len: uint32;
# cursors: ptr xcb_render_animcursorelt_t): xcb_void_cookie_t
# proc xcb_render_create_anim_cursor_cursors*(
# R: ptr xcb_render_create_anim_cursor_request_t): ptr xcb_render_animcursorelt_t
# proc xcb_render_create_anim_cursor_cursors_length*(
# R: ptr xcb_render_create_anim_cursor_request_t): cint
# proc xcb_render_create_anim_cursor_cursors_iterator*(
# R: ptr xcb_render_create_anim_cursor_request_t): xcb_render_animcursorelt_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_render_spanfix_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_render_spanfix_t)
# ##
# proc xcb_render_spanfix_next*(i: ptr xcb_render_spanfix_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_render_spanfix_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_render_spanfix_end*(i: xcb_render_spanfix_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_render_trap_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_render_trap_t)
# ##
# proc xcb_render_trap_next*(i: ptr xcb_render_trap_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_render_trap_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_render_trap_end*(i: xcb_render_trap_iterator_t): xcb_generic_iterator_t
# proc xcb_render_add_traps_sizeof*(_buffer: pointer; traps_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_add_traps_checked*(c: ptr xcb_connection_t;
# picture: xcb_render_picture_t; x_off: int16;
# y_off: int16; traps_len: uint32;
# traps: ptr xcb_render_trap_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_add_traps*(c: ptr xcb_connection_t; picture: xcb_render_picture_t;
# x_off: int16; y_off: int16; traps_len: uint32;
# traps: ptr xcb_render_trap_t): xcb_void_cookie_t
# proc xcb_render_add_traps_traps*(R: ptr xcb_render_add_traps_request_t): ptr xcb_render_trap_t
# proc xcb_render_add_traps_traps_length*(R: ptr xcb_render_add_traps_request_t): cint
# proc xcb_render_add_traps_traps_iterator*(R: ptr xcb_render_add_traps_request_t): xcb_render_trap_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_create_solid_fill_checked*(c: ptr xcb_connection_t;
# picture: xcb_render_picture_t; color: xcb_render_color_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_create_solid_fill*(c: ptr xcb_connection_t;
# picture: xcb_render_picture_t;
# color: xcb_render_color_t): xcb_void_cookie_t
# proc xcb_render_create_linear_gradient_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_create_linear_gradient_checked*(c: ptr xcb_connection_t;
# picture: xcb_render_picture_t; p1: xcb_render_pointfix_t;
# p2: xcb_render_pointfix_t; num_stops: uint32; stops: ptr xcb_render_fixed_t;
# colors: ptr xcb_render_color_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_create_linear_gradient*(c: ptr xcb_connection_t;
# picture: xcb_render_picture_t;
# p1: xcb_render_pointfix_t;
# p2: xcb_render_pointfix_t;
# num_stops: uint32;
# stops: ptr xcb_render_fixed_t;
# colors: ptr xcb_render_color_t): xcb_void_cookie_t
# proc xcb_render_create_linear_gradient_stops*(
# R: ptr xcb_render_create_linear_gradient_request_t): ptr xcb_render_fixed_t
# proc xcb_render_create_linear_gradient_stops_length*(
# R: ptr xcb_render_create_linear_gradient_request_t): cint
# proc xcb_render_create_linear_gradient_stops_end*(
# R: ptr xcb_render_create_linear_gradient_request_t): xcb_generic_iterator_t
# proc xcb_render_create_linear_gradient_colors*(
# R: ptr xcb_render_create_linear_gradient_request_t): ptr xcb_render_color_t
# proc xcb_render_create_linear_gradient_colors_length*(
# R: ptr xcb_render_create_linear_gradient_request_t): cint
# proc xcb_render_create_linear_gradient_colors_iterator*(
# R: ptr xcb_render_create_linear_gradient_request_t): xcb_render_color_iterator_t
# proc xcb_render_create_radial_gradient_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_create_radial_gradient_checked*(c: ptr xcb_connection_t;
# picture: xcb_render_picture_t; inner: xcb_render_pointfix_t;
# outer: xcb_render_pointfix_t; inner_radius: xcb_render_fixed_t;
# outer_radius: xcb_render_fixed_t; num_stops: uint32;
# stops: ptr xcb_render_fixed_t; colors: ptr xcb_render_color_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_create_radial_gradient*(c: ptr xcb_connection_t;
# picture: xcb_render_picture_t;
# inner: xcb_render_pointfix_t;
# outer: xcb_render_pointfix_t;
# inner_radius: xcb_render_fixed_t;
# outer_radius: xcb_render_fixed_t;
# num_stops: uint32;
# stops: ptr xcb_render_fixed_t;
# colors: ptr xcb_render_color_t): xcb_void_cookie_t
# proc xcb_render_create_radial_gradient_stops*(
# R: ptr xcb_render_create_radial_gradient_request_t): ptr xcb_render_fixed_t
# proc xcb_render_create_radial_gradient_stops_length*(
# R: ptr xcb_render_create_radial_gradient_request_t): cint
# proc xcb_render_create_radial_gradient_stops_end*(
# R: ptr xcb_render_create_radial_gradient_request_t): xcb_generic_iterator_t
# proc xcb_render_create_radial_gradient_colors*(
# R: ptr xcb_render_create_radial_gradient_request_t): ptr xcb_render_color_t
# proc xcb_render_create_radial_gradient_colors_length*(
# R: ptr xcb_render_create_radial_gradient_request_t): cint
# proc xcb_render_create_radial_gradient_colors_iterator*(
# R: ptr xcb_render_create_radial_gradient_request_t): xcb_render_color_iterator_t
# proc xcb_render_create_conical_gradient_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_render_create_conical_gradient_checked*(c: ptr xcb_connection_t;
# picture: xcb_render_picture_t; center: xcb_render_pointfix_t;
# angle: xcb_render_fixed_t; num_stops: uint32; stops: ptr xcb_render_fixed_t;
# colors: ptr xcb_render_color_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_render_create_conical_gradient*(c: ptr xcb_connection_t;
# picture: xcb_render_picture_t;
# center: xcb_render_pointfix_t;
# angle: xcb_render_fixed_t;
# num_stops: uint32;
# stops: ptr xcb_render_fixed_t;
# colors: ptr xcb_render_color_t): xcb_void_cookie_t
# proc xcb_render_create_conical_gradient_stops*(
# R: ptr xcb_render_create_conical_gradient_request_t): ptr xcb_render_fixed_t
# proc xcb_render_create_conical_gradient_stops_length*(
# R: ptr xcb_render_create_conical_gradient_request_t): cint
# proc xcb_render_create_conical_gradient_stops_end*(
# R: ptr xcb_render_create_conical_gradient_request_t): xcb_generic_iterator_t
# proc xcb_render_create_conical_gradient_colors*(
# R: ptr xcb_render_create_conical_gradient_request_t): ptr xcb_render_color_t
# proc xcb_render_create_conical_gradient_colors_length*(
# R: ptr xcb_render_create_conical_gradient_request_t): cint
# proc xcb_render_create_conical_gradient_colors_iterator*(
# R: ptr xcb_render_create_conical_gradient_request_t): xcb_render_color_iterator_t
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from res.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB_Res_API XCB Res API
# ## @brief Res XCB Protocol Implementation.
# ## @{
# ##
# import
# xcb, xproto
# const
# XCB_RES_MAJOR_VERSION* = 1
# XCB_RES_MINOR_VERSION* = 2
# var xcb_res_id*: xcb_extension_t
# ## *
# ## @brief xcb_res_client_t
# ##
# type
# xcb_res_client_t* {.bycopy.} = object
# resource_base*: uint32
# resource_mask*: uint32
# ## *
# ## @brief xcb_res_client_iterator_t
# ##
# type
# xcb_res_client_iterator_t* {.bycopy.} = object
# data*: ptr xcb_res_client_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_res_type_t
# ##
# type
# xcb_res_type_t* {.bycopy.} = object
# resource_type*: xcb_atom_t
# count*: uint32
# ## *
# ## @brief xcb_res_type_iterator_t
# ##
# type
# xcb_res_type_iterator_t* {.bycopy.} = object
# data*: ptr xcb_res_type_t
# rem*: cint
# index*: cint
# xcb_res_client_id_mask_t* = enum
# XCB_RES_CLIENT_ID_MASK_CLIENT_XID = 1,
# XCB_RES_CLIENT_ID_MASK_LOCAL_CLIENT_PID = 2
# ## *
# ## @brief xcb_res_client_id_spec_t
# ##
# type
# xcb_res_client_id_spec_t* {.bycopy.} = object
# client*: uint32
# mask*: uint32
# ## *
# ## @brief xcb_res_client_id_spec_iterator_t
# ##
# type
# xcb_res_client_id_spec_iterator_t* {.bycopy.} = object
# data*: ptr xcb_res_client_id_spec_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_res_client_id_value_t
# ##
# type
# xcb_res_client_id_value_t* {.bycopy.} = object
# spec*: xcb_res_client_id_spec_t
# length*: uint32
# ## *
# ## @brief xcb_res_client_id_value_iterator_t
# ##
# type
# xcb_res_client_id_value_iterator_t* {.bycopy.} = object
# data*: ptr xcb_res_client_id_value_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_res_resource_id_spec_t
# ##
# type
# xcb_res_resource_id_spec_t* {.bycopy.} = object
# resource*: uint32
# `type`*: uint32
# ## *
# ## @brief xcb_res_resource_id_spec_iterator_t
# ##
# type
# xcb_res_resource_id_spec_iterator_t* {.bycopy.} = object
# data*: ptr xcb_res_resource_id_spec_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_res_resource_size_spec_t
# ##
# type
# xcb_res_resource_size_spec_t* {.bycopy.} = object
# spec*: xcb_res_resource_id_spec_t
# bytes*: uint32
# ref_count*: uint32
# use_count*: uint32
# ## *
# ## @brief xcb_res_resource_size_spec_iterator_t
# ##
# type
# xcb_res_resource_size_spec_iterator_t* {.bycopy.} = object
# data*: ptr xcb_res_resource_size_spec_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_res_resource_size_value_t
# ##
# type
# xcb_res_resource_size_value_t* {.bycopy.} = object
# size*: xcb_res_resource_size_spec_t
# num_cross_references*: uint32
# ## *
# ## @brief xcb_res_resource_size_value_iterator_t
# ##
# type
# xcb_res_resource_size_value_iterator_t* {.bycopy.} = object
# data*: ptr xcb_res_resource_size_value_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_res_query_version_cookie_t
# ##
# type
# xcb_res_query_version_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_res_query_version.
# const
# XCB_RES_QUERY_VERSION* = 0
# ## *
# ## @brief xcb_res_query_version_request_t
# ##
# type
# xcb_res_query_version_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# client_major*: uint8
# client_minor*: uint8
# ## *
# ## @brief xcb_res_query_version_reply_t
# ##
# type
# xcb_res_query_version_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# server_major*: uint16
# server_minor*: uint16
# ## *
# ## @brief xcb_res_query_clients_cookie_t
# ##
# type
# xcb_res_query_clients_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_res_query_clients.
# const
# XCB_RES_QUERY_CLIENTS* = 1
# ## *
# ## @brief xcb_res_query_clients_request_t
# ##
# type
# xcb_res_query_clients_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_res_query_clients_reply_t
# ##
# type
# xcb_res_query_clients_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# num_clients*: uint32
# pad1*: array[20, uint8]
# ## *
# ## @brief xcb_res_query_client_resources_cookie_t
# ##
# type
# xcb_res_query_client_resources_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_res_query_client_resources.
# const
# XCB_RES_QUERY_CLIENT_RESOURCES* = 2
# ## *
# ## @brief xcb_res_query_client_resources_request_t
# ##
# type
# xcb_res_query_client_resources_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# xid*: uint32
# ## *
# ## @brief xcb_res_query_client_resources_reply_t
# ##
# type
# xcb_res_query_client_resources_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# num_types*: uint32
# pad1*: array[20, uint8]
# ## *
# ## @brief xcb_res_query_client_pixmap_bytes_cookie_t
# ##
# type
# xcb_res_query_client_pixmap_bytes_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_res_query_client_pixmap_bytes.
# const
# XCB_RES_QUERY_CLIENT_PIXMAP_BYTES* = 3
# ## *
# ## @brief xcb_res_query_client_pixmap_bytes_request_t
# ##
# type
# xcb_res_query_client_pixmap_bytes_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# xid*: uint32
# ## *
# ## @brief xcb_res_query_client_pixmap_bytes_reply_t
# ##
# type
# xcb_res_query_client_pixmap_bytes_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# bytes*: uint32
# bytes_overflow*: uint32
# ## *
# ## @brief xcb_res_query_client_ids_cookie_t
# ##
# type
# xcb_res_query_client_ids_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_res_query_client_ids.
# const
# XCB_RES_QUERY_CLIENT_IDS* = 4
# ## *
# ## @brief xcb_res_query_client_ids_request_t
# ##
# type
# xcb_res_query_client_ids_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# num_specs*: uint32
# ## *
# ## @brief xcb_res_query_client_ids_reply_t
# ##
# type
# xcb_res_query_client_ids_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# num_ids*: uint32
# pad1*: array[20, uint8]
# ## *
# ## @brief xcb_res_query_resource_bytes_cookie_t
# ##
# type
# xcb_res_query_resource_bytes_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_res_query_resource_bytes.
# const
# XCB_RES_QUERY_RESOURCE_BYTES* = 5
# ## *
# ## @brief xcb_res_query_resource_bytes_request_t
# ##
# type
# xcb_res_query_resource_bytes_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# client*: uint32
# num_specs*: uint32
# ## *
# ## @brief xcb_res_query_resource_bytes_reply_t
# ##
# type
# xcb_res_query_resource_bytes_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# num_sizes*: uint32
# pad1*: array[20, uint8]
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_res_client_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_res_client_t)
# ##
# proc xcb_res_client_next*(i: ptr xcb_res_client_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_res_client_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_res_client_end*(i: xcb_res_client_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_res_type_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_res_type_t)
# ##
# proc xcb_res_type_next*(i: ptr xcb_res_type_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_res_type_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_res_type_end*(i: xcb_res_type_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_res_client_id_spec_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_res_client_id_spec_t)
# ##
# proc xcb_res_client_id_spec_next*(i: ptr xcb_res_client_id_spec_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_res_client_id_spec_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_res_client_id_spec_end*(i: xcb_res_client_id_spec_iterator_t): xcb_generic_iterator_t
# proc xcb_res_client_id_value_sizeof*(_buffer: pointer): cint
# proc xcb_res_client_id_value_value*(R: ptr xcb_res_client_id_value_t): ptr uint32
# proc xcb_res_client_id_value_value_length*(R: ptr xcb_res_client_id_value_t): cint
# proc xcb_res_client_id_value_value_end*(R: ptr xcb_res_client_id_value_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_res_client_id_value_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_res_client_id_value_t)
# ##
# proc xcb_res_client_id_value_next*(i: ptr xcb_res_client_id_value_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_res_client_id_value_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_res_client_id_value_end*(i: xcb_res_client_id_value_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_res_resource_id_spec_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_res_resource_id_spec_t)
# ##
# proc xcb_res_resource_id_spec_next*(i: ptr xcb_res_resource_id_spec_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_res_resource_id_spec_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_res_resource_id_spec_end*(i: xcb_res_resource_id_spec_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_res_resource_size_spec_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_res_resource_size_spec_t)
# ##
# proc xcb_res_resource_size_spec_next*(i: ptr xcb_res_resource_size_spec_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_res_resource_size_spec_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_res_resource_size_spec_end*(i: xcb_res_resource_size_spec_iterator_t): xcb_generic_iterator_t
# proc xcb_res_resource_size_value_sizeof*(_buffer: pointer): cint
# proc xcb_res_resource_size_value_cross_references*(
# R: ptr xcb_res_resource_size_value_t): ptr xcb_res_resource_size_spec_t
# proc xcb_res_resource_size_value_cross_references_length*(
# R: ptr xcb_res_resource_size_value_t): cint
# proc xcb_res_resource_size_value_cross_references_iterator*(
# R: ptr xcb_res_resource_size_value_t): xcb_res_resource_size_spec_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_res_resource_size_value_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_res_resource_size_value_t)
# ##
# proc xcb_res_resource_size_value_next*(i: ptr xcb_res_resource_size_value_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_res_resource_size_value_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_res_resource_size_value_end*(i: xcb_res_resource_size_value_iterator_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_res_query_version*(c: ptr xcb_connection_t; client_major: uint8;
# client_minor: uint8): xcb_res_query_version_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_res_query_version_unchecked*(c: ptr xcb_connection_t;
# client_major: uint8; client_minor: uint8): xcb_res_query_version_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_res_query_version_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_res_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_res_query_version_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_res_query_version_reply_t
# proc xcb_res_query_clients_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_res_query_clients*(c: ptr xcb_connection_t): xcb_res_query_clients_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_res_query_clients_unchecked*(c: ptr xcb_connection_t): xcb_res_query_clients_cookie_t
# proc xcb_res_query_clients_clients*(R: ptr xcb_res_query_clients_reply_t): ptr xcb_res_client_t
# proc xcb_res_query_clients_clients_length*(R: ptr xcb_res_query_clients_reply_t): cint
# proc xcb_res_query_clients_clients_iterator*(R: ptr xcb_res_query_clients_reply_t): xcb_res_client_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_res_query_clients_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_res_query_clients_reply*(c: ptr xcb_connection_t; cookie: xcb_res_query_clients_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_res_query_clients_reply_t
# proc xcb_res_query_client_resources_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_res_query_client_resources*(c: ptr xcb_connection_t; xid: uint32): xcb_res_query_client_resources_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_res_query_client_resources_unchecked*(c: ptr xcb_connection_t;
# xid: uint32): xcb_res_query_client_resources_cookie_t
# proc xcb_res_query_client_resources_types*(
# R: ptr xcb_res_query_client_resources_reply_t): ptr xcb_res_type_t
# proc xcb_res_query_client_resources_types_length*(
# R: ptr xcb_res_query_client_resources_reply_t): cint
# proc xcb_res_query_client_resources_types_iterator*(
# R: ptr xcb_res_query_client_resources_reply_t): xcb_res_type_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_res_query_client_resources_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_res_query_client_resources_reply*(c: ptr xcb_connection_t; cookie: xcb_res_query_client_resources_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_res_query_client_resources_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_res_query_client_pixmap_bytes*(c: ptr xcb_connection_t; xid: uint32): xcb_res_query_client_pixmap_bytes_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_res_query_client_pixmap_bytes_unchecked*(c: ptr xcb_connection_t;
# xid: uint32): xcb_res_query_client_pixmap_bytes_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_res_query_client_pixmap_bytes_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_res_query_client_pixmap_bytes_reply*(c: ptr xcb_connection_t; cookie: xcb_res_query_client_pixmap_bytes_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_res_query_client_pixmap_bytes_reply_t
# proc xcb_res_query_client_ids_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_res_query_client_ids*(c: ptr xcb_connection_t; num_specs: uint32;
# specs: ptr xcb_res_client_id_spec_t): xcb_res_query_client_ids_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_res_query_client_ids_unchecked*(c: ptr xcb_connection_t;
# num_specs: uint32;
# specs: ptr xcb_res_client_id_spec_t): xcb_res_query_client_ids_cookie_t
# proc xcb_res_query_client_ids_ids_length*(R: ptr xcb_res_query_client_ids_reply_t): cint
# proc xcb_res_query_client_ids_ids_iterator*(
# R: ptr xcb_res_query_client_ids_reply_t): xcb_res_client_id_value_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_res_query_client_ids_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_res_query_client_ids_reply*(c: ptr xcb_connection_t; cookie: xcb_res_query_client_ids_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_res_query_client_ids_reply_t
# proc xcb_res_query_resource_bytes_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_res_query_resource_bytes*(c: ptr xcb_connection_t; client: uint32;
# num_specs: uint32;
# specs: ptr xcb_res_resource_id_spec_t): xcb_res_query_resource_bytes_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_res_query_resource_bytes_unchecked*(c: ptr xcb_connection_t;
# client: uint32; num_specs: uint32; specs: ptr xcb_res_resource_id_spec_t): xcb_res_query_resource_bytes_cookie_t
# proc xcb_res_query_resource_bytes_sizes_length*(
# R: ptr xcb_res_query_resource_bytes_reply_t): cint
# proc xcb_res_query_resource_bytes_sizes_iterator*(
# R: ptr xcb_res_query_resource_bytes_reply_t): xcb_res_resource_size_value_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_res_query_resource_bytes_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_res_query_resource_bytes_reply*(c: ptr xcb_connection_t; cookie: xcb_res_query_resource_bytes_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_res_query_resource_bytes_reply_t
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from screensaver.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB_ScreenSaver_API XCB ScreenSaver API
# ## @brief ScreenSaver XCB Protocol Implementation.
# ## @{
# ##
# import
# xcb, xproto
# const
# XCB_SCREENSAVER_MAJOR_VERSION* = 1
# XCB_SCREENSAVER_MINOR_VERSION* = 1
# var xcb_screensaver_id*: xcb_extension_t
# type
# xcb_screensaver_kind_t* = enum
# XCB_SCREENSAVER_KIND_BLANKED = 0, XCB_SCREENSAVER_KIND_INTERNAL = 1,
# XCB_SCREENSAVER_KIND_EXTERNAL = 2
# xcb_screensaver_event_t* = enum
# XCB_SCREENSAVER_EVENT_NOTIFY_MASK = 1, XCB_SCREENSAVER_EVENT_CYCLE_MASK = 2
# xcb_screensaver_state_t* = enum
# XCB_SCREENSAVER_STATE_OFF = 0, XCB_SCREENSAVER_STATE_ON = 1,
# XCB_SCREENSAVER_STATE_CYCLE = 2, XCB_SCREENSAVER_STATE_DISABLED = 3
# ## *
# ## @brief xcb_screensaver_query_version_cookie_t
# ##
# type
# xcb_screensaver_query_version_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_screensaver_query_version.
# const
# XCB_SCREENSAVER_QUERY_VERSION* = 0
# ## *
# ## @brief xcb_screensaver_query_version_request_t
# ##
# type
# xcb_screensaver_query_version_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# client_major_version*: uint8
# client_minor_version*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_screensaver_query_version_reply_t
# ##
# type
# xcb_screensaver_query_version_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# server_major_version*: uint16
# server_minor_version*: uint16
# pad1*: array[20, uint8]
# ## *
# ## @brief xcb_screensaver_query_info_cookie_t
# ##
# type
# xcb_screensaver_query_info_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_screensaver_query_info.
# const
# XCB_SCREENSAVER_QUERY_INFO* = 1
# ## *
# ## @brief xcb_screensaver_query_info_request_t
# ##
# type
# xcb_screensaver_query_info_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# ## *
# ## @brief xcb_screensaver_query_info_reply_t
# ##
# type
# xcb_screensaver_query_info_reply_t* {.bycopy.} = object
# response_type*: uint8
# state*: uint8
# sequence*: uint16
# length*: uint32
# saver_window*: xcb_window_t
# ms_until_server*: uint32
# ms_since_user_input*: uint32
# event_mask*: uint32
# kind*: uint8
# pad0*: array[7, uint8]
# ## * Opcode for xcb_screensaver_select_input.
# const
# XCB_SCREENSAVER_SELECT_INPUT* = 2
# ## *
# ## @brief xcb_screensaver_select_input_request_t
# ##
# type
# xcb_screensaver_select_input_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# event_mask*: uint32
# ## *
# ## @brief xcb_screensaver_set_attributes_value_list_t
# ##
# type
# xcb_screensaver_set_attributes_value_list_t* {.bycopy.} = object
# background_pixmap*: xcb_pixmap_t
# background_pixel*: uint32
# border_pixmap*: xcb_pixmap_t
# border_pixel*: uint32
# bit_gravity*: uint32
# win_gravity*: uint32
# backing_store*: uint32
# backing_planes*: uint32
# backing_pixel*: uint32
# override_redirect*: xcb_bool32_t
# save_under*: xcb_bool32_t
# event_mask*: uint32
# do_not_propogate_mask*: uint32
# colormap*: xcb_colormap_t
# cursor*: xcb_cursor_t
# ## * Opcode for xcb_screensaver_set_attributes.
# const
# XCB_SCREENSAVER_SET_ATTRIBUTES* = 3
# ## *
# ## @brief xcb_screensaver_set_attributes_request_t
# ##
# type
# xcb_screensaver_set_attributes_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# x*: int16
# y*: int16
# width*: uint16
# height*: uint16
# border_width*: uint16
# _class*: uint8
# depth*: uint8
# visual*: xcb_visualid_t
# value_mask*: uint32
# ## * Opcode for xcb_screensaver_unset_attributes.
# const
# XCB_SCREENSAVER_UNSET_ATTRIBUTES* = 4
# ## *
# ## @brief xcb_screensaver_unset_attributes_request_t
# ##
# type
# xcb_screensaver_unset_attributes_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# ## * Opcode for xcb_screensaver_suspend.
# const
# XCB_SCREENSAVER_SUSPEND* = 5
# ## *
# ## @brief xcb_screensaver_suspend_request_t
# ##
# type
# xcb_screensaver_suspend_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# suspend*: uint8
# pad0*: array[3, uint8]
# ## * Opcode for xcb_screensaver_notify.
# const
# XCB_SCREENSAVER_NOTIFY* = 0
# ## *
# ## @brief xcb_screensaver_notify_event_t
# ##
# type
# xcb_screensaver_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# state*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# root*: xcb_window_t
# window*: xcb_window_t
# kind*: uint8
# forced*: uint8
# pad0*: array[14, uint8]
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_screensaver_query_version*(c: ptr xcb_connection_t;
# client_major_version: uint8;
# client_minor_version: uint8): xcb_screensaver_query_version_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_screensaver_query_version_unchecked*(c: ptr xcb_connection_t;
# client_major_version: uint8; client_minor_version: uint8): xcb_screensaver_query_version_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_screensaver_query_version_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_screensaver_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_screensaver_query_version_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_screensaver_query_version_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_screensaver_query_info*(c: ptr xcb_connection_t; drawable: xcb_drawable_t): xcb_screensaver_query_info_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_screensaver_query_info_unchecked*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t): xcb_screensaver_query_info_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_screensaver_query_info_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_screensaver_query_info_reply*(c: ptr xcb_connection_t; cookie: xcb_screensaver_query_info_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_screensaver_query_info_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_screensaver_select_input_checked*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t; event_mask: uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_screensaver_select_input*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t; event_mask: uint32): xcb_void_cookie_t
# proc xcb_screensaver_set_attributes_value_list_serialize*(_buffer: ptr pointer;
# value_mask: uint32; _aux: ptr xcb_screensaver_set_attributes_value_list_t): cint
# proc xcb_screensaver_set_attributes_value_list_unpack*(_buffer: pointer;
# value_mask: uint32; _aux: ptr xcb_screensaver_set_attributes_value_list_t): cint
# proc xcb_screensaver_set_attributes_value_list_sizeof*(_buffer: pointer;
# value_mask: uint32): cint
# proc xcb_screensaver_set_attributes_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_screensaver_set_attributes_checked*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t; x: int16; y: int16; width: uint16; height: uint16;
# border_width: uint16; _class: uint8; depth: uint8; visual: xcb_visualid_t;
# value_mask: uint32; value_list: pointer): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_screensaver_set_attributes*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t; x: int16;
# y: int16; width: uint16; height: uint16;
# border_width: uint16; _class: uint8;
# depth: uint8; visual: xcb_visualid_t;
# value_mask: uint32; value_list: pointer): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_screensaver_set_attributes_aux_checked*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t; x: int16; y: int16; width: uint16; height: uint16;
# border_width: uint16; _class: uint8; depth: uint8; visual: xcb_visualid_t;
# value_mask: uint32;
# value_list: ptr xcb_screensaver_set_attributes_value_list_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_screensaver_set_attributes_aux*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t; x: int16;
# y: int16; width: uint16;
# height: uint16; border_width: uint16;
# _class: uint8; depth: uint8;
# visual: xcb_visualid_t;
# value_mask: uint32; value_list: ptr xcb_screensaver_set_attributes_value_list_t): xcb_void_cookie_t
# proc xcb_screensaver_set_attributes_value_list*(
# R: ptr xcb_screensaver_set_attributes_request_t): pointer
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_screensaver_unset_attributes_checked*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_screensaver_unset_attributes*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_screensaver_suspend_checked*(c: ptr xcb_connection_t; suspend: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_screensaver_suspend*(c: ptr xcb_connection_t; suspend: uint8): xcb_void_cookie_t
# ## *
# ## @}
# ##
# ##
# ## 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.
# ## @{
# ##
# import
# xcb, xproto
# const
# XCB_SHAPE_MAJOR_VERSION* = 1
# XCB_SHAPE_MINOR_VERSION* = 1
# var xcb_shape_id*: xcb_extension_t
# type
# xcb_shape_op_t* = uint8
# ## *
# ## @brief xcb_shape_op_iterator_t
# ##
# type
# xcb_shape_op_iterator_t* {.bycopy.} = object
# data*: ptr xcb_shape_op_t
# rem*: cint
# index*: cint
# xcb_shape_kind_t* = uint8
# ## *
# ## @brief xcb_shape_kind_iterator_t
# ##
# type
# xcb_shape_kind_iterator_t* {.bycopy.} = object
# data*: ptr xcb_shape_kind_t
# rem*: cint
# index*: cint
# xcb_shape_so_t* = enum
# 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_sk_t* = enum
# XCB_SHAPE_SK_BOUNDING = 0, XCB_SHAPE_SK_CLIP = 1, XCB_SHAPE_SK_INPUT = 2
# ## * Opcode for xcb_shape_notify.
# const
# XCB_SHAPE_NOTIFY* = 0
# ## *
# ## @brief xcb_shape_notify_event_t
# ##
# type
# xcb_shape_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# shape_kind*: xcb_shape_kind_t
# sequence*: uint16
# affected_window*: xcb_window_t
# extents_x*: int16
# extents_y*: int16
# extents_width*: uint16
# extents_height*: uint16
# server_time*: xcb_timestamp_t
# shaped*: uint8
# pad0*: array[11, uint8]
# ## *
# ## @brief xcb_shape_query_version_cookie_t
# ##
# type
# xcb_shape_query_version_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_shape_query_version.
# const
# XCB_SHAPE_QUERY_VERSION* = 0
# ## *
# ## @brief xcb_shape_query_version_request_t
# ##
# type
# xcb_shape_query_version_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_shape_query_version_reply_t
# ##
# type
# xcb_shape_query_version_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# major_version*: uint16
# minor_version*: uint16
# ## * Opcode for xcb_shape_rectangles.
# const
# XCB_SHAPE_RECTANGLES* = 1
# ## *
# ## @brief xcb_shape_rectangles_request_t
# ##
# type
# xcb_shape_rectangles_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# operation*: xcb_shape_op_t
# destination_kind*: xcb_shape_kind_t
# ordering*: uint8
# pad0*: uint8
# destination_window*: xcb_window_t
# x_offset*: int16
# y_offset*: int16
# ## * Opcode for xcb_shape_mask.
# const
# XCB_SHAPE_MASK* = 2
# ## *
# ## @brief xcb_shape_mask_request_t
# ##
# type
# xcb_shape_mask_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# operation*: xcb_shape_op_t
# destination_kind*: xcb_shape_kind_t
# pad0*: array[2, uint8]
# destination_window*: xcb_window_t
# x_offset*: int16
# y_offset*: int16
# source_bitmap*: xcb_pixmap_t
# ## * Opcode for xcb_shape_combine.
# const
# XCB_SHAPE_COMBINE* = 3
# ## *
# ## @brief xcb_shape_combine_request_t
# ##
# type
# xcb_shape_combine_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# operation*: xcb_shape_op_t
# destination_kind*: xcb_shape_kind_t
# source_kind*: xcb_shape_kind_t
# pad0*: uint8
# destination_window*: xcb_window_t
# x_offset*: int16
# y_offset*: int16
# source_window*: xcb_window_t
# ## * Opcode for xcb_shape_offset.
# const
# XCB_SHAPE_OFFSET* = 4
# ## *
# ## @brief xcb_shape_offset_request_t
# ##
# type
# xcb_shape_offset_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# destination_kind*: xcb_shape_kind_t
# pad0*: array[3, uint8]
# destination_window*: xcb_window_t
# x_offset*: int16
# y_offset*: int16
# ## *
# ## @brief xcb_shape_query_extents_cookie_t
# ##
# type
# xcb_shape_query_extents_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_shape_query_extents.
# const
# XCB_SHAPE_QUERY_EXTENTS* = 5
# ## *
# ## @brief xcb_shape_query_extents_request_t
# ##
# type
# xcb_shape_query_extents_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# destination_window*: xcb_window_t
# ## *
# ## @brief xcb_shape_query_extents_reply_t
# ##
# type
# xcb_shape_query_extents_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# bounding_shaped*: uint8
# clip_shaped*: uint8
# pad1*: array[2, uint8]
# bounding_shape_extents_x*: int16
# bounding_shape_extents_y*: int16
# bounding_shape_extents_width*: uint16
# bounding_shape_extents_height*: uint16
# clip_shape_extents_x*: int16
# clip_shape_extents_y*: int16
# clip_shape_extents_width*: uint16
# clip_shape_extents_height*: uint16
# ## * Opcode for xcb_shape_select_input.
# const
# XCB_SHAPE_SELECT_INPUT* = 6
# ## *
# ## @brief xcb_shape_select_input_request_t
# ##
# type
# xcb_shape_select_input_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# destination_window*: xcb_window_t
# enable*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_shape_input_selected_cookie_t
# ##
# type
# xcb_shape_input_selected_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_shape_input_selected.
# const
# XCB_SHAPE_INPUT_SELECTED* = 7
# ## *
# ## @brief xcb_shape_input_selected_request_t
# ##
# type
# xcb_shape_input_selected_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# destination_window*: xcb_window_t
# ## *
# ## @brief xcb_shape_input_selected_reply_t
# ##
# type
# xcb_shape_input_selected_reply_t* {.bycopy.} = object
# response_type*: uint8
# enabled*: uint8
# sequence*: uint16
# length*: uint32
# ## *
# ## @brief xcb_shape_get_rectangles_cookie_t
# ##
# type
# xcb_shape_get_rectangles_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_shape_get_rectangles.
# const
# XCB_SHAPE_GET_RECTANGLES* = 8
# ## *
# ## @brief xcb_shape_get_rectangles_request_t
# ##
# type
# xcb_shape_get_rectangles_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# source_kind*: xcb_shape_kind_t
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_shape_get_rectangles_reply_t
# ##
# type
# xcb_shape_get_rectangles_reply_t* {.bycopy.} = object
# response_type*: uint8
# ordering*: uint8
# sequence*: uint16
# length*: uint32
# rectangles_len*: uint32
# pad0*: array[20, uint8]
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_shape_op_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_shape_op_t)
# ##
# proc xcb_shape_op_next*(i: ptr xcb_shape_op_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_shape_op_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_shape_op_end*(i: xcb_shape_op_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_shape_kind_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_shape_kind_t)
# ##
# proc xcb_shape_kind_next*(i: ptr xcb_shape_kind_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_shape_kind_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_shape_kind_end*(i: xcb_shape_kind_iterator_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_shape_query_version*(c: ptr xcb_connection_t): xcb_shape_query_version_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_shape_query_version_unchecked*(c: ptr xcb_connection_t): xcb_shape_query_version_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_shape_query_version_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_shape_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_shape_query_version_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_shape_query_version_reply_t
# proc xcb_shape_rectangles_sizeof*(_buffer: pointer; rectangles_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_shape_rectangles_checked*(c: ptr xcb_connection_t;
# operation: xcb_shape_op_t;
# destination_kind: xcb_shape_kind_t;
# ordering: uint8;
# destination_window: xcb_window_t;
# x_offset: int16; y_offset: int16;
# rectangles_len: uint32;
# rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_shape_rectangles*(c: ptr xcb_connection_t; operation: xcb_shape_op_t;
# destination_kind: xcb_shape_kind_t; ordering: uint8;
# destination_window: xcb_window_t; x_offset: int16;
# y_offset: int16; rectangles_len: uint32;
# rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t
# proc xcb_shape_rectangles_rectangles*(R: ptr xcb_shape_rectangles_request_t): ptr xcb_rectangle_t
# proc xcb_shape_rectangles_rectangles_length*(
# R: ptr xcb_shape_rectangles_request_t): cint
# proc xcb_shape_rectangles_rectangles_iterator*(
# R: ptr xcb_shape_rectangles_request_t): xcb_rectangle_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_shape_mask_checked*(c: ptr xcb_connection_t; operation: xcb_shape_op_t;
# destination_kind: xcb_shape_kind_t;
# destination_window: xcb_window_t; x_offset: int16;
# y_offset: int16; source_bitmap: xcb_pixmap_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_shape_mask*(c: ptr xcb_connection_t; operation: xcb_shape_op_t;
# destination_kind: xcb_shape_kind_t;
# destination_window: xcb_window_t; x_offset: int16;
# y_offset: int16; source_bitmap: xcb_pixmap_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_shape_combine_checked*(c: ptr xcb_connection_t; operation: xcb_shape_op_t;
# destination_kind: xcb_shape_kind_t;
# source_kind: xcb_shape_kind_t;
# destination_window: xcb_window_t;
# x_offset: int16; y_offset: int16;
# source_window: xcb_window_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_shape_combine*(c: ptr xcb_connection_t; operation: xcb_shape_op_t;
# destination_kind: xcb_shape_kind_t;
# source_kind: xcb_shape_kind_t;
# destination_window: xcb_window_t; x_offset: int16;
# y_offset: int16; source_window: xcb_window_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_shape_offset_checked*(c: ptr xcb_connection_t;
# destination_kind: xcb_shape_kind_t;
# destination_window: xcb_window_t; x_offset: int16;
# y_offset: int16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_shape_offset*(c: ptr xcb_connection_t; destination_kind: xcb_shape_kind_t;
# destination_window: xcb_window_t; x_offset: int16;
# y_offset: int16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_shape_query_extents*(c: ptr xcb_connection_t;
# destination_window: xcb_window_t): xcb_shape_query_extents_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_shape_query_extents_unchecked*(c: ptr xcb_connection_t;
# destination_window: xcb_window_t): xcb_shape_query_extents_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_shape_query_extents_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_shape_query_extents_reply*(c: ptr xcb_connection_t; cookie: xcb_shape_query_extents_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_shape_query_extents_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_shape_select_input_checked*(c: ptr xcb_connection_t;
# destination_window: xcb_window_t;
# enable: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_shape_select_input*(c: ptr xcb_connection_t;
# destination_window: xcb_window_t; enable: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_shape_input_selected*(c: ptr xcb_connection_t;
# destination_window: xcb_window_t): xcb_shape_input_selected_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_shape_input_selected_unchecked*(c: ptr xcb_connection_t;
# destination_window: xcb_window_t): xcb_shape_input_selected_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_shape_input_selected_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_shape_input_selected_reply*(c: ptr xcb_connection_t; cookie: xcb_shape_input_selected_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_shape_input_selected_reply_t
# proc xcb_shape_get_rectangles_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_shape_get_rectangles*(c: ptr xcb_connection_t; window: xcb_window_t;
# source_kind: xcb_shape_kind_t): xcb_shape_get_rectangles_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_shape_get_rectangles_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t;
# source_kind: xcb_shape_kind_t): xcb_shape_get_rectangles_cookie_t
# proc xcb_shape_get_rectangles_rectangles*(R: ptr xcb_shape_get_rectangles_reply_t): ptr xcb_rectangle_t
# proc xcb_shape_get_rectangles_rectangles_length*(
# R: ptr xcb_shape_get_rectangles_reply_t): cint
# proc xcb_shape_get_rectangles_rectangles_iterator*(
# R: ptr xcb_shape_get_rectangles_reply_t): xcb_rectangle_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_shape_get_rectangles_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_shape_get_rectangles_reply*(c: ptr xcb_connection_t; cookie: xcb_shape_get_rectangles_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_shape_get_rectangles_reply_t
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from shm.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB_Shm_API XCB Shm API
# ## @brief Shm XCB Protocol Implementation.
# ## @{
# ##
# import
# xcb, xproto
# const
# XCB_SHM_MAJOR_VERSION* = 1
# XCB_SHM_MINOR_VERSION* = 2
# var xcb_shm_id*: xcb_extension_t
# type
# xcb_shm_seg_t* = uint32
# ## *
# ## @brief xcb_shm_seg_iterator_t
# ##
# type
# xcb_shm_seg_iterator_t* {.bycopy.} = object
# data*: ptr xcb_shm_seg_t
# rem*: cint
# index*: cint
# ## * Opcode for xcb_shm_completion.
# const
# XCB_SHM_COMPLETION* = 0
# ## *
# ## @brief xcb_shm_completion_event_t
# ##
# type
# xcb_shm_completion_event_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# drawable*: xcb_drawable_t
# minor_event*: uint16
# major_event*: uint8
# pad1*: uint8
# shmseg*: xcb_shm_seg_t
# offset*: uint32
# ## * Opcode for xcb_shm_bad_seg.
# const
# XCB_SHM_BAD_SEG* = 0
# type
# xcb_shm_bad_seg_error_t* = xcb_value_error_t
# ## *
# ## @brief xcb_shm_query_version_cookie_t
# ##
# type
# xcb_shm_query_version_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_shm_query_version.
# const
# XCB_SHM_QUERY_VERSION* = 0
# ## *
# ## @brief xcb_shm_query_version_request_t
# ##
# type
# xcb_shm_query_version_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_shm_query_version_reply_t
# ##
# type
# xcb_shm_query_version_reply_t* {.bycopy.} = object
# response_type*: uint8
# shared_pixmaps*: uint8
# sequence*: uint16
# length*: uint32
# major_version*: uint16
# minor_version*: uint16
# uid*: uint16
# gid*: uint16
# pixmap_format*: uint8
# pad0*: array[15, uint8]
# ## * Opcode for xcb_shm_attach.
# const
# XCB_SHM_ATTACH* = 1
# ## *
# ## @brief xcb_shm_attach_request_t
# ##
# type
# xcb_shm_attach_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# shmseg*: xcb_shm_seg_t
# shmid*: uint32
# read_only*: uint8
# pad0*: array[3, uint8]
# ## * Opcode for xcb_shm_detach.
# const
# XCB_SHM_DETACH* = 2
# ## *
# ## @brief xcb_shm_detach_request_t
# ##
# type
# xcb_shm_detach_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# shmseg*: xcb_shm_seg_t
# ## * Opcode for xcb_shm_put_image.
# const
# XCB_SHM_PUT_IMAGE* = 3
# ## *
# ## @brief xcb_shm_put_image_request_t
# ##
# type
# xcb_shm_put_image_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# gc*: xcb_gcontext_t
# total_width*: uint16
# total_height*: uint16
# src_x*: uint16
# src_y*: uint16
# src_width*: uint16
# src_height*: uint16
# dst_x*: int16
# dst_y*: int16
# depth*: uint8
# format*: uint8
# send_event*: uint8
# pad0*: uint8
# shmseg*: xcb_shm_seg_t
# offset*: uint32
# ## *
# ## @brief xcb_shm_get_image_cookie_t
# ##
# type
# xcb_shm_get_image_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_shm_get_image.
# const
# XCB_SHM_GET_IMAGE* = 4
# ## *
# ## @brief xcb_shm_get_image_request_t
# ##
# type
# xcb_shm_get_image_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# x*: int16
# y*: int16
# width*: uint16
# height*: uint16
# plane_mask*: uint32
# format*: uint8
# pad0*: array[3, uint8]
# shmseg*: xcb_shm_seg_t
# offset*: uint32
# ## *
# ## @brief xcb_shm_get_image_reply_t
# ##
# type
# xcb_shm_get_image_reply_t* {.bycopy.} = object
# response_type*: uint8
# depth*: uint8
# sequence*: uint16
# length*: uint32
# visual*: xcb_visualid_t
# size*: uint32
# ## * Opcode for xcb_shm_create_pixmap.
# const
# XCB_SHM_CREATE_PIXMAP* = 5
# ## *
# ## @brief xcb_shm_create_pixmap_request_t
# ##
# type
# xcb_shm_create_pixmap_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# pid*: xcb_pixmap_t
# drawable*: xcb_drawable_t
# width*: uint16
# height*: uint16
# depth*: uint8
# pad0*: array[3, uint8]
# shmseg*: xcb_shm_seg_t
# offset*: uint32
# ## * Opcode for xcb_shm_attach_fd.
# const
# XCB_SHM_ATTACH_FD* = 6
# ## *
# ## @brief xcb_shm_attach_fd_request_t
# ##
# type
# xcb_shm_attach_fd_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# shmseg*: xcb_shm_seg_t
# read_only*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_shm_create_segment_cookie_t
# ##
# type
# xcb_shm_create_segment_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_shm_create_segment.
# const
# XCB_SHM_CREATE_SEGMENT* = 7
# ## *
# ## @brief xcb_shm_create_segment_request_t
# ##
# type
# xcb_shm_create_segment_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# shmseg*: xcb_shm_seg_t
# size*: uint32
# read_only*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_shm_create_segment_reply_t
# ##
# type
# xcb_shm_create_segment_reply_t* {.bycopy.} = object
# response_type*: uint8
# nfd*: uint8
# sequence*: uint16
# length*: uint32
# pad0*: array[24, uint8]
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_shm_seg_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_shm_seg_t)
# ##
# proc xcb_shm_seg_next*(i: ptr xcb_shm_seg_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_shm_seg_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_shm_seg_end*(i: xcb_shm_seg_iterator_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_shm_query_version*(c: ptr xcb_connection_t): xcb_shm_query_version_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_shm_query_version_unchecked*(c: ptr xcb_connection_t): xcb_shm_query_version_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_shm_query_version_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_shm_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_shm_query_version_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_shm_query_version_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_shm_attach_checked*(c: ptr xcb_connection_t; shmseg: xcb_shm_seg_t;
# shmid: uint32; read_only: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_shm_attach*(c: ptr xcb_connection_t; shmseg: xcb_shm_seg_t; shmid: uint32;
# read_only: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_shm_detach_checked*(c: ptr xcb_connection_t; shmseg: xcb_shm_seg_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_shm_detach*(c: ptr xcb_connection_t; shmseg: xcb_shm_seg_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_shm_put_image_checked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# gc: xcb_gcontext_t; total_width: uint16;
# total_height: uint16; src_x: uint16;
# src_y: uint16; src_width: uint16;
# src_height: uint16; dst_x: int16; dst_y: int16;
# depth: uint8; format: uint8; send_event: uint8;
# shmseg: xcb_shm_seg_t; offset: uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_shm_put_image*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# gc: xcb_gcontext_t; total_width: uint16;
# total_height: uint16; src_x: uint16; src_y: uint16;
# src_width: uint16; src_height: uint16; dst_x: int16;
# dst_y: int16; depth: uint8; format: uint8;
# send_event: uint8; shmseg: xcb_shm_seg_t; offset: uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_shm_get_image*(c: ptr xcb_connection_t; drawable: xcb_drawable_t; x: int16;
# y: int16; width: uint16; height: uint16;
# plane_mask: uint32; format: uint8; shmseg: xcb_shm_seg_t;
# offset: uint32): xcb_shm_get_image_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_shm_get_image_unchecked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# x: int16; y: int16; width: uint16;
# height: uint16; plane_mask: uint32;
# format: uint8; shmseg: xcb_shm_seg_t;
# offset: uint32): xcb_shm_get_image_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_shm_get_image_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_shm_get_image_reply*(c: ptr xcb_connection_t; cookie: xcb_shm_get_image_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_shm_get_image_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_shm_create_pixmap_checked*(c: ptr xcb_connection_t; pid: xcb_pixmap_t;
# drawable: xcb_drawable_t; width: uint16;
# height: uint16; depth: uint8;
# shmseg: xcb_shm_seg_t; offset: uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_shm_create_pixmap*(c: ptr xcb_connection_t; pid: xcb_pixmap_t;
# drawable: xcb_drawable_t; width: uint16;
# height: uint16; depth: uint8; shmseg: xcb_shm_seg_t;
# offset: uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_shm_attach_fd_checked*(c: ptr xcb_connection_t; shmseg: xcb_shm_seg_t;
# shm_fd: int32; read_only: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_shm_attach_fd*(c: ptr xcb_connection_t; shmseg: xcb_shm_seg_t;
# shm_fd: int32; read_only: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_shm_create_segment*(c: ptr xcb_connection_t; shmseg: xcb_shm_seg_t;
# size: uint32; read_only: uint8): xcb_shm_create_segment_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_shm_create_segment_unchecked*(c: ptr xcb_connection_t;
# shmseg: xcb_shm_seg_t; size: uint32;
# read_only: uint8): xcb_shm_create_segment_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_shm_create_segment_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_shm_create_segment_reply*(c: ptr xcb_connection_t; cookie: xcb_shm_create_segment_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_shm_create_segment_reply_t
# ## *
# ## Return the reply fds
# ## @param c The connection
# ## @param reply The reply
# ##
# ## Returns the array of reply fds of the request asked by
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_shm_create_segment_reply_fds*(c: ptr xcb_connection_t; ## *<
# reply: ptr xcb_shm_create_segment_reply_t): ptr cint
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from sync.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB_Sync_API XCB Sync API
# ## @brief Sync XCB Protocol Implementation.
# ## @{
# ##
# import
# xcb, xproto
# const
# XCB_SYNC_MAJOR_VERSION* = 3
# XCB_SYNC_MINOR_VERSION* = 1
# var xcb_sync_id*: xcb_extension_t
# type
# xcb_sync_alarm_t* = uint32
# ## *
# ## @brief xcb_sync_alarm_iterator_t
# ##
# type
# xcb_sync_alarm_iterator_t* {.bycopy.} = object
# data*: ptr xcb_sync_alarm_t
# rem*: cint
# index*: cint
# xcb_sync_alarmstate_t* = enum
# XCB_SYNC_ALARMSTATE_ACTIVE = 0, XCB_SYNC_ALARMSTATE_INACTIVE = 1,
# XCB_SYNC_ALARMSTATE_DESTROYED = 2
# xcb_sync_counter_t* = uint32
# ## *
# ## @brief xcb_sync_counter_iterator_t
# ##
# type
# xcb_sync_counter_iterator_t* {.bycopy.} = object
# data*: ptr xcb_sync_counter_t
# rem*: cint
# index*: cint
# xcb_sync_fence_t* = uint32
# ## *
# ## @brief xcb_sync_fence_iterator_t
# ##
# type
# xcb_sync_fence_iterator_t* {.bycopy.} = object
# data*: ptr xcb_sync_fence_t
# rem*: cint
# index*: cint
# xcb_sync_testtype_t* = enum
# XCB_SYNC_TESTTYPE_POSITIVE_TRANSITION = 0,
# XCB_SYNC_TESTTYPE_NEGATIVE_TRANSITION = 1,
# XCB_SYNC_TESTTYPE_POSITIVE_COMPARISON = 2,
# XCB_SYNC_TESTTYPE_NEGATIVE_COMPARISON = 3
# xcb_sync_valuetype_t* = enum
# XCB_SYNC_VALUETYPE_ABSOLUTE = 0, XCB_SYNC_VALUETYPE_RELATIVE = 1
# xcb_sync_ca_t* = enum
# XCB_SYNC_CA_COUNTER = 1, XCB_SYNC_CA_VALUE_TYPE = 2, XCB_SYNC_CA_VALUE = 4,
# XCB_SYNC_CA_TEST_TYPE = 8, XCB_SYNC_CA_DELTA = 16, XCB_SYNC_CA_EVENTS = 32
# ## *
# ## @brief xcb_sync_int64_t
# ##
# type
# xcb_sync_int64_t* {.bycopy.} = object
# hi*: int32
# lo*: uint32
# ## *
# ## @brief xcb_sync_int64_iterator_t
# ##
# type
# xcb_sync_int64_iterator_t* {.bycopy.} = object
# data*: ptr xcb_sync_int64_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_sync_systemcounter_t
# ##
# type
# xcb_sync_systemcounter_t* {.bycopy.} = object
# counter*: xcb_sync_counter_t
# resolution*: xcb_sync_int64_t
# name_len*: uint16
# ## *
# ## @brief xcb_sync_systemcounter_iterator_t
# ##
# type
# xcb_sync_systemcounter_iterator_t* {.bycopy.} = object
# data*: ptr xcb_sync_systemcounter_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_sync_trigger_t
# ##
# type
# xcb_sync_trigger_t* {.bycopy.} = object
# counter*: xcb_sync_counter_t
# wait_type*: uint32
# wait_value*: xcb_sync_int64_t
# test_type*: uint32
# ## *
# ## @brief xcb_sync_trigger_iterator_t
# ##
# type
# xcb_sync_trigger_iterator_t* {.bycopy.} = object
# data*: ptr xcb_sync_trigger_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_sync_waitcondition_t
# ##
# type
# xcb_sync_waitcondition_t* {.bycopy.} = object
# trigger*: xcb_sync_trigger_t
# event_threshold*: xcb_sync_int64_t
# ## *
# ## @brief xcb_sync_waitcondition_iterator_t
# ##
# type
# xcb_sync_waitcondition_iterator_t* {.bycopy.} = object
# data*: ptr xcb_sync_waitcondition_t
# rem*: cint
# index*: cint
# ## * Opcode for xcb_sync_counter.
# const
# XCB_SYNC_COUNTER* = 0
# ## *
# ## @brief xcb_sync_counter_error_t
# ##
# type
# xcb_sync_counter_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# bad_counter*: uint32
# minor_opcode*: uint16
# major_opcode*: uint8
# ## * Opcode for xcb_sync_alarm.
# const
# XCB_SYNC_ALARM* = 1
# ## *
# ## @brief xcb_sync_alarm_error_t
# ##
# type
# xcb_sync_alarm_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# bad_alarm*: uint32
# minor_opcode*: uint16
# major_opcode*: uint8
# ## *
# ## @brief xcb_sync_initialize_cookie_t
# ##
# type
# xcb_sync_initialize_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_sync_initialize.
# const
# XCB_SYNC_INITIALIZE* = 0
# ## *
# ## @brief xcb_sync_initialize_request_t
# ##
# type
# xcb_sync_initialize_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# desired_major_version*: uint8
# desired_minor_version*: uint8
# ## *
# ## @brief xcb_sync_initialize_reply_t
# ##
# type
# xcb_sync_initialize_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# major_version*: uint8
# minor_version*: uint8
# pad1*: array[22, uint8]
# ## *
# ## @brief xcb_sync_list_system_counters_cookie_t
# ##
# type
# xcb_sync_list_system_counters_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_sync_list_system_counters.
# const
# XCB_SYNC_LIST_SYSTEM_COUNTERS* = 1
# ## *
# ## @brief xcb_sync_list_system_counters_request_t
# ##
# type
# xcb_sync_list_system_counters_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_sync_list_system_counters_reply_t
# ##
# type
# xcb_sync_list_system_counters_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# counters_len*: uint32
# pad1*: array[20, uint8]
# ## * Opcode for xcb_sync_create_counter.
# const
# XCB_SYNC_CREATE_COUNTER* = 2
# ## *
# ## @brief xcb_sync_create_counter_request_t
# ##
# type
# xcb_sync_create_counter_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# id*: xcb_sync_counter_t
# initial_value*: xcb_sync_int64_t
# ## * Opcode for xcb_sync_destroy_counter.
# const
# XCB_SYNC_DESTROY_COUNTER* = 6
# ## *
# ## @brief xcb_sync_destroy_counter_request_t
# ##
# type
# xcb_sync_destroy_counter_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# counter*: xcb_sync_counter_t
# ## *
# ## @brief xcb_sync_query_counter_cookie_t
# ##
# type
# xcb_sync_query_counter_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_sync_query_counter.
# const
# XCB_SYNC_QUERY_COUNTER* = 5
# ## *
# ## @brief xcb_sync_query_counter_request_t
# ##
# type
# xcb_sync_query_counter_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# counter*: xcb_sync_counter_t
# ## *
# ## @brief xcb_sync_query_counter_reply_t
# ##
# type
# xcb_sync_query_counter_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# counter_value*: xcb_sync_int64_t
# ## * Opcode for xcb_sync_await.
# const
# XCB_SYNC_AWAIT* = 7
# ## *
# ## @brief xcb_sync_await_request_t
# ##
# type
# xcb_sync_await_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## * Opcode for xcb_sync_change_counter.
# const
# XCB_SYNC_CHANGE_COUNTER* = 4
# ## *
# ## @brief xcb_sync_change_counter_request_t
# ##
# type
# xcb_sync_change_counter_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# counter*: xcb_sync_counter_t
# amount*: xcb_sync_int64_t
# ## * Opcode for xcb_sync_set_counter.
# const
# XCB_SYNC_SET_COUNTER* = 3
# ## *
# ## @brief xcb_sync_set_counter_request_t
# ##
# type
# xcb_sync_set_counter_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# counter*: xcb_sync_counter_t
# value*: xcb_sync_int64_t
# ## *
# ## @brief xcb_sync_create_alarm_value_list_t
# ##
# type
# xcb_sync_create_alarm_value_list_t* {.bycopy.} = object
# counter*: xcb_sync_counter_t
# valueType*: uint32
# value*: xcb_sync_int64_t
# testType*: uint32
# delta*: xcb_sync_int64_t
# events*: uint32
# ## * Opcode for xcb_sync_create_alarm.
# const
# XCB_SYNC_CREATE_ALARM* = 8
# ## *
# ## @brief xcb_sync_create_alarm_request_t
# ##
# type
# xcb_sync_create_alarm_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# id*: xcb_sync_alarm_t
# value_mask*: uint32
# ## *
# ## @brief xcb_sync_change_alarm_value_list_t
# ##
# type
# xcb_sync_change_alarm_value_list_t* {.bycopy.} = object
# counter*: xcb_sync_counter_t
# valueType*: uint32
# value*: xcb_sync_int64_t
# testType*: uint32
# delta*: xcb_sync_int64_t
# events*: uint32
# ## * Opcode for xcb_sync_change_alarm.
# const
# XCB_SYNC_CHANGE_ALARM* = 9
# ## *
# ## @brief xcb_sync_change_alarm_request_t
# ##
# type
# xcb_sync_change_alarm_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# id*: xcb_sync_alarm_t
# value_mask*: uint32
# ## * Opcode for xcb_sync_destroy_alarm.
# const
# XCB_SYNC_DESTROY_ALARM* = 11
# ## *
# ## @brief xcb_sync_destroy_alarm_request_t
# ##
# type
# xcb_sync_destroy_alarm_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# alarm*: xcb_sync_alarm_t
# ## *
# ## @brief xcb_sync_query_alarm_cookie_t
# ##
# type
# xcb_sync_query_alarm_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_sync_query_alarm.
# const
# XCB_SYNC_QUERY_ALARM* = 10
# ## *
# ## @brief xcb_sync_query_alarm_request_t
# ##
# type
# xcb_sync_query_alarm_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# alarm*: xcb_sync_alarm_t
# ## *
# ## @brief xcb_sync_query_alarm_reply_t
# ##
# type
# xcb_sync_query_alarm_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# trigger*: xcb_sync_trigger_t
# delta*: xcb_sync_int64_t
# events*: uint8
# state*: uint8
# pad1*: array[2, uint8]
# ## * Opcode for xcb_sync_set_priority.
# const
# XCB_SYNC_SET_PRIORITY* = 12
# ## *
# ## @brief xcb_sync_set_priority_request_t
# ##
# type
# xcb_sync_set_priority_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# id*: uint32
# priority*: int32
# ## *
# ## @brief xcb_sync_get_priority_cookie_t
# ##
# type
# xcb_sync_get_priority_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_sync_get_priority.
# const
# XCB_SYNC_GET_PRIORITY* = 13
# ## *
# ## @brief xcb_sync_get_priority_request_t
# ##
# type
# xcb_sync_get_priority_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# id*: uint32
# ## *
# ## @brief xcb_sync_get_priority_reply_t
# ##
# type
# xcb_sync_get_priority_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# priority*: int32
# ## * Opcode for xcb_sync_create_fence.
# const
# XCB_SYNC_CREATE_FENCE* = 14
# ## *
# ## @brief xcb_sync_create_fence_request_t
# ##
# type
# xcb_sync_create_fence_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# fence*: xcb_sync_fence_t
# initially_triggered*: uint8
# ## * Opcode for xcb_sync_trigger_fence.
# const
# XCB_SYNC_TRIGGER_FENCE* = 15
# ## *
# ## @brief xcb_sync_trigger_fence_request_t
# ##
# type
# xcb_sync_trigger_fence_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# fence*: xcb_sync_fence_t
# ## * Opcode for xcb_sync_reset_fence.
# const
# XCB_SYNC_RESET_FENCE* = 16
# ## *
# ## @brief xcb_sync_reset_fence_request_t
# ##
# type
# xcb_sync_reset_fence_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# fence*: xcb_sync_fence_t
# ## * Opcode for xcb_sync_destroy_fence.
# const
# XCB_SYNC_DESTROY_FENCE* = 17
# ## *
# ## @brief xcb_sync_destroy_fence_request_t
# ##
# type
# xcb_sync_destroy_fence_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# fence*: xcb_sync_fence_t
# ## *
# ## @brief xcb_sync_query_fence_cookie_t
# ##
# type
# xcb_sync_query_fence_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_sync_query_fence.
# const
# XCB_SYNC_QUERY_FENCE* = 18
# ## *
# ## @brief xcb_sync_query_fence_request_t
# ##
# type
# xcb_sync_query_fence_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# fence*: xcb_sync_fence_t
# ## *
# ## @brief xcb_sync_query_fence_reply_t
# ##
# type
# xcb_sync_query_fence_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# triggered*: uint8
# pad1*: array[23, uint8]
# ## * Opcode for xcb_sync_await_fence.
# const
# XCB_SYNC_AWAIT_FENCE* = 19
# ## *
# ## @brief xcb_sync_await_fence_request_t
# ##
# type
# xcb_sync_await_fence_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## * Opcode for xcb_sync_counter_notify.
# const
# XCB_SYNC_COUNTER_NOTIFY* = 0
# ## *
# ## @brief xcb_sync_counter_notify_event_t
# ##
# type
# xcb_sync_counter_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# kind*: uint8
# sequence*: uint16
# counter*: xcb_sync_counter_t
# wait_value*: xcb_sync_int64_t
# counter_value*: xcb_sync_int64_t
# timestamp*: xcb_timestamp_t
# count*: uint16
# destroyed*: uint8
# pad0*: uint8
# ## * Opcode for xcb_sync_alarm_notify.
# const
# XCB_SYNC_ALARM_NOTIFY* = 1
# ## *
# ## @brief xcb_sync_alarm_notify_event_t
# ##
# type
# xcb_sync_alarm_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# kind*: uint8
# sequence*: uint16
# alarm*: xcb_sync_alarm_t
# counter_value*: xcb_sync_int64_t
# alarm_value*: xcb_sync_int64_t
# timestamp*: xcb_timestamp_t
# state*: uint8
# pad0*: array[3, uint8]
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_sync_alarm_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_sync_alarm_t)
# ##
# proc xcb_sync_alarm_next*(i: ptr xcb_sync_alarm_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_sync_alarm_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_sync_alarm_end*(i: xcb_sync_alarm_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_sync_counter_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_sync_counter_t)
# ##
# proc xcb_sync_counter_next*(i: ptr xcb_sync_counter_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_sync_counter_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_sync_counter_end*(i: xcb_sync_counter_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_sync_fence_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_sync_fence_t)
# ##
# proc xcb_sync_fence_next*(i: ptr xcb_sync_fence_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_sync_fence_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_sync_fence_end*(i: xcb_sync_fence_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_sync_int64_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_sync_int64_t)
# ##
# proc xcb_sync_int64_next*(i: ptr xcb_sync_int64_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_sync_int64_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_sync_int64_end*(i: xcb_sync_int64_iterator_t): xcb_generic_iterator_t
# proc xcb_sync_systemcounter_sizeof*(_buffer: pointer): cint
# proc xcb_sync_systemcounter_name*(R: ptr xcb_sync_systemcounter_t): cstring
# proc xcb_sync_systemcounter_name_length*(R: ptr xcb_sync_systemcounter_t): cint
# proc xcb_sync_systemcounter_name_end*(R: ptr xcb_sync_systemcounter_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_sync_systemcounter_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_sync_systemcounter_t)
# ##
# proc xcb_sync_systemcounter_next*(i: ptr xcb_sync_systemcounter_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_sync_systemcounter_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_sync_systemcounter_end*(i: xcb_sync_systemcounter_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_sync_trigger_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_sync_trigger_t)
# ##
# proc xcb_sync_trigger_next*(i: ptr xcb_sync_trigger_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_sync_trigger_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_sync_trigger_end*(i: xcb_sync_trigger_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_sync_waitcondition_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_sync_waitcondition_t)
# ##
# proc xcb_sync_waitcondition_next*(i: ptr xcb_sync_waitcondition_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_sync_waitcondition_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_sync_waitcondition_end*(i: xcb_sync_waitcondition_iterator_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_sync_initialize*(c: ptr xcb_connection_t; desired_major_version: uint8;
# desired_minor_version: uint8): xcb_sync_initialize_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_sync_initialize_unchecked*(c: ptr xcb_connection_t;
# desired_major_version: uint8;
# desired_minor_version: uint8): xcb_sync_initialize_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_sync_initialize_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_sync_initialize_reply*(c: ptr xcb_connection_t; cookie: xcb_sync_initialize_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_sync_initialize_reply_t
# proc xcb_sync_list_system_counters_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_sync_list_system_counters*(c: ptr xcb_connection_t): xcb_sync_list_system_counters_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_sync_list_system_counters_unchecked*(c: ptr xcb_connection_t): xcb_sync_list_system_counters_cookie_t
# proc xcb_sync_list_system_counters_counters_length*(
# R: ptr xcb_sync_list_system_counters_reply_t): cint
# proc xcb_sync_list_system_counters_counters_iterator*(
# R: ptr xcb_sync_list_system_counters_reply_t): xcb_sync_systemcounter_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_sync_list_system_counters_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_sync_list_system_counters_reply*(c: ptr xcb_connection_t; cookie: xcb_sync_list_system_counters_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_sync_list_system_counters_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_sync_create_counter_checked*(c: ptr xcb_connection_t;
# id: xcb_sync_counter_t;
# initial_value: xcb_sync_int64_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_sync_create_counter*(c: ptr xcb_connection_t; id: xcb_sync_counter_t;
# initial_value: xcb_sync_int64_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_sync_destroy_counter_checked*(c: ptr xcb_connection_t;
# counter: xcb_sync_counter_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_sync_destroy_counter*(c: ptr xcb_connection_t; counter: xcb_sync_counter_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_sync_query_counter*(c: ptr xcb_connection_t; counter: xcb_sync_counter_t): xcb_sync_query_counter_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_sync_query_counter_unchecked*(c: ptr xcb_connection_t;
# counter: xcb_sync_counter_t): xcb_sync_query_counter_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_sync_query_counter_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_sync_query_counter_reply*(c: ptr xcb_connection_t; cookie: xcb_sync_query_counter_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_sync_query_counter_reply_t
# proc xcb_sync_await_sizeof*(_buffer: pointer; wait_list_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_sync_await_checked*(c: ptr xcb_connection_t; wait_list_len: uint32;
# wait_list: ptr xcb_sync_waitcondition_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_sync_await*(c: ptr xcb_connection_t; wait_list_len: uint32;
# wait_list: ptr xcb_sync_waitcondition_t): xcb_void_cookie_t
# proc xcb_sync_await_wait_list*(R: ptr xcb_sync_await_request_t): ptr xcb_sync_waitcondition_t
# proc xcb_sync_await_wait_list_length*(R: ptr xcb_sync_await_request_t): cint
# proc xcb_sync_await_wait_list_iterator*(R: ptr xcb_sync_await_request_t): xcb_sync_waitcondition_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_sync_change_counter_checked*(c: ptr xcb_connection_t;
# counter: xcb_sync_counter_t;
# amount: xcb_sync_int64_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_sync_change_counter*(c: ptr xcb_connection_t; counter: xcb_sync_counter_t;
# amount: xcb_sync_int64_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_sync_set_counter_checked*(c: ptr xcb_connection_t;
# counter: xcb_sync_counter_t;
# value: xcb_sync_int64_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_sync_set_counter*(c: ptr xcb_connection_t; counter: xcb_sync_counter_t;
# value: xcb_sync_int64_t): xcb_void_cookie_t
# proc xcb_sync_create_alarm_value_list_serialize*(_buffer: ptr pointer;
# value_mask: uint32; _aux: ptr xcb_sync_create_alarm_value_list_t): cint
# proc xcb_sync_create_alarm_value_list_unpack*(_buffer: pointer;
# value_mask: uint32; _aux: ptr xcb_sync_create_alarm_value_list_t): cint
# proc xcb_sync_create_alarm_value_list_sizeof*(_buffer: pointer;
# value_mask: uint32): cint
# proc xcb_sync_create_alarm_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_sync_create_alarm_checked*(c: ptr xcb_connection_t; id: xcb_sync_alarm_t;
# value_mask: uint32; value_list: pointer): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_sync_create_alarm*(c: ptr xcb_connection_t; id: xcb_sync_alarm_t;
# value_mask: uint32; value_list: pointer): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_sync_create_alarm_aux_checked*(c: ptr xcb_connection_t;
# id: xcb_sync_alarm_t; value_mask: uint32;
# value_list: ptr xcb_sync_create_alarm_value_list_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_sync_create_alarm_aux*(c: ptr xcb_connection_t; id: xcb_sync_alarm_t;
# value_mask: uint32; value_list: ptr xcb_sync_create_alarm_value_list_t): xcb_void_cookie_t
# proc xcb_sync_create_alarm_value_list*(R: ptr xcb_sync_create_alarm_request_t): pointer
# proc xcb_sync_change_alarm_value_list_serialize*(_buffer: ptr pointer;
# value_mask: uint32; _aux: ptr xcb_sync_change_alarm_value_list_t): cint
# proc xcb_sync_change_alarm_value_list_unpack*(_buffer: pointer;
# value_mask: uint32; _aux: ptr xcb_sync_change_alarm_value_list_t): cint
# proc xcb_sync_change_alarm_value_list_sizeof*(_buffer: pointer;
# value_mask: uint32): cint
# proc xcb_sync_change_alarm_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_sync_change_alarm_checked*(c: ptr xcb_connection_t; id: xcb_sync_alarm_t;
# value_mask: uint32; value_list: pointer): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_sync_change_alarm*(c: ptr xcb_connection_t; id: xcb_sync_alarm_t;
# value_mask: uint32; value_list: pointer): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_sync_change_alarm_aux_checked*(c: ptr xcb_connection_t;
# id: xcb_sync_alarm_t; value_mask: uint32;
# value_list: ptr xcb_sync_change_alarm_value_list_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_sync_change_alarm_aux*(c: ptr xcb_connection_t; id: xcb_sync_alarm_t;
# value_mask: uint32; value_list: ptr xcb_sync_change_alarm_value_list_t): xcb_void_cookie_t
# proc xcb_sync_change_alarm_value_list*(R: ptr xcb_sync_change_alarm_request_t): pointer
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_sync_destroy_alarm_checked*(c: ptr xcb_connection_t;
# alarm: xcb_sync_alarm_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_sync_destroy_alarm*(c: ptr xcb_connection_t; alarm: xcb_sync_alarm_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_sync_query_alarm*(c: ptr xcb_connection_t; alarm: xcb_sync_alarm_t): xcb_sync_query_alarm_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_sync_query_alarm_unchecked*(c: ptr xcb_connection_t;
# alarm: xcb_sync_alarm_t): xcb_sync_query_alarm_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_sync_query_alarm_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_sync_query_alarm_reply*(c: ptr xcb_connection_t; cookie: xcb_sync_query_alarm_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_sync_query_alarm_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_sync_set_priority_checked*(c: ptr xcb_connection_t; id: uint32;
# priority: int32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_sync_set_priority*(c: ptr xcb_connection_t; id: uint32; priority: int32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_sync_get_priority*(c: ptr xcb_connection_t; id: uint32): xcb_sync_get_priority_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_sync_get_priority_unchecked*(c: ptr xcb_connection_t; id: uint32): xcb_sync_get_priority_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_sync_get_priority_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_sync_get_priority_reply*(c: ptr xcb_connection_t; cookie: xcb_sync_get_priority_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_sync_get_priority_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_sync_create_fence_checked*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t;
# fence: xcb_sync_fence_t;
# initially_triggered: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_sync_create_fence*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# fence: xcb_sync_fence_t; initially_triggered: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_sync_trigger_fence_checked*(c: ptr xcb_connection_t;
# fence: xcb_sync_fence_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_sync_trigger_fence*(c: ptr xcb_connection_t; fence: xcb_sync_fence_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_sync_reset_fence_checked*(c: ptr xcb_connection_t; fence: xcb_sync_fence_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_sync_reset_fence*(c: ptr xcb_connection_t; fence: xcb_sync_fence_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_sync_destroy_fence_checked*(c: ptr xcb_connection_t;
# fence: xcb_sync_fence_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_sync_destroy_fence*(c: ptr xcb_connection_t; fence: xcb_sync_fence_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_sync_query_fence*(c: ptr xcb_connection_t; fence: xcb_sync_fence_t): xcb_sync_query_fence_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_sync_query_fence_unchecked*(c: ptr xcb_connection_t;
# fence: xcb_sync_fence_t): xcb_sync_query_fence_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_sync_query_fence_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_sync_query_fence_reply*(c: ptr xcb_connection_t; cookie: xcb_sync_query_fence_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_sync_query_fence_reply_t
# proc xcb_sync_await_fence_sizeof*(_buffer: pointer; fence_list_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_sync_await_fence_checked*(c: ptr xcb_connection_t;
# fence_list_len: uint32;
# fence_list: ptr xcb_sync_fence_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_sync_await_fence*(c: ptr xcb_connection_t; fence_list_len: uint32;
# fence_list: ptr xcb_sync_fence_t): xcb_void_cookie_t
# proc xcb_sync_await_fence_fence_list*(R: ptr xcb_sync_await_fence_request_t): ptr xcb_sync_fence_t
# proc xcb_sync_await_fence_fence_list_length*(
# R: ptr xcb_sync_await_fence_request_t): cint
# proc xcb_sync_await_fence_fence_list_end*(R: ptr xcb_sync_await_fence_request_t): xcb_generic_iterator_t
# ## *
# ## @}
# ##
# proc xcb_atom_name_by_screen*(base: cstring; screen: uint8): cstring
# proc xcb_atom_name_by_resource*(base: cstring; resource: uint32): cstring
# proc xcb_atom_name_unique*(base: cstring; id: uint32): cstring
# proc xcb_aux_get_depth*(c: ptr xcb_connection_t; screen: ptr xcb_screen_t): uint8
# proc xcb_aux_get_depth_of_visual*(screen: ptr xcb_screen_t; id: xcb_visualid_t): uint8
# proc xcb_aux_get_screen*(c: ptr xcb_connection_t; screen: cint): ptr xcb_screen_t
# proc xcb_aux_get_visualtype*(c: ptr xcb_connection_t; screen: cint;
# vid: xcb_visualid_t): ptr xcb_visualtype_t
# proc xcb_aux_find_visual_by_id*(screen: ptr xcb_screen_t; id: xcb_visualid_t): ptr xcb_visualtype_t
# proc xcb_aux_find_visual_by_attrs*(screen: ptr xcb_screen_t; class_: int8;
# depth: int8): ptr xcb_visualtype_t
# proc xcb_aux_sync*(c: ptr xcb_connection_t)
# ## internal helper macro for XCB_AUX_ADD_PARAM
# ## It gives the offset of the field 'param' in the structure pointed to by
# ## 'paramsp' in multiples of an uint32's size.
# template XCB_AUX_INTERNAL_OFFSETOF*(paramsp, param: untyped): untyped =
# (cast[ptr uint32]((addr(((paramsp).param)))) - cast[ptr uint32]((paramsp)))
# ## add an optional parameter to an xcb_params_* structure
# ## parameters:
# ## maskp: pointer to bitmask whos bits mark used parameters
# ## paramsp: pointer to structure with parameters
# ## param: parameter to set
# ## value: value to set the parameter to
# ##
# template XCB_AUX_ADD_PARAM*(maskp, paramsp, param, value: untyped): untyped =
# (
# ((maskp)[] = (maskp)[] or 1 shl XCB_AUX_INTERNAL_OFFSETOF((paramsp), param))
# ((paramsp).param = (value)))
# type
# xcb_params_cw_t* {.bycopy.} = object
# back_pixmap*: uint32
# back_pixel*: uint32
# border_pixmap*: uint32
# border_pixel*: uint32
# bit_gravity*: uint32
# win_gravity*: uint32
# backing_store*: uint32
# backing_planes*: uint32
# backing_pixel*: uint32
# override_redirect*: uint32
# save_under*: uint32
# event_mask*: uint32
# dont_propagate*: uint32
# colormap*: uint32
# cursor*: uint32
# proc xcb_aux_create_window*(c: ptr xcb_connection_t; depth: uint8;
# wid: xcb_window_t; parent: xcb_window_t; x: int16;
# y: int16; width: uint16; height: uint16;
# border_width: uint16; class_: uint16;
# visual: xcb_visualid_t; mask: uint32;
# params: ptr xcb_params_cw_t): xcb_void_cookie_t
# proc xcb_aux_create_window_checked*(c: ptr xcb_connection_t; depth: uint8;
# wid: xcb_window_t; parent: xcb_window_t;
# x: int16; y: int16; width: uint16;
# height: uint16; border_width: uint16;
# class_: uint16; visual: xcb_visualid_t;
# mask: uint32; params: ptr xcb_params_cw_t): xcb_void_cookie_t
# proc xcb_aux_change_window_attributes*(c: ptr xcb_connection_t;
# window: xcb_window_t; mask: uint32;
# params: ptr xcb_params_cw_t): xcb_void_cookie_t
# proc xcb_aux_change_window_attributes_checked*(c: ptr xcb_connection_t;
# window: xcb_window_t; mask: uint32; params: ptr xcb_params_cw_t): xcb_void_cookie_t
# type
# xcb_params_configure_window_t* {.bycopy.} = object
# x*: int32
# y*: int32
# width*: uint32
# height*: uint32
# border_width*: uint32
# sibling*: uint32
# stack_mode*: uint32
# proc xcb_aux_configure_window*(c: ptr xcb_connection_t; window: xcb_window_t;
# mask: uint16;
# params: ptr xcb_params_configure_window_t): xcb_void_cookie_t
# type
# xcb_params_gc_t* {.bycopy.} = object
# function*: uint32
# plane_mask*: uint32
# foreground*: uint32
# background*: uint32
# line_width*: uint32
# line_style*: uint32
# cap_style*: uint32
# join_style*: uint32
# fill_style*: uint32
# fill_rule*: uint32
# tile*: uint32
# stipple*: uint32
# tile_stipple_origin_x*: uint32
# tile_stipple_origin_y*: uint32
# font*: uint32
# subwindow_mode*: uint32
# graphics_exposures*: uint32
# clip_originX*: uint32
# clip_originY*: uint32
# mask*: uint32
# dash_offset*: uint32
# dash_list*: uint32
# arc_mode*: uint32
# proc xcb_aux_create_gc*(c: ptr xcb_connection_t; cid: xcb_gcontext_t;
# drawable: xcb_drawable_t; mask: uint32;
# params: ptr xcb_params_gc_t): xcb_void_cookie_t
# proc xcb_aux_create_gc_checked*(c: ptr xcb_connection_t; gid: xcb_gcontext_t;
# drawable: xcb_drawable_t; mask: uint32;
# params: ptr xcb_params_gc_t): xcb_void_cookie_t
# proc xcb_aux_change_gc*(c: ptr xcb_connection_t; gc: xcb_gcontext_t; mask: uint32;
# params: ptr xcb_params_gc_t): xcb_void_cookie_t
# proc xcb_aux_change_gc_checked*(c: ptr xcb_connection_t; gc: xcb_gcontext_t;
# mask: uint32; params: ptr xcb_params_gc_t): xcb_void_cookie_t
# type
# xcb_params_keyboard_t* {.bycopy.} = object
# key_click_percent*: uint32
# bell_percent*: uint32
# bell_pitch*: uint32
# bell_duration*: uint32
# led*: uint32
# led_mode*: uint32
# key*: uint32
# auto_repeat_mode*: uint32
# proc xcb_aux_change_keyboard_control*(c: ptr xcb_connection_t; mask: uint32;
# params: ptr xcb_params_keyboard_t): xcb_void_cookie_t
# proc xcb_aux_parse_color*(color_name: cstring; red: ptr uint16; green: ptr uint16;
# blue: ptr uint16): cint
# proc xcb_aux_set_line_attributes_checked*(dpy: ptr xcb_connection_t;
# gc: xcb_gcontext_t; linewidth: uint16; linestyle: int32; capstyle: int32;
# joinstyle: int32): xcb_void_cookie_t
# proc xcb_aux_clear_window*(dpy: ptr xcb_connection_t; w: xcb_window_t): xcb_void_cookie_t
# ## Copyright (C) 2007 Bart Massey
# ##
# ## Permission is hereby granted, free of charge, to any person obtaining a
# ## copy of this software and associated documentation files (the "Software"),
# ## to deal in the Software without restriction, including without limitation
# ## the rights to use, copy, modify, merge, publish, distribute, sublicense,
# ## and/or sell copies of the Software, and to permit persons to whom the
# ## Software is furnished to do so, subject to the following conditions:
# ##
# ## The above copyright notice and this permission notice shall be included in
# ## all copies or substantial portions of the Software.
# ##
# ## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# ## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# ## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# ## AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
# ## ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# ## CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# ##
# ## Except as contained in this notice, the names of the authors or their
# ## institutions shall not be used in advertising or otherwise to promote the
# ## sale, use or other dealings in this Software without prior written
# ## authorization from the authors.
# ##
# ## *
# ## @defgroup xcb__bitops XCB Bit Operations
# ##
# ## Inline functions for common bit ops used in XCB and elsewhere.
# ##
# ## @{
# ##
# ## *
# ## Create a low-order bitmask.
# ## @param n Mask size.
# ## @return Mask.
# ##
# ## Create a bitmask with the lower @p n bits set and the
# ## rest of the word clear.
# ## @ingroup xcb__bitops
# ##
# proc xcb_mask*(n: uint32): uint32 =
# return if n == 32: not 0 else: (1 shl n) - 1
# ## *
# ## Population count.
# ## @param n Integer representing a bitset.
# ## @return Number of 1 bits in the bitset.
# ##
# ## This is a reasonably fast algorithm for counting the bits
# ## in a 32-bit word. Currently a classic binary
# ## divide-and-conquer popcount: popcount_2() from
# ## http://en.wikipedia.org/wiki/Hamming_weight.
# ## @ingroup xcb__bitops
# ##
# ## 15 ops, 3 long immediates, 14 stages, 9 alu ops, 9 alu stages
# proc xcb_popcount*(x: uint32): uint32 =
# var m1: uint32 = 0x55555555
# var m2: uint32 = 0x33333333
# var m4: uint32 = 0x0F0F0F0F
# dec(x, (x shr 1) and m1)
# x = (x and m2) + ((x shr 2) and m2)
# x = (x + (x shr 4)) and m4
# inc(x, x shr 8)
# return (x + (x shr 16)) and 0x0000003F
# ## *
# ## Round up to the next power-of-two unit size.
# ## @param base Number to be rounded up.
# ## @param pad Multiple to be rounded to; must be a power of two.
# ## @return Rounded-up number.
# ##
# ## Rounds @p base up to a multiple of @p pad, where @p pad
# ## is a power of two. The more general case is handled by
# ## xcb_roundup().
# ## @ingroup xcb__bitops
# ##
# proc xcb_roundup_2*(base: uint32; pad: uint32): uint32 =
# return (base + pad - 1) and -pad
# ## *
# ## Round down to the next power-of-two unit size.
# ## @param base Number to be rounded down.
# ## @param pad Multiple to be rounded to; must be a power of two.
# ## @return Rounded-down number.
# ##
# ## Rounds @p base down to a multiple of @p pad, where @p pad
# ## is a power of two. The more general case is handled by
# ## xcb_rounddown().
# ## @ingroup xcb__bitops
# ##
# proc xcb_rounddown_2*(base: uint32; pad: uint32): uint32 =
# return base and -pad
# ## *
# ## Round up to the next unit size.
# ## @param base Number to be rounded up.
# ## @param pad Multiple to be rounded to.
# ## @return Rounded-up number.
# ##
# ## This is a general routine for rounding @p base up
# ## to a multiple of @p pad. If you know that @p pad
# ## is a power of two, you should probably call xcb_roundup_2()
# ## instead.
# ## @ingroup xcb__bitops
# ##
# proc xcb_roundup*(base: uint32; pad: uint32): uint32 =
# var b: uint32 = base + pad - 1
# ## faster if pad is a power of two
# if ((pad - 1) and pad) == 0:
# return b and -pad
# return b - b mod pad
# ## *
# ## Round down to the next unit size.
# ## @param base Number to be rounded down.
# ## @param pad Multiple to be rounded to.
# ## @return Rounded-down number.
# ##
# ## This is a general routine for rounding @p base down
# ## to a multiple of @p pad. If you know that @p pad
# ## is a power of two, you should probably call xcb_rounddown_2()
# ## instead.
# ## @ingroup xcb__bitops
# ##
# proc xcb_rounddown*(base: uint32; pad: uint32): uint32 =
# ## faster if pad is a power of two
# if ((pad - 1) and pad) == 0:
# return base and -pad
# return base - base mod pad
# ## *
# ## Reverse bits of word.
# ## @param x Target word.
# ## @param n Number of low-order bits to reverse.
# ## @return Word with low @p n bits reversed, all others 0.
# ##
# ## Reverses the bottom @p n bits of @p x.
# ## @ingroup xcb__bitops
# ##
# proc xcb_bit_reverse*(x: uint32; n: uint8): uint32 =
# var m1: uint32 = 0x00FF00FF
# var m2: uint32 = 0x0F0F0F0F
# var m3: uint32 = 0x33333333
# var m4: uint32 = 0x55555555
# x = ((x shl 16) or (x shr 16))
# x = ((x and m1) shl 8) or ((x shr 8) and m1)
# x = ((x and m2) shl 4) or ((x shr 4) and m2)
# x = ((x and m3) shl 2) or ((x shr 2) and m3)
# x = ((x and m4) shl 1) or ((x shr 1) and m4)
# x = x shr (32 - n)
# return x
# ## *
# ## Host byte order.
# ## @return The byte order of the host.
# ##
# ## Tests the host's byte order and returns either
# ## XCB_IMAGE_ORDER_MSB_FIRST or XCB_IMAGE_ORDER_LSB_FIRST
# ## as appropriate.
# ## @ingroup xcb__bitops
# ##
# proc xcb_host_byte_order*(): xcb_image_order_t =
# var endian_test: uint32 = 0x01020304
# case cast[cstring](addr(endian_test))[]
# of 0x00000001:
# return XCB_IMAGE_ORDER_MSB_FIRST
# of 0x00000004:
# return XCB_IMAGE_ORDER_LSB_FIRST
# assert(0)
# ## Copyright © 2013 Michael Stapelberg
# ##
# ## Permission is hereby granted, free of charge, to any person obtaining a
# ## copy of this software and associated documentation files (the "Software"),
# ## to deal in the Software without restriction, including without limitation
# ## the rights to use, copy, modify, merge, publish, distribute, sublicense,
# ## and/or sell copies of the Software, and to permit persons to whom the
# ## Software is furnished to do so, subject to the following conditions:
# ##
# ## The above copyright notice and this permission notice shall be included in
# ## all copies or substantial portions of the Software.
# ##
# ## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# ## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# ## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# ## AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
# ## ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# ## CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# ##
# ## Except as contained in this notice, the names of the authors or their
# ## institutions shall not be used in advertising or otherwise to promote the
# ## sale, use or other dealings in this Software without prior written
# ## authorization from the authors.
# ##
# ## *
# ## @defgroup xcb__cursor_context_t XCB Cursor Functions
# ##
# ## These functions are the equivalent of libXcursor, but re-implemented for
# ## XCB. They respect the user’s configured cursor theme when loading cursors,
# ## specified by the X resources setting "Xcursor.theme".
# ##
# ## Here is how you would use these functions to change the X11 root window
# ## cursor to "watch":
# ## @code
# ## int screennr;
# ## xcb_connection_t *conn = xcb_connect(NULL, &screennr);
# ## if (conn == NULL || xcb_connection_has_error(conn))
# ## err(EXIT_FAILURE, "Could not connect to X11");
# ##
# ## xcb_screen_t *screen = xcb_aux_get_screen(conn, screennr);
# ## xcb_cursor_context_t *ctx;
# ## if (xcb_cursor_context_new(conn, screen, &ctx) < 0)
# ## err(EXIT_FAILURE, "Could not initialize xcb-cursor");
# ##
# ## xcb_cursor_t cid = xcb_cursor_load_cursor(ctx, "watch");
# ##
# ## xcb_screen_t *screen = xcb_setup_roots_iterator(xcb_get_setup(conn)).data;
# ## xcb_change_window_attributes(conn, screen->root, XCB_CW_CURSOR, (uint32[]){ cid });
# ## xcb_flush(conn);
# ##
# ## xcb_cursor_context_free(ctx);
# ## xcb_disconnect(conn);
# ## @endcode
# ##
# ## @{
# ##
# ## *
# ## @struct xcb_cursor_context_t
# ## Describes a context for using this library.
# ##
# ## Create a context with @ref xcb_cursor_context_new (), then load one or more
# ## cursors with @ref xcb_cursor_load_cursor () and destroy the context with @ref
# ## xcb_cursor_context_free ().
# ##
# ## *
# ## Create a new @ref xcb_cursor_context_t.
# ##
# ## @param conn A working XCB connection, which will be used until you destroy
# ## the context with @ref xcb_cursor_context_free ().
# ## @param screen The xcb_screen_t to use (e.g. for getting the RESOURCE_MANAGER
# ## contents, for creating cursors on, for using the size as fallback when
# ## calculating the best cursor size).
# ## @param ctx A pointer to an xcb_cursor_context_t* which will be modified to
# ## refer to the newly created context.
# ## @return 0 on success, a negative error code otherwise.
# ##
# ## @ingroup xcb_cursor_context_t
# ##
# proc xcb_cursor_context_new*(conn: ptr xcb_connection_t; screen: ptr xcb_screen_t;
# ctx: ptr ptr xcb_cursor_context_t): cint
# ## *
# ## Loads the specified cursor, either from the cursor theme or by falling back
# ## to the X11 "cursor" font.
# ##
# ## @param ctx A cursor context, created with @ref xcb_cursor_context_new ()
# ## @param name The name of the cursor to load, e.g. "watch".
# ## @returns The ID of the created cursor. When you are done using it, use
# ## xcb_free_cursor. Calling @ref xcb_cursor_context_free () will NOT free the
# ## created cursor.
# ##
# ##
# proc xcb_cursor_load_cursor*(ctx: ptr xcb_cursor_context_t; name: cstring): xcb_cursor_t
# ## *
# ## Frees the @ref xcb_cursor_context_t.
# ##
# ## @param ctx The context to free.
# ##
# ##
# proc xcb_cursor_context_free*(ctx: ptr xcb_cursor_context_t)
# ## *
# ## @}
# ##
# ##
# ## Copyright (C) 2008-2009 Julien Danjou <julien@danjou.info>
# ##
# ## Permission is hereby granted, free of charge, to any person
# ## obtaining a copy of this software and associated documentation
# ## files (the "Software"), to deal in the Software without
# ## restriction, including without limitation the rights to use, copy,
# ## modify, merge, publish, distribute, sublicense, and/or sell copies
# ## of the Software, and to permit persons to whom the Software is
# ## furnished to do so, subject to the following conditions:
# ##
# ## The above copyright notice and this permission notice shall be
# ## included in all copies or substantial portions of the Software.
# ##
# ## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# ## EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# ## MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# ## NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
# ## CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
# ## CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# ## WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# ##
# ## Except as contained in this notice, the names of the authors or
# ## their institutions shall not be used in advertising or otherwise to
# ## promote the sale, use or other dealings in this Software without
# ## prior written authorization from the authors.
# ##
# ## *
# ## @defgroup xcb__event_t XCB Event Functions
# ##
# ## These functions ease the handling of X events received.
# ##
# ## @{
# ##
# ## *
# ## @brief Bit mask to find event type regardless of event source.
# ##
# ## Each event in the X11 protocol contains an 8-bit type code.
# ## The most-significant bit in this code is set if the event was
# ## generated from a SendEvent request. This mask can be used to
# ## determine the type of event regardless of how the event was
# ## generated. See the X11R6 protocol specification for details.
# ##
# const
# XCB_EVENT_RESPONSE_TYPE_MASK* = (0x0000007F)
# template XCB_EVENT_RESPONSE_TYPE*(e: untyped): untyped =
# (e.response_type and XCB_EVENT_RESPONSE_TYPE_MASK)
# template XCB_EVENT_SENT*(e: untyped): untyped =
# (e.response_type and not XCB_EVENT_RESPONSE_TYPE_MASK)
# ## *
# ## @brief Convert an event response type to a label.
# ## @param type The event type.
# ## @return A string with the event name, or NULL if unknown.
# ##
# proc xcb_event_get_label*(`type`: uint8): cstring
# ## *
# ## @brief Convert an event error type to a label.
# ## @param type The error type.
# ## @return A string with the event name, or NULL if unknown or if the event is
# ## not an error.
# ##
# proc xcb_event_get_error_label*(`type`: uint8): cstring
# ## *
# ## @brief Convert an event request type to a label.
# ## @param type The request type.
# ## @return A string with the event name, or NULL if unknown or if the event is
# ## not an error.
# ##
# proc xcb_event_get_request_label*(`type`: uint8): cstring
# ## *
# ## @}
# ##
# ##
# ## Copyright (C) 2009-2011 Arnaud Fontaine <arnau@debian.org>
# ##
# ## Permission is hereby granted, free of charge, to any person
# ## obtaining a copy of this software and associated documentation
# ## files (the "Software"), to deal in the Software without
# ## restriction, including without limitation the rights to use, copy,
# ## modify, merge, publish, distribute, sublicense, and/or sell copies
# ## of the Software, and to permit persons to whom the Software is
# ## furnished to do so, subject to the following conditions:
# ##
# ## The above copyright notice and this permission notice shall be
# ## included in all copies or substantial portions of the Software.
# ##
# ## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# ## EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# ## MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# ## NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
# ## CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
# ## CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# ## WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# ##
# ## Except as contained in this notice, the names of the authors or
# ## their institutions shall not be used in advertising or otherwise to
# ## promote the sale, use or other dealings in this Software without
# ## prior written authorization from the authors.
# ##
# ## *
# ## @defgroup xcb__ewmh_t XCB EWMH Functions
# ##
# ## These functions allow easy handling of the protocol described in
# ## the Extended Window Manager Hints specification. The list of Atoms
# ## is stored as an M4 file (atomlist.m4) where each Atom is stored as
# ## a variable defined in the header.
# ##
# ## Replies of requests generating a list of pointers (such as list of
# ## windows, atoms and UTF-8 strings) are simply stored as a structure
# ## holding the XCB reply which should (usually) never be accessed
# ## directly and has to be wipe afterwards. This structure provides a
# ## convenient access to the list given in the reply itself.
# ##
# ## @{
# ##
# ## *
# ## @brief Hold EWMH information specific to a screen
# ##
# type
# xcb_ewmh_connection_t* {.bycopy.} = object
# connection*: ptr xcb_connection_t ## * The X connection
# ## * The screens on this connection
# screens*: ptr ptr xcb_screen_t
# nb_screens*: cint ## * _NET_WM_CM_Sn atoms depending on the number of screens
# _NET_WM_CM_Sn*: ptr xcb_atom_t ## * The EWMH atoms of this connection
# _NET_SUPPORTED*: xcb_atom_t
# _NET_CLIENT_LIST*: xcb_atom_t
# _NET_CLIENT_LIST_STACKING*: xcb_atom_t
# _NET_NUMBER_OF_DESKTOPS*: xcb_atom_t
# _NET_DESKTOP_GEOMETRY*: xcb_atom_t
# _NET_DESKTOP_VIEWPORT*: xcb_atom_t
# _NET_CURRENT_DESKTOP*: xcb_atom_t
# _NET_DESKTOP_NAMES*: xcb_atom_t
# _NET_ACTIVE_WINDOW*: xcb_atom_t
# _NET_WORKAREA*: xcb_atom_t
# _NET_SUPPORTING_WM_CHECK*: xcb_atom_t
# _NET_VIRTUAL_ROOTS*: xcb_atom_t
# _NET_DESKTOP_LAYOUT*: xcb_atom_t
# _NET_SHOWING_DESKTOP*: xcb_atom_t
# _NET_CLOSE_WINDOW*: xcb_atom_t
# _NET_MOVERESIZE_WINDOW*: xcb_atom_t
# _NET_WM_MOVERESIZE*: xcb_atom_t
# _NET_RESTACK_WINDOW*: xcb_atom_t
# _NET_REQUEST_FRAME_EXTENTS*: xcb_atom_t
# _NET_WM_NAME*: xcb_atom_t
# _NET_WM_VISIBLE_NAME*: xcb_atom_t
# _NET_WM_ICON_NAME*: xcb_atom_t
# _NET_WM_VISIBLE_ICON_NAME*: xcb_atom_t
# _NET_WM_DESKTOP*: xcb_atom_t
# _NET_WM_WINDOW_TYPE*: xcb_atom_t
# _NET_WM_STATE*: xcb_atom_t
# _NET_WM_ALLOWED_ACTIONS*: xcb_atom_t
# _NET_WM_STRUT*: xcb_atom_t
# _NET_WM_STRUT_PARTIAL*: xcb_atom_t
# _NET_WM_ICON_GEOMETRY*: xcb_atom_t
# _NET_WM_ICON*: xcb_atom_t
# _NET_WM_PID*: xcb_atom_t
# _NET_WM_HANDLED_ICONS*: xcb_atom_t
# _NET_WM_USER_TIME*: xcb_atom_t
# _NET_WM_USER_TIME_WINDOW*: xcb_atom_t
# _NET_FRAME_EXTENTS*: xcb_atom_t
# _NET_WM_PING*: xcb_atom_t
# _NET_WM_SYNC_REQUEST*: xcb_atom_t
# _NET_WM_SYNC_REQUEST_COUNTER*: xcb_atom_t
# _NET_WM_FULLSCREEN_MONITORS*: xcb_atom_t
# _NET_WM_FULL_PLACEMENT*: xcb_atom_t
# UTF8_STRING*: xcb_atom_t
# WM_PROTOCOLS*: xcb_atom_t
# MANAGER*: xcb_atom_t
# _NET_WM_WINDOW_TYPE_DESKTOP*: xcb_atom_t
# _NET_WM_WINDOW_TYPE_DOCK*: xcb_atom_t
# _NET_WM_WINDOW_TYPE_TOOLBAR*: xcb_atom_t
# _NET_WM_WINDOW_TYPE_MENU*: xcb_atom_t
# _NET_WM_WINDOW_TYPE_UTILITY*: xcb_atom_t
# _NET_WM_WINDOW_TYPE_SPLASH*: xcb_atom_t
# _NET_WM_WINDOW_TYPE_DIALOG*: xcb_atom_t
# _NET_WM_WINDOW_TYPE_DROPDOWN_MENU*: xcb_atom_t
# _NET_WM_WINDOW_TYPE_POPUP_MENU*: xcb_atom_t
# _NET_WM_WINDOW_TYPE_TOOLTIP*: xcb_atom_t
# _NET_WM_WINDOW_TYPE_NOTIFICATION*: xcb_atom_t
# _NET_WM_WINDOW_TYPE_COMBO*: xcb_atom_t
# _NET_WM_WINDOW_TYPE_DND*: xcb_atom_t
# _NET_WM_WINDOW_TYPE_NORMAL*: xcb_atom_t
# _NET_WM_STATE_MODAL*: xcb_atom_t
# _NET_WM_STATE_STICKY*: xcb_atom_t
# _NET_WM_STATE_MAXIMIZED_VERT*: xcb_atom_t
# _NET_WM_STATE_MAXIMIZED_HORZ*: xcb_atom_t
# _NET_WM_STATE_SHADED*: xcb_atom_t
# _NET_WM_STATE_SKIP_TASKBAR*: xcb_atom_t
# _NET_WM_STATE_SKIP_PAGER*: xcb_atom_t
# _NET_WM_STATE_HIDDEN*: xcb_atom_t
# _NET_WM_STATE_FULLSCREEN*: xcb_atom_t
# _NET_WM_STATE_ABOVE*: xcb_atom_t
# _NET_WM_STATE_BELOW*: xcb_atom_t
# _NET_WM_STATE_DEMANDS_ATTENTION*: xcb_atom_t
# _NET_WM_ACTION_MOVE*: xcb_atom_t
# _NET_WM_ACTION_RESIZE*: xcb_atom_t
# _NET_WM_ACTION_MINIMIZE*: xcb_atom_t
# _NET_WM_ACTION_SHADE*: xcb_atom_t
# _NET_WM_ACTION_STICK*: xcb_atom_t
# _NET_WM_ACTION_MAXIMIZE_HORZ*: xcb_atom_t
# _NET_WM_ACTION_MAXIMIZE_VERT*: xcb_atom_t
# _NET_WM_ACTION_FULLSCREEN*: xcb_atom_t
# _NET_WM_ACTION_CHANGE_DESKTOP*: xcb_atom_t
# _NET_WM_ACTION_CLOSE*: xcb_atom_t
# _NET_WM_ACTION_ABOVE*: xcb_atom_t
# _NET_WM_ACTION_BELOW*: xcb_atom_t
# ## *
# ## @brief Hold a GetProperty reply containing a list of Atoms
# ##
# type
# xcb_ewmh_get_atoms_reply_t* {.bycopy.} = object
# atoms_len*: uint32 ## * The number of Atoms
# ## * The list of Atoms
# atoms*: ptr xcb_atom_t ## * The actual GetProperty reply
# _reply*: ptr xcb_get_property_reply_t
# ## *
# ## @brief Hold a GetProperty reply containing a list of Windows
# ##
# type
# xcb_ewmh_get_windows_reply_t* {.bycopy.} = object
# windows_len*: uint32 ## * The number of Windows
# ## * The list of Windows
# windows*: ptr xcb_window_t ## * The actual GetProperty reply
# _reply*: ptr xcb_get_property_reply_t
# ## *
# ## @brief Hold a GetProperty reply containg a list of UTF-8 strings
# ##
# type
# xcb_ewmh_get_utf8_strings_reply_t* {.bycopy.} = object
# strings_len*: uint32 ## * The number of UTF-8 strings
# ## * The list of UTF-8 strings
# strings*: cstring ## * The actual GetProperty reply
# _reply*: ptr xcb_get_property_reply_t
# ## *
# ## @brief Coordinates Property values
# ##
# type
# xcb_ewmh_coordinates_t* {.bycopy.} = object
# x*: uint32 ## * The x coordinate
# ## * The y coordinate
# y*: uint32
# ## *
# ## @brief Hold reply of _NET_DESKTOP_VIEWPORT GetProperty
# ##
# type
# xcb_ewmh_get_desktop_viewport_reply_t* {.bycopy.} = object
# desktop_viewport_len*: uint32 ## * The number of desktop viewports
# ## * The desktop viewports
# desktop_viewport*: ptr xcb_ewmh_coordinates_t ## * The actual GetProperty reply
# _reply*: ptr xcb_get_property_reply_t
# ## *
# ## @brief Geometry Property values
# ##
# type
# xcb_ewmh_geometry_t* {.bycopy.} = object
# x*: uint32 ## * The x coordinate
# ## * The y coordinate
# y*: uint32 ## * The width
# width*: uint32 ## * The height
# height*: uint32
# ## *
# ## @brief Hold reply of a _NET_WORKAREA GetProperty
# ##
# type
# xcb_ewmh_get_workarea_reply_t* {.bycopy.} = object
# workarea_len*: uint32 ## * The number of desktop workarea
# ## * The list of desktop workarea
# workarea*: ptr xcb_ewmh_geometry_t ## * The actual GetProperty reply
# _reply*: ptr xcb_get_property_reply_t
# ## *
# ## @brief Source indication in requests
# ##
# type ## * No source at all (for clients supporting an older version of
# ## EWMH specification)
# xcb_ewmh_client_source_type_t* = enum
# XCB_EWMH_CLIENT_SOURCE_TYPE_NONE = 0, ## * Normal application
# XCB_EWMH_CLIENT_SOURCE_TYPE_NORMAL = 1, ## * Pagers and other clients that represent direct user actions
# XCB_EWMH_CLIENT_SOURCE_TYPE_OTHER = 2
# ## *
# ## @brief _NET_DESKTOP_LAYOUT orientation
# ##
# type ## * Horizontal orientation (desktops laid out in rows)
# xcb_ewmh_desktop_layout_orientation_t* = enum
# XCB_EWMH_WM_ORIENTATION_HORZ = 0, ## * Vertical orientation (desktops laid out in columns)
# XCB_EWMH_WM_ORIENTATION_VERT = 1
# ## *
# ## @brief _NET_DESKTOP_LAYOUT starting corner
# ##
# type ## * Starting corner on the top left
# xcb_ewmh_desktop_layout_starting_corner_t* = enum
# XCB_EWMH_WM_TOPLEFT = 0, ## * Starting corner on the top right
# XCB_EWMH_WM_TOPRIGHT = 1, ## * Starting corner on the bottom right
# XCB_EWMH_WM_BOTTOMRIGHT = 2, ## * Starting corner on the bottom left
# XCB_EWMH_WM_BOTTOMLEFT = 3
# ## *
# ## @brief Hold reply of a _NET_DESKTOP_LAYOUT GetProperty
# ## @see xcb_ewmh_desktop_layout_orientation_t
# ## @see xcb_ewmh_desktop_layout_starting_corner_t
# ##
# type
# xcb_ewmh_get_desktop_layout_reply_t* {.bycopy.} = object
# orientation*: uint32 ## * The desktops orientation
# ## * The number of columns
# columns*: uint32 ## * The number of rows
# rows*: uint32 ## * The desktops starting corner
# starting_corner*: uint32
# ## *
# ## @brief _NET_WM_MOVERESIZE value when moving via keyboard
# ## @see xcb_ewmh_moveresize_direction_t
# ##
# type ## * The window x coordinate
# xcb_ewmh_moveresize_window_opt_flags_t* = enum
# XCB_EWMH_MOVERESIZE_WINDOW_X = (1 shl 8), ## * The window y coordinate
# XCB_EWMH_MOVERESIZE_WINDOW_Y = (1 shl 9), ## * The window width
# XCB_EWMH_MOVERESIZE_WINDOW_WIDTH = (1 shl 10), ## * The window height
# XCB_EWMH_MOVERESIZE_WINDOW_HEIGHT = (1 shl 11)
# ## *
# ## @brief _NET_WM_MOVERESIZE window movement or resizing
# ##
# type ## * Resizing applied on the top left edge
# xcb_ewmh_moveresize_direction_t* = enum
# XCB_EWMH_WM_MOVERESIZE_SIZE_TOPLEFT = 0, ## * Resizing applied on the top edge
# XCB_EWMH_WM_MOVERESIZE_SIZE_TOP = 1, ## * Resizing applied on the top right edge
# XCB_EWMH_WM_MOVERESIZE_SIZE_TOPRIGHT = 2, ## * Resizing applied on the right edge
# XCB_EWMH_WM_MOVERESIZE_SIZE_RIGHT = 3, ## * Resizing applied on the bottom right edge
# XCB_EWMH_WM_MOVERESIZE_SIZE_BOTTOMRIGHT = 4, ## * Resizing applied on the bottom edge
# XCB_EWMH_WM_MOVERESIZE_SIZE_BOTTOM = 5, ## * Resizing applied on the bottom left edge
# XCB_EWMH_WM_MOVERESIZE_SIZE_BOTTOMLEFT = 6, ## * Resizing applied on the left edge
# XCB_EWMH_WM_MOVERESIZE_SIZE_LEFT = 7, ## Movement only
# XCB_EWMH_WM_MOVERESIZE_MOVE = 8, ## Size via keyboard
# XCB_EWMH_WM_MOVERESIZE_SIZE_KEYBOARD = 9, ## Move via keyboard
# XCB_EWMH_WM_MOVERESIZE_MOVE_KEYBOARD = 10, ## Cancel operation
# XCB_EWMH_WM_MOVERESIZE_CANCEL = 11
# ## *
# ## @brief Action on the _NET_WM_STATE property
# ##
# type ## Remove/unset property
# xcb_ewmh_wm_state_action_t* = enum
# XCB_EWMH_WM_STATE_REMOVE = 0, ## Add/set property
# XCB_EWMH_WM_STATE_ADD = 1, ## Toggle property
# XCB_EWMH_WM_STATE_TOGGLE = 2
# ## *
# ## @brief Hold reply of _NET_WM_STRUT_PARTIAL GetProperty
# ##
# type
# xcb_ewmh_wm_strut_partial_t* {.bycopy.} = object
# left*: uint32 ## * Reserved space on the left border of the screen
# ## * Reserved space on the right border of the screen
# right*: uint32 ## * Reserved space on the top border of the screen
# top*: uint32 ## * Reserved space on the bottom border of the screen
# bottom*: uint32 ## * Beginning y coordinate of the left strut
# left_start_y*: uint32 ## * Ending y coordinate of the left strut
# left_end_y*: uint32 ## * Beginning y coordinate of the right strut
# right_start_y*: uint32 ## * Ending y coordinate of the right strut
# right_end_y*: uint32 ## * Beginning x coordinate of the top strut
# top_start_x*: uint32 ## * Ending x coordinate of the top strut
# top_end_x*: uint32 ## * Beginning x coordinate of the bottom strut
# bottom_start_x*: uint32 ## * Ending x coordinate of the bottom strut
# bottom_end_x*: uint32
# ## *
# ## @brief Hold a single icon from reply of _NET_WM_ICON GetProperty
# ##
# type
# xcb_ewmh_wm_icon_iterator_t* {.bycopy.} = object
# width*: uint32 ## * Icon width
# ## * Icon height
# height*: uint32 ## * Rows, left to right and top to bottom of the CARDINAL ARGB
# data*: ptr uint32 ## * Number of icons remaining
# rem*: uint8 ## * Index of the current icon in the array of icons
# index*: uint8
# ## *
# ## @brief Hold reply of _NET_WM_ICON GetProperty
# ##
# type
# xcb_ewmh_get_wm_icon_reply_t* {.bycopy.} = object
# num_icons*: uint8 ## * Number of icons
# ## * The actual GetProperty reply
# _reply*: ptr xcb_get_property_reply_t
# ## *
# ## @brief Hold reply of _NET_REQUEST_FRAME_EXTENTS GetProperty
# ##
# type
# xcb_ewmh_get_extents_reply_t* {.bycopy.} = object
# left*: uint32 ## * Width of the left border
# ## * Width of the right border
# right*: uint32 ## * Width of the top border
# top*: uint32 ## * Width of the bottom border
# bottom*: uint32
# ## *
# ## @brief Hold reply of _NET_WM_FULLSCREEN_MONITORS GetProperty
# ##
# type
# xcb_ewmh_get_wm_fullscreen_monitors_reply_t* {.bycopy.} = object
# top*: uint32 ## * Monitor whose top edge defines the top edge of the fullscreen
# ## window
# ## * Monitor whose bottom edge defines the bottom edge of the
# ## fullscreen window
# bottom*: uint32 ## * Monitor whose left edge defines the left edge of the fullscreen
# ## window
# left*: uint32 ## * Monitor whose right edge defines the right edge of the
# ## fullscreen window
# right*: uint32
# ## *
# ## @brief Send InternAtom requests for the EWMH atoms and its required atoms
# ##
# ## @param c The connection to the X server
# ## @param ewmh The information relative to EWMH
# ## @param screen_nbr The screen number
# ## @return The cookies corresponding to EWMH atoms
# ##
# proc xcb_ewmh_connection_wipe*(ewmh: ptr xcb_ewmh_connection_t) {.inline.} =
# free(ewmh.screens)
# free(ewmh._NET_WM_CM_Sn)
# ## *
# ## @brief Send a SendEvent request containing a ClientMessage event
# ##
# ## This function is called by all the xcb_ewmh_request* functions
# ## whose should be used instead of calling directly this function
# ##
# ## @param c The X connection
# ## @param window The window where the action will be applied
# ## @param dest The destination window (usually the root window)
# ## @param atom The type of the message
# ## @param data_len The length of data to be sent
# ## @param data The data to be sent
# ## @return The cookie associated with the SendEvent request
# ##
# proc xcb_ewmh_send_client_message*(c: ptr xcb_connection_t; window: xcb_window_t;
# dest: xcb_window_t; atom: xcb_atom_t;
# data_len: uint32; data: ptr uint32): xcb_void_cookie_t
# proc xcb_ewmh_get_window_from_reply*(window: ptr xcb_window_t;
# r: ptr xcb_get_property_reply_t): uint8
# proc xcb_ewmh_get_window_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t;
# window: ptr xcb_window_t;
# e: ptr ptr xcb_generic_error_t): uint8
# proc xcb_ewmh_get_cardinal_from_reply*(cardinal: ptr uint32;
# r: ptr xcb_get_property_reply_t): uint8
# proc xcb_ewmh_get_cardinal_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t;
# cardinal: ptr uint32;
# e: ptr ptr xcb_generic_error_t): uint8
# ## *
# ## @brief Get a list of atoms from a given GetProperty reply whose
# ## type is ATOM
# ##
# ## This function is called by all the xcb_ewmh_get_*_from_reply
# ## functions whose should be used instead of calling it directly.
# ## Indeed, The GetProperty request has been previously sent by the
# ## corresponding xcb_ewmh_get_*.
# ##
# ## @param atoms The atoms list
# ## @param r The reply to get the atoms list from
# ## @return Return 1 on success, 0 otherwise
# ##
# proc xcb_ewmh_get_atoms_from_reply*(atoms: ptr xcb_ewmh_get_atoms_reply_t;
# r: ptr xcb_get_property_reply_t): uint8
# ## *
# ## @brief Get a list of atoms from the reply of a GetProperty request
# ## whose type is ATOM
# ##
# ## This function is called by all the xcb_ewmh_get_*_reply functions
# ## whose should be used instead of calling it directly. The
# ## GetProperty request has been previously sent by the corresponding
# ## xcb_ewmh_get_*.
# ##
# ## @param ewmh The per-screen EWMH specific information
# ## @param cookie The GetProperty cookie
# ## @param atoms The atoms list
# ## @param e The error if any
# ## @return Return 1 on success, 0 otherwise
# ##
# proc xcb_ewmh_get_atoms_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t;
# atoms: ptr xcb_ewmh_get_atoms_reply_t;
# e: ptr ptr xcb_generic_error_t): uint8
# ## *
# ## @brief Wipe the Atoms list reply
# ##
# ## This function must be called to free the memory allocated for atoms
# ## when the reply is requested in *_reply functions.
# ##
# ## @param data The X reply to be freed
# ##
# proc xcb_ewmh_get_atoms_reply_wipe*(data: ptr xcb_ewmh_get_atoms_reply_t)
# ## *
# ## @brief Get a list of atoms from a given GetProperty reply whose
# ## type is WINDOW
# ##
# ## This function is called by all the xcb_ewmh_get_*_from_reply
# ## functions whose should be used instead of calling it directly.
# ## Indeed, The GetProperty request has been previously sent by the
# ## corresponding xcb_ewmh_get_*.
# ##
# ## @param atoms The atoms list
# ## @param r The reply to get the atoms list from
# ## @return Return 1 on success, 0 otherwise
# ##
# proc xcb_ewmh_get_windows_from_reply*(atoms: ptr xcb_ewmh_get_windows_reply_t;
# r: ptr xcb_get_property_reply_t): uint8
# proc xcb_ewmh_get_utf8_strings_from_reply*(ewmh: ptr xcb_ewmh_connection_t;
# data: ptr xcb_ewmh_get_utf8_strings_reply_t; r: ptr xcb_get_property_reply_t): uint8
# proc xcb_ewmh_get_utf8_strings_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t; data: ptr xcb_ewmh_get_utf8_strings_reply_t;
# e: ptr ptr xcb_generic_error_t): uint8
# ## *
# ## @brief Get a list of atoms from the reply of a GetProperty request
# ## whose type is WINDOW
# ##
# ## This function is called by all the xcb_ewmh_get_*_reply functions
# ## whose should be used instead of calling it directly. The
# ## GetProperty request has been previously sent by the corresponding
# ## xcb_ewmh_get_*.
# ##
# ## @param ewmh The per-screen EWMH specific information
# ## @param cookie The GetProperty cookie
# ## @param atoms The atoms list
# ## @param e The error if any
# ## @return Return 1 on success, 0 otherwise
# ##
# proc xcb_ewmh_get_windows_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t;
# atoms: ptr xcb_ewmh_get_windows_reply_t;
# e: ptr ptr xcb_generic_error_t): uint8
# ## *
# ## @brief Wipe the windows list reply
# ##
# ## This function must be called to the free the memory allocated for
# ## windows when the reply is requested in '_reply' functions.
# ##
# ## @param data The X reply to be freed
# ##
# proc xcb_ewmh_get_windows_reply_wipe*(data: ptr xcb_ewmh_get_windows_reply_t)
# ## *
# ## @brief Wipe the UTF-8 strings list reply
# ##
# ## This function must be called to the free the memory allocated for
# ## UTF-8 strings when the reply is requested in '_reply' functions.
# ##
# ## @param data The X reply to be freed
# ##
# proc xcb_ewmh_get_utf8_strings_reply_wipe*(
# data: ptr xcb_ewmh_get_utf8_strings_reply_t)
# ## *
# ## @brief Send a ChangeProperty request for _NET_SUPPORTED
# ##
# ## _NET_SUPPORTED, ATOM[]/32
# ##
# ## @param ewmh The per-screen EWMH information
# ## @param screen_nbr The screen number
# ## @param list_len The number of Atoms supported by the WM
# ## @param list The Atoms supported by the WM
# ## @return Cookie associated with the ChangeProperty _NET_SUPPORTED request
# ##
# proc xcb_ewmh_set_supported*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint;
# list_len: uint32; list: ptr xcb_atom_t): xcb_void_cookie_t
# ## *
# ## @see xcb_ewmh_set_supported
# ##
# proc xcb_ewmh_set_supported_checked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint; list_len: uint32;
# list: ptr xcb_atom_t): xcb_void_cookie_t
# ## *
# ## @brief Send GetProperty request to get _NET_SUPPORTED root window
# ## property
# ##
# ## _NET_SUPPORTED, ATOM[]/32
# ##
# ## This property MUST be set by the Window Manager to indicate which
# ## hints it supports. For example: considering _NET_WM_STATE both this
# ## atom and all supported states e.g. _NET_WM_STATE_MODAL,
# ## _NET_WM_STATE_STICKY, would be listed. This assumes that backwards
# ## incompatible changes will not be made to the hints (without being
# ## renamed).
# ##
# ## This form can be used only if the request will cause a reply to be
# ## generated. Any returned error will be placed in the event queue.
# ##
# ## @param ewmh The information relative to EWMH
# ## @param screen_nbr The screen number
# ## @return The _NET_SUPPORTED cookie of the GetProperty request
# ##
# proc xcb_ewmh_get_supported_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint): xcb_get_property_cookie_t
# ## *
# ## @see xcb_ewmh_get_supported_unchecked
# ##
# proc xcb_ewmh_get_supported*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint): xcb_get_property_cookie_t
# ## *
# ## @brief Get the list of supported atoms
# ##
# ## @param supported The list of atoms contained in the reply
# ## @param r GetProperty _NET_SUPPORTED reply
# ##
# proc xcb_ewmh_get_supported_from_reply*(supported: ptr xcb_ewmh_get_atoms_reply_t;
# r: ptr xcb_get_property_reply_t): uint8 {.
# inline.} =
# return xcb_ewmh_get_atoms_from_reply(supported, r)
# ## *
# ## @brief Get reply from the GetProperty _NET_SUPPORTED cookie
# ##
# ## The parameter e supplied to this function must be NULL if
# ## xcb_get_window_supported_unchecked() is used. Otherwise, it stores
# ## the error if any.
# ##
# ## @param ewmh The information relative to EWMH
# ## @param cookie The _NET_SUPPORTED GetProperty request cookie
# ## @param supported The reply to be filled
# ## @param The xcb_generic_error_t supplied
# ## @return Return 1 on success, 0 otherwise
# ##
# proc xcb_ewmh_get_supported_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t;
# supported: ptr xcb_ewmh_get_atoms_reply_t;
# e: ptr ptr xcb_generic_error_t): uint8 {.inline.} =
# return xcb_ewmh_get_atoms_reply(ewmh, cookie, supported, e)
# ## *
# ## @brief Send a ChangeProperty request for _NET_CLIENT_LIST
# ##
# ## _NET_CLIENT_LIST, WINDOW[]/32
# ##
# ## @param ewmh The per-screen EWMH information
# ## @param screen_nbr The screen number
# ## @param list_len The number of Atoms supported by the WM
# ## @param list The Atoms supported by the WM
# ## @return Cookie associated with the ChangeProperty _NET_CLIENT_LIST request
# ##
# proc xcb_ewmh_set_client_list*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint;
# list_len: uint32; list: ptr xcb_window_t): xcb_void_cookie_t
# ## *
# ## @see xcb_ewmh_set_client_list
# ##
# proc xcb_ewmh_set_client_list_checked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint; list_len: uint32;
# list: ptr xcb_window_t): xcb_void_cookie_t
# ## *
# ## @brief Send GetProperty request to get _NET_CLIENT_LIST root window
# ## property
# ##
# ## This array contains all X Windows managed by the Window
# ## Manager. _NET_CLIENT_LIST has initial mapping order, starting with
# ## the oldest window. This property SHOULD be set and updated by the
# ## Window Manager.
# ##
# ## @param ewmh The information relative to EWMH.
# ## @return The _NET_CLIENT_LIST cookie of the GetProperty request.
# ##
# proc xcb_ewmh_get_client_list_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint): xcb_get_property_cookie_t
# ## *
# ## @brief Send GetProperty request to get _NET_CLIENT_LIST root window
# ## property
# ##
# ## @see xcb_ewmh_get_client_list_unchecked
# ## @param ewmh The information relative to EWMH.
# ## @return The _NET_CLIENT_LIST cookie of the GetProperty request.
# ##
# proc xcb_ewmh_get_client_list*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint): xcb_get_property_cookie_t
# ## *
# ## @brief Get the list of client windows from a GetProperty
# ## _NET_CLIENT_LIST reply
# ##
# ## @param clients The list of clients contained in the reply
# ## @param r GetProperty _NET_CLIENT_LIST reply
# ##
# proc xcb_ewmh_get_client_list_from_reply*(
# clients: ptr xcb_ewmh_get_windows_reply_t; r: ptr xcb_get_property_reply_t): uint8 {.
# inline.} =
# return xcb_ewmh_get_windows_from_reply(clients, r)
# ## *
# ## @brief Get reply from the GetProperty _NET_CLIENT_LIST cookie
# ##
# ## The parameter e supplied to this function must be NULL if
# ## xcb_get_window_client_list_unchecked() is used. Otherwise, it
# ## stores the error if any.
# ##
# ## @param ewmh The information relative to EWMH
# ## @param cookie The _NET_CLIENT_LIST GetProperty request cookie
# ## @param clients The list of clients to be filled
# ## @param The xcb_generic_error_t supplied
# ## @return Return 1 on success, 0 otherwise
# ##
# proc xcb_ewmh_get_client_list_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t;
# clients: ptr xcb_ewmh_get_windows_reply_t;
# e: ptr ptr xcb_generic_error_t): uint8 {.inline.} =
# return xcb_ewmh_get_windows_reply(ewmh, cookie, clients, e)
# ## *
# ## @brief Send a ChangeProperty request for _NET_CLIENT_LIST_STACKING
# ##
# ## _NET_CLIENT_LIST_STACKING, WINDOW[]/32
# ##
# ## @param ewmh The per-screen EWMH information
# ## @param screen_nbr The screen number
# ## @param list_len The number of Atoms supported by the WM
# ## @param list The Atoms supported by the WM
# ## @return Cookie associated with the ChangeProperty _NET_CLIENT_LIST_STACKING request
# ##
# proc xcb_ewmh_set_client_list_stacking*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint; list_len: uint32;
# list: ptr xcb_window_t): xcb_void_cookie_t
# ## *
# ## @see xcb_ewmh_set_client_list_stacking
# ##
# proc xcb_ewmh_set_client_list_stacking_checked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint; list_len: uint32; list: ptr xcb_window_t): xcb_void_cookie_t
# ## *
# ## @brief Send GetProperty request to get _NET_CLIENT_LIST_STACKING
# ## root window property
# ##
# ## This array contains all X Windows managed by the Window
# ## Manager. _NET_CLIENT_LIST_STACKING has initial mapping order,
# ## starting with the oldest window. This property SHOULD be set and
# ## updated by the Window Manager.
# ##
# ## @param ewmh The information relative to EWMH
# ## @return The _NET_CLIENT_LIST_STACKING cookie of the GetProperty request
# ##
# proc xcb_ewmh_get_client_list_stacking_unchecked*(
# ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint): xcb_get_property_cookie_t
# ## *
# ## @see xcb_ewmh_get_client_list_unchecked
# ##
# proc xcb_ewmh_get_client_list_stacking*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint): xcb_get_property_cookie_t
# ## *
# ## @brief Get the list of client windows from a GetProperty
# ## _NET_CLIENT_LIST_STACKING reply
# ##
# ## @param clients The list of clients contained in the reply
# ## @param r GetProperty _NET_CLIENT_LIST_STACKING reply
# ##
# proc xcb_ewmh_get_client_list_stacking_from_reply*(
# clients: ptr xcb_ewmh_get_windows_reply_t; r: ptr xcb_get_property_reply_t): uint8 {.
# inline.} =
# return xcb_ewmh_get_windows_from_reply(clients, r)
# ## *
# ## @brief Get reply from the GetProperty _NET_CLIENT_LIST_STACKING
# ## cookie
# ##
# ## The parameter e supplied to this function must be NULL if
# ## xcb_get_window_client_list_stacking_unchecked() is used.
# ## Otherwise, it stores the error if any.
# ##
# ## @param ewmh The information relative to EWMH
# ## @param cookie The _NET_CLIENT_LIST_STACKING GetProperty request cookie
# ## @param clients The list of clients to be filled
# ## @param The xcb_generic_error_t supplied
# ## @return Return 1 on success, 0 otherwise
# ##
# proc xcb_ewmh_get_client_list_stacking_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t; clients: ptr xcb_ewmh_get_windows_reply_t;
# e: ptr ptr xcb_generic_error_t): uint8 {.inline.} =
# return xcb_ewmh_get_windows_reply(ewmh, cookie, clients, e)
# ## *
# ## @brief Send a ChangeProperty request for _NET_NUMBER_OF_DESKTOPS
# ##
# ## _NET_NUMBER_OF_DESKTOPS? CARDINAL/32
# ##
# ## @param ewmh The per-screen EWMH information
# ## @param screen_nbr The screen number
# ## @param number_of_desktops The number of desktops
# ## @return Cookie associated with the ChangeProperty _NET_NUMBER_OF_DESKTOPS request
# ##
# proc xcb_ewmh_set_number_of_desktops*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint;
# number_of_desktops: uint32): xcb_void_cookie_t
# ## *
# ## @see xcb_ewmh_set_number_of_desktops
# ##
# proc xcb_ewmh_set_number_of_desktops_checked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint; number_of_desktops: uint32): xcb_void_cookie_t
# ## *
# ## @brief Send GetProperty request to get _NET_NUMBER_OF_DESKTOPS root
# ## window property
# ##
# ## @param ewmh The information relative to EWMH
# ## @param screen_nbr The screen number
# ## @return The _NET_NUMBER_OF_DESKTOPS cookie of the GetProperty request.
# ##
# proc xcb_ewmh_get_number_of_desktops_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint): xcb_get_property_cookie_t
# ## *
# ## @see xcb_ewmh_get_number_of_desktops_unchecked
# ##
# proc xcb_ewmh_get_number_of_desktops*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint): xcb_get_property_cookie_t
# ## *
# ## @brief Get the list of client windows from a GetProperty
# ## _NET_NUMBER_OF_DESKTOPS reply
# ##
# ## @param clients The list of clients contained in the reply
# ## @param r GetProperty _NET_NUMBER_OF_DESKTOPS reply
# ## @return Return 1 on success, 0 otherwise
# ##
# proc xcb_ewmh_get_number_of_desktops_from_reply*(
# number_of_desktops: ptr uint32; r: ptr xcb_get_property_reply_t): uint8 {.
# inline.} =
# return xcb_ewmh_get_cardinal_from_reply(number_of_desktops, r)
# ## *
# ## @brief Get reply from the GetProperty _NET_NUMBER_OF_DESKTOPS cookie
# ##
# ## The parameter e supplied to this function must be NULL if
# ## xcb_get_window_number_of_desktops_unchecked() is used. Otherwise,
# ## it stores the error if any.
# ##
# ## @param ewmh The information relative to EWMH
# ## @param cookie The _NET_NUMBER_OF_DESKTOPS GetProperty request cookie
# ## @param supported The reply to be filled
# ## @param The xcb_generic_error_t supplied
# ## @return Return 1 on success, 0 otherwise
# ##
# proc xcb_ewmh_get_number_of_desktops_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t; number_of_desktops: ptr uint32;
# e: ptr ptr xcb_generic_error_t): uint8 {.inline.} =
# return xcb_ewmh_get_cardinal_reply(ewmh, cookie, number_of_desktops, e)
# proc xcb_ewmh_request_change_number_of_desktops*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint; new_number_of_desktops: uint32): xcb_void_cookie_t {.inline.} =
# return xcb_ewmh_send_client_message(ewmh.connection, XCB_NONE,
# ewmh.screens[screen_nbr].root,
# ewmh._NET_NUMBER_OF_DESKTOPS,
# sizeof((new_number_of_desktops)),
# addr(new_number_of_desktops))
# ## *
# ## @brief Send a ChangeProperty request for _NET_DESKTOP_GEOMETRY
# ##
# ## _NET_DESKTOP_GEOMETRY width, height, CARDINAL[2]/32
# ##
# ## @param ewmh The per-screen EWMH information
# ## @param screen_nbr The screen number
# ## @param new_width The new desktop width
# ## @param new_height The new desktop height
# ## @return Cookie associated with the ChangeProperty _NET_DESKTOP_GEOMETRY request
# ##
# proc xcb_ewmh_set_desktop_geometry*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint; new_width: uint32;
# new_height: uint32): xcb_void_cookie_t
# ## *
# ## @see xcb_ewmh_set_desktop_geometry
# ##
# proc xcb_ewmh_set_desktop_geometry_checked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint; new_width: uint32; new_height: uint32): xcb_void_cookie_t
# ## *
# ## @brief Send GetProperty request to get _NET_DESKTOP_GEOMETRY root
# ## window property
# ##
# ## @param ewmh The information relative to EWMH
# ## @param screen_nbr The screen number
# ## @return The _NET_DESKTOP_GEOMETRY cookie of the GetProperty request
# ##
# proc xcb_ewmh_get_desktop_geometry_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint): xcb_get_property_cookie_t
# ## *
# ## @see xcb_ewmh_get_desktop_geometry_unchecked
# ##
# proc xcb_ewmh_get_desktop_geometry*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint): xcb_get_property_cookie_t
# ## *
# ## @brief Send ClientMessage requesting to change the _NET_DESKTOP_GEOMETRY
# ##
# ## @param ewmh The per-screen EWMH information
# ## @param screen_nbr The screen number
# ## @param new_width The new desktop width
# ## @param new_height The new desktop height
# ## @return The SendEvent cookie
# ##
# proc xcb_ewmh_request_change_desktop_geometry*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint; new_width: uint32; new_height: uint32): xcb_void_cookie_t
# ## *
# ## @brief Get the desktop geometry from a GetProperty
# ## _NET_DESKTOP_GEOMETRY reply
# ##
# ## @param width The current desktop width
# ## @param height The current desktop height
# ## @param r GetProperty _NET_DESKTOP_GEOMETRY reply
# ## @return Return 1 on success, 0 otherwise
# ##
# proc xcb_ewmh_get_desktop_geometry_from_reply*(width: ptr uint32;
# height: ptr uint32; r: ptr xcb_get_property_reply_t): uint8
# ## *
# ## @brief Get reply from the GetProperty _NET_DESKTOP_GEOMETRY cookie
# ##
# ## The parameter e supplied to this function must be NULL if
# ## xcb_get_desktop_geometry_unchecked() is used. Otherwise, it stores
# ## the error if any.
# ##
# ## @param ewmh The information relative to EWMH
# ## @param cookie The _NET_DESKTOP_GEOMETRY GetProperty request cookie
# ## @param width The current desktop width
# ## @param width The current desktop height
# ## @param The xcb_generic_error_t supplied
# ## @return Return 1 on success, 0 otherwise
# ##
# proc xcb_ewmh_get_desktop_geometry_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t; width: ptr uint32; height: ptr uint32;
# e: ptr ptr xcb_generic_error_t): uint8
# ## *
# ## @brief Send a ChangeProperty request for _NET_DESKTOP_VIEWPORT
# ##
# ## _NET_DESKTOP_VIEWPORT x, y, CARDINAL[][2]/32
# ##
# ## @param ewmh The per-screen EWMH information
# ## @param screen_nbr The screen number
# ## @param list_len The number of desktop viewports
# ## @param list The desktop viewports
# ## @return Cookie associated with the ChangeProperty _NET_DESKTOP_VIEWPORT request
# ##
# proc xcb_ewmh_set_desktop_viewport*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint; list_len: uint32;
# list: ptr xcb_ewmh_coordinates_t): xcb_void_cookie_t
# ## *
# ## @see xcb_ewmh_set_desktop_viewport
# ##
# proc xcb_ewmh_set_desktop_viewport_checked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint; list_len: uint32; list: ptr xcb_ewmh_coordinates_t): xcb_void_cookie_t
# ## *
# ## @brief Send GetProperty request to get _NET_DESKTOP_VIEWPORT root
# ## window property
# ##
# ## @param ewmh The information relative to EWMH
# ## @param screen_nbr The screen number
# ## @return The _NET_DESKTOP_VIEWPORT cookie of the GetProperty request
# ##
# proc xcb_ewmh_get_desktop_viewport_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint): xcb_get_property_cookie_t
# ## *
# ## @see xcb_ewmh_get_desktop_viewport_unchecked
# ##
# proc xcb_ewmh_get_desktop_viewport*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint): xcb_get_property_cookie_t
# ## *
# ## @brief Send ClientMessage requesting to change the _NET_DESKTOP_VIEWPORT
# ##
# ## @param ewmh The per-screen EWMH information
# ## @param screen_nbr The screen number
# ## @param new_x The new x coordinate
# ## @param new_y The new y coordinate
# ## @return The SendEvent cookie
# ##
# proc xcb_ewmh_request_change_desktop_viewport*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint; x: uint32; y: uint32): xcb_void_cookie_t
# ## *
# ## @brief Get the desktop geometry from a GetProperty
# ## _NET_DESKTOP_VIEWPORT reply
# ##
# ## @param vp The current desktop viewports
# ## @param r GetProperty _NET_DESKTOP_VIEWPORT reply
# ## @return Return 1 on success, 0 otherwise
# ##
# proc xcb_ewmh_get_desktop_viewport_from_reply*(
# vp: ptr xcb_ewmh_get_desktop_viewport_reply_t; r: ptr xcb_get_property_reply_t): uint8
# ## *
# ## @brief Get reply from the GetProperty _NET_DESKTOP_VIEWPORT cookie
# ##
# ## The parameter e supplied to this function must be NULL if
# ## xcb_get_desktop_viewport_unchecked() is used. Otherwise, it stores
# ## the error if any.
# ##
# ## @param ewmh The information relative to EWMH
# ## @param cookie The _NET_DESKTOP_VIEWPORT GetProperty request cookie
# ## @param vp The current desktop viewports
# ## @param The xcb_generic_error_t supplied
# ## @return Return 1 on success, 0 otherwise
# ##
# proc xcb_ewmh_get_desktop_viewport_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t;
# vp: ptr xcb_ewmh_get_desktop_viewport_reply_t; e: ptr ptr xcb_generic_error_t): uint8
# ## *
# ## @brief Wipe the desktop viewports list reply
# ##
# ## This function must be called to free the memory allocated for atoms
# ## when the reply is requested in xcb_ewmh_get_desktop_viewport_reply
# ## function.
# ##
# ## @param r The X reply to be freed
# ##
# proc xcb_ewmh_get_desktop_viewport_reply_wipe*(
# r: ptr xcb_ewmh_get_desktop_viewport_reply_t)
# ## *
# ## @brief Send a ChangeProperty request for _NET_CURRENT_DESKTOP
# ##
# ## _NET_CURRENT_DESKTOP desktop, CARDINAL/32
# ##
# ## @param ewmh The per-screen EWMH information
# ## @param screen_nbr The screen number
# ## @param new_current_desktop The new current desktop
# ## @return Cookie associated with the ChangeProperty _NET_CURRENT_DESKTOP request
# ##
# proc xcb_ewmh_set_current_desktop*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint; new_current_desktop: uint32): xcb_void_cookie_t
# ## *
# ## @see xcb_ewmh_set_current_desktop
# ##
# proc xcb_ewmh_set_current_desktop_checked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint; new_current_desktop: uint32): xcb_void_cookie_t
# ## *
# ## @brief Send GetProperty request to get _NET_CURRENT_DESKTOP root
# ## window property
# ##
# ## @param ewmh The information relative to EWMH
# ## @param screen_nbr The screen number
# ## @return The _NET_CURRENT_DESKTOP cookie of the GetProperty request
# ##
# proc xcb_ewmh_get_current_desktop_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint): xcb_get_property_cookie_t
# ## *
# ## @see xcb_ewmh_get_current_desktop_unchecked
# ##
# proc xcb_ewmh_get_current_desktop*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint): xcb_get_property_cookie_t
# ## *
# ## @brief Send ClientMessage requesting to change the _NET_CURRENT_DESKTOP
# ##
# ## @param ewmh The per-screen EWMH information
# ## @param screen_nbr The screen number
# ## @param new_desktop The new current desktop
# ## @param timestamp The request timestamp
# ## @return The SendEvent cookie
# ##
# proc xcb_ewmh_request_change_current_desktop*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint; new_desktop: uint32; timestamp: xcb_timestamp_t): xcb_void_cookie_t
# ## *
# ## @brief Get the desktop geometry from a GetProperty
# ## _NET_CURRENT_DESKTOP reply
# ##
# ## @param current_desktop The current desktop
# ## @param r GetProperty _NET_CURRENT_DESKTOP reply
# ## @return Return 1 on success, 0 otherwise
# ##
# proc xcb_ewmh_get_current_desktop_from_reply*(current_desktop: ptr uint32;
# r: ptr xcb_get_property_reply_t): uint8 {.inline.} =
# return xcb_ewmh_get_cardinal_from_reply(current_desktop, r)
# ## *
# ## @brief Get reply from the GetProperty _NET_CURRENT_DESKTOP cookie
# ##
# ## The parameter e supplied to this function must be NULL if
# ## xcb_get_current_desktop_unchecked() is used. Otherwise, it stores
# ## the error if any.
# ##
# ## @param ewmh The information relative to EWMH
# ## @param cookie The _NET_CURRENT_DESKTOP GetProperty request cookie
# ## @param vp The current desktop
# ## @param The xcb_generic_error_t supplied
# ## @return Return 1 on success, 0 otherwise
# ##
# proc xcb_ewmh_get_current_desktop_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t;
# current_desktop: ptr uint32;
# e: ptr ptr xcb_generic_error_t): uint8 {.
# inline.} =
# return xcb_ewmh_get_cardinal_reply(ewmh, cookie, current_desktop, e)
# ## *
# ## @brief Send a ChangeProperty request for _NET_DESKTOP_NAMES
# ##
# ## _NET_DESKTOP_NAMES, UTF8_STRING[]
# ##
# ## @param ewmh The per-screen EWMH information
# ## @param screen_nbr The screen number
# ## @param strings_len The number of desktop names
# ## @param strings The desktop names
# ## @return Cookie associated with the ChangeProperty _NET_DESKTOP_NAMES request
# ##
# proc xcb_ewmh_set_desktop_names*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint;
# strings_len: uint32; strings: cstring): xcb_void_cookie_t
# ## *
# ## @see xcb_ewmh_set_desktop_names
# ##
# proc xcb_ewmh_set_desktop_names_checked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint; strings_len: uint32;
# strings: cstring): xcb_void_cookie_t
# ## *
# ## @brief Send GetProperty request to get _NET_DESKTOP_NAMES root
# ## window property
# ##
# ## @param ewmh The information relative to EWMH
# ## @return The _NET_DESKTOP_NAMES cookie of the GetProperty request
# ##
# proc xcb_ewmh_get_desktop_names_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint): xcb_get_property_cookie_t
# ## *
# ## @see xcb_ewmh_get_desktop_names_unchecked
# ##
# proc xcb_ewmh_get_desktop_names*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint): xcb_get_property_cookie_t
# ## *
# ## @brief Get the desktop geometry from a GetProperty
# ## _NET_DESKTOP_NAMES reply
# ##
# ## @param ewmh The information relative to EWMH
# ## @param names The desktop names
# ## @param r GetProperty _NET_DESKTOP_NAMES reply
# ## @return Return 1 on success, 0 otherwise
# ##
# proc xcb_ewmh_get_desktop_names_from_reply*(ewmh: ptr xcb_ewmh_connection_t;
# names: ptr xcb_ewmh_get_utf8_strings_reply_t; r: ptr xcb_get_property_reply_t): uint8 {.
# inline.} =
# return xcb_ewmh_get_utf8_strings_from_reply(ewmh, names, r)
# ## *
# ## @brief Get reply from the GetProperty _NET_DESKTOP_NAMES cookie
# ##
# ## The parameter e supplied to this function must be NULL if
# ## xcb_get_desktop_names_unchecked() is used. Otherwise, it stores
# ## the error if any.
# ##
# ## @param ewmh The information relative to EWMH
# ## @param cookie The _NET_DESKTOP_NAMES GetProperty request cookie
# ## @param names The desktop names
# ## @param The xcb_generic_error_t supplied
# ## @return Return 1 on success, 0 otherwise
# ##
# proc xcb_ewmh_get_desktop_names_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t; names: ptr xcb_ewmh_get_utf8_strings_reply_t;
# e: ptr ptr xcb_generic_error_t): uint8 {.
# inline.} =
# return xcb_ewmh_get_utf8_strings_reply(ewmh, cookie, names, e)
# ## *
# ## @brief Send a ChangeProperty request for _NET_ACTIVE_WINDOW
# ##
# ## _NET_ACTIVE_WINDOW, WINDOW/32
# ##
# ## @param ewmh The per-screen EWMH information
# ## @param screen_nbr The screen number
# ## @param new_active_window The window to make active
# ## @return Cookie associated with the ChangeProperty _NET_ACTIVE_WINDOW request
# ##
# proc xcb_ewmh_set_active_window*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint;
# new_active_window: xcb_window_t): xcb_void_cookie_t
# ## *
# ## @see xcb_ewmh_set_active_window
# ##
# proc xcb_ewmh_set_active_window_checked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint;
# new_active_window: xcb_window_t): xcb_void_cookie_t
# ## *
# ## @brief Send ClientMessage requesting to change the _NET_ACTIVE_WINDOW
# ##
# ## The window ID of the currently active window or None if no window
# ## has the focus. This is a read-only property set by the Window
# ## Manager. If a Client wants to activate another window, it MUST send
# ## a _NET_ACTIVE_WINDOW client message to the root window. The
# ## timestamp is Client's last user activity timestamp at the time of
# ## the request, and the currently active window is the Client's active
# ## toplevel window, if any (the Window Manager may be e.g. more likely
# ## to obey the request if it will mean transferring focus from one
# ## active window to another).
# ##
# ## @see xcb_ewmh_client_source_type_t
# ## @param ewmh The information relative to EWMH
# ## @param screen_nbr The screen number
# ## @param window_to_active The window ID to activate
# ## @param source_indication The source indication
# ## @param timestamp The client's last user activity timestamp
# ## @param current_active_window The currently active window or None
# ##
# proc xcb_ewmh_request_change_active_window*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint; window_to_activate: xcb_window_t;
# source_indication: xcb_ewmh_client_source_type_t; timestamp: xcb_timestamp_t;
# current_active_window: xcb_window_t): xcb_void_cookie_t
# ## *
# ## @brief Send GetProperty request to get _NET_ACTIVE_WINDOW root
# ## window property
# ##
# ## The window ID of the currently active window or None if no window
# ## has the focus. This is a read-only property set by the Window
# ## Manager. This property SHOULD be set and updated by the Window
# ## Manager.
# ##
# ## This form can be used only if the request will cause a reply to be
# ## generated. Any returned error will be placed in the event queue.
# ##
# ## @param ewmh The information relative to EWMH
# ## @param screen_nbr The screen number
# ## @return The _NET_ACTIVE_WINDOW cookie of the GetProperty request
# ##
# proc xcb_ewmh_get_active_window_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint): xcb_get_property_cookie_t
# ## *
# ## @brief Send GetProperty request to get _NET_ACTIVE_WINDOW root
# ## window property
# ##
# ## @see xcb_ewmh_get_active_window_unchecked
# ## @param ewmh The information relative to EWMH
# ## @param screen_nbr The screen number
# ## @return The _NET_ACTIVE_WINDOW cookie of the GetProperty request
# ##
# proc xcb_ewmh_get_active_window*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint): xcb_get_property_cookie_t
# ## *
# ## @brief Get the list of client windows from a GetProperty
# ## _NET_ACTIVE_WINDOW reply
# ##
# ## @param active_window The current active window
# ## @param r GetProperty _NET_ACTIVE_WINDOW_OF_DESKTOPS reply
# ## @return Return 1 on success, 0 otherwise
# ##
# proc xcb_ewmh_get_active_window_from_reply*(active_window: ptr xcb_window_t;
# r: ptr xcb_get_property_reply_t): uint8 {.inline.} =
# return xcb_ewmh_get_window_from_reply(active_window, r)
# ## *
# ## @brief Get reply from the GetProperty _NET_ACTIVE_WINDOW cookie
# ##
# ## The parameter e supplied to this function must be NULL if
# ## xcb_get_active_window_unchecked() is used. Otherwise, it stores
# ## the error if any.
# ##
# ## @param ewmh The information relative to EWMH.
# ## @param cookie The _NET_ACTIVE_WINDOW GetProperty request cookie.
# ## @param active_window The reply to be filled.
# ## @param The xcb_generic_error_t supplied.
# ## @return Return 1 on success, 0 otherwise.
# ##
# proc xcb_ewmh_get_active_window_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t;
# active_window: ptr xcb_window_t;
# e: ptr ptr xcb_generic_error_t): uint8 {.
# inline.} =
# return xcb_ewmh_get_window_reply(ewmh, cookie, active_window, e)
# ## *
# ## @brief Send a ChangeProperty request for _NET_WORKAREA
# ##
# ## _NET_WORKAREA, x, y, width, height CARDINAL[][4]/32
# ##
# ## @param ewmh The per-screen EWMH information
# ## @param screen_nbr The screen number
# ## @param list_len The number of desktops workareas
# ## @param list The desktops workareas
# ## @return Cookie associated with the ChangeProperty _NET_WORKAREA request
# ##
# proc xcb_ewmh_set_workarea*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint;
# list_len: uint32; list: ptr xcb_ewmh_geometry_t): xcb_void_cookie_t
# ## *
# ## @see xcb_ewmh_set_workarea
# ##
# proc xcb_ewmh_set_workarea_checked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint; list_len: uint32;
# list: ptr xcb_ewmh_geometry_t): xcb_void_cookie_t
# ## *
# ## @brief Send GetProperty request to get _NET_WORKAREA root
# ## window property
# ##
# ## @param ewmh The information relative to EWMH
# ## @param screen_nbr The screen number
# ## @return The _NET_WORKAREA cookie of the GetProperty request
# ##
# proc xcb_ewmh_get_workarea_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint): xcb_get_property_cookie_t
# ## *
# ## @see xcb_ewmh_get_virtual_roots_unchecked
# ##
# ## *
# ## @brief Wipe the workarea list reply
# ##
# ## This function must be called to free the memory allocated for atoms
# ## when the reply is requested in xcb_ewmh_get_workarea_reply
# ## function.
# ##
# ## @param r The X reply to be freed
# ##
# proc xcb_ewmh_get_workarea_reply_wipe*(r: ptr xcb_ewmh_get_workarea_reply_t)
# ## *
# ## @brief Send a ChangeProperty request for _NET_SUPPORTING_WM_CHECK
# ##
# ## _NET_SUPPORTING_WM_CHECK, WINDOW/32
# ##
# ## @param ewmh The per-screen EWMH information
# ## @param parent_window The root window or child window created by the WM
# ## @param child_window The child window created by the WM
# ## @return Cookie associated with the ChangeProperty _NET_SUPPORTING_WM_CHECK request
# ##
# proc xcb_ewmh_set_supporting_wm_check*(ewmh: ptr xcb_ewmh_connection_t;
# parent_window: xcb_window_t;
# child_window: xcb_window_t): xcb_void_cookie_t
# ## *
# ## @see xcb_ewmh_set_supporting_wm_check
# ##
# proc xcb_ewmh_set_supporting_wm_check_checked*(ewmh: ptr xcb_ewmh_connection_t;
# parent_window: xcb_window_t; child_window: xcb_window_t): xcb_void_cookie_t
# ## *
# ## @brief Send GetProperty request to get _NET_SUPPORTING_WM_CHECK
# ## root window property
# ##
# ## @param ewmh The information relative to EWMH
# ## @param screen_nbr The screen number
# ## @return The _NET_SUPPORTING_WM_CHECK cookie of the GetProperty request
# ##
# proc xcb_ewmh_get_supporting_wm_check_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# ## *
# ## @see xcb_ewmh_get_supporting_wm_check_unchecked
# ##
# proc xcb_ewmh_get_supporting_wm_check*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# ## *
# ## @brief Get the list of client windows from a GetProperty
# ## _NET_SUPPORTING_WM_CHECK reply
# ##
# ## @param window The child window created by the WM
# ## @param r GetProperty _NET_SUPPORTING_WM_CHECK reply
# ## @return Return 1 on success, 0 otherwise
# ##
# proc xcb_ewmh_get_supporting_wm_check_from_reply*(window: ptr xcb_window_t;
# r: ptr xcb_get_property_reply_t): uint8 {.inline.} =
# return xcb_ewmh_get_window_from_reply(window, r)
# ## *
# ## @brief Get reply from the GetProperty _NET_SUPPORTING_WM_CHECK
# ## cookie
# ##
# ## The parameter e supplied to this function must be NULL if
# ## xcb_get_supporting_wm_check_unchecked() is used. Otherwise, it
# ## stores the error if any.
# ##
# ## @param ewmh The information relative to EWMH
# ## @param cookie The _NET_SUPPORTING_WM_CHECK GetProperty request cookie
# ## @param window The reply to be filled
# ## @param The xcb_generic_error_t supplied
# ## @return Return 1 on success, 0 otherwise
# ##
# proc xcb_ewmh_get_supporting_wm_check_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t; window: ptr xcb_window_t;
# e: ptr ptr xcb_generic_error_t): uint8 {.inline.} =
# return xcb_ewmh_get_window_reply(ewmh, cookie, window, e)
# ## *
# ## @brief Send a ChangeProperty request for _NET_VIRTUAL_ROOTS
# ##
# ## _NET_VIRTUAL_ROOTS, WINDOW[]/32
# ##
# ## @param ewmh The per-screen EWMH information
# ## @param screen_nbr The screen number
# ## @param list_len The number of virtual root windows
# ## @param list The virtual root windows
# ## @return Cookie associated with the ChangeProperty _NET_VIRTUAL_ROOTS request
# ##
# proc xcb_ewmh_set_virtual_roots*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint;
# list_len: uint32; list: ptr xcb_window_t): xcb_void_cookie_t
# ## *
# ## @see xcb_ewmh_set_virtual_roots
# ##
# proc xcb_ewmh_set_virtual_roots_checked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint; list_len: uint32;
# list: ptr xcb_window_t): xcb_void_cookie_t
# ## *
# ## @brief Send GetProperty request to get _NET_VIRTUAL_ROOTS root
# ## window property
# ##
# ## @param ewmh The information relative to EWMH
# ## @param screen_nbr The screen number
# ## @return The _NET_VIRTUAL_ROOTS cookie of the GetProperty request
# ##
# proc xcb_ewmh_get_virtual_roots_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint): xcb_get_property_cookie_t
# ## *
# ## @see xcb_ewmh_get_virtual_roots_unchecked
# ##
# proc xcb_ewmh_get_virtual_roots*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint): xcb_get_property_cookie_t
# ## *
# ## @brief Get the desktop geometry from a GetProperty _NET_WORKAREA
# ## reply
# ##
# ## @param virtual_roots The current virtual root windows
# ## @param r GetProperty _NET_VIRTUAL_ROOTS reply
# ## @return Return 1 on success, 0 otherwise
# ##
# proc xcb_ewmh_get_virtual_roots_from_reply*(
# virtual_roots: ptr xcb_ewmh_get_windows_reply_t;
# r: ptr xcb_get_property_reply_t): uint8 {.inline.} =
# return xcb_ewmh_get_windows_from_reply(virtual_roots, r)
# ## *
# ## @brief Get reply from the GetProperty _NET_VIRTUAL_ROOTS cookie
# ##
# ## The parameter e supplied to this function must be NULL if
# ## xcb_get_virtual_roots_unchecked() is used. Otherwise, it stores
# ## the error if any.
# ##
# ## @param ewmh The information relative to EWMH
# ## @param cookie The _NET_VIRTUAL_ROOTS GetProperty request cookie
# ## @param virtual_roots The current virtual root windows
# ## @param The xcb_generic_error_t supplied
# ## @return Return 1 on success, 0 otherwise
# ##
# proc xcb_ewmh_get_virtual_roots_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t;
# virtual_roots: ptr xcb_ewmh_get_windows_reply_t; e: ptr ptr xcb_generic_error_t): uint8 {.
# inline.} =
# return xcb_ewmh_get_windows_reply(ewmh, cookie, virtual_roots, e)
# proc xcb_ewmh_set_desktop_layout*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint;
# orientation: xcb_ewmh_desktop_layout_orientation_t; columns: uint32;
# rows: uint32; starting_corner: xcb_ewmh_desktop_layout_starting_corner_t): xcb_void_cookie_t
# proc xcb_ewmh_set_desktop_layout_checked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint; orientation: xcb_ewmh_desktop_layout_orientation_t;
# columns: uint32; rows: uint32;
# starting_corner: xcb_ewmh_desktop_layout_starting_corner_t): xcb_void_cookie_t
# ## *
# ## @brief Send GetProperty request to get _NET_DESKTOP_LAYOUT root
# ## window property
# ##
# ## @param ewmh The information relative to EWMH
# ## @param screen_nbr The screen number
# ## @return The _NET_DESKTOP_LAYOUT cookie of the GetProperty request
# ##
# proc xcb_ewmh_get_desktop_layout_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint): xcb_get_property_cookie_t
# ## *
# ## @see xcb_ewmh_get_desktop_layout_unchecked
# ##
# proc xcb_ewmh_get_desktop_layout*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint): xcb_get_property_cookie_t
# proc xcb_ewmh_get_desktop_layout_from_reply*(
# desktop_layouts: ptr xcb_ewmh_get_desktop_layout_reply_t;
# r: ptr xcb_get_property_reply_t): uint8
# proc xcb_ewmh_get_desktop_layout_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t;
# desktop_layouts: ptr xcb_ewmh_get_desktop_layout_reply_t;
# e: ptr ptr xcb_generic_error_t): uint8
# proc xcb_ewmh_set_showing_desktop*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint; desktop: uint32): xcb_void_cookie_t
# proc xcb_ewmh_set_showing_desktop_checked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint; desktop: uint32): xcb_void_cookie_t
# proc xcb_ewmh_get_showing_desktop_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint): xcb_get_property_cookie_t
# proc xcb_ewmh_get_showing_desktop*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint): xcb_get_property_cookie_t
# proc xcb_ewmh_get_showing_desktop_from_reply*(desktop: ptr uint32;
# r: ptr xcb_get_property_reply_t): uint8 {.inline.} =
# return xcb_ewmh_get_cardinal_from_reply(desktop, r)
# proc xcb_ewmh_get_showing_desktop_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t;
# desktop: ptr uint32;
# e: ptr ptr xcb_generic_error_t): uint8 {.
# inline.} =
# return xcb_ewmh_get_cardinal_reply(ewmh, cookie, desktop, e)
# proc xcb_ewmh_request_change_showing_desktop*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint; enter: uint32): xcb_void_cookie_t {.inline.} =
# return xcb_ewmh_send_client_message(ewmh.connection, XCB_NONE,
# ewmh.screens[screen_nbr].root,
# ewmh._NET_SHOWING_DESKTOP, sizeof((enter)),
# addr(enter))
# proc xcb_ewmh_request_close_window*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint;
# window_to_close: xcb_window_t;
# timestamp: xcb_timestamp_t; source_indication: xcb_ewmh_client_source_type_t): xcb_void_cookie_t
# proc xcb_ewmh_request_moveresize_window*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint;
# moveresize_window: xcb_window_t;
# gravity: xcb_gravity_t; source_indication: xcb_ewmh_client_source_type_t;
# flags: xcb_ewmh_moveresize_window_opt_flags_t; x: uint32; y: uint32;
# width: uint32; height: uint32): xcb_void_cookie_t
# proc xcb_ewmh_request_wm_moveresize*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint;
# moveresize_window: xcb_window_t;
# x_root: uint32; y_root: uint32;
# direction: xcb_ewmh_moveresize_direction_t;
# button: xcb_button_index_t; source_indication: xcb_ewmh_client_source_type_t): xcb_void_cookie_t
# proc xcb_ewmh_request_restack_window*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint;
# window_to_restack: xcb_window_t;
# sibling_window: xcb_window_t;
# detail: xcb_stack_mode_t): xcb_void_cookie_t
# proc xcb_ewmh_request_frame_extents*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint; client_window: xcb_window_t): xcb_void_cookie_t {.
# inline.} =
# return xcb_ewmh_send_client_message(ewmh.connection, client_window,
# ewmh.screens[screen_nbr].root,
# ewmh._NET_REQUEST_FRAME_EXTENTS, 0, nil)
# proc xcb_ewmh_set_wm_name*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t;
# strings_len: uint32; strings: cstring): xcb_void_cookie_t
# proc xcb_ewmh_set_wm_name_checked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; strings_len: uint32;
# strings: cstring): xcb_void_cookie_t
# proc xcb_ewmh_get_wm_name_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_name*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_name_from_reply*(ewmh: ptr xcb_ewmh_connection_t; data: ptr xcb_ewmh_get_utf8_strings_reply_t;
# r: ptr xcb_get_property_reply_t): uint8 {.
# inline.} =
# return xcb_ewmh_get_utf8_strings_from_reply(ewmh, data, r)
# proc xcb_ewmh_get_wm_name_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t;
# data: ptr xcb_ewmh_get_utf8_strings_reply_t;
# e: ptr ptr xcb_generic_error_t): uint8 {.inline.} =
# return xcb_ewmh_get_utf8_strings_reply(ewmh, cookie, data, e)
# proc xcb_ewmh_set_wm_visible_name*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; strings_len: uint32;
# strings: cstring): xcb_void_cookie_t
# proc xcb_ewmh_set_wm_visible_name_checked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; strings_len: uint32; strings: cstring): xcb_void_cookie_t
# proc xcb_ewmh_get_wm_visible_name_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_visible_name*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_visible_name_from_reply*(ewmh: ptr xcb_ewmh_connection_t;
# data: ptr xcb_ewmh_get_utf8_strings_reply_t; r: ptr xcb_get_property_reply_t): uint8 {.
# inline.} =
# return xcb_ewmh_get_utf8_strings_from_reply(ewmh, data, r)
# proc xcb_ewmh_get_wm_visible_name_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t; data: ptr xcb_ewmh_get_utf8_strings_reply_t;
# e: ptr ptr xcb_generic_error_t): uint8 {.
# inline.} =
# return xcb_ewmh_get_utf8_strings_reply(ewmh, cookie, data, e)
# proc xcb_ewmh_set_wm_icon_name*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; strings_len: uint32;
# strings: cstring): xcb_void_cookie_t
# proc xcb_ewmh_set_wm_icon_name_checked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t;
# strings_len: uint32; strings: cstring): xcb_void_cookie_t
# proc xcb_ewmh_get_wm_icon_name_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_icon_name*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_icon_name_from_reply*(ewmh: ptr xcb_ewmh_connection_t;
# data: ptr xcb_ewmh_get_utf8_strings_reply_t; r: ptr xcb_get_property_reply_t): uint8 {.
# inline.} =
# return xcb_ewmh_get_utf8_strings_from_reply(ewmh, data, r)
# proc xcb_ewmh_get_wm_icon_name_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t; data: ptr xcb_ewmh_get_utf8_strings_reply_t;
# e: ptr ptr xcb_generic_error_t): uint8 {.
# inline.} =
# return xcb_ewmh_get_utf8_strings_reply(ewmh, cookie, data, e)
# proc xcb_ewmh_set_wm_visible_icon_name*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t;
# strings_len: uint32; strings: cstring): xcb_void_cookie_t
# proc xcb_ewmh_set_wm_visible_icon_name_checked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; strings_len: uint32; strings: cstring): xcb_void_cookie_t
# proc xcb_ewmh_get_wm_visible_icon_name_unchecked*(
# ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_visible_icon_name*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_visible_icon_name_from_reply*(
# ewmh: ptr xcb_ewmh_connection_t; data: ptr xcb_ewmh_get_utf8_strings_reply_t;
# r: ptr xcb_get_property_reply_t): uint8 {.inline.} =
# return xcb_ewmh_get_utf8_strings_from_reply(ewmh, data, r)
# proc xcb_ewmh_get_wm_visible_icon_name_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t;
# data: ptr xcb_ewmh_get_utf8_strings_reply_t; e: ptr ptr xcb_generic_error_t): uint8 {.
# inline.} =
# return xcb_ewmh_get_utf8_strings_reply(ewmh, cookie, data, e)
# proc xcb_ewmh_set_wm_desktop*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t;
# desktop: uint32): xcb_void_cookie_t
# proc xcb_ewmh_set_wm_desktop_checked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; desktop: uint32): xcb_void_cookie_t
# proc xcb_ewmh_get_wm_desktop_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_desktop*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_desktop_from_reply*(desktop: ptr uint32;
# r: ptr xcb_get_property_reply_t): uint8 {.
# inline.} =
# return xcb_ewmh_get_cardinal_from_reply(desktop, r)
# proc xcb_ewmh_get_wm_desktop_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t;
# desktop: ptr uint32;
# e: ptr ptr xcb_generic_error_t): uint8 {.inline.} =
# return xcb_ewmh_get_cardinal_reply(ewmh, cookie, desktop, e)
# proc xcb_ewmh_request_change_wm_desktop*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint;
# client_window: xcb_window_t;
# new_desktop: uint32; source_indication: xcb_ewmh_client_source_type_t): xcb_void_cookie_t
# proc xcb_ewmh_set_wm_window_type*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; list_len: uint32;
# list: ptr xcb_atom_t): xcb_void_cookie_t
# proc xcb_ewmh_set_wm_window_type_checked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; list_len: uint32; list: ptr xcb_atom_t): xcb_void_cookie_t
# proc xcb_ewmh_get_wm_window_type_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_window_type*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_window_type_from_reply*(
# wtypes: ptr xcb_ewmh_get_atoms_reply_t; r: ptr xcb_get_property_reply_t): uint8
# proc xcb_ewmh_get_wm_window_type_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t;
# name: ptr xcb_ewmh_get_atoms_reply_t;
# e: ptr ptr xcb_generic_error_t): uint8
# proc xcb_ewmh_set_wm_state*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t;
# list_len: uint32; list: ptr xcb_atom_t): xcb_void_cookie_t
# proc xcb_ewmh_set_wm_state_checked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; list_len: uint32;
# list: ptr xcb_atom_t): xcb_void_cookie_t
# proc xcb_ewmh_get_wm_state_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_state*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_state_from_reply*(wtypes: ptr xcb_ewmh_get_atoms_reply_t;
# r: ptr xcb_get_property_reply_t): uint8
# proc xcb_ewmh_get_wm_state_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t;
# name: ptr xcb_ewmh_get_atoms_reply_t;
# e: ptr ptr xcb_generic_error_t): uint8
# proc xcb_ewmh_request_change_wm_state*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint;
# client_window: xcb_window_t;
# action: xcb_ewmh_wm_state_action_t;
# first_property: xcb_atom_t;
# second_property: xcb_atom_t;
# source_indication: xcb_ewmh_client_source_type_t): xcb_void_cookie_t
# proc xcb_ewmh_set_wm_allowed_actions*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; list_len: uint32;
# list: ptr xcb_atom_t): xcb_void_cookie_t
# proc xcb_ewmh_set_wm_allowed_actions_checked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; list_len: uint32; list: ptr xcb_atom_t): xcb_void_cookie_t
# proc xcb_ewmh_get_wm_allowed_actions_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_allowed_actions*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_allowed_actions_from_reply*(
# wtypes: ptr xcb_ewmh_get_atoms_reply_t; r: ptr xcb_get_property_reply_t): uint8
# proc xcb_ewmh_get_wm_allowed_actions_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t; name: ptr xcb_ewmh_get_atoms_reply_t;
# e: ptr ptr xcb_generic_error_t): uint8
# proc xcb_ewmh_set_wm_strut*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t;
# left: uint32; right: uint32; top: uint32;
# bottom: uint32): xcb_void_cookie_t
# proc xcb_ewmh_set_wm_strut_checked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; left: uint32;
# right: uint32; top: uint32; bottom: uint32): xcb_void_cookie_t
# proc xcb_ewmh_get_wm_strut_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_strut*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_strut_from_reply*(struts: ptr xcb_ewmh_get_extents_reply_t;
# r: ptr xcb_get_property_reply_t): uint8
# proc xcb_ewmh_get_wm_strut_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t;
# struts: ptr xcb_ewmh_get_extents_reply_t;
# e: ptr ptr xcb_generic_error_t): uint8
# proc xcb_ewmh_set_wm_strut_partial*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t;
# wm_strut: xcb_ewmh_wm_strut_partial_t): xcb_void_cookie_t
# proc xcb_ewmh_set_wm_strut_partial_checked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; wm_strut: xcb_ewmh_wm_strut_partial_t): xcb_void_cookie_t
# proc xcb_ewmh_get_wm_strut_partial_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_strut_partial*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_strut_partial_from_reply*(
# struts: ptr xcb_ewmh_wm_strut_partial_t; r: ptr xcb_get_property_reply_t): uint8
# proc xcb_ewmh_get_wm_strut_partial_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t; struts: ptr xcb_ewmh_wm_strut_partial_t;
# e: ptr ptr xcb_generic_error_t): uint8
# proc xcb_ewmh_set_wm_icon_geometry*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; left: uint32;
# right: uint32; top: uint32; bottom: uint32): xcb_void_cookie_t
# proc xcb_ewmh_set_wm_icon_geometry_checked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; left: uint32; right: uint32; top: uint32;
# bottom: uint32): xcb_void_cookie_t
# proc xcb_ewmh_get_wm_icon_geometry_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_icon_geometry*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_icon_geometry_from_reply*(icons: ptr xcb_ewmh_geometry_t;
# r: ptr xcb_get_property_reply_t): uint8
# proc xcb_ewmh_get_wm_icon_geometry_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t; icons: ptr xcb_ewmh_geometry_t;
# e: ptr ptr xcb_generic_error_t): uint8
# ## *
# ## @brief Send ChangeProperty request to set _NET_WM_ICON window
# ## property. The given data is considered to be already
# ## prepared, namely that it is an array such as: WIDTH1,
# ## HEIGHT1, IMG1, WIDTH2, HEIGHT2, IMG2.
# ##
# ## If you only want to add or append a single icon, you may
# ## consider using xcb_ewmh_append_wm_icon_checked which is far
# ## easier to use.
# ##
# ## _NET_WM_ICON CARDINAL[][2+n]/32
# ##
# ## @param ewmh The information relative to EWMH
# ## @param mode ChangeProperty mode (xcb_prop_mode_t)
# ## @param window The window to set the property on
# ## @param data_len Length of the data
# ## @param data The data
# ##
# proc xcb_ewmh_set_wm_icon_checked*(ewmh: ptr xcb_ewmh_connection_t; mode: uint8;
# window: xcb_window_t; data_len: uint32;
# data: ptr uint32): xcb_void_cookie_t {.inline.} =
# return xcb_change_property_checked(ewmh.connection, mode, window,
# ewmh._NET_WM_ICON, XCB_ATOM_CARDINAL, 32,
# data_len, data)
# ## *
# ## @see xcb_ewmh_set_wm_icon_checked
# ##
# proc xcb_ewmh_set_wm_icon*(ewmh: ptr xcb_ewmh_connection_t; mode: uint8;
# window: xcb_window_t; data_len: uint32;
# data: ptr uint32): xcb_void_cookie_t {.inline.} =
# return xcb_change_property(ewmh.connection, mode, window, ewmh._NET_WM_ICON,
# XCB_ATOM_CARDINAL, 32, data_len, data)
# proc xcb_ewmh_append_wm_icon_checked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; width: uint32;
# height: uint32; img_len: uint32;
# img: ptr uint32): xcb_void_cookie_t
# proc xcb_ewmh_append_wm_icon*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t;
# width: uint32; height: uint32; img_len: uint32;
# img: ptr uint32): xcb_void_cookie_t
# proc xcb_ewmh_get_wm_icon_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_icon*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_icon_from_reply*(wm_icon: ptr xcb_ewmh_get_wm_icon_reply_t;
# r: ptr xcb_get_property_reply_t): uint8
# proc xcb_ewmh_get_wm_icon_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t;
# wm_icon: ptr xcb_ewmh_get_wm_icon_reply_t;
# e: ptr ptr xcb_generic_error_t): uint8
# proc xcb_ewmh_get_wm_icon_iterator*(wm_icon: ptr xcb_ewmh_get_wm_icon_reply_t): xcb_ewmh_wm_icon_iterator_t
# proc xcb_ewmh_get_wm_icon_length*(wm_icon: ptr xcb_ewmh_get_wm_icon_reply_t): uint8
# proc xcb_ewmh_get_wm_icon_next*(`iterator`: ptr xcb_ewmh_wm_icon_iterator_t)
# proc xcb_ewmh_get_wm_icon_reply_wipe*(wm_icon: ptr xcb_ewmh_get_wm_icon_reply_t)
# proc xcb_ewmh_set_wm_pid*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t;
# pid: uint32): xcb_void_cookie_t
# proc xcb_ewmh_set_wm_pid_checked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; pid: uint32): xcb_void_cookie_t
# proc xcb_ewmh_get_wm_pid_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_pid*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_pid_from_reply*(pid: ptr uint32;
# r: ptr xcb_get_property_reply_t): uint8 {.
# inline.} =
# return xcb_ewmh_get_cardinal_from_reply(pid, r)
# proc xcb_ewmh_get_wm_pid_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t;
# pid: ptr uint32; e: ptr ptr xcb_generic_error_t): uint8 {.
# inline.} =
# return xcb_ewmh_get_cardinal_reply(ewmh, cookie, pid, e)
# proc xcb_ewmh_set_wm_handled_icons*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; handled_icons: uint32): xcb_void_cookie_t
# proc xcb_ewmh_set_wm_handled_icons_checked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; handled_icons: uint32): xcb_void_cookie_t
# proc xcb_ewmh_get_wm_handled_icons_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_handled_icons*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_handled_icons_from_reply*(handled_icons: ptr uint32;
# r: ptr xcb_get_property_reply_t): uint8 {.inline.} =
# return xcb_ewmh_get_cardinal_from_reply(handled_icons, r)
# proc xcb_ewmh_get_wm_handled_icons_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t; handled_icons: ptr uint32;
# e: ptr ptr xcb_generic_error_t): uint8 {.inline.} =
# return xcb_ewmh_get_cardinal_reply(ewmh, cookie, handled_icons, e)
# proc xcb_ewmh_set_wm_user_time*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; xtime: uint32): xcb_void_cookie_t
# proc xcb_ewmh_set_wm_user_time_checked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; pid: uint32): xcb_void_cookie_t
# proc xcb_ewmh_get_wm_user_time_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_user_time*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_user_time_from_reply*(xtime: ptr uint32;
# r: ptr xcb_get_property_reply_t): uint8 {.inline.} =
# return xcb_ewmh_get_cardinal_from_reply(xtime, r)
# proc xcb_ewmh_get_wm_user_time_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t;
# xtime: ptr uint32;
# e: ptr ptr xcb_generic_error_t): uint8 {.
# inline.} =
# return xcb_ewmh_get_cardinal_reply(ewmh, cookie, xtime, e)
# proc xcb_ewmh_set_wm_user_time_window*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; xtime: uint32): xcb_void_cookie_t
# proc xcb_ewmh_set_wm_user_time_window_checked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; pid: uint32): xcb_void_cookie_t
# proc xcb_ewmh_get_wm_user_time_window_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_user_time_window*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_user_time_window_from_reply*(xtime: ptr uint32;
# r: ptr xcb_get_property_reply_t): uint8 {.inline.} =
# return xcb_ewmh_get_cardinal_from_reply(xtime, r)
# proc xcb_ewmh_get_wm_user_time_window_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t; xtime: ptr uint32;
# e: ptr ptr xcb_generic_error_t): uint8 {.inline.} =
# return xcb_ewmh_get_cardinal_reply(ewmh, cookie, xtime, e)
# proc xcb_ewmh_set_frame_extents*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; left: uint32;
# right: uint32; top: uint32; bottom: uint32): xcb_void_cookie_t
# proc xcb_ewmh_set_frame_extents_checked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; left: uint32;
# right: uint32; top: uint32;
# bottom: uint32): xcb_void_cookie_t
# proc xcb_ewmh_get_frame_extents_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_frame_extents*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_frame_extents_from_reply*(
# frame_extents: ptr xcb_ewmh_get_extents_reply_t;
# r: ptr xcb_get_property_reply_t): uint8
# proc xcb_ewmh_get_frame_extents_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t;
# frame_extents: ptr xcb_ewmh_get_extents_reply_t; e: ptr ptr xcb_generic_error_t): uint8
# proc xcb_ewmh_send_wm_ping*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t;
# timestamp: xcb_timestamp_t): xcb_void_cookie_t
# proc xcb_ewmh_set_wm_sync_request_counter*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; wm_sync_request_counter_atom: xcb_atom_t; low: uint32;
# high: uint32): xcb_void_cookie_t
# proc xcb_ewmh_set_wm_sync_request_counter_checked*(
# ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t;
# wm_sync_request_counter_atom: xcb_atom_t; low: uint32; high: uint32): xcb_void_cookie_t
# proc xcb_ewmh_get_wm_sync_request_counter_unchecked*(
# ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_sync_request_counter*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_sync_request_counter_from_reply*(counter: ptr uint64;
# r: ptr xcb_get_property_reply_t): uint8
# proc xcb_ewmh_get_wm_sync_request_counter_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t; counter: ptr uint64;
# e: ptr ptr xcb_generic_error_t): uint8
# proc xcb_ewmh_send_wm_sync_request*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t;
# wm_protocols_atom: xcb_atom_t;
# wm_sync_request_atom: xcb_atom_t;
# timestamp: xcb_timestamp_t; counter: uint64): xcb_void_cookie_t
# proc xcb_ewmh_set_wm_fullscreen_monitors*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t; top: uint32; bottom: uint32; left: uint32;
# right: uint32): xcb_void_cookie_t
# proc xcb_ewmh_set_wm_fullscreen_monitors_checked*(
# ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t; top: uint32;
# bottom: uint32; left: uint32; right: uint32): xcb_void_cookie_t
# proc xcb_ewmh_get_wm_fullscreen_monitors_unchecked*(
# ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_fullscreen_monitors*(ewmh: ptr xcb_ewmh_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# proc xcb_ewmh_get_wm_fullscreen_monitors_from_reply*(
# monitors: ptr xcb_ewmh_get_wm_fullscreen_monitors_reply_t;
# r: ptr xcb_get_property_reply_t): uint8
# proc xcb_ewmh_get_wm_fullscreen_monitors_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_property_cookie_t;
# monitors: ptr xcb_ewmh_get_wm_fullscreen_monitors_reply_t;
# e: ptr ptr xcb_generic_error_t): uint8
# proc xcb_ewmh_request_change_wm_fullscreen_monitors*(
# ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint; window: xcb_window_t;
# top: uint32; bottom: uint32; left: uint32; right: uint32;
# source_indication: xcb_ewmh_client_source_type_t): xcb_void_cookie_t
# ## *
# ## @brief Set _NET_WM_CM_Sn ownership to the given window
# ##
# ## For each screen they manage, compositing manager MUST acquire
# ## ownership of a selection named _NET_WM_CM_Sn, where n is the screen
# ## number.
# ##
# ## @param ewmh The information relative to EWMH
# ## @param screen_nbr The screen number
# ## @param owner The new owner of _NET_WM_CM_Sn selection
# ## @param timestamp The client's last user activity timestamp
# ## @param selection_data1 Optional data described by ICCCM
# ## @param selection_data2 Optional data described by ICCCM
# ##
# proc xcb_ewmh_set_wm_cm_owner*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint;
# owner: xcb_window_t; timestamp: xcb_timestamp_t;
# selection_data1: uint32; selection_data2: uint32): xcb_void_cookie_t
# ## *
# ## @see xcb_ewmh_set_wm_cm_owner
# ##
# proc xcb_ewmh_set_wm_cm_owner_checked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint; owner: xcb_window_t;
# timestamp: xcb_timestamp_t;
# selection_data1: uint32;
# selection_data2: uint32): xcb_void_cookie_t
# ## *
# ## @brief Send GetSelectOwner request to get the owner of
# ## _NET_WM_CM_Sn root window property
# ##
# ## @param ewmh The information relative to EWMH
# ## @param screen_nbr The screen number
# ## @return The _NET_WM_CM_Sn cookie of the GetSelectionOwner request
# ##
# proc xcb_ewmh_get_wm_cm_owner_unchecked*(ewmh: ptr xcb_ewmh_connection_t;
# screen_nbr: cint): xcb_get_selection_owner_cookie_t
# ## *
# ## @see xcb_ewmh_get_wm_cm_owner_unchecked
# ##
# proc xcb_ewmh_get_wm_cm_owner*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint): xcb_get_selection_owner_cookie_t
# proc xcb_ewmh_get_wm_cm_owner_from_reply*(owner: ptr xcb_window_t;
# r: ptr xcb_get_selection_owner_reply_t): uint8
# ## *
# ## @brief Get reply from the GetProperty _NET_CLIENT_LIST cookie
# ##
# ## The parameter e supplied to this function must be NULL if
# ## xcb_get_window_client_list_unchecked() is used. Otherwise, it
# ## stores the error if any.
# ##
# ## @param ewmh The information relative to EWMH.
# ## @param cookie The _NET_WM_CM_Sn GetSelectionOwner request cookie.
# ## @param owner The window ID which owns the selection or None.
# ## @param The xcb_generic_error_t supplied.
# ## @return Return 1 on success, 0 otherwise.
# ##
# proc xcb_ewmh_get_wm_cm_owner_reply*(ewmh: ptr xcb_ewmh_connection_t;
# cookie: xcb_get_selection_owner_cookie_t;
# owner: ptr xcb_window_t;
# e: ptr ptr xcb_generic_error_t): uint8
# ## *
# ## @}
# ##
# ##
# ## Copyright (C) 2001-2004 Bart Massey and Jamey Sharp.
# ## All Rights Reserved.
# ##
# ## Permission is hereby granted, free of charge, to any person obtaining a
# ## copy of this software and associated documentation files (the "Software"),
# ## to deal in the Software without restriction, including without limitation
# ## the rights to use, copy, modify, merge, publish, distribute, sublicense,
# ## and/or sell copies of the Software, and to permit persons to whom the
# ## Software is furnished to do so, subject to the following conditions:
# ##
# ## The above copyright notice and this permission notice shall be included in
# ## all copies or substantial portions of the Software.
# ##
# ## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# ## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# ## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# ## AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
# ## ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# ## CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# ##
# ## Except as contained in this notice, the names of the authors or their
# ## institutions shall not be used in advertising or otherwise to promote the
# ## sale, use or other dealings in this Software without prior written
# ## authorization from the authors.
# ##
# ## xcb_ext.c
# ## xcb_out.c
# type
# xcb_protocol_request_t* {.bycopy.} = object
# count*: csize
# ext*: ptr xcb_extension_t
# opcode*: uint8
# isvoid*: uint8
# xcb_send_request_flags_t* = enum
# XCB_REQUEST_CHECKED = 1 shl 0, XCB_REQUEST_RAW = 1 shl 1,
# XCB_REQUEST_DISCARD_REPLY = 1 shl 2, XCB_REQUEST_REPLY_FDS = 1 shl 3
# ## *
# ## @brief Send a request to the server.
# ## @param c The connection to the X server.
# ## @param flags A combination of flags from the xcb_send_request_flags_t enumeration.
# ## @param vector Data to send; must have two iovecs before start for internal use.
# ## @param request Information about the request to be sent.
# ## @return The request's sequence number on success, 0 otherwise.
# ##
# ## This function sends a new request to the X server. The data of the request is
# ## given as an array of @c iovecs in the @p vector argument. The length of that
# ## array and the necessary management information are given in the @p request
# ## argument.
# ##
# ## When this function returns, the request might or might not be sent already.
# ## Use xcb_flush() to make sure that it really was sent.
# ##
# ## Please note that this function is not the preferred way for sending requests.
# ## It's better to use the generated wrapper functions.
# ##
# ## Please note that xcb might use index -1 and -2 of the @p vector array internally,
# ## so they must be valid!
# ##
# proc xcb_send_request*(c: ptr xcb_connection_t; flags: cint; vector: ptr iovec;
# request: ptr xcb_protocol_request_t): uint8
# ## *
# ## @brief Send a request to the server.
# ## @param c The connection to the X server.
# ## @param flags A combination of flags from the xcb_send_request_flags_t enumeration.
# ## @param vector Data to send; must have two iovecs before start for internal use.
# ## @param request Information about the request to be sent.
# ## @param num_fds Number of additional file descriptors to send to the server
# ## @param fds Additional file descriptors that should be send to the server.
# ## @return The request's sequence number on success, 0 otherwise.
# ##
# ## This function sends a new request to the X server. The data of the request is
# ## given as an array of @c iovecs in the @p vector argument. The length of that
# ## array and the necessary management information are given in the @p request
# ## argument.
# ##
# ## If @p num_fds is non-zero, @p fds points to an array of file descriptors that
# ## will be sent to the X server along with this request. After this function
# ## returns, all file descriptors sent are owned by xcb and will be closed
# ## eventually.
# ##
# ## When this function returns, the request might or might not be sent already.
# ## Use xcb_flush() to make sure that it really was sent.
# ##
# ## Please note that this function is not the preferred way for sending requests.
# ##
# ## Please note that xcb might use index -1 and -2 of the @p vector array internally,
# ## so they must be valid!
# ##
# proc xcb_send_request_with_fds*(c: ptr xcb_connection_t; flags: cint;
# vector: ptr iovec;
# request: ptr xcb_protocol_request_t; num_fds: uint8;
# fds: ptr cint): uint8
# ## *
# ## @brief Send a request to the server, with 64-bit sequence number returned.
# ## @param c The connection to the X server.
# ## @param flags A combination of flags from the xcb_send_request_flags_t enumeration.
# ## @param vector Data to send; must have two iovecs before start for internal use.
# ## @param request Information about the request to be sent.
# ## @return The request's sequence number on success, 0 otherwise.
# ##
# ## This function sends a new request to the X server. The data of the request is
# ## given as an array of @c iovecs in the @p vector argument. The length of that
# ## array and the necessary management information are given in the @p request
# ## argument.
# ##
# ## When this function returns, the request might or might not be sent already.
# ## Use xcb_flush() to make sure that it really was sent.
# ##
# ## Please note that this function is not the preferred way for sending requests.
# ## It's better to use the generated wrapper functions.
# ##
# ## Please note that xcb might use index -1 and -2 of the @p vector array internally,
# ## so they must be valid!
# ##
# proc xcb_send_request64*(c: ptr xcb_connection_t; flags: cint; vector: ptr iovec;
# request: ptr xcb_protocol_request_t): uint64
# ## *
# ## @brief Send a request to the server, with 64-bit sequence number returned.
# ## @param c The connection to the X server.
# ## @param flags A combination of flags from the xcb_send_request_flags_t enumeration.
# ## @param vector Data to send; must have two iovecs before start for internal use.
# ## @param request Information about the request to be sent.
# ## @param num_fds Number of additional file descriptors to send to the server
# ## @param fds Additional file descriptors that should be send to the server.
# ## @return The request's sequence number on success, 0 otherwise.
# ##
# ## This function sends a new request to the X server. The data of the request is
# ## given as an array of @c iovecs in the @p vector argument. The length of that
# ## array and the necessary management information are given in the @p request
# ## argument.
# ##
# ## If @p num_fds is non-zero, @p fds points to an array of file descriptors that
# ## will be sent to the X server along with this request. After this function
# ## returns, all file descriptors sent are owned by xcb and will be closed
# ## eventually.
# ##
# ## When this function returns, the request might or might not be sent already.
# ## Use xcb_flush() to make sure that it really was sent.
# ##
# ## Please note that this function is not the preferred way for sending requests.
# ## It's better to use the generated wrapper functions.
# ##
# ## Please note that xcb might use index -1 and -2 of the @p vector array internally,
# ## so they must be valid!
# ##
# proc xcb_send_request_with_fds64*(c: ptr xcb_connection_t; flags: cint;
# vector: ptr iovec;
# request: ptr xcb_protocol_request_t;
# num_fds: uint8; fds: ptr cint): uint64
# ## *
# ## @brief Send a file descriptor to the server in the next call to xcb_send_request.
# ## @param c The connection to the X server.
# ## @param fd The file descriptor to send.
# ##
# ## After this function returns, the file descriptor given is owned by xcb and
# ## will be closed eventually.
# ##
# ## @deprecated This function cannot be used in a thread-safe way. Two threads
# ## that run xcb_send_fd(); xcb_send_request(); could mix up their file
# ## descriptors. Instead, xcb_send_request_with_fds() should be used.
# ##
# proc xcb_send_fd*(c: ptr xcb_connection_t; fd: cint)
# ## *
# ## @brief Take over the write side of the socket
# ## @param c The connection to the X server.
# ## @param return_socket Callback function that will be called when xcb wants
# ## to use the socket again.
# ## @param closure Argument to the callback function.
# ## @param flags A combination of flags from the xcb_send_request_flags_t enumeration.
# ## @param sent Location to the sequence number of the last sequence request.
# ## Must not be NULL.
# ## @return 1 on success, else 0.
# ##
# ## xcb_take_socket allows external code to ask XCB for permission to
# ## take over the write side of the socket and send raw data with
# ## xcb_writev. xcb_take_socket provides the sequence number of the last
# ## request XCB sent. The caller of xcb_take_socket must supply a
# ## callback which XCB can call when it wants the write side of the
# ## socket back to make a request. This callback synchronizes with the
# ## external socket owner and flushes any output queues if appropriate.
# ## If you are sending requests which won't cause a reply, please note the
# ## comment for xcb_writev which explains some sequence number wrap issues.
# ##
# ## All replies that are generated while the socket is owned externally have
# ## @p flags applied to them. For example, use XCB_REQUEST_CHECK if you don't
# ## want errors to go to xcb's normal error handling, but instead having to be
# ## picked up via xcb_wait_for_reply(), xcb_poll_for_reply() or
# ## xcb_request_check().
# ##
# proc xcb_take_socket*(c: ptr xcb_connection_t;
# return_socket: proc (closure: pointer); closure: pointer;
# flags: cint; sent: ptr uint64): cint
# ## *
# ## @brief Send raw data to the X server.
# ## @param c The connection to the X server.
# ## @param vector Array of data to be sent.
# ## @param count Number of entries in @p vector.
# ## @param requests Number of requests that are being sent.
# ## @return 1 on success, else 0.
# ##
# ## You must own the write-side of the socket (you've called
# ## xcb_take_socket, and haven't returned from return_socket yet) to call
# ## xcb_writev. Also, the iovec must have at least 1 byte of data in it.
# ## You have to make sure that xcb can detect sequence number wraps correctly.
# ## This means that the first request you send after xcb_take_socket must cause a
# ## reply (e.g. just insert a GetInputFocus request). After every (1 << 16) - 1
# ## requests without a reply, you have to insert a request which will cause a
# ## reply. You can again use GetInputFocus for this. You do not have to wait for
# ## any of the GetInputFocus replies, but can instead handle them via
# ## xcb_discard_reply().
# ##
# proc xcb_writev*(c: ptr xcb_connection_t; vector: ptr iovec; count: cint;
# requests: uint64): cint
# ## xcb_in.c
# ## *
# ## @brief Wait for the reply of a given request.
# ## @param c The connection to the X server.
# ## @param request Sequence number of the request as returned by xcb_send_request().
# ## @param e Location to store errors in, or NULL. Ignored for unchecked requests.
# ##
# ## Returns the reply to the given request or returns null in the event of
# ## errors. Blocks until the reply or error for the request arrives, or an I/O
# ## error occurs.
# ##
# proc xcb_wait_for_reply*(c: ptr xcb_connection_t; request: uint8;
# e: ptr ptr xcb_generic_error_t): pointer
# ## *
# ## @brief Wait for the reply of a given request, with 64-bit sequence number
# ## @param c The connection to the X server.
# ## @param request 64-bit sequence number of the request as returned by xcb_send_request64().
# ## @param e Location to store errors in, or NULL. Ignored for unchecked requests.
# ##
# ## Returns the reply to the given request or returns null in the event of
# ## errors. Blocks until the reply or error for the request arrives, or an I/O
# ## error occurs.
# ##
# ## Unlike its xcb_wait_for_reply() counterpart, the given sequence number is not
# ## automatically "widened" to 64-bit.
# ##
# proc xcb_wait_for_reply64*(c: ptr xcb_connection_t; request: uint64;
# e: ptr ptr xcb_generic_error_t): pointer
# ## *
# ## @brief Poll for the reply of a given request.
# ## @param c The connection to the X server.
# ## @param request Sequence number of the request as returned by xcb_send_request().
# ## @param reply Location to store the reply in, must not be NULL.
# ## @param error Location to store errors in, or NULL. Ignored for unchecked requests.
# ## @return 1 when the reply to the request was returned, else 0.
# ##
# ## Checks if the reply to the given request already received. Does not block.
# ##
# proc xcb_poll_for_reply*(c: ptr xcb_connection_t; request: uint8; reply: ptr pointer;
# error: ptr ptr xcb_generic_error_t): cint
# ## *
# ## @brief Poll for the reply of a given request, with 64-bit sequence number.
# ## @param c The connection to the X server.
# ## @param request 64-bit sequence number of the request as returned by xcb_send_request().
# ## @param reply Location to store the reply in, must not be NULL.
# ## @param error Location to store errors in, or NULL. Ignored for unchecked requests.
# ## @return 1 when the reply to the request was returned, else 0.
# ##
# ## Checks if the reply to the given request already received. Does not block.
# ##
# ## Unlike its xcb_poll_for_reply() counterpart, the given sequence number is not
# ## automatically "widened" to 64-bit.
# ##
# proc xcb_poll_for_reply64*(c: ptr xcb_connection_t; request: uint64;
# reply: ptr pointer; error: ptr ptr xcb_generic_error_t): cint
# ## *
# ## @brief Don't use this, only needed by the generated code.
# ## @param c The connection to the X server.
# ## @param reply A reply that was received from the server
# ## @param replylen The size of the reply.
# ## @return Pointer to the location where received file descriptors are stored.
# ##
# proc xcb_get_reply_fds*(c: ptr xcb_connection_t; reply: pointer; replylen: csize): ptr cint
# ## xcb_util.c
# ## *
# ## @param mask The mask to check
# ## @return The number of set bits in the mask
# ##
# proc xcb_popcount*(mask: uint32): cint
# ## *
# ## @param list The base of an array
# ## @param len The length of the array
# ## @return The sum of all entries in the array.
# ##
# proc xcb_sumof*(list: ptr uint8; len: cint): cint
# ##
# ## Copyright (C) 2001-2006 Bart Massey, Jamey Sharp, and Josh Triplett.
# ## All Rights Reserved.
# ##
# ## Permission is hereby granted, free of charge, to any person obtaining a
# ## copy of this software and associated documentation files (the "Software"),
# ## to deal in the Software without restriction, including without limitation
# ## the rights to use, copy, modify, merge, publish, distribute, sublicense,
# ## and/or sell copies of the Software, and to permit persons to whom the
# ## Software is furnished to do so, subject to the following conditions:
# ##
# ## The above copyright notice and this permission notice shall be included in
# ## all copies or substantial portions of the Software.
# ##
# ## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# ## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# ## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# ## AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
# ## ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# ## CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# ##
# ## Except as contained in this notice, the names of the authors or their
# ## institutions shall not be used in advertising or otherwise to promote the
# ## sale, use or other dealings in this Software without prior written
# ## authorization from the authors.
# ##
# when defined(__solaris__):
# else:
# when not defined(_WIN32):
# else:
# import
# xcb_windefs
# ## *
# ## @file xcb.h
# ##
# const
# XCB_PACKED* = __attribute__((__packed__))
# ## *
# ## @defgroup XCB_Core_API XCB Core API
# ## @brief Core API of the XCB library.
# ##
# ## @{
# ##
# ## Pre-defined constants
# ## * Current protocol version
# const
# X_PROTOCOL* = 11
# ## * Current minor version
# const
# X_PROTOCOL_REVISION* = 0
# ## * X_TCP_PORT + display number = server port for TCP transport
# const
# X_TCP_PORT* = 6000
# ## * xcb connection errors because of socket, pipe and other stream errors.
# const
# XCB_CONN_ERROR* = 1
# ## * xcb connection shutdown because of extension not supported
# const
# XCB_CONN_CLOSED_EXT_NOTSUPPORTED* = 2
# ## * malloc(), calloc() and realloc() error upon failure, for eg ENOMEM
# const
# XCB_CONN_CLOSED_MEM_INSUFFICIENT* = 3
# ## * Connection closed, exceeding request length that server accepts.
# const
# XCB_CONN_CLOSED_REQ_LEN_EXCEED* = 4
# ## * Connection closed, error during parsing display string.
# const
# XCB_CONN_CLOSED_PARSE_ERR* = 5
# ## * Connection closed because the server does not have a screen matching the display.
# const
# XCB_CONN_CLOSED_INVALID_SCREEN* = 6
# ## * Connection closed because some FD passing operation failed
# const
# XCB_CONN_CLOSED_FDPASSING_FAILED* = 7
# template XCB_TYPE_PAD*(T, I: untyped): untyped =
# (-(I) and (if sizeof((T)) > 4: 3 else: sizeof((T)) - 1))
# ## Opaque structures
# ## *
# ## @brief XCB Connection structure.
# ##
# ## A structure that contain all data that XCB needs to communicate with an X server.
# ##
# ## *< Opaque structure containing all data that XCB needs to communicate with an X server.
# ## Other types
# ## *
# ## @brief Generic iterator.
# ##
# ## A generic iterator structure.
# ##
# type
# xcb_generic_iterator_t* {.bycopy.} = object
# data*: pointer ## *< Data of the current iterator
# rem*: cint ## *< remaining elements
# index*: cint ## *< index of the current iterator
# ## *
# ## @brief Generic reply.
# ##
# ## A generic reply structure.
# ##
# type
# xcb_generic_reply_t* {.bycopy.} = object
# response_type*: uint8 ## *< Type of the response
# pad0*: uint8 ## *< Padding
# sequence*: uint16 ## *< Sequence number
# length*: uint32 ## *< Length of the response
# ## *
# ## @brief Generic event.
# ##
# ## A generic event structure.
# ##
# type
# xcb_generic_event_t* {.bycopy.} = object
# response_type*: uint8 ## *< Type of the response
# pad0*: uint8 ## *< Padding
# sequence*: uint16 ## *< Sequence number
# pad*: array[7, uint32] ## *< Padding
# full_sequence*: uint32 ## *< full sequence
# ## *
# ## @brief Raw Generic event.
# ##
# ## A generic event structure as used on the wire, i.e., without the full_sequence field
# ##
# type
# xcb_raw_generic_event_t* {.bycopy.} = object
# response_type*: uint8 ## *< Type of the response
# pad0*: uint8 ## *< Padding
# sequence*: uint16 ## *< Sequence number
# pad*: array[7, uint32] ## *< Padding
# ## *
# ## @brief GE event
# ##
# ## An event as sent by the XGE extension. The length field specifies the
# ## number of 4-byte blocks trailing the struct.
# ##
# ## @deprecated Since some fields in this struct have unfortunate names, it is
# ## recommended to use xcb_ge_generic_event_t instead.
# ##
# type
# xcb_ge_event_t* {.bycopy.} = object
# response_type*: uint8 ## *< Type of the response
# pad0*: uint8 ## *< Padding
# sequence*: uint16 ## *< Sequence number
# length*: uint32
# event_type*: uint16
# pad1*: uint16
# pad*: array[5, uint32] ## *< Padding
# full_sequence*: uint32 ## *< full sequence
# ## *
# ## @brief Generic error.
# ##
# ## A generic error structure.
# ##
# type
# xcb_generic_error_t* {.bycopy.} = object
# response_type*: uint8 ## *< Type of the response
# error_code*: uint8 ## *< Error code
# sequence*: uint16 ## *< Sequence number
# resource_id*: uint32 ## * < Resource ID for requests with side effects only
# minor_code*: uint16 ## * < Minor opcode of the failed request
# major_code*: uint8 ## * < Major opcode of the failed request
# pad0*: uint8
# pad*: array[5, uint32] ## *< Padding
# full_sequence*: uint32 ## *< full sequence
# ## *
# ## @brief Generic cookie.
# ##
# ## A generic cookie structure.
# ##
# type
# xcb_void_cookie_t* {.bycopy.} = object
# sequence*: uint8 ## *< Sequence number
# ## Include the generated xproto header.
# import
# xproto
# ## * XCB_NONE is the universal null resource or null atom parameter value for many core X requests
# const
# XCB_NONE* = 0
# ## * XCB_COPY_FROM_PARENT can be used for many xcb_create_window parameters
# const
# XCB_COPY_FROM_PARENT* = 0
# ## * XCB_CURRENT_TIME can be used in most requests that take an xcb_timestamp_t
# const
# XCB_CURRENT_TIME* = 0
# ## * XCB_NO_SYMBOL fills in unused entries in xcb_keysym_t tables
# const
# XCB_NO_SYMBOL* = 0
# ## xcb_auth.c
# ## *
# ## @brief Container for authorization information.
# ##
# ## A container for authorization information to be sent to the X server.
# ##
# type
# xcb_auth_info_t* {.bycopy.} = object
# namelen*: cint ## *< Length of the string name (as returned by strlen).
# name*: cstring ## *< String containing the authentication protocol name, such as "MIT-MAGIC-COOKIE-1" or "XDM-AUTHORIZATION-1".
# datalen*: cint ## *< Length of the data member.
# data*: cstring ## *< Data interpreted in a protocol-specific manner.
# ## xcb_out.c
# ## *
# ## @brief Forces any buffered output to be written to the server.
# ## @param c The connection to the X server.
# ## @return > @c 0 on success, <= @c 0 otherwise.
# ##
# ## Forces any buffered output to be written to the server. Blocks
# ## until the write is complete.
# ##
# proc xcb_flush*(c: ptr xcb_connection_t): cint
# ## *
# ## @brief Returns the maximum request length that this server accepts.
# ## @param c The connection to the X server.
# ## @return The maximum request length field.
# ##
# ## In the absence of the BIG-REQUESTS extension, returns the
# ## maximum request length field from the connection setup data, which
# ## may be as much as 65535. If the server supports BIG-REQUESTS, then
# ## the maximum request length field from the reply to the
# ## BigRequestsEnable request will be returned instead.
# ##
# ## Note that this length is measured in four-byte units, making the
# ## theoretical maximum lengths roughly 256kB without BIG-REQUESTS and
# ## 16GB with.
# ##
# proc xcb_get_maximum_request_length*(c: ptr xcb_connection_t): uint32
# ## *
# ## @brief Prefetch the maximum request length without blocking.
# ## @param c The connection to the X server.
# ##
# ## Without blocking, does as much work as possible toward computing
# ## the maximum request length accepted by the X server.
# ##
# ## Invoking this function may cause a call to xcb_big_requests_enable,
# ## but will not block waiting for the reply.
# ## xcb_get_maximum_request_length will return the prefetched data
# ## after possibly blocking while the reply is retrieved.
# ##
# ## Note that in order for this function to be fully non-blocking, the
# ## application must previously have called
# ## xcb_prefetch_extension_data(c, &xcb_big_requests_id) and the reply
# ## must have already arrived.
# ##
# proc xcb_prefetch_maximum_request_length*(c: ptr xcb_connection_t)
# ## xcb_in.c
# ## *
# ## @brief Returns the next event or error from the server.
# ## @param c The connection to the X server.
# ## @return The next event from the server.
# ##
# ## Returns the next event or error from the server, or returns null in
# ## the event of an I/O error. Blocks until either an event or error
# ## arrive, or an I/O error occurs.
# ##
# proc xcb_wait_for_event*(c: ptr xcb_connection_t): ptr xcb_generic_event_t
# ## *
# ## @brief Returns the next event or error from the server.
# ## @param c The connection to the X server.
# ## @return The next event from the server.
# ##
# ## Returns the next event or error from the server, if one is
# ## available, or returns @c NULL otherwise. If no event is available, that
# ## might be because an I/O error like connection close occurred while
# ## attempting to read the next event, in which case the connection is
# ## shut down when this function returns.
# ##
# proc xcb_poll_for_event*(c: ptr xcb_connection_t): ptr xcb_generic_event_t
# ## *
# ## @brief Returns the next event without reading from the connection.
# ## @param c The connection to the X server.
# ## @return The next already queued event from the server.
# ##
# ## This is a version of xcb_poll_for_event that only examines the
# ## event queue for new events. The function doesn't try to read new
# ## events from the connection if no queued events are found.
# ##
# ## This function is useful for callers that know in advance that all
# ## interesting events have already been read from the connection. For
# ## example, callers might use xcb_wait_for_reply and be interested
# ## only of events that preceded a specific reply.
# ##
# type
# xcb_special_event_t* = xcb_special_event
# ## *
# ## @brief Returns the next event from a special queue
# ##
# proc xcb_poll_for_special_event*(c: ptr xcb_connection_t;
# se: ptr xcb_special_event_t): ptr xcb_generic_event_t
# ## *
# ## @brief Returns the next event from a special queue, blocking until one arrives
# ##
# proc xcb_wait_for_special_event*(c: ptr xcb_connection_t;
# se: ptr xcb_special_event_t): ptr xcb_generic_event_t
# ## *
# ## @typedef typedef struct xcb_extension_t xcb_extension_t
# ##
# ## *< Opaque structure used as key for xcb_get_extension_data_t.
# ## *
# ## @brief Listen for a special event
# ##
# proc xcb_register_for_special_xge*(c: ptr xcb_connection_t;
# ext: ptr xcb_extension_t; eid: uint32;
# stamp: ptr uint32): ptr xcb_special_event_t
# ## *
# ## @brief Stop listening for a special event
# ##
# proc xcb_unregister_for_special_event*(c: ptr xcb_connection_t;
# se: ptr xcb_special_event_t)
# ## *
# ## @brief Return the error for a request, or NULL if none can ever arrive.
# ## @param c The connection to the X server.
# ## @param cookie The request cookie.
# ## @return The error for the request, or NULL if none can ever arrive.
# ##
# ## The xcb_void_cookie_t cookie supplied to this function must have resulted
# ## from a call to xcb_[request_name]_checked(). This function will block
# ## until one of two conditions happens. If an error is received, it will be
# ## returned. If a reply to a subsequent request has already arrived, no error
# ## can arrive for this request, so this function will return NULL.
# ##
# ## Note that this function will perform a sync if needed to ensure that the
# ## sequence number will advance beyond that provided in cookie; this is a
# ## convenience to avoid races in determining whether the sync is needed.
# ##
# proc xcb_request_check*(c: ptr xcb_connection_t; cookie: xcb_void_cookie_t): ptr xcb_generic_error_t
# ## *
# ## @brief Discards the reply for a request.
# ## @param c The connection to the X server.
# ## @param sequence The request sequence number from a cookie.
# ##
# ## Discards the reply for a request. Additionally, any error generated
# ## by the request is also discarded (unless it was an _unchecked request
# ## and the error has already arrived).
# ##
# ## This function will not block even if the reply is not yet available.
# ##
# ## Note that the sequence really does have to come from an xcb cookie;
# ## this function is not designed to operate on socket-handoff replies.
# ##
# proc xcb_discard_reply*(c: ptr xcb_connection_t; sequence: uint8)
# ## *
# ## @brief Discards the reply for a request, given by a 64bit sequence number
# ## @param c The connection to the X server.
# ## @param sequence 64-bit sequence number as returned by xcb_send_request64().
# ##
# ## Discards the reply for a request. Additionally, any error generated
# ## by the request is also discarded (unless it was an _unchecked request
# ## and the error has already arrived).
# ##
# ## This function will not block even if the reply is not yet available.
# ##
# ## Note that the sequence really does have to come from xcb_send_request64();
# ## the cookie sequence number is defined as "unsigned" int and therefore
# ## not 64-bit on all platforms.
# ## This function is not designed to operate on socket-handoff replies.
# ##
# ## Unlike its xcb_discard_reply() counterpart, the given sequence number is not
# ## automatically "widened" to 64-bit.
# ##
# proc xcb_discard_reply64*(c: ptr xcb_connection_t; sequence: uint64)
# ## xcb_ext.c
# ## *
# ## @brief Caches reply information from QueryExtension requests.
# ## @param c The connection.
# ## @param ext The extension data.
# ## @return A pointer to the xcb_query_extension_reply_t for the extension.
# ##
# ## This function is the primary interface to the "extension cache",
# ## which caches reply information from QueryExtension
# ## requests. Invoking this function may cause a call to
# ## xcb_query_extension to retrieve extension information from the
# ## server, and may block until extension data is received from the
# ## server.
# ##
# ## The result must not be freed. This storage is managed by the cache
# ## itself.
# ##
# proc xcb_get_setup*(c: ptr xcb_connection_t): ptr xcb_setup_t
# ## *
# ## @brief Access the file descriptor of the connection.
# ## @param c The connection.
# ## @return The file descriptor.
# ##
# ## Accessor for the file descriptor that was passed to the
# ## xcb_connect_to_fd call that returned @p c.
# ##
# proc xcb_get_file_descriptor*(c: ptr xcb_connection_t): cint
# ## *
# ## @brief Test whether the connection has shut down due to a fatal error.
# ## @param c The connection.
# ## @return > 0 if the connection is in an error state; 0 otherwise.
# ##
# ## Some errors that occur in the context of an xcb_connection_t
# ## are unrecoverable. When such an error occurs, the
# ## connection is shut down and further operations on the
# ## xcb_connection_t have no effect, but memory will not be freed until
# ## xcb_disconnect() is called on the xcb_connection_t.
# ##
# ## @return XCB_CONN_ERROR, because of socket errors, pipe errors or other stream errors.
# ## @return XCB_CONN_CLOSED_EXT_NOTSUPPORTED, when extension not supported.
# ## @return XCB_CONN_CLOSED_MEM_INSUFFICIENT, when memory not available.
# ## @return XCB_CONN_CLOSED_REQ_LEN_EXCEED, exceeding request length that server accepts.
# ## @return XCB_CONN_CLOSED_PARSE_ERR, error during parsing display string.
# ## @return XCB_CONN_CLOSED_INVALID_SCREEN, because the server does not have a screen matching the display.
# ##
# proc xcb_connection_has_error*(c: ptr xcb_connection_t): cint
# ## *
# ## @brief Connects to the X server.
# ## @param fd The file descriptor.
# ## @param auth_info Authentication data.
# ## @return A newly allocated xcb_connection_t structure.
# ##
# ## Connects to an X server, given the open socket @p fd and the
# ## xcb_auth_info_t @p auth_info. The file descriptor @p fd is
# ## bidirectionally connected to an X server. If the connection
# ## should be unauthenticated, @p auth_info must be @c
# ## NULL.
# ##
# ## Always returns a non-NULL pointer to a xcb_connection_t, even on failure.
# ## Callers need to use xcb_connection_has_error() to check for failure.
# ## When finished, use xcb_disconnect() to close the connection and free
# ## the structure.
# ##
# proc xcb_connect_to_fd*(fd: cint; auth_info: ptr xcb_auth_info_t): ptr xcb_connection_t
# ## *
# ## @brief Closes the connection.
# ## @param c The connection.
# ##
# ## Closes the file descriptor and frees all memory associated with the
# ## connection @c c. If @p c is @c NULL, nothing is done.
# ##
# proc xcb_disconnect*(c: ptr xcb_connection_t)
# ## xcb_util.c
# ## *
# ## @brief Parses a display string name in the form documented by X(7x).
# ## @param name The name of the display.
# ## @param host A pointer to a malloc'd copy of the hostname.
# ## @param display A pointer to the display number.
# ## @param screen A pointer to the screen number.
# ## @return 0 on failure, non 0 otherwise.
# ##
# ## Parses the display string name @p display_name in the form
# ## documented by X(7x). Has no side effects on failure. If
# ## @p displayname is @c NULL or empty, it uses the environment
# ## variable DISPLAY. @p hostp is a pointer to a newly allocated string
# ## that contain the host name. @p displayp is set to the display
# ## number and @p screenp to the preferred screen number. @p screenp
# ## can be @c NULL. If @p displayname does not contain a screen number,
# ## it is set to @c 0.
# ##
# proc xcb_parse_display*(name: cstring; host: cstringArray; display: ptr cint;
# screen: ptr cint): cint
# ## *
# ## @brief Connects to the X server.
# ## @param displayname The name of the display.
# ## @param screenp A pointer to a preferred screen number.
# ## @return A newly allocated xcb_connection_t structure.
# ##
# ## Connects to the X server specified by @p displayname. If @p
# ## displayname is @c NULL, uses the value of the DISPLAY environment
# ## variable. If a particular screen on that server is preferred, the
# ## int pointed to by @p screenp (if not @c NULL) will be set to that
# ## screen; otherwise the screen will be set to 0.
# ##
# ## Always returns a non-NULL pointer to a xcb_connection_t, even on failure.
# ## Callers need to use xcb_connection_has_error() to check for failure.
# ## When finished, use xcb_disconnect() to close the connection and free
# ## the structure.
# ##
# proc xcb_connect*(displayname: cstring; screenp: ptr cint): ptr xcb_connection_t
# ## *
# ## @brief Connects to the X server, using an authorization information.
# ## @param display The name of the display.
# ## @param auth The authorization information.
# ## @param screen A pointer to a preferred screen number.
# ## @return A newly allocated xcb_connection_t structure.
# ##
# ## Connects to the X server specified by @p displayname, using the
# ## authorization @p auth. If a particular screen on that server is
# ## preferred, the int pointed to by @p screenp (if not @c NULL) will
# ## be set to that screen; otherwise @p screenp will be set to 0.
# ##
# ## Always returns a non-NULL pointer to a xcb_connection_t, even on failure.
# ## Callers need to use xcb_connection_has_error() to check for failure.
# ## When finished, use xcb_disconnect() to close the connection and free
# ## the structure.
# ##
# proc xcb_connect_to_display_with_auth_info*(display: cstring;
# auth: ptr xcb_auth_info_t; screen: ptr cint): ptr xcb_connection_t
# ## xcb_xid.c
# ## *
# ## @brief Allocates an XID for a new object.
# ## @param c The connection.
# ## @return A newly allocated XID.
# ##
# ## Allocates an XID for a new object. Typically used just prior to
# ## various object creation functions, such as xcb_create_window.
# ##
# proc xcb_generate_id*(c: ptr xcb_connection_t): uint32
# ## *
# ## @}
# ##
# ##
# ## Copyright (C) 2008 Arnaud Fontaine <arnau@debian.org>
# ## Copyright (C) 2007-2008 Vincent Torri <vtorri@univ-evry.fr>
# ##
# ## Permission is hereby granted, free of charge, to any person
# ## obtaining a copy of this software and associated documentation
# ## files (the "Software"), to deal in the Software without
# ## restriction, including without limitation the rights to use, copy,
# ## modify, merge, publish, distribute, sublicense, and/or sell copies
# ## of the Software, and to permit persons to whom the Software is
# ## furnished to do so, subject to the following conditions:
# ##
# ## The above copyright notice and this permission notice shall be
# ## included in all copies or substantial portions of the Software.
# ##
# ## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# ## EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# ## MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# ## NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
# ## CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
# ## CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# ## WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# ##
# ## Except as contained in this notice, the names of the authors or
# ## their institutions shall not be used in advertising or otherwise to
# ## promote the sale, use or other dealings in this Software without
# ## prior written authorization from the authors.
# ##
# ## *
# ## @defgroup xcb__icccm_t XCB ICCCM Functions
# ##
# ## These functions allow easy handling of the protocol described in the
# ## Inter-Client Communication Conventions Manual.
# ##
# ## @{
# ##
# ## *
# ## @brief TextProperty reply structure.
# ##
# type
# xcb_icccm_get_text_property_reply_t* {.bycopy.} = object
# _reply*: ptr xcb_get_property_reply_t ## * Store reply to avoid memory allocation, should normally not be
# ## used directly
# ## * Encoding used
# encoding*: xcb_atom_t ## * Length of the name field above
# name_len*: uint32 ## * Property value
# name*: cstring ## * Format, may be 8, 16 or 32
# format*: uint8
# ## *
# ## @brief Deliver a GetProperty request to the X server.
# ## @param c The connection to the X server.
# ## @param window Window X identifier.
# ## @param property Property atom to get.
# ## @return The request cookie.
# ##
# ## Allow to get a window property, in most case you might want to use
# ## above functions to get an ICCCM property for a given window.
# ##
# proc xcb_icccm_get_text_property*(c: ptr xcb_connection_t; window: xcb_window_t;
# property: xcb_atom_t): xcb_get_property_cookie_t
# ## *
# ## @see xcb_icccm_get_text_property()
# ##
# proc xcb_icccm_get_text_property_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t; property: xcb_atom_t): xcb_get_property_cookie_t
# ## *
# ## @brief Fill given structure with the property value of a window.
# ## @param c The connection to the X server.
# ## @param cookie TextProperty request cookie.
# ## @param prop TextProperty reply which is to be filled.
# ## @param e Error if any.
# ## @return Return 1 on success, 0 otherwise.
# ##
# ## If the function return 0 (failure), the content of prop is unmodified and
# ## therefore the structure must not be wiped.
# ##
# ## The parameter e supplied to this function must be NULL if
# ## xcb_icccm_get_text_property_unchecked() is used. Otherwise, it stores
# ## the error if any. prop structure members should be freed by
# ## xcb_icccm_get_text_property_reply_wipe().
# ##
# proc xcb_icccm_get_text_property_reply*(c: ptr xcb_connection_t;
# cookie: xcb_get_property_cookie_t; prop: ptr xcb_icccm_get_text_property_reply_t;
# e: ptr ptr xcb_generic_error_t): uint8
# ## *
# ## @brief Wipe prop structure members previously allocated by
# ## xcb_icccm_get_text_property_reply().
# ## @param prop prop structure whose members is going to be freed.
# ##
# proc xcb_icccm_get_text_property_reply_wipe*(
# prop: ptr xcb_icccm_get_text_property_reply_t)
# ## WM_NAME
# ## *
# ## @brief Deliver a SetProperty request to set WM_NAME property value.
# ## @param c The connection to the X server.
# ## @param window Window X identifier.
# ## @param encoding Encoding used for the data passed in the name parameter, the set property will also have this encoding as its type.
# ## @param format Encoding format.
# ## @param name_len Length of name value to set.
# ## @param name Name value to set.
# ##
# proc xcb_icccm_set_wm_name_checked*(c: ptr xcb_connection_t; window: xcb_window_t;
# encoding: xcb_atom_t; format: uint8;
# name_len: uint32; name: cstring): xcb_void_cookie_t
# ## *
# ## @see xcb_icccm_set_wm_name_checked()
# ##
# proc xcb_icccm_set_wm_name*(c: ptr xcb_connection_t; window: xcb_window_t;
# encoding: xcb_atom_t; format: uint8;
# name_len: uint32; name: cstring): xcb_void_cookie_t
# ## *
# ## @brief Deliver a GetProperty request to the X server for WM_NAME.
# ## @param c The connection to the X server.
# ## @param window Window X identifier.
# ## @return The request cookie.
# ##
# proc xcb_icccm_get_wm_name*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_get_property_cookie_t
# ## *
# ## @see xcb_icccm_get_wm_name()
# ##
# proc xcb_icccm_get_wm_name_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_get_property_cookie_t
# ## *
# ## @brief Fill given structure with the WM_NAME property of a window.
# ## @param c The connection to the X server.
# ## @param cookie Request cookie.
# ## @param prop WM_NAME property value.
# ## @param e Error if any.
# ## @see xcb_icccm_get_text_property_reply()
# ## @return Return 1 on success, 0 otherwise.
# ##
# proc xcb_icccm_get_wm_name_reply*(c: ptr xcb_connection_t;
# cookie: xcb_get_property_cookie_t;
# prop: ptr xcb_icccm_get_text_property_reply_t;
# e: ptr ptr xcb_generic_error_t): uint8
# ## WM_ICON_NAME
# ## *
# ## @brief Deliver a SetProperty request to set WM_ICON_NAME property value.
# ## @param c The connection to the X server.
# ## @param window Window X identifier.
# ## @param encoding Encoding used for the data passed in the name parameter, the set property will also have this encoding as its type.
# ## @param format Encoding format.
# ## @param name_len Length of name value to set.
# ## @param name Name value to set.
# ##
# proc xcb_icccm_set_wm_icon_name_checked*(c: ptr xcb_connection_t;
# window: xcb_window_t;
# encoding: xcb_atom_t; format: uint8;
# name_len: uint32; name: cstring): xcb_void_cookie_t
# ## *
# ## @see xcb_icccm_set_wm_icon_name_checked()
# ##
# proc xcb_icccm_set_wm_icon_name*(c: ptr xcb_connection_t; window: xcb_window_t;
# encoding: xcb_atom_t; format: uint8;
# name_len: uint32; name: cstring): xcb_void_cookie_t
# ## *
# ## @brief Send request to get WM_ICON_NAME property of a window.
# ## @param c The connection to the X server.
# ## @param window Window X identifier.
# ## @return The request cookie.
# ##
# proc xcb_icccm_get_wm_icon_name*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_get_property_cookie_t
# ## *
# ## @see xcb_icccm_get_wm_icon_name()
# ##
# proc xcb_icccm_get_wm_icon_name_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# ## *
# ## @brief Fill given structure with the WM_ICON_NAME property of a window.
# ## @param c The connection to the X server.
# ## @param cookie Request cookie.
# ## @param prop WM_ICON_NAME property value.
# ## @param e Error if any.
# ## @see xcb_icccm_get_text_property_reply()
# ## @return Return 1 on success, 0 otherwise.
# ##
# proc xcb_icccm_get_wm_icon_name_reply*(c: ptr xcb_connection_t;
# cookie: xcb_get_property_cookie_t; prop: ptr xcb_icccm_get_text_property_reply_t;
# e: ptr ptr xcb_generic_error_t): uint8
# ## WM_COLORMAP_WINDOWS
# ## *
# ## @brief Deliver a ChangeProperty request to set WM_COLORMAP_WINDOWS property value.
# ## @param c The connection to the X server.
# ## @param wm_colormap_windows The WM_COLORMAP_WINDOWS atom
# ## @param window Window X identifier.
# ## @param list_len Windows list len.
# ## @param list Windows list.
# ## @return The request cookie.
# ##
# proc xcb_icccm_set_wm_colormap_windows_checked*(c: ptr xcb_connection_t;
# window: xcb_window_t; wm_colormap_windows_atom: xcb_atom_t; list_len: uint32;
# list: ptr xcb_window_t): xcb_void_cookie_t
# ## *
# ## @see xcb_icccm_set_wm_colormap_windows_checked()
# ##
# proc xcb_icccm_set_wm_colormap_windows*(c: ptr xcb_connection_t;
# window: xcb_window_t;
# wm_colormap_windows_atom: xcb_atom_t;
# list_len: uint32; list: ptr xcb_window_t): xcb_void_cookie_t
# ## *
# ## @brief WM_COLORMAP_WINDOWS structure.
# ##
# type
# xcb_icccm_get_wm_colormap_windows_reply_t* {.bycopy.} = object
# windows_len*: uint32 ## * Length of the windows list
# ## * Windows list
# windows*: ptr xcb_window_t ## * Store reply to avoid memory allocation, should normally not be
# ## used directly
# _reply*: ptr xcb_get_property_reply_t
# ## *
# ## @brief Send request to get WM_COLORMAP_WINDOWS property of a given window.
# ## @param c The connection to the X server.
# ## @param window Window X identifier.
# ## @return The request cookie.
# ##
# proc xcb_icccm_get_wm_colormap_windows*(c: ptr xcb_connection_t;
# window: xcb_window_t;
# wm_colormap_windows_atom: xcb_atom_t): xcb_get_property_cookie_t
# ## *
# ## @see xcb_icccm_get_wm_colormap_windows()
# ##
# proc xcb_icccm_get_wm_colormap_windows_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t; wm_colormap_windows_atom: xcb_atom_t): xcb_get_property_cookie_t
# ## *
# ## @brief Fill the given structure with the WM_COLORMAP_WINDOWS property of a window.
# ## @param reply The reply of the GetProperty request.
# ## @param colormap_windows WM_COLORMAP property value.
# ## @return Return 1 on success, 0 otherwise.
# ##
# ## protocols structure members should be freed by
# ## xcb_icccm_get_wm_protocols_reply_wipe().
# ##
# proc xcb_icccm_get_wm_colormap_windows_from_reply*(
# reply: ptr xcb_get_property_reply_t;
# colormap_windows: ptr xcb_icccm_get_wm_colormap_windows_reply_t): uint8
# ## *
# ## @brief Fill the given structure with the WM_COLORMAP_WINDOWS property of a window.
# ## @param c The connection to the X server.
# ## @param cookie Request cookie.
# ## @param protocols WM_COLORMAP_WINDOWS property value.
# ## @param e Error if any.
# ## @return Return 1 on success, 0 otherwise.
# ##
# ## The parameter e supplied to this function must be NULL if
# ## xcb_icccm_get_wm_colormap_windows_unchecked() is used. Otherwise, it
# ## stores the error if any. protocols structure members should be
# ## freed by xcb_icccm_get_wm_colormap_windows_reply_wipe().
# ##
# proc xcb_icccm_get_wm_colormap_windows_reply*(c: ptr xcb_connection_t;
# cookie: xcb_get_property_cookie_t;
# windows: ptr xcb_icccm_get_wm_colormap_windows_reply_t;
# e: ptr ptr xcb_generic_error_t): uint8
# ## *
# ## @brief Wipe protocols structure members previously allocated by
# ## xcb_icccm_get_wm_colormap_windows_reply().
# ## @param windows windows structure whose members is going to be freed.
# ##
# proc xcb_icccm_get_wm_colormap_windows_reply_wipe*(
# windows: ptr xcb_icccm_get_wm_colormap_windows_reply_t)
# ## WM_CLIENT_MACHINE
# ## *
# ## @brief Deliver a SetProperty request to set WM_CLIENT_MACHINE property value.
# ## @param c The connection to the X server.
# ## @param window Window X identifier.
# ## @param encoding Encoding used for the data passed in the name parameter, the set property will also have this encoding as its type.
# ## @param format Encoding format.
# ## @param name_len Length of name value to set.
# ## @param name Name value to set.
# ##
# proc xcb_icccm_set_wm_client_machine_checked*(c: ptr xcb_connection_t;
# window: xcb_window_t; encoding: xcb_atom_t; format: uint8; name_len: uint32;
# name: cstring): xcb_void_cookie_t
# ## *
# ## @see xcb_icccm_set_wm_client_machine_checked()
# ##
# proc xcb_icccm_set_wm_client_machine*(c: ptr xcb_connection_t; window: xcb_window_t;
# encoding: xcb_atom_t; format: uint8;
# name_len: uint32; name: cstring): xcb_void_cookie_t
# ## *
# ## @brief Send request to get WM_CLIENT_MACHINE property of a window.
# ## @param c The connection to the X server.
# ## @param window Window X identifier.
# ## @return The request cookie.
# ##
# proc xcb_icccm_get_wm_client_machine*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_get_property_cookie_t
# ## *
# ## @see xcb_icccm_get_wm_client_machine()
# ##
# proc xcb_icccm_get_wm_client_machine_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# ## *
# ## @brief Fill given structure with the WM_CLIENT_MACHINE property of a window.
# ## @param c The connection to the X server.
# ## @param cookie Request cookie.
# ## @param prop WM_CLIENT_MACHINE property value.
# ## @param e Error if any.
# ## @see xcb_icccm_get_text_property_reply()
# ## @return Return 1 on success, 0 otherwise.
# ##
# proc xcb_icccm_get_wm_client_machine_reply*(c: ptr xcb_connection_t;
# cookie: xcb_get_property_cookie_t;
# prop: ptr xcb_icccm_get_text_property_reply_t; e: ptr ptr xcb_generic_error_t): uint8
# ## WM_CLASS
# ## *
# ## @brief WM_CLASS hint structure
# ##
# ## *
# ## @brief Deliver a SetProperty request to set WM_CLASS property value.
# ##
# ## WM_CLASS string is a concatenation of the instance and class name
# ## strings respectively (including null character).
# ##
# ## @param c The connection to the X server.
# ## @param window Window X identifier.
# ## @param class_len Length of WM_CLASS string.
# ## @param class_name WM_CLASS string.
# ## @return The request cookie.
# ##
# proc xcb_icccm_set_wm_class_checked*(c: ptr xcb_connection_t; window: xcb_window_t;
# class_len: uint32; class_name: cstring): xcb_void_cookie_t
# ## *
# ## @see xcb_icccm_set_wm_class_checked()
# ##
# proc xcb_icccm_set_wm_class*(c: ptr xcb_connection_t; window: xcb_window_t;
# class_len: uint32; class_name: cstring): xcb_void_cookie_t
# type
# xcb_icccm_get_wm_class_reply_t* {.bycopy.} = object
# instance_name*: cstring ## * Instance name
# ## * Class of application
# class_name*: cstring ## * Store reply to avoid memory allocation, should normally not be
# ## used directly
# _reply*: ptr xcb_get_property_reply_t
# ## *
# ## @brief Deliver a GetProperty request to the X server for WM_CLASS.
# ## @param c The connection to the X server.
# ## @param window Window X identifier.
# ## @return The request cookie.
# ##
# proc xcb_icccm_get_wm_class*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_get_property_cookie_t
# ## *
# ## @see xcb_icccm_get_wm_class()
# ##
# proc xcb_icccm_get_wm_class_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_get_property_cookie_t
# ## *
# ## @brief Fill give structure with the WM_CLASS property of a window.
# ## @param prop The property structure to fill.
# ## @param reply The property request reply.
# ## @return Return 1 on success, 0 otherwise.
# ##
# proc xcb_icccm_get_wm_class_from_reply*(prop: ptr xcb_icccm_get_wm_class_reply_t;
# reply: ptr xcb_get_property_reply_t): uint8
# ## *
# ## @brief Fill given structure with the WM_CLASS property of a window.
# ## @param c The connection to the X server.
# ## @param cookie Request cookie.
# ## @param prop WM_CLASS property value.
# ## @param e Error if any.
# ## @return Return 1 on success, 0 otherwise.
# ##
# ## The parameter e supplied to this function must be NULL if
# ## xcb_icccm_get_wm_class_unchecked() is used. Otherwise, it stores the
# ## error if any. prop structure members should be freed by
# ## xcb_icccm_get_wm_class_reply_wipe().
# ##
# proc xcb_icccm_get_wm_class_reply*(c: ptr xcb_connection_t;
# cookie: xcb_get_property_cookie_t;
# prop: ptr xcb_icccm_get_wm_class_reply_t;
# e: ptr ptr xcb_generic_error_t): uint8
# ## *
# ## @brief Wipe prop structure members previously allocated by
# ## xcb_icccm_get_wm_class_reply().
# ## @param prop prop structure whose members is going to be freed.
# ##
# proc xcb_icccm_get_wm_class_reply_wipe*(prop: ptr xcb_icccm_get_wm_class_reply_t)
# ## WM_TRANSIENT_FOR
# ## *
# ## @brief Deliver a SetProperty request to set WM_TRANSIENT_FOR property value.
# ## @param c The connection to the X server.
# ## @param window Window X identifier.
# ## @param transient_for_window The WM_TRANSIENT_FOR window X identifier.
# ## @return The request cookie.
# ##
# proc xcb_icccm_set_wm_transient_for_checked*(c: ptr xcb_connection_t;
# window: xcb_window_t; transient_for_window: xcb_window_t): xcb_void_cookie_t
# ## *
# ## @see xcb_icccm_set_wm_transient_for
# ##
# proc xcb_icccm_set_wm_transient_for*(c: ptr xcb_connection_t; window: xcb_window_t;
# transient_for_window: xcb_window_t): xcb_void_cookie_t
# ## *
# ## @brief Send request to get WM_TRANSIENT_FOR property of a window.
# ## @param c The connection to the X server
# ## @param window Window X identifier.
# ## @return The request cookie.
# ##
# proc xcb_icccm_get_wm_transient_for*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_get_property_cookie_t
# ## *
# ## @see xcb_icccm_get_wm_transient_for_unchecked()
# ##
# proc xcb_icccm_get_wm_transient_for_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# ## *
# ## @brief Fill given window pointer with the WM_TRANSIENT_FOR property of a window.
# ## @param prop WM_TRANSIENT_FOR property value.
# ## @param reply The get property request reply.
# ## @return Return 1 on success, 0 otherwise.
# ##
# proc xcb_icccm_get_wm_transient_for_from_reply*(prop: ptr xcb_window_t;
# reply: ptr xcb_get_property_reply_t): uint8
# ## *
# ## @brief Fill given structure with the WM_TRANSIENT_FOR property of a window.
# ## @param c The connection to the X server.
# ## @param cookie Request cookie.
# ## @param prop WM_TRANSIENT_FOR property value.
# ## @param e Error if any.
# ## @return Return 1 on success, 0 otherwise.
# ##
# ## The parameter e supplied to this function must be NULL if
# ## xcb_icccm_get_wm_transient_for_unchecked() is used. Otherwise, it stores
# ## the error if any.
# ##
# proc xcb_icccm_get_wm_transient_for_reply*(c: ptr xcb_connection_t;
# cookie: xcb_get_property_cookie_t; prop: ptr xcb_window_t;
# e: ptr ptr xcb_generic_error_t): uint8
# ## WM_SIZE_HINTS
# type
# xcb_icccm_size_hints_flags_t* = enum
# XCB_ICCCM_SIZE_HINT_US_POSITION = 1 shl 0, XCB_ICCCM_SIZE_HINT_US_SIZE = 1 shl 1,
# XCB_ICCCM_SIZE_HINT_P_POSITION = 1 shl 2, XCB_ICCCM_SIZE_HINT_P_SIZE = 1 shl 3,
# XCB_ICCCM_SIZE_HINT_P_MIN_SIZE = 1 shl 4,
# XCB_ICCCM_SIZE_HINT_P_MAX_SIZE = 1 shl 5,
# XCB_ICCCM_SIZE_HINT_P_RESIZE_INC = 1 shl 6,
# XCB_ICCCM_SIZE_HINT_P_ASPECT = 1 shl 7, XCB_ICCCM_SIZE_HINT_BASE_SIZE = 1 shl 8,
# XCB_ICCCM_SIZE_HINT_P_WIN_GRAVITY = 1 shl 9
# ## *
# ## @brief Size hints structure.
# ##
# type
# xcb_size_hints_t* {.bycopy.} = object
# flags*: uint32 ## * User specified flags
# ## * User-specified position
# x*: int32
# y*: int32 ## * User-specified size
# width*: int32
# height*: int32 ## * Program-specified minimum size
# min_width*: int32
# min_height*: int32 ## * Program-specified maximum size
# max_width*: int32
# max_height*: int32 ## * Program-specified resize increments
# width_inc*: int32
# height_inc*: int32 ## * Program-specified minimum aspect ratios
# min_aspect_num*: int32
# min_aspect_den*: int32 ## * Program-specified maximum aspect ratios
# max_aspect_num*: int32
# max_aspect_den*: int32 ## * Program-specified base size
# base_width*: int32
# base_height*: int32 ## * Program-specified window gravity
# win_gravity*: uint32
# ## * Number of elements in this structure
# const
# XCB_ICCCM_NUM_WM_SIZE_HINTS_ELEMENTS* = 18
# ## *
# ## @brief Set size hints to a given position.
# ## @param hints SIZE_HINTS structure.
# ## @param user_specified Is the size user-specified?
# ## @param x The X position.
# ## @param y The Y position.
# ##
# proc xcb_icccm_size_hints_set_position*(hints: ptr xcb_size_hints_t;
# user_specified: cint; x: int32; y: int32)
# ## *
# ## @brief Set size hints to a given size.
# ## @param hints SIZE_HINTS structure.
# ## @param user_specified is the size user-specified?
# ## @param width The width.
# ## @param height The height.
# ##
# proc xcb_icccm_size_hints_set_size*(hints: ptr xcb_size_hints_t;
# user_specified: cint; width: int32;
# height: int32)
# ## *
# ## @brief Set size hints to a given minimum size.
# ## @param hints SIZE_HINTS structure.
# ## @param width The minimum width.
# ## @param height The minimum height.
# ##
# proc xcb_icccm_size_hints_set_min_size*(hints: ptr xcb_size_hints_t;
# min_width: int32; min_height: int32)
# ## *
# ## @brief Set size hints to a given maximum size.
# ## @param hints SIZE_HINTS structure.
# ## @param width The maximum width.
# ## @param height The maximum height.
# ##
# proc xcb_icccm_size_hints_set_max_size*(hints: ptr xcb_size_hints_t;
# max_width: int32; max_height: int32)
# ## *
# ## @brief Set size hints to a given resize increments.
# ## @param hints SIZE_HINTS structure.
# ## @param width The resize increments width.
# ## @param height The resize increments height.
# ##
# proc xcb_icccm_size_hints_set_resize_inc*(hints: ptr xcb_size_hints_t;
# width_inc: int32; height_inc: int32)
# ## *
# ## @brief Set size hints to a given aspect ratios.
# ## @param hints SIZE_HINTS structure.
# ## @param min_aspect_num The minimum aspect ratios for the width.
# ## @param min_aspect_den The minimum aspect ratios for the height.
# ## @param max_aspect_num The maximum aspect ratios for the width.
# ## @param max_aspect_den The maximum aspect ratios for the height.
# ##
# proc xcb_icccm_size_hints_set_aspect*(hints: ptr xcb_size_hints_t;
# min_aspect_num: int32;
# min_aspect_den: int32;
# max_aspect_num: int32;
# max_aspect_den: int32)
# ## *
# ## @brief Set size hints to a given base size.
# ## @param hints SIZE_HINTS structure.
# ## @param base_width Base width.
# ## @param base_height Base height.
# ##
# proc xcb_icccm_size_hints_set_base_size*(hints: ptr xcb_size_hints_t;
# base_width: int32; base_height: int32)
# ## *
# ## @brief Set size hints to a given window gravity.
# ## @param hints SIZE_HINTS structure.
# ## @param win_gravity Window gravity value.
# ##
# proc xcb_icccm_size_hints_set_win_gravity*(hints: ptr xcb_size_hints_t;
# win_gravity: xcb_gravity_t)
# ## *
# ## @brief Deliver a ChangeProperty request to set a value to a given property.
# ## @param c The connection to the X server.
# ## @param window Window X identifier.
# ## @param property Property to set value for.
# ## @param hints Hints value to set.
# ##
# proc xcb_icccm_set_wm_size_hints_checked*(c: ptr xcb_connection_t;
# window: xcb_window_t; property: xcb_atom_t; hints: ptr xcb_size_hints_t): xcb_void_cookie_t
# ## *
# ## @see xcb_icccm_set_wm_size_hints_checked()
# ##
# proc xcb_icccm_set_wm_size_hints*(c: ptr xcb_connection_t; window: xcb_window_t;
# property: xcb_atom_t; hints: ptr xcb_size_hints_t): xcb_void_cookie_t
# ## *
# ## @brief Send request to get size hints structure for the named property.
# ## @param c The connection to the X server.
# ## @param window Window X identifier.
# ## @param property Specify the property name.
# ## @return The request cookie.
# ##
# proc xcb_icccm_get_wm_size_hints*(c: ptr xcb_connection_t; window: xcb_window_t;
# property: xcb_atom_t): xcb_get_property_cookie_t
# ## *
# ## @see xcb_icccm_get_wm_size_hints()
# ##
# proc xcb_icccm_get_wm_size_hints_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t; property: xcb_atom_t): xcb_get_property_cookie_t
# ## *
# ## @brief Fill given structure with the size hints of the named property.
# ## @param c The connection to the X server.
# ## @param cookie Request cookie.
# ## @param hints Size hints structure.
# ## @param e Error if any.
# ## @return Return 1 on success, 0 otherwise.
# ##
# ## The parameter e supplied to this function must be NULL if
# ## xcb_icccm_get_wm_size_hints_unchecked() is used. Otherwise, it stores
# ## the error if any. The returned pointer should be freed.
# ##
# proc xcb_icccm_get_wm_size_hints_reply*(c: ptr xcb_connection_t;
# cookie: xcb_get_property_cookie_t;
# hints: ptr xcb_size_hints_t;
# e: ptr ptr xcb_generic_error_t): uint8
# ## WM_NORMAL_HINTS
# ## *
# ## @brief Deliver a ChangeProperty request to set WM_NORMAL_HINTS property value.
# ## @param c The connection to the X server.
# ## @param window Window X identifier.
# ## @param hints Hints value to set.
# ##
# proc xcb_icccm_set_wm_normal_hints_checked*(c: ptr xcb_connection_t;
# window: xcb_window_t; hints: ptr xcb_size_hints_t): xcb_void_cookie_t
# ## *
# ## @see xcb_icccm_set_wm_normal_hints_checked()
# ##
# proc xcb_icccm_set_wm_normal_hints*(c: ptr xcb_connection_t; window: xcb_window_t;
# hints: ptr xcb_size_hints_t): xcb_void_cookie_t
# ## *
# ## @brief Send request to get WM_NORMAL_HINTS property of a window.
# ## @param c The connection to the X server.
# ## @param window Window X identifier.
# ## @return The request cookie.
# ##
# proc xcb_icccm_get_wm_normal_hints*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_get_property_cookie_t
# ## *
# ## @see xcb_icccm_get_wm_normal_hints()
# ##
# proc xcb_icccm_get_wm_normal_hints_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t): xcb_get_property_cookie_t
# ## *
# ## @brief Fill given structure with the WM_NORMAL_HINTS property of a window.
# ## @param hints WM_NORMAL_HINTS property value.
# ## @param reply The get property request reply.
# ## @return Return 1 on success, 0 otherwise.
# ##
# proc xcb_icccm_get_wm_size_hints_from_reply*(hints: ptr xcb_size_hints_t;
# reply: ptr xcb_get_property_reply_t): uint8
# ## *
# ## @brief Fill given structure with the WM_NORMAL_HINTS property of a window.
# ## @param c The connection to the X server.
# ## @param cookie Request cookie.
# ## @param hints WM_NORMAL_HINTS property value.
# ## @param e Error if any.
# ## @return Return 1 on success, 0 otherwise.
# ##
# ## The parameter e supplied to this function must be NULL if
# ## xcb_icccm_get_wm_normal_hints_unchecked() is used. Otherwise, it stores
# ## the error if any. The returned pointer should be freed.
# ##
# proc xcb_icccm_get_wm_normal_hints_reply*(c: ptr xcb_connection_t;
# cookie: xcb_get_property_cookie_t; hints: ptr xcb_size_hints_t;
# e: ptr ptr xcb_generic_error_t): uint8
# ## WM_HINTS
# ## *
# ## @brief WM hints structure (may be extended in the future).
# ##
# type
# xcb_icccm_wm_hints_t* {.bycopy.} = object
# flags*: int32 ## * Marks which fields in this structure are defined
# ## * Does this application rely on the window manager to get keyboard
# ## input?
# input*: uint32 ## * See below
# initial_state*: int32 ## * Pixmap to be used as icon
# icon_pixmap*: xcb_pixmap_t ## * Window to be used as icon
# icon_window*: xcb_window_t ## * Initial position of icon
# icon_x*: int32
# icon_y*: int32 ## * Icon mask bitmap
# icon_mask*: xcb_pixmap_t ## Identifier of related window group
# window_group*: xcb_window_t
# ## * Number of elements in this structure
# const
# XCB_ICCCM_NUM_WM_HINTS_ELEMENTS* = 9
# ## *
# ## @brief WM_HINTS window states.
# ##
# type
# xcb_icccm_wm_state_t* = enum
# XCB_ICCCM_WM_STATE_WITHDRAWN = 0, XCB_ICCCM_WM_STATE_NORMAL = 1,
# XCB_ICCCM_WM_STATE_ICONIC = 3
# xcb_icccm_wm_t* = enum
# XCB_ICCCM_WM_HINT_INPUT = (1 shl 0), XCB_ICCCM_WM_HINT_STATE = (1 shl 1),
# XCB_ICCCM_WM_HINT_ICON_PIXMAP = (1 shl 2),
# XCB_ICCCM_WM_HINT_ICON_WINDOW = (1 shl 3),
# XCB_ICCCM_WM_HINT_ICON_POSITION = (1 shl 4),
# XCB_ICCCM_WM_HINT_ICON_MASK = (1 shl 5),
# XCB_ICCCM_WM_HINT_WINDOW_GROUP = (1 shl 6),
# XCB_ICCCM_WM_HINT_X_URGENCY = (1 shl 8)
# const
# XCB_ICCCM_WM_ALL_HINTS* = (XCB_ICCCM_WM_HINT_INPUT or XCB_ICCCM_WM_HINT_STATE or
# XCB_ICCCM_WM_HINT_ICON_PIXMAP or XCB_ICCCM_WM_HINT_ICON_WINDOW or
# XCB_ICCCM_WM_HINT_ICON_POSITION or XCB_ICCCM_WM_HINT_ICON_MASK or
# XCB_ICCCM_WM_HINT_WINDOW_GROUP)
# ## *
# ## @brief Get urgency hint.
# ## @param hints WM_HINTS structure.
# ## @return Urgency hint value.
# ##
# proc xcb_icccm_wm_hints_get_urgency*(hints: ptr xcb_icccm_wm_hints_t): uint32
# ## *
# ## @brief Set input focus.
# ## @param hints WM_HINTS structure.
# ## @param input Input focus.
# ##
# proc xcb_icccm_wm_hints_set_input*(hints: ptr xcb_icccm_wm_hints_t; input: uint8)
# ## *
# ## @brief Set hints state to 'iconic'.
# ## @param hints WM_HINTS structure.
# ##
# proc xcb_icccm_wm_hints_set_iconic*(hints: ptr xcb_icccm_wm_hints_t)
# ## *
# ## @brief Set hints state to 'normal'.
# ## @param hints WM_HINTS structure.
# ##
# proc xcb_icccm_wm_hints_set_normal*(hints: ptr xcb_icccm_wm_hints_t)
# ## *
# ## @brief Set hints state to 'withdrawn'.
# ## @param hints WM_HINTS structure.
# ##
# proc xcb_icccm_wm_hints_set_withdrawn*(hints: ptr xcb_icccm_wm_hints_t)
# ## *
# ## @brief Set hints state to none.
# ## @param hints WM_HINTS structure.
# ##
# proc xcb_icccm_wm_hints_set_none*(hints: ptr xcb_icccm_wm_hints_t)
# ## *
# ## @brief Set pixmap to be used as icon.
# ## @param hints WM_HINTS structure.
# ## @param icon_pixmap Pixmap.
# ##
# proc xcb_icccm_wm_hints_set_icon_pixmap*(hints: ptr xcb_icccm_wm_hints_t;
# icon_pixmap: xcb_pixmap_t)
# ## *
# ## @brief Set icon mask bitmap.
# ## @param hints WM_HINTS structure.
# ## @param icon_mask Pixmap.
# ##
# proc xcb_icccm_wm_hints_set_icon_mask*(hints: ptr xcb_icccm_wm_hints_t;
# icon_mask: xcb_pixmap_t)
# ## *
# ## @brief Set window identifier to be used as icon.
# ## @param hints WM_HINTS structure.
# ## @param icon_window Window X identifier.
# ##
# proc xcb_icccm_wm_hints_set_icon_window*(hints: ptr xcb_icccm_wm_hints_t;
# icon_window: xcb_window_t)
# ## *
# ## @brief Set identifier of related window group.
# ## @param hints WM_HINTS structure.
# ## @param window_group Window X identifier.
# ##
# proc xcb_icccm_wm_hints_set_window_group*(hints: ptr xcb_icccm_wm_hints_t;
# window_group: xcb_window_t)
# ## *
# ## @brief Set urgency hints flag.
# ## @param hints WM_HINTS structure.
# ##
# proc xcb_icccm_wm_hints_set_urgency*(hints: ptr xcb_icccm_wm_hints_t)
# ## *
# ## @brief Deliver a SetProperty request to set WM_HINTS property value.
# ## @param c The connection to the X server.
# ## @param window Window X identifier.
# ## @param hints Hints value to set.
# ##
# proc xcb_icccm_set_wm_hints_checked*(c: ptr xcb_connection_t; window: xcb_window_t;
# hints: ptr xcb_icccm_wm_hints_t): xcb_void_cookie_t
# ## *
# ## @see xcb_icccm_set_wm_hints_checked()
# ##
# proc xcb_icccm_set_wm_hints*(c: ptr xcb_connection_t; window: xcb_window_t;
# hints: ptr xcb_icccm_wm_hints_t): xcb_void_cookie_t
# ## *
# ## @brief Send request to get WM_HINTS property of a window.
# ## @param c The connection to the X server.
# ## @param window Window X identifier.
# ## @return The request cookie.
# ##
# proc xcb_icccm_get_wm_hints*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_get_property_cookie_t
# ## *
# ## @see xcb_icccm_get_wm_hints()
# ##
# proc xcb_icccm_get_wm_hints_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_get_property_cookie_t
# ## *
# ## @brief Fill given structure with the WM_HINTS property of a window.
# ## @param hints WM_HINTS property value.
# ## @param reply The get property request reply.
# ## @return Return 1 on success, 0 otherwise.
# ##
# proc xcb_icccm_get_wm_hints_from_reply*(hints: ptr xcb_icccm_wm_hints_t;
# reply: ptr xcb_get_property_reply_t): uint8
# ## *
# ## @brief Fill given structure with the WM_HINTS property of a window.
# ## @param c The connection to the X server.
# ## @param cookie Request cookie.
# ## @param hints WM_HINTS property value.
# ## @param e Error if any.
# ## @return Return 1 on success, 0 otherwise.
# ##
# ## The parameter e supplied to this function must be NULL if
# ## xcb_icccm_get_wm_hints_unchecked() is used. Otherwise, it stores the
# ## error if any. The returned pointer should be freed.
# ##
# proc xcb_icccm_get_wm_hints_reply*(c: ptr xcb_connection_t;
# cookie: xcb_get_property_cookie_t;
# hints: ptr xcb_icccm_wm_hints_t;
# e: ptr ptr xcb_generic_error_t): uint8
# ## WM_PROTOCOLS
# ## *
# ## @brief Deliver a SetProperty request to set WM_PROTOCOLS property value.
# ## @param c The connection to the X server.
# ## @param wm_protocols The WM_PROTOCOLS atom.
# ## @param window Window X identifier.
# ## @param list_len Atom list len.
# ## @param list Atom list.
# ##
# proc xcb_icccm_set_wm_protocols_checked*(c: ptr xcb_connection_t;
# window: xcb_window_t;
# wm_protocols: xcb_atom_t;
# list_len: uint32; list: ptr xcb_atom_t): xcb_void_cookie_t
# ## *
# ## @see xcb_icccm_set_wm_protocols_checked()
# ##
# proc xcb_icccm_set_wm_protocols*(c: ptr xcb_connection_t; window: xcb_window_t;
# wm_protocols: xcb_atom_t; list_len: uint32;
# list: ptr xcb_atom_t): xcb_void_cookie_t
# ## *
# ## @brief WM_PROTOCOLS structure.
# ##
# type
# xcb_icccm_get_wm_protocols_reply_t* {.bycopy.} = object
# atoms_len*: uint32 ## * Length of the atoms list
# ## * Atoms list
# atoms*: ptr xcb_atom_t ## * Store reply to avoid memory allocation, should normally not be
# ## used directly
# _reply*: ptr xcb_get_property_reply_t
# ## *
# ## @brief Send request to get WM_PROTOCOLS property of a given window.
# ## @param c The connection to the X server.
# ## @param window Window X identifier.
# ## @return The request cookie.
# ##
# proc xcb_icccm_get_wm_protocols*(c: ptr xcb_connection_t; window: xcb_window_t;
# wm_protocol_atom: xcb_atom_t): xcb_get_property_cookie_t
# ## *
# ## @see xcb_icccm_get_wm_protocols()
# ##
# proc xcb_icccm_get_wm_protocols_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t; wm_protocol_atom: xcb_atom_t): xcb_get_property_cookie_t
# ## *
# ## @brief Fill the given structure with the WM_PROTOCOLS property of a window.
# ## @param reply The reply of the GetProperty request.
# ## @param protocols WM_PROTOCOLS property value.
# ## @return Return 1 on success, 0 otherwise.
# ##
# ## protocols structure members should be freed by
# ## xcb_icccm_get_wm_protocols_reply_wipe().
# ##
# proc xcb_icccm_get_wm_protocols_from_reply*(reply: ptr xcb_get_property_reply_t;
# protocols: ptr xcb_icccm_get_wm_protocols_reply_t): uint8
# ## *
# ## @brief Fill the given structure with the WM_PROTOCOLS property of a window.
# ## @param c The connection to the X server.
# ## @param cookie Request cookie.
# ## @param protocols WM_PROTOCOLS property value.
# ## @param e Error if any.
# ## @return Return 1 on success, 0 otherwise.
# ##
# ## The parameter e supplied to this function must be NULL if
# ## xcb_icccm_get_wm_protocols_unchecked() is used. Otherwise, it stores the
# ## error if any. protocols structure members should be freed by
# ## xcb_icccm_get_wm_protocols_reply_wipe().
# ##
# proc xcb_icccm_get_wm_protocols_reply*(c: ptr xcb_connection_t;
# cookie: xcb_get_property_cookie_t; protocols: ptr xcb_icccm_get_wm_protocols_reply_t;
# e: ptr ptr xcb_generic_error_t): uint8
# ## *
# ## @brief Wipe protocols structure members previously allocated by
# ## xcb_icccm_get_wm_protocols_reply().
# ## @param protocols protocols structure whose members is going to be freed.
# ##
# proc xcb_icccm_get_wm_protocols_reply_wipe*(
# protocols: ptr xcb_icccm_get_wm_protocols_reply_t)
# ## *
# ## @}
# ##
# ## Copyright (C) 2007 Bart Massey
# ##
# ## Permission is hereby granted, free of charge, to any person obtaining a
# ## copy of this software and associated documentation files (the "Software"),
# ## to deal in the Software without restriction, including without limitation
# ## the rights to use, copy, modify, merge, publish, distribute, sublicense,
# ## and/or sell copies of the Software, and to permit persons to whom the
# ## Software is furnished to do so, subject to the following conditions:
# ##
# ## The above copyright notice and this permission notice shall be included in
# ## all copies or substantial portions of the Software.
# ##
# ## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# ## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# ## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# ## AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
# ## ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# ## CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# ##
# ## Except as contained in this notice, the names of the authors or their
# ## institutions shall not be used in advertising or otherwise to promote the
# ## sale, use or other dealings in this Software without prior written
# ## authorization from the authors.
# ##
# ## *
# ## @defgroup xcb__image_t XCB Image Functions
# ##
# ## These are functions used to create and manipulate X images.
# ##
# ## The X image format we use is specific to this software,
# ## which is probably a bug; it represents an intermediate
# ## position between the wire format used by the X GetImage
# ## and PutImage requests and standard formats like PBM. An
# ## image consists of a header of type @ref xcb_image_t
# ## describing the properties of the image, together with a
# ## pointer to the image data itself.
# ##
# ## X wire images come in three formats. An xy-bitmap is a
# ## bit-packed format that will be expanded to a two-color
# ## pixmap using a GC when sent over the wire by PutImage.
# ## An xy-pixmap is one or more bit-planes, each in the same
# ## format as xy-bitmap. A z-pixmap is a more conventional
# ## pixmap representation, with each pixel packed into a
# ## word. Pixmaps are sent and received over the wire only
# ## to/from drawables of their depth.
# ##
# ## Each X server defines, for each depth and format,
# ## properties of images in that format that are sent and
# ## received on the wire. We refer to this as a "native"
# ## image for a given X server. It is not uncommon to want
# ## to work with non-native images on the client side, or to
# ## convert between the native images of different servers.
# ##
# ## This library provides several things. Facilities for
# ## creating and destroying images are, of course, provided.
# ## Wrappers for xcb_get_image() and xcb_put_image() are
# ## provided; these utilize the image header to simplify the
# ## interface. Routines for getting and putting image pixels
# ## are provided: both a generic form that works with
# ## arbitrary images, and fastpath forms for some common
# ## cases. Conversion routines are provided for X images;
# ## these routines have been fairly well optimized for the
# ## common cases, and should run fast even on older hardware.
# ## A routine analogous to Xlib's XCreate*FromBitmapData() is
# ## provided for creating X images from xbm-format data; this
# ## routine is in this library only because it is a trivial
# ## use case for the library.
# ##
# ## @{
# ##
# ## *
# ## @struct xcb_image_t
# ## A structure that describes an xcb_image_t.
# ##
# type
# xcb_image_t* {.bycopy.} = object
# width*: uint16 ## *< Width in pixels, excluding pads etc.
# height*: uint16 ## *< Height in pixels.
# format*: xcb_image_format_t ## *< Format.
# scanline_pad*: uint8 ## *< Right pad in bits. Valid pads
# ## are 8, 16, 32.
# ##
# depth*: uint8 ## *< Depth in bits. Valid depths
# ## are 1, 4, 8, 16, 24 for z format,
# ## 1 for xy-bitmap-format, anything
# ## for xy-pixmap-format.
# ##
# bpp*: uint8 ## *< Storage per pixel in bits.
# ## Must be >= depth. Valid bpp
# ## are 1, 4, 8, 16, 24, 32 for z
# ## format, 1 for xy-bitmap format,
# ## anything for xy-pixmap-format.
# ##
# unit*: uint8 ## *< Scanline unit in bits for
# ## xy formats and for bpp == 1,
# ## in which case valid scanline
# ## units are 8, 16, 32. Otherwise,
# ## will be max(8, bpp). Must be >= bpp.
# ##
# plane_mask*: uint32 ## *< When format is
# ## xy-pixmap and depth >
# ## 1, this says which
# ## planes are "valid" in
# ## some vague sense.
# ## Currently used only
# ## by xcb_image_get/put_pixel(),
# ## and set only by
# ## xcb_image_get().
# ##
# byte_order*: xcb_image_order_t ## *< Component byte order
# ## for z-pixmap, byte
# ## order of scanline unit
# ## for xy-bitmap and
# ## xy-pixmap. Nybble
# ## order for z-pixmap
# ## when bpp == 4.
# ##
# bit_order*: xcb_image_order_t ## *< Bit order of
# ## scanline unit for
# ## xy-bitmap and
# ## xy-pixmap.
# ##
# stride*: uint32 ## *< Bytes per image row.
# ## Computable from other
# ## data, but cached for
# ## convenience/performance.
# ##
# size*: uint32 ## *< Size of image data in bytes.
# ## Computable from other
# ## data, but cached for
# ## convenience/performance.
# ##
# base*: pointer ## *< Malloced block of storage that
# ## will be freed by
# ## @ref xcb_image_destroy() if non-null.
# ##
# data*: ptr uint8 ## *< The actual image.
# ## *
# ## @struct xcb_shm_segment_info_t
# ## A structure that stores the informations needed by the MIT Shm
# ## Extension.
# ##
# type
# xcb_shm_segment_info_t* {.bycopy.} = object
# shmseg*: xcb_shm_seg_t
# shmid*: uint32
# shmaddr*: ptr uint8
# ## *
# ## Update the cached data of an image.
# ## @param image The image.
# ##
# ## An image's size and stride, among other things, are
# ## cached in its structure. This function recomputes those
# ## cached values for the given image.
# ## @ingroup xcb__image_t
# ##
# proc xcb_image_annotate*(image: ptr xcb_image_t)
# ## *
# ## Create a new image.
# ## @param width The width of the image, in pixels.
# ## @param height The height of the image, in pixels.
# ## @param format The format of the image.
# ## @param xpad The scanline pad of the image.
# ## @param depth The depth of the image.
# ## @param bpp The depth of the image storage.
# ## @param unit The unit of image representation, in bits.
# ## @param byte_order The byte order of the image.
# ## @param bit_order The bit order of the image.
# ## @param base The base address of malloced image data.
# ## @param bytes The size in bytes of the storage pointed to by base.
# ## If base == 0 and bytes == ~0 and data == 0 on
# ## entry, no storage will be auto-allocated.
# ## @param data The image data. If data is null and bytes != ~0, then
# ## an attempt will be made to fill in data; from
# ## base if it is non-null (and bytes is large enough), else
# ## by mallocing sufficient storage and filling in base.
# ## @return The new image.
# ##
# ## This function allocates the memory needed for an @ref xcb_image_t structure
# ## with the given properties. See the description of xcb_image_t for details.
# ## This function initializes and returns a pointer to the
# ## xcb_image_t structure. It may try to allocate or reserve data for the
# ## structure, depending on how @p base, @p bytes and @p data are set.
# ##
# ## The image must be destroyed with xcb_image_destroy().
# ## @ingroup xcb__image_t
# ##
# proc xcb_image_create*(width: uint16; height: uint16; format: xcb_image_format_t;
# xpad: uint8; depth: uint8; bpp: uint8; unit: uint8;
# byte_order: xcb_image_order_t; bit_order: xcb_image_order_t;
# base: pointer; bytes: uint32; data: ptr uint8): ptr xcb_image_t
# ## *
# ## Create a new image in connection-native format.
# ## @param c The connection.
# ## @param width The width of the image, in pixels.
# ## @param height The height of the image, in pixels.
# ## @param format The format of the image.
# ## @param depth The depth of the image.
# ## @param base The base address of malloced image data.
# ## @param bytes The size in bytes of the storage pointed to by base.
# ## If base == 0 and bytes == ~0 and data == 0 on
# ## entry, no storage will be auto-allocated.
# ## @param data The image data. If data is null and bytes != ~0, then
# ## an attempt will be made to fill in data; from
# ## base if it is non-null (and bytes is large enough), else
# ## by mallocing sufficient storage and filling in base.
# ## @return The new image.
# ##
# ## This function calls @ref xcb_image_create() with the given
# ## properties, and with the remaining properties chosen
# ## according to the "native format" with the given
# ## properties on the current connection.
# ##
# ## It is usual to use this rather
# ## than calling xcb_image_create() directly.
# ## @ingroup xcb__image_t
# ##
# proc xcb_image_create_native*(c: ptr xcb_connection_t; width: uint16;
# height: uint16; format: xcb_image_format_t;
# depth: uint8; base: pointer; bytes: uint32;
# data: ptr uint8): ptr xcb_image_t
# ## *
# ## Destroy an image.
# ## @param image The image to be destroyed.
# ##
# ## This function frees the memory associated with the @p image
# ## parameter. If its base pointer is non-null, it frees
# ## that also.
# ## @ingroup xcb__image_t
# ##
# proc xcb_image_destroy*(image: ptr xcb_image_t)
# ## *
# ## Get an image from the X server.
# ## @param conn The connection to the X server.
# ## @param draw The drawable to get the image from.
# ## @param x The x coordinate in pixels, relative to the origin of the
# ## drawable and defining the upper-left corner of the rectangle.
# ## @param y The y coordinate in pixels, relative to the origin of the
# ## drawable and defining the upper-left corner of the rectangle.
# ## @param width The width of the subimage in pixels.
# ## @param height The height of the subimage in pixels.
# ## @param plane_mask The plane mask. See the protocol document for details.
# ## @param format The format of the image.
# ## @return The subimage of @p draw defined by @p x, @p y, @p w, @p h.
# ##
# ##
# ## This function returns a new image taken from the
# ## given drawable @p draw.
# ## The image will be in connection native format. If the @p format
# ## is xy-bitmap and the @p plane_mask masks bit planes out, those
# ## bit planes will be made part of the returned image anyway,
# ## by zero-filling them; this will require a fresh memory allocation
# ## and some copying. Otherwise, the resulting image will use the
# ## xcb_get_image_reply() record as its backing store.
# ##
# ## If a problem occurs, the function returns null.
# ## @ingroup xcb__image_t
# ##
# proc xcb_image_get*(conn: ptr xcb_connection_t; draw: xcb_drawable_t; x: int16;
# y: int16; width: uint16; height: uint16;
# plane_mask: uint32; format: xcb_image_format_t): ptr xcb_image_t
# ## *
# ## Put an image onto the X server.
# ## @param conn The connection to the X server.
# ## @param draw The draw you get the image from.
# ## @param gc The graphic context.
# ## @param image The image you want to combine with the rectangle.
# ## @param x The x coordinate, which is relative to the origin of the
# ## drawable and defines the x coordinate of the upper-left corner of the
# ## rectangle.
# ## @param y The y coordinate, which is relative to the origin of the
# ## drawable and defines the x coordinate of the upper-left corner of
# ## the rectangle.
# ## @param left_pad Notionally shift an xy-bitmap or xy-pixmap image
# ## to the right some small amount, for some reason. XXX Not clear
# ## this is currently supported correctly.
# ## @return The cookie returned by xcb_put_image().
# ##
# ## This function combines an image with a rectangle of the
# ## specified drawable @p draw. The image must be in native
# ## format for the connection. The image is drawn at the
# ## specified location in the drawable. For the xy-bitmap
# ## format, the foreground pixel in @p gc defines the source
# ## for the one bits in the image, and the background pixel
# ## defines the source for the zero bits. For xy-pixmap and
# ## z-pixmap formats, the depth of the image must match the
# ## depth of the drawable; the gc is ignored.
# ##
# ## @ingroup xcb__image_t
# ##
# proc xcb_image_put*(conn: ptr xcb_connection_t; draw: xcb_drawable_t;
# gc: xcb_gcontext_t; image: ptr xcb_image_t; x: int16; y: int16;
# left_pad: uint8): xcb_void_cookie_t
# ## *
# ## Check image for or convert image to native format.
# ## @param c The connection to the X server.
# ## @param image The image.
# ## @param convert If 0, just check the image for native format.
# ## Otherwise, actually convert it.
# ## @return Null if the image is not in native format and can or will not
# ## be converted. Otherwise, the native format image.
# ##
# ## Each X display has its own "native format" for images of a given
# ## format and depth. This function either checks whether the given
# ## @p image is in native format for the given connection @p c, or
# ## actually tries to convert the image to native format, depending
# ## on whether @p convert is true or false.
# ##
# ## When @p convert is true, and the image is not in native format
# ## but can be converted, it will be, and a pointer to the new image
# ## will be returned. The image passed in will be unharmed in this
# ## case; it is the caller's responsibility to check that the returned
# ## pointer is different and to dispose of the old image if desired.
# ## @ingroup xcb__image_t
# ##
# proc xcb_image_native*(c: ptr xcb_connection_t; image: ptr xcb_image_t; convert: cint): ptr xcb_image_t
# ## *
# ## Put a pixel to an image.
# ## @param image The image.
# ## @param x The x coordinate of the pixel.
# ## @param y The y coordinate of the pixel.
# ## @param pixel The new pixel value.
# ##
# ## This function overwrites the pixel in the given @p image with the
# ## specified @p pixel value (in client format). The image must contain the @p x
# ## and @p y coordinates, as no clipping is done. This function honors
# ## the plane-mask for xy-pixmap images.
# ## @ingroup xcb__image_t
# ##
# proc xcb_image_put_pixel*(image: ptr xcb_image_t; x: uint32; y: uint32;
# pixel: uint32)
# ## *
# ## Get a pixel from an image.
# ## @param image The image.
# ## @param x The x coordinate of the pixel.
# ## @param y The y coordinate of the pixel.
# ## @return The pixel value.
# ##
# ## This function retrieves a pixel from the given @p image.
# ## The image must contain the @p x
# ## and @p y coordinates, as no clipping is done. This function honors
# ## the plane-mask for xy-pixmap images.
# ## @ingroup xcb__image_t
# ##
# proc xcb_image_get_pixel*(image: ptr xcb_image_t; x: uint32; y: uint32): uint32
# ## *
# ## Convert an image to a new format.
# ## @param src Source image.
# ## @param dst Destination image.
# ## @return The @p dst image, or null on error.
# ##
# ## This function tries to convert the image data of the @p
# ## src image to the format implied by the @p dst image,
# ## overwriting the current destination image data.
# ## The source and destination must have the same
# ## width, height, and depth. When the source and destination
# ## are already the same format, a simple copy is done. Otherwise,
# ## when the destination has the same bits-per-pixel/scanline-unit
# ## as the source, an optimized copy routine (thanks to Keith Packard)
# ## is used for the conversion. Otherwise, the copy is done the
# ## slow, slow way with @ref xcb_image_get_pixel() and
# ## @ref xcb_image_put_pixel() calls.
# ## @ingroup xcb__image_t
# ##
# proc xcb_image_convert*(src: ptr xcb_image_t; dst: ptr xcb_image_t): ptr xcb_image_t
# ## *
# ## Extract a subimage of an image.
# ## @param image Source image.
# ## @param x X coordinate of subimage.
# ## @param y Y coordinate of subimage.
# ## @param width Width of subimage.
# ## @param height Height of subimage.
# ## @param base Base of memory allocation.
# ## @param bytes Size of base allocation.
# ## @param data Memory allocation.
# ## @return The subimage, or null on error.
# ##
# ## Given an image, this function extracts the subimage at the
# ## given coordinates. The requested subimage must be entirely
# ## contained in the source @p image. The resulting image will have the same
# ## general image parameters as the source image. The @p base, @p bytes,
# ## and @p data arguments are passed to @ref xcb_create_image() unaltered
# ## to create the destination image---see its documentation for details.
# ##
# ## @ingroup xcb__image_t
# ##
# proc xcb_image_subimage*(image: ptr xcb_image_t; x: uint32; y: uint32;
# width: uint32; height: uint32; base: pointer;
# bytes: uint32; data: ptr uint8): ptr xcb_image_t
# ##
# ## Shm stuff
# ##
# ## *
# ## Put the data of an xcb_image_t onto a drawable using the MIT Shm
# ## Extension.
# ## @param conn The connection to the X server.
# ## @param draw The draw you get the image from.
# ## @param gc The graphic context.
# ## @param image The image you want to combine with the rectangle.
# ## @param shminfo A @ref xcb_shm_segment_info_t structure.
# ## @param src_x The offset in x from the left edge of the image
# ## defined by the xcb_image_t structure.
# ## @param src_y The offset in y from the left edge of the image
# ## defined by the xcb_image_t structure.
# ## @param dest_x The x coordinate, which is relative to the origin of the
# ## drawable and defines the x coordinate of the upper-left corner of the
# ## rectangle.
# ## @param dest_y The y coordinate, which is relative to the origin of the
# ## drawable and defines the x coordinate of the upper-left corner of
# ## the rectangle.
# ## @param src_width The width of the subimage, in pixels.
# ## @param src_height The height of the subimage, in pixels.
# ## @param send_event Indicates whether or not a completion event
# ## should occur when the image write is complete.
# ## @return a pointer to the source image if no problem occurs, otherwise 0.
# ##
# ## This function combines an image in memory with a shape of the
# ## specified drawable. The section of the image defined by the @p x, @p y,
# ## @p width, and @p height arguments is drawn on the specified part of
# ## the drawable. If XYBitmap format is used, the depth must be
# ## one, or a``BadMatch'' error results. The foreground pixel in the
# ## Graphic Context @p gc defines the source for the one bits in the
# ## image, and the background pixel defines the source for the zero
# ## bits. For XYPixmap and ZPixmap, the depth must match the depth of
# ## the drawable, or a ``BadMatch'' error results.
# ##
# ## @ingroup xcb__image_t
# ##
# proc xcb_image_shm_put*(conn: ptr xcb_connection_t; draw: xcb_drawable_t;
# gc: xcb_gcontext_t; image: ptr xcb_image_t;
# shminfo: xcb_shm_segment_info_t; src_x: int16;
# src_y: int16; dest_x: int16; dest_y: int16;
# src_width: uint16; src_height: uint16;
# send_event: uint8): ptr xcb_image_t
# ## *
# ## Read image data into a shared memory xcb_image_t.
# ## @param conn The connection to the X server.
# ## @param draw The draw you get the image from.
# ## @param image The image you want to combine with the rectangle.
# ## @param shminfo A @ref xcb_shm_segment_info_t structure.
# ## @param x The x coordinate, which are relative to the origin of the
# ## drawable and define the upper-left corner of the rectangle.
# ## @param y The y coordinate, which are relative to the origin of the
# ## drawable and define the upper-left corner of the rectangle.
# ## @param plane_mask The plane mask.
# ## @return The subimage of @p draw defined by @p x, @p y, @p w, @p h.
# ##
# ## This function reads image data into a shared memory xcb_image_t where
# ## @p conn is the connection to the X server, @p draw is the source
# ## drawable, @p image is the destination xcb_image_t, @p x and @p y are offsets
# ## within the drawable, and @p plane_mask defines which planes are to be
# ## read.
# ##
# ## If a problem occurs, the function returns @c 0. It returns 1
# ## otherwise.
# ## @ingroup xcb__image_t
# ##
# proc xcb_image_shm_get*(conn: ptr xcb_connection_t; draw: xcb_drawable_t;
# image: ptr xcb_image_t; shminfo: xcb_shm_segment_info_t;
# x: int16; y: int16; plane_mask: uint32): cint
# ## *
# ## Create an image from user-supplied bitmap data.
# ## @param data Image data in packed bitmap format.
# ## @param width Width in bits of image data.
# ## @param height Height in bits of image data.
# ## @return The image constructed from the image data, or 0 on error.
# ##
# ## This function creates an image from the user-supplied
# ## bitmap @p data. The bitmap data is assumed to be in
# ## xbm format (i.e., 8-bit scanline unit, LSB-first, 8-bit pad).
# ## @ingroup xcb__image_t
# ##
# proc xcb_image_create_from_bitmap_data*(data: ptr uint8; width: uint32;
# height: uint32): ptr xcb_image_t
# ## *
# ## Create a pixmap from user-supplied bitmap data.
# ## @param display The connection to the X server.
# ## @param d The parent drawable for the pixmap.
# ## @param data Image data in packed bitmap format.
# ## @param width Width in bits of image data.
# ## @param height Height in bits of image data.
# ## @param depth Depth of the desired pixmap.
# ## @param fg Pixel for one-bits of pixmaps with depth larger than one.
# ## @param bg Pixel for zero-bits of pixmaps with depth larger than one.
# ## @param gcp If this pointer is non-null, the GC created to
# ## fill in the pixmap is stored here; it will have its foreground
# ## and background set to the supplied value. Otherwise, the GC
# ## will be freed.
# ## @return The pixmap constructed from the image data, or 0 on error.
# ##
# ## This function creates a pixmap from the user-supplied
# ## bitmap @p data. The bitmap data is assumed to be in
# ## xbm format (i.e., 8-bit scanline unit, LSB-first, 8-bit pad).
# ## If @p depth is greater than 1, the
# ## bitmap will be expanded to a pixmap using the given
# ## foreground and background pixels @p fg and @p bg.
# ## @ingroup xcb__image_t
# ##
# proc xcb_create_pixmap_from_bitmap_data*(display: ptr xcb_connection_t;
# d: xcb_drawable_t; data: ptr uint8;
# width: uint32; height: uint32;
# depth: uint32; fg: uint32; bg: uint32;
# gcp: ptr xcb_gcontext_t): xcb_pixmap_t
# ## *
# ## @}
# ##
# type
# xcb_key_symbols_t* = _XCBKeySymbols
# proc xcb_key_symbols_alloc*(c: ptr xcb_connection_t): ptr xcb_key_symbols_t
# proc xcb_key_symbols_free*(syms: ptr xcb_key_symbols_t)
# proc xcb_key_symbols_get_keysym*(syms: ptr xcb_key_symbols_t;
# keycode: xcb_keycode_t; col: cint): xcb_keysym_t
# ## *
# ## @brief Get the keycodes attached to a keysyms.
# ## There can be several value, so what is returned is an array of keycode
# ## terminated by XCB_NO_SYMBOL. You are responsible to free it.
# ## Be aware that this function can be slow. It will convert all
# ## combinations of all available keycodes to keysyms to find the ones that
# ## match.
# ## @param syms Key symbols.
# ## @param keysym The keysym to look for.
# ## @return A XCB_NO_SYMBOL terminated array of keycode, or NULL if nothing is found.
# ##
# proc xcb_key_symbols_get_keycode*(syms: ptr xcb_key_symbols_t; keysym: xcb_keysym_t): ptr xcb_keycode_t
# proc xcb_key_press_lookup_keysym*(syms: ptr xcb_key_symbols_t;
# event: ptr xcb_key_press_event_t; col: cint): xcb_keysym_t
# proc xcb_key_release_lookup_keysym*(syms: ptr xcb_key_symbols_t;
# event: ptr xcb_key_release_event_t; col: cint): xcb_keysym_t
# proc xcb_refresh_keyboard_mapping*(syms: ptr xcb_key_symbols_t;
# event: ptr xcb_mapping_notify_event_t): cint
# ## TODO: need XLookupString equivalent
# ## Tests for classes of symbols
# proc xcb_is_keypad_key*(keysym: xcb_keysym_t): cint
# proc xcb_is_private_keypad_key*(keysym: xcb_keysym_t): cint
# proc xcb_is_cursor_key*(keysym: xcb_keysym_t): cint
# proc xcb_is_pf_key*(keysym: xcb_keysym_t): cint
# proc xcb_is_function_key*(keysym: xcb_keysym_t): cint
# proc xcb_is_misc_function_key*(keysym: xcb_keysym_t): cint
# proc xcb_is_modifier_key*(keysym: xcb_keysym_t): cint
# ## Copyright (C) 2007 Bart Massey
# ##
# ## Permission is hereby granted, free of charge, to any person obtaining a
# ## copy of this software and associated documentation files (the "Software"),
# ## to deal in the Software without restriction, including without limitation
# ## the rights to use, copy, modify, merge, publish, distribute, sublicense,
# ## and/or sell copies of the Software, and to permit persons to whom the
# ## Software is furnished to do so, subject to the following conditions:
# ##
# ## The above copyright notice and this permission notice shall be included in
# ## all copies or substantial portions of the Software.
# ##
# ## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# ## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# ## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# ## AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
# ## ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# ## CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# ##
# ## Except as contained in this notice, the names of the authors or their
# ## institutions shall not be used in advertising or otherwise to promote the
# ## sale, use or other dealings in this Software without prior written
# ## authorization from the authors.
# ##
# when not defined(BUILD):
# ## *
# ## XCB Image fast pixel ops.
# ##
# ## Fast inline versions of xcb_image_get_pixel() and
# ## xcb_image_put_pixel() for various common cases.
# ## The naming convention is xcb_image_put_pixel_FUB()
# ## where F is the format and is either XY for bitmaps
# ## or Z for pixmaps, U is the bitmap unit size or pixmap
# ## bits-per-pixel, and B is the endianness (if needed)
# ## and is either M for most-significant-first or L for
# ## least-significant-first. Note that no checking
# ## is done on the arguments to these routines---caller beware.
# ## Also note that the pixel type is chosen to be appropriate
# ## to the unit; bitmaps use int and pixmaps use the appropriate
# ## size of unsigned.
# ## @ingroup xcb__image_t
# ##
# proc xcb_image_put_pixel_XY32M*(image: ptr xcb_image_t; x: uint32; y: uint32;
# pixel: cint) =
# var unit: uint32 = (x shr 3) and not xcb_mask(2)
# var byte: uint32 = xcb_mask(2) - ((x shr 3) and xcb_mask(2))
# var bit: uint32 = xcb_mask(3) - (x and xcb_mask(3))
# var m: uint8 = 1 shl bit
# var p: uint8 = pixel shl bit
# var bp: ptr uint8 = image.data + (y * image.stride) + (unit or byte)
# bp[] = (bp[] and not m) or p
# proc xcb_image_put_pixel_XY32L*(image: ptr xcb_image_t; x: uint32; y: uint32;
# pixel: cint) =
# var bit: uint32 = x and xcb_mask(3)
# var m: uint8 = 1 shl bit
# var p: uint8 = pixel shl bit
# var bp: ptr uint8 = image.data + (y * image.stride) + (x shr 3)
# bp[] = (bp[] and not m) or p
# proc xcb_image_get_pixel_XY32M*(image: ptr xcb_image_t; x: uint32; y: uint32): cint =
# var unit: uint32 = (x shr 3) and not xcb_mask(2)
# var byte: uint32 = xcb_mask(2) - ((x shr 3) and xcb_mask(2))
# var bit: uint32 = xcb_mask(3) - (x and xcb_mask(3))
# var bp: ptr uint8 = image.data + (y * image.stride) + (unit or byte)
# return (bp[] shr bit) and 1
# proc xcb_image_get_pixel_XY32L*(image: ptr xcb_image_t; x: uint32; y: uint32): cint =
# var bit: uint32 = x and xcb_mask(3)
# var bp: ptr uint8 = image.data + (y * image.stride) + (x shr 3)
# return (bp[] shr bit) and 1
# proc xcb_image_put_pixel_Z8*(image: ptr xcb_image_t; x: uint32; y: uint32;
# pixel: uint8) =
# image.data[x + y * image.stride] = pixel
# proc xcb_image_get_pixel_Z8*(image: ptr xcb_image_t; x: uint32; y: uint32): uint8 =
# return image.data[x + y * image.stride]
# proc xcb_image_put_pixel_Z32M*(image: ptr xcb_image_t; x: uint32; y: uint32;
# pixel: uint32) =
# var row: ptr uint8 = image.data + (y * image.stride)
# row[x shl 2] = pixel shr 24
# row[(x shl 2) + 1] = pixel shr 16
# row[(x shl 2) + 2] = pixel shr 8
# row[(x shl 2) + 3] = pixel
# proc xcb_image_put_pixel_Z32L*(image: ptr xcb_image_t; x: uint32; y: uint32;
# pixel: uint32) =
# var row: ptr uint8 = image.data + (y * image.stride)
# row[x shl 2] = pixel
# row[(x shl 2) + 1] = pixel shr 8
# row[(x shl 2) + 2] = pixel shr 16
# row[(x shl 2) + 3] = pixel shr 24
# proc xcb_image_get_pixel_Z32M*(image: ptr xcb_image_t; x: uint32; y: uint32): uint32 =
# var row: ptr uint8 = image.data + (y * image.stride)
# var pixel: uint32 = row[x shl 2] shl 24
# pixel = pixel or row[(x shl 2) + 1] shl 16
# pixel = pixel or row[(x shl 2) + 2] shl 8
# return pixel or row[(x shl 2) + 3]
# proc xcb_image_get_pixel_Z32L*(image: ptr xcb_image_t; x: uint32; y: uint32): uint32 =
# var row: ptr uint8 = image.data + (y * image.stride)
# var pixel: uint32 = row[x shl 2]
# pixel = pixel or row[(x shl 2) + 1] shl 8
# pixel = pixel or row[(x shl 2) + 2] shl 16
# return pixel or row[(x shl 2) + 3] shl 24
# ## Copyright © 2006 Jamey Sharp.
# ##
# ## Permission is hereby granted, free of charge, to any person obtaining a
# ## copy of this software and associated documentation files (the "Software"),
# ## to deal in the Software without restriction, including without limitation
# ## the rights to use, copy, modify, merge, publish, distribute, sublicense,
# ## and/or sell copies of the Software, and to permit persons to whom the
# ## Software is furnished to do so, subject to the following conditions:
# ##
# ## The above copyright notice and this permission notice shall be included in
# ## all copies or substantial portions of the Software.
# ##
# ## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# ## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# ## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# ## AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
# ## ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# ## CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# ##
# ## Except as contained in this notice, the names of the authors or their
# ## institutions shall not be used in advertising or otherwise to promote the
# ## sale, use or other dealings in this Software without prior written
# ## authorization from the authors.
# ##
# type
# xcb_pict_format_t* = enum
# XCB_PICT_FORMAT_ID = (1 shl 0), XCB_PICT_FORMAT_TYPE = (1 shl 1),
# XCB_PICT_FORMAT_DEPTH = (1 shl 2), XCB_PICT_FORMAT_RED = (1 shl 3),
# XCB_PICT_FORMAT_RED_MASK = (1 shl 4), XCB_PICT_FORMAT_GREEN = (1 shl 5),
# XCB_PICT_FORMAT_GREEN_MASK = (1 shl 6), XCB_PICT_FORMAT_BLUE = (1 shl 7),
# XCB_PICT_FORMAT_BLUE_MASK = (1 shl 8), XCB_PICT_FORMAT_ALPHA = (1 shl 9),
# XCB_PICT_FORMAT_ALPHA_MASK = (1 shl 10), XCB_PICT_FORMAT_COLORMAP = (1 shl 11)
# xcb_pict_standard_t* = enum
# XCB_PICT_STANDARD_ARGB_32, XCB_PICT_STANDARD_RGB_24, XCB_PICT_STANDARD_A_8,
# XCB_PICT_STANDARD_A_4, XCB_PICT_STANDARD_A_1
# proc xcb_render_util_find_visual_format*(formats: ptr xcb_render_query_pict_formats_reply_t;
# visual: xcb_visualid_t): ptr xcb_render_pictvisual_t
# proc xcb_render_util_find_format*(formats: ptr xcb_render_query_pict_formats_reply_t;
# mask: culong;
# ptemplate: ptr xcb_render_pictforminfo_t;
# count: cint): ptr xcb_render_pictforminfo_t
# proc xcb_render_util_find_standard_format*(
# formats: ptr xcb_render_query_pict_formats_reply_t; format: xcb_pict_standard_t): ptr xcb_render_pictforminfo_t
# proc xcb_render_util_query_version*(c: ptr xcb_connection_t): ptr xcb_render_query_version_reply_t
# proc xcb_render_util_query_formats*(c: ptr xcb_connection_t): ptr xcb_render_query_pict_formats_reply_t
# proc xcb_render_util_disconnect*(c: ptr xcb_connection_t): cint
# ## wrappers for xcb_render_composite_glyphs_8/16/32
# proc xcb_render_util_composite_text_stream*(
# initial_glyphset: xcb_render_glyphset_t; total_glyphs: uint32;
# total_glyphset_changes: uint32): ptr xcb_render_util_composite_text_stream_t
# proc xcb_render_util_glyphs_8*(stream: ptr xcb_render_util_composite_text_stream_t;
# dx: int16; dy: int16; count: uint32;
# glyphs: ptr uint8)
# proc xcb_render_util_glyphs_16*(stream: ptr xcb_render_util_composite_text_stream_t;
# dx: int16; dy: int16; count: uint32;
# glyphs: ptr uint16)
# proc xcb_render_util_glyphs_32*(stream: ptr xcb_render_util_composite_text_stream_t;
# dx: int16; dy: int16; count: uint32;
# glyphs: ptr uint32)
# proc xcb_render_util_change_glyphset*(stream: ptr xcb_render_util_composite_text_stream_t;
# glyphset: xcb_render_glyphset_t)
# proc xcb_render_util_composite_text*(xc: ptr xcb_connection_t; op: uint8;
# src: xcb_render_picture_t;
# dst: xcb_render_picture_t;
# mask_format: xcb_render_pictformat_t;
# src_x: int16; src_y: int16; stream: ptr xcb_render_util_composite_text_stream_t): xcb_void_cookie_t
# proc xcb_render_util_composite_text_checked*(xc: ptr xcb_connection_t; op: uint8;
# src: xcb_render_picture_t; dst: xcb_render_picture_t;
# mask_format: xcb_render_pictformat_t; src_x: int16; src_y: int16;
# stream: ptr xcb_render_util_composite_text_stream_t): xcb_void_cookie_t
# proc xcb_render_util_composite_text_free*(
# stream: ptr xcb_render_util_composite_text_stream_t)
# ##
# ## vim:ts=4:sw=4:expandtab
# ##
# ## Copyright © 2016 Ingo Bürk
# ##
# ## Permission is hereby granted, free of charge, to any person obtaining a
# ## copy of this software and associated documentation files (the "Software"),
# ## to deal in the Software without restriction, including without limitation
# ## the rights to use, copy, modify, merge, publish, distribute, sublicense,
# ## and/or sell copies of the Software, and to permit persons to whom the
# ## Software is furnished to do so, subject to the following conditions:
# ##
# ## The above copyright notice and this permission notice shall be included in
# ## all copies or substantial portions of the Software.
# ##
# ## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# ## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# ## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# ## AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
# ## ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# ## CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# ##
# ## Except as contained in this notice, the names of the authors or their
# ## institutions shall not be used in advertising or otherwise to promote the
# ## sale, use or other dealings in this Software without prior written
# ## authorization from the authors.
# ##
# ##
# ## *
# ## @defgroup xcb_xrm_database_t XCB XRM Functions
# ##
# ## These functions are the xcb equivalent of the Xrm* function family in Xlib.
# ## They allow the parsing and matching of X resources as well as some utility
# ## functions.
# ##
# ## Here is an example of how this library can be used to retrieve a
# ## user-configured resource:
# ## @code
# ## xcb_connection_t *conn = xcb_connect(NULL, &screennr);
# ## if (conn == NULL || xcb_connection_has_error(conn))
# ## err(EXIT_FAILURE, "Could not connect to the X server.");
# ##
# ## xcb_xrm_database_t *database = xcb_xrm_database_from_default(conn);
# ## if (database == NULL)
# ## err(EXIT_FAILURE, "Could not open database");
# ##
# ## char *value;
# ## if (xcb_xrm_resource_get_string(database, "Xft.dpi", NULL, &value) >= 0) {
# ## fprintf(stdout, "Xft.dpi: %s\n", value);
# ## free(value);
# ## }
# ##
# ## xcb_xrm_database_free(database);
# ## xcb_disconnect(conn);
# ## @endcode
# ##
# ## @{
# ##
# ## *
# ## @struct xcb_xrm_database_t
# ## Reference to a database.
# ##
# ## The database can be loaded in different ways, e.g., from the
# ## RESOURCE_MANAGER property by using @ref
# ## xcb_xrm_database_from_resource_manager (). All queries for a resource go
# ## against a specific database. A database must always be free'd by using @ref
# ## xcb_xrm_database_free ().
# ##
# ## Note that a database is not thread-safe, i.e., multiple threads should not
# ## operate on the same database instance. This is especially true for write
# ## operations on the database. However, you can use this library in a
# ## multi-threaded application as long as the database is thread-local.
# ##
# ## *
# ## Creates a database similarly to XGetDefault(). For typical applications,
# ## this is the recommended way to construct the resource database.
# ##
# ## The database is created as follows:
# ## - If the RESOURCE_MANAGER property exists on the root window of
# ## screen 0, the database is constructed from it using @ref
# ## xcb_xrm_database_from_resource_manager().
# ## - Otherwise, if $HOME/.Xresources exists, the database is constructed from
# ## it using @ref xcb_xrm_database_from_file().
# ## - Otherwise, if $HOME/.Xdefaults exists, the database is constructed from
# ## it using @ref xcb_xrm_database_from_file().
# ## - If the environment variable XENVIRONMENT is set, the file specified by
# ## it is loaded using @ref xcb_xrm_database_from_file and then combined with
# ## the database using @ref xcb_xrm_database_combine() with override set to
# ## true.
# ## If XENVIRONMENT is not specified, the same is done with
# ## $HOME/.Xdefaults-$HOSTNAME, wherein $HOSTNAME is determined by
# ## gethostname(2).
# ##
# ## This represents the way XGetDefault() creates the database for the most
# ## part, but is not exactly the same. In particular, XGetDefault() does not
# ## consider $HOME/.Xresources.
# ##
# ## @param conn XCB connection.
# ## @returns The constructed database. Can return NULL, e.g., if the screen
# ## cannot be determined.
# ##
# proc xcb_xrm_database_from_default*(conn: ptr xcb_connection_t): ptr xcb_xrm_database_t
# ## *
# ## Loads the RESOURCE_MANAGER property and creates a database with its
# ## contents. If the database could not be created, this function will return
# ## NULL.
# ##
# ## @param conn A working XCB connection.
# ## @param screen The xcb_screen_t* screen to use.
# ## @returns The database described by the RESOURCE_MANAGER property.
# ##
# ## @ingroup xcb_xrm_database_t
# ##
# proc xcb_xrm_database_from_resource_manager*(conn: ptr xcb_connection_t;
# screen: ptr xcb_screen_t): ptr xcb_xrm_database_t
# ## *
# ## Creates a database from the given string.
# ## If the database could not be created, this function will return NULL.
# ##
# ## @param str The resource string.
# ## @returns The database described by the resource string.
# ##
# ## @ingroup xcb_xrm_database_t
# ##
# proc xcb_xrm_database_from_string*(str: cstring): ptr xcb_xrm_database_t
# ## *
# ## Creates a database from a given file.
# ## If the file cannot be found or opened, NULL is returned.
# ##
# ## @param filename Valid filename.
# ## @returns The database described by the file's contents.
# ##
# proc xcb_xrm_database_from_file*(filename: cstring): ptr xcb_xrm_database_t
# ## *
# ## Returns a string representation of a database.
# ## The string is owned by the caller and must be free'd.
# ##
# ## @param database The database to return in string format.
# ## @returns A string representation of the specified database.
# ##
# proc xcb_xrm_database_to_string*(database: ptr xcb_xrm_database_t): cstring
# ## *
# ## Combines two databases.
# ## The entries from the source database are stored in the target database. If
# ## the same specifier already exists in the target database, the value will be
# ## overridden if override is set; otherwise, the value is discarded.
# ## If NULL is passed for target_db, a new and empty database will be created
# ## and returned in the pointer.
# ##
# ## @param source_db Source database.
# ## @param target_db Target database.
# ## @param override If true, entries from the source database override entries
# ## in the target database using the same resource specifier.
# ##
# proc xcb_xrm_database_combine*(source_db: ptr xcb_xrm_database_t;
# target_db: ptr ptr xcb_xrm_database_t; override: bool)
# ## *
# ## Inserts a new resource into the database.
# ## If the resource already exists, the current value will be replaced.
# ## If NULL is passed for database, a new and empty database will be created and
# ## returned in the pointer.
# ##
# ## Note that this is not the equivalent of @ref
# ## xcb_xrm_database_put_resource_line when concatenating the resource name and
# ## value with a colon. For example, if the value starts with a leading space,
# ## this must (and will) be replaced with the special '\ ' sequence.
# ##
# ## @param database The database to modify.
# ## @param resource The fully qualified or partial resource specifier.
# ## @param value The value of the resource.
# ##
# proc xcb_xrm_database_put_resource*(database: ptr ptr xcb_xrm_database_t;
# resource: cstring; value: cstring)
# ## *
# ## Inserts a new resource into the database.
# ## If the resource already exists, the current value will be replaced.
# ## If NULL is passed for database, a new and empty database will be created and
# ## returned in the pointer.
# ##
# ## @param database The database to modify.
# ## @param line The complete resource specification to insert.
# ##
# proc xcb_xrm_database_put_resource_line*(database: ptr ptr xcb_xrm_database_t;
# line: cstring)
# ## *
# ## Destroys the given database.
# ##
# ## @param database The database to destroy.
# ##
# ## @ingroup xcb_xrm_database_t
# ##
# proc xcb_xrm_database_free*(database: ptr xcb_xrm_database_t)
# ## *
# ## Find the string value of a resource.
# ##
# ## Note that the string is owned by the caller and must be free'd.
# ##
# ## @param database The database to query.
# ## @param res_name The fully qualified resource name string.
# ## @param res_class The fully qualified resource class string. This argument
# ## may be left empty / NULL, but if given, it must contain the same number of
# ## components as res_name.
# ## @param out Out parameter to which the value will be written.
# ## @returns 0 if the resource was found, a negative error code otherwise.
# ##
# proc xcb_xrm_resource_get_string*(database: ptr xcb_xrm_database_t;
# res_name: cstring; res_class: cstring;
# `out`: cstringArray): cint
# ## *
# ## Find the long value of a resource.
# ##
# ## @param database The database to query.
# ## @param res_name The fully qualified resource name string.
# ## @param res_class The fully qualified resource class string. This argument
# ## may be left empty / NULL, but if given, it must contain the same number of
# ## components as res_name.
# ## @param out Out parameter to which the converted value will be written.
# ## @returns 0 if the resource was found and converted, -1 if the resource was
# ## found but could not be converted and -2 if the resource was not found.
# ##
# proc xcb_xrm_resource_get_long*(database: ptr xcb_xrm_database_t; res_name: cstring;
# res_class: cstring; `out`: ptr clong): cint
# ## *
# ## Find the bool value of a resource.
# ##
# ## The conversion to a bool is done by applying the following steps in order:
# ## - If the value can be converted to a long, return the truthiness of the
# ## converted number.
# ## - If the value is one of "true", "on" or "yes" (case-insensitive), return
# ## true.
# ## - If the value is one of "false", "off" or "no" (case-insensitive), return
# ## false.
# ##
# ## @param database The database to query.
# ## @param res_name The fully qualified resource name string.
# ## @param res_class The fully qualified resource class string. This argument
# ## may be left empty / NULL, but if given, it must contain the same number of
# ## components as res_name.
# ## @param out Out parameter to which the converted value will be written.
# ## @returns 0 if the resource was found and converted, -1 if the resource was
# ## found but could not be converted and -2 if the resource was not found.
# ##
# proc xcb_xrm_resource_get_bool*(database: ptr xcb_xrm_database_t; res_name: cstring;
# res_class: cstring; `out`: ptr bool): cint
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from xc_misc.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB_XCMisc_API XCB XCMisc API
# ## @brief XCMisc XCB Protocol Implementation.
# ## @{
# ##
# import
# xcb
# const
# XCB_XCMISC_MAJOR_VERSION* = 1
# XCB_XCMISC_MINOR_VERSION* = 1
# var xcb_xc_misc_id*: xcb_extension_t
# ## *
# ## @brief xcb_xc_misc_get_version_cookie_t
# ##
# type
# xcb_xc_misc_get_version_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xc_misc_get_version.
# const
# XCB_XC_MISC_GET_VERSION* = 0
# ## *
# ## @brief xcb_xc_misc_get_version_request_t
# ##
# type
# xcb_xc_misc_get_version_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# client_major_version*: uint16
# client_minor_version*: uint16
# ## *
# ## @brief xcb_xc_misc_get_version_reply_t
# ##
# type
# xcb_xc_misc_get_version_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# server_major_version*: uint16
# server_minor_version*: uint16
# ## *
# ## @brief xcb_xc_misc_get_xid_range_cookie_t
# ##
# type
# xcb_xc_misc_get_xid_range_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xc_misc_get_xid_range.
# const
# XCB_XC_MISC_GET_XID_RANGE* = 1
# ## *
# ## @brief xcb_xc_misc_get_xid_range_request_t
# ##
# type
# xcb_xc_misc_get_xid_range_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_xc_misc_get_xid_range_reply_t
# ##
# type
# xcb_xc_misc_get_xid_range_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# start_id*: uint32
# count*: uint32
# ## *
# ## @brief xcb_xc_misc_get_xid_list_cookie_t
# ##
# type
# xcb_xc_misc_get_xid_list_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xc_misc_get_xid_list.
# const
# XCB_XC_MISC_GET_XID_LIST* = 2
# ## *
# ## @brief xcb_xc_misc_get_xid_list_request_t
# ##
# type
# xcb_xc_misc_get_xid_list_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# count*: uint32
# ## *
# ## @brief xcb_xc_misc_get_xid_list_reply_t
# ##
# type
# xcb_xc_misc_get_xid_list_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# ids_len*: uint32
# pad1*: array[20, uint8]
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xc_misc_get_version*(c: ptr xcb_connection_t;
# client_major_version: uint16;
# client_minor_version: uint16): xcb_xc_misc_get_version_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xc_misc_get_version_unchecked*(c: ptr xcb_connection_t;
# client_major_version: uint16;
# client_minor_version: uint16): xcb_xc_misc_get_version_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xc_misc_get_version_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xc_misc_get_version_reply*(c: ptr xcb_connection_t; cookie: xcb_xc_misc_get_version_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xc_misc_get_version_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xc_misc_get_xid_range*(c: ptr xcb_connection_t): xcb_xc_misc_get_xid_range_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xc_misc_get_xid_range_unchecked*(c: ptr xcb_connection_t): xcb_xc_misc_get_xid_range_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xc_misc_get_xid_range_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xc_misc_get_xid_range_reply*(c: ptr xcb_connection_t; cookie: xcb_xc_misc_get_xid_range_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xc_misc_get_xid_range_reply_t
# proc xcb_xc_misc_get_xid_list_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xc_misc_get_xid_list*(c: ptr xcb_connection_t; count: uint32): xcb_xc_misc_get_xid_list_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xc_misc_get_xid_list_unchecked*(c: ptr xcb_connection_t; count: uint32): xcb_xc_misc_get_xid_list_cookie_t
# proc xcb_xc_misc_get_xid_list_ids*(R: ptr xcb_xc_misc_get_xid_list_reply_t): ptr uint32
# proc xcb_xc_misc_get_xid_list_ids_length*(R: ptr xcb_xc_misc_get_xid_list_reply_t): cint
# proc xcb_xc_misc_get_xid_list_ids_end*(R: ptr xcb_xc_misc_get_xid_list_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xc_misc_get_xid_list_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xc_misc_get_xid_list_reply*(c: ptr xcb_connection_t; cookie: xcb_xc_misc_get_xid_list_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xc_misc_get_xid_list_reply_t
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from xevie.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB_Xevie_API XCB Xevie API
# ## @brief Xevie XCB Protocol Implementation.
# ## @{
# ##
# const
# XCB_XEVIE_MAJOR_VERSION* = 1
# XCB_XEVIE_MINOR_VERSION* = 0
# var xcb_xevie_id*: xcb_extension_t
# ## *
# ## @brief xcb_xevie_query_version_cookie_t
# ##
# type
# xcb_xevie_query_version_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xevie_query_version.
# const
# XCB_XEVIE_QUERY_VERSION* = 0
# ## *
# ## @brief xcb_xevie_query_version_request_t
# ##
# type
# xcb_xevie_query_version_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# client_major_version*: uint16
# client_minor_version*: uint16
# ## *
# ## @brief xcb_xevie_query_version_reply_t
# ##
# type
# xcb_xevie_query_version_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# server_major_version*: uint16
# server_minor_version*: uint16
# pad1*: array[20, uint8]
# ## *
# ## @brief xcb_xevie_start_cookie_t
# ##
# type
# xcb_xevie_start_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xevie_start.
# const
# XCB_XEVIE_START* = 1
# ## *
# ## @brief xcb_xevie_start_request_t
# ##
# type
# xcb_xevie_start_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# screen*: uint32
# ## *
# ## @brief xcb_xevie_start_reply_t
# ##
# type
# xcb_xevie_start_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# pad1*: array[24, uint8]
# ## *
# ## @brief xcb_xevie_end_cookie_t
# ##
# type
# xcb_xevie_end_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xevie_end.
# const
# XCB_XEVIE_END* = 2
# ## *
# ## @brief xcb_xevie_end_request_t
# ##
# type
# xcb_xevie_end_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# cmap*: uint32
# ## *
# ## @brief xcb_xevie_end_reply_t
# ##
# type
# xcb_xevie_end_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# pad1*: array[24, uint8]
# xcb_xevie_datatype_t* = enum
# XCB_XEVIE_DATATYPE_UNMODIFIED = 0, XCB_XEVIE_DATATYPE_MODIFIED = 1
# ## *
# ## @brief xcb_xevie_event_t
# ##
# type
# xcb_xevie_event_t* {.bycopy.} = object
# pad0*: array[32, uint8]
# ## *
# ## @brief xcb_xevie_event_iterator_t
# ##
# type
# xcb_xevie_event_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xevie_event_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xevie_send_cookie_t
# ##
# type
# xcb_xevie_send_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xevie_send.
# const
# XCB_XEVIE_SEND* = 3
# ## *
# ## @brief xcb_xevie_send_request_t
# ##
# type
# xcb_xevie_send_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# event*: xcb_xevie_event_t
# data_type*: uint32
# pad0*: array[64, uint8]
# ## *
# ## @brief xcb_xevie_send_reply_t
# ##
# type
# xcb_xevie_send_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# pad1*: array[24, uint8]
# ## *
# ## @brief xcb_xevie_select_input_cookie_t
# ##
# type
# xcb_xevie_select_input_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xevie_select_input.
# const
# XCB_XEVIE_SELECT_INPUT* = 4
# ## *
# ## @brief xcb_xevie_select_input_request_t
# ##
# type
# xcb_xevie_select_input_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# event_mask*: uint32
# ## *
# ## @brief xcb_xevie_select_input_reply_t
# ##
# type
# xcb_xevie_select_input_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# pad1*: array[24, uint8]
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xevie_query_version*(c: ptr xcb_connection_t;
# client_major_version: uint16;
# client_minor_version: uint16): xcb_xevie_query_version_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xevie_query_version_unchecked*(c: ptr xcb_connection_t;
# client_major_version: uint16;
# client_minor_version: uint16): xcb_xevie_query_version_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xevie_query_version_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xevie_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_xevie_query_version_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xevie_query_version_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xevie_start*(c: ptr xcb_connection_t; screen: uint32): xcb_xevie_start_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xevie_start_unchecked*(c: ptr xcb_connection_t; screen: uint32): xcb_xevie_start_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xevie_start_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xevie_start_reply*(c: ptr xcb_connection_t; cookie: xcb_xevie_start_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xevie_start_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xevie_end*(c: ptr xcb_connection_t; cmap: uint32): xcb_xevie_end_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xevie_end_unchecked*(c: ptr xcb_connection_t; cmap: uint32): xcb_xevie_end_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xevie_end_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xevie_end_reply*(c: ptr xcb_connection_t; cookie: xcb_xevie_end_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xevie_end_reply_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xevie_event_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xevie_event_t)
# ##
# proc xcb_xevie_event_next*(i: ptr xcb_xevie_event_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xevie_event_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xevie_event_end*(i: xcb_xevie_event_iterator_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xevie_send*(c: ptr xcb_connection_t; event: xcb_xevie_event_t;
# data_type: uint32): xcb_xevie_send_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xevie_send_unchecked*(c: ptr xcb_connection_t; event: xcb_xevie_event_t;
# data_type: uint32): xcb_xevie_send_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xevie_send_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xevie_send_reply*(c: ptr xcb_connection_t; cookie: xcb_xevie_send_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xevie_send_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xevie_select_input*(c: ptr xcb_connection_t; event_mask: uint32): xcb_xevie_select_input_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xevie_select_input_unchecked*(c: ptr xcb_connection_t; event_mask: uint32): xcb_xevie_select_input_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xevie_select_input_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xevie_select_input_reply*(c: ptr xcb_connection_t; cookie: xcb_xevie_select_input_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xevie_select_input_reply_t
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from xf86dri.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB_XF86Dri_API XCB XF86Dri API
# ## @brief XF86Dri XCB Protocol Implementation.
# ## @{
# ##
# const
# XCB_XF86DRI_MAJOR_VERSION* = 4
# XCB_XF86DRI_MINOR_VERSION* = 1
# var xcb_xf86dri_id*: xcb_extension_t
# ## *
# ## @brief xcb_xf86dri_drm_clip_rect_t
# ##
# type
# xcb_xf86dri_drm_clip_rect_t* {.bycopy.} = object
# x1*: int16
# y1*: int16
# x2*: int16
# x3*: int16
# ## *
# ## @brief xcb_xf86dri_drm_clip_rect_iterator_t
# ##
# type
# xcb_xf86dri_drm_clip_rect_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xf86dri_drm_clip_rect_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xf86dri_query_version_cookie_t
# ##
# type
# xcb_xf86dri_query_version_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xf86dri_query_version.
# const
# XCB_XF86DRI_QUERY_VERSION* = 0
# ## *
# ## @brief xcb_xf86dri_query_version_request_t
# ##
# type
# xcb_xf86dri_query_version_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_xf86dri_query_version_reply_t
# ##
# type
# xcb_xf86dri_query_version_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# dri_major_version*: uint16
# dri_minor_version*: uint16
# dri_minor_patch*: uint32
# ## *
# ## @brief xcb_xf86dri_query_direct_rendering_capable_cookie_t
# ##
# type
# xcb_xf86dri_query_direct_rendering_capable_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xf86dri_query_direct_rendering_capable.
# const
# XCB_XF86DRI_QUERY_DIRECT_RENDERING_CAPABLE* = 1
# ## *
# ## @brief xcb_xf86dri_query_direct_rendering_capable_request_t
# ##
# type
# xcb_xf86dri_query_direct_rendering_capable_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# screen*: uint32
# ## *
# ## @brief xcb_xf86dri_query_direct_rendering_capable_reply_t
# ##
# type
# xcb_xf86dri_query_direct_rendering_capable_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# is_capable*: uint8
# ## *
# ## @brief xcb_xf86dri_open_connection_cookie_t
# ##
# type
# xcb_xf86dri_open_connection_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xf86dri_open_connection.
# const
# XCB_XF86DRI_OPEN_CONNECTION* = 2
# ## *
# ## @brief xcb_xf86dri_open_connection_request_t
# ##
# type
# xcb_xf86dri_open_connection_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# screen*: uint32
# ## *
# ## @brief xcb_xf86dri_open_connection_reply_t
# ##
# type
# xcb_xf86dri_open_connection_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# sarea_handle_low*: uint32
# sarea_handle_high*: uint32
# bus_id_len*: uint32
# pad1*: array[12, uint8]
# ## * Opcode for xcb_xf86dri_close_connection.
# const
# XCB_XF86DRI_CLOSE_CONNECTION* = 3
# ## *
# ## @brief xcb_xf86dri_close_connection_request_t
# ##
# type
# xcb_xf86dri_close_connection_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# screen*: uint32
# ## *
# ## @brief xcb_xf86dri_get_client_driver_name_cookie_t
# ##
# type
# xcb_xf86dri_get_client_driver_name_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xf86dri_get_client_driver_name.
# const
# XCB_XF86DRI_GET_CLIENT_DRIVER_NAME* = 4
# ## *
# ## @brief xcb_xf86dri_get_client_driver_name_request_t
# ##
# type
# xcb_xf86dri_get_client_driver_name_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# screen*: uint32
# ## *
# ## @brief xcb_xf86dri_get_client_driver_name_reply_t
# ##
# type
# xcb_xf86dri_get_client_driver_name_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# client_driver_major_version*: uint32
# client_driver_minor_version*: uint32
# client_driver_patch_version*: uint32
# client_driver_name_len*: uint32
# pad1*: array[8, uint8]
# ## *
# ## @brief xcb_xf86dri_create_context_cookie_t
# ##
# type
# xcb_xf86dri_create_context_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xf86dri_create_context.
# const
# XCB_XF86DRI_CREATE_CONTEXT* = 5
# ## *
# ## @brief xcb_xf86dri_create_context_request_t
# ##
# type
# xcb_xf86dri_create_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# screen*: uint32
# visual*: uint32
# context*: uint32
# ## *
# ## @brief xcb_xf86dri_create_context_reply_t
# ##
# type
# xcb_xf86dri_create_context_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# hw_context*: uint32
# ## * Opcode for xcb_xf86dri_destroy_context.
# const
# XCB_XF86DRI_DESTROY_CONTEXT* = 6
# ## *
# ## @brief xcb_xf86dri_destroy_context_request_t
# ##
# type
# xcb_xf86dri_destroy_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# screen*: uint32
# context*: uint32
# ## *
# ## @brief xcb_xf86dri_create_drawable_cookie_t
# ##
# type
# xcb_xf86dri_create_drawable_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xf86dri_create_drawable.
# const
# XCB_XF86DRI_CREATE_DRAWABLE* = 7
# ## *
# ## @brief xcb_xf86dri_create_drawable_request_t
# ##
# type
# xcb_xf86dri_create_drawable_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# screen*: uint32
# drawable*: uint32
# ## *
# ## @brief xcb_xf86dri_create_drawable_reply_t
# ##
# type
# xcb_xf86dri_create_drawable_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# hw_drawable_handle*: uint32
# ## * Opcode for xcb_xf86dri_destroy_drawable.
# const
# XCB_XF86DRI_DESTROY_DRAWABLE* = 8
# ## *
# ## @brief xcb_xf86dri_destroy_drawable_request_t
# ##
# type
# xcb_xf86dri_destroy_drawable_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# screen*: uint32
# drawable*: uint32
# ## *
# ## @brief xcb_xf86dri_get_drawable_info_cookie_t
# ##
# type
# xcb_xf86dri_get_drawable_info_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xf86dri_get_drawable_info.
# const
# XCB_XF86DRI_GET_DRAWABLE_INFO* = 9
# ## *
# ## @brief xcb_xf86dri_get_drawable_info_request_t
# ##
# type
# xcb_xf86dri_get_drawable_info_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# screen*: uint32
# drawable*: uint32
# ## *
# ## @brief xcb_xf86dri_get_drawable_info_reply_t
# ##
# type
# xcb_xf86dri_get_drawable_info_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# drawable_table_index*: uint32
# drawable_table_stamp*: uint32
# drawable_origin_X*: int16
# drawable_origin_Y*: int16
# drawable_size_W*: int16
# drawable_size_H*: int16
# num_clip_rects*: uint32
# back_x*: int16
# back_y*: int16
# num_back_clip_rects*: uint32
# ## *
# ## @brief xcb_xf86dri_get_device_info_cookie_t
# ##
# type
# xcb_xf86dri_get_device_info_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xf86dri_get_device_info.
# const
# XCB_XF86DRI_GET_DEVICE_INFO* = 10
# ## *
# ## @brief xcb_xf86dri_get_device_info_request_t
# ##
# type
# xcb_xf86dri_get_device_info_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# screen*: uint32
# ## *
# ## @brief xcb_xf86dri_get_device_info_reply_t
# ##
# type
# xcb_xf86dri_get_device_info_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# framebuffer_handle_low*: uint32
# framebuffer_handle_high*: uint32
# framebuffer_origin_offset*: uint32
# framebuffer_size*: uint32
# framebuffer_stride*: uint32
# device_private_size*: uint32
# ## *
# ## @brief xcb_xf86dri_auth_connection_cookie_t
# ##
# type
# xcb_xf86dri_auth_connection_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xf86dri_auth_connection.
# const
# XCB_XF86DRI_AUTH_CONNECTION* = 11
# ## *
# ## @brief xcb_xf86dri_auth_connection_request_t
# ##
# type
# xcb_xf86dri_auth_connection_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# screen*: uint32
# magic*: uint32
# ## *
# ## @brief xcb_xf86dri_auth_connection_reply_t
# ##
# type
# xcb_xf86dri_auth_connection_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# authenticated*: uint32
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xf86dri_drm_clip_rect_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xf86dri_drm_clip_rect_t)
# ##
# proc xcb_xf86dri_drm_clip_rect_next*(i: ptr xcb_xf86dri_drm_clip_rect_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xf86dri_drm_clip_rect_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xf86dri_drm_clip_rect_end*(i: xcb_xf86dri_drm_clip_rect_iterator_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xf86dri_query_version*(c: ptr xcb_connection_t): xcb_xf86dri_query_version_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xf86dri_query_version_unchecked*(c: ptr xcb_connection_t): xcb_xf86dri_query_version_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xf86dri_query_version_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xf86dri_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_xf86dri_query_version_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xf86dri_query_version_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xf86dri_query_direct_rendering_capable*(c: ptr xcb_connection_t;
# screen: uint32): xcb_xf86dri_query_direct_rendering_capable_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xf86dri_query_direct_rendering_capable_unchecked*(
# c: ptr xcb_connection_t; screen: uint32): xcb_xf86dri_query_direct_rendering_capable_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xf86dri_query_direct_rendering_capable_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xf86dri_query_direct_rendering_capable_reply*(c: ptr xcb_connection_t; cookie: xcb_xf86dri_query_direct_rendering_capable_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xf86dri_query_direct_rendering_capable_reply_t
# proc xcb_xf86dri_open_connection_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xf86dri_open_connection*(c: ptr xcb_connection_t; screen: uint32): xcb_xf86dri_open_connection_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xf86dri_open_connection_unchecked*(c: ptr xcb_connection_t;
# screen: uint32): xcb_xf86dri_open_connection_cookie_t
# proc xcb_xf86dri_open_connection_bus_id*(R: ptr xcb_xf86dri_open_connection_reply_t): cstring
# proc xcb_xf86dri_open_connection_bus_id_length*(
# R: ptr xcb_xf86dri_open_connection_reply_t): cint
# proc xcb_xf86dri_open_connection_bus_id_end*(
# R: ptr xcb_xf86dri_open_connection_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xf86dri_open_connection_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xf86dri_open_connection_reply*(c: ptr xcb_connection_t; cookie: xcb_xf86dri_open_connection_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xf86dri_open_connection_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xf86dri_close_connection_checked*(c: ptr xcb_connection_t; screen: uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xf86dri_close_connection*(c: ptr xcb_connection_t; screen: uint32): xcb_void_cookie_t
# proc xcb_xf86dri_get_client_driver_name_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xf86dri_get_client_driver_name*(c: ptr xcb_connection_t; screen: uint32): xcb_xf86dri_get_client_driver_name_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xf86dri_get_client_driver_name_unchecked*(c: ptr xcb_connection_t;
# screen: uint32): xcb_xf86dri_get_client_driver_name_cookie_t
# proc xcb_xf86dri_get_client_driver_name_client_driver_name*(
# R: ptr xcb_xf86dri_get_client_driver_name_reply_t): cstring
# proc xcb_xf86dri_get_client_driver_name_client_driver_name_length*(
# R: ptr xcb_xf86dri_get_client_driver_name_reply_t): cint
# proc xcb_xf86dri_get_client_driver_name_client_driver_name_end*(
# R: ptr xcb_xf86dri_get_client_driver_name_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xf86dri_get_client_driver_name_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xf86dri_get_client_driver_name_reply*(c: ptr xcb_connection_t; cookie: xcb_xf86dri_get_client_driver_name_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xf86dri_get_client_driver_name_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xf86dri_create_context*(c: ptr xcb_connection_t; screen: uint32;
# visual: uint32; context: uint32): xcb_xf86dri_create_context_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xf86dri_create_context_unchecked*(c: ptr xcb_connection_t;
# screen: uint32; visual: uint32; context: uint32): xcb_xf86dri_create_context_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xf86dri_create_context_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xf86dri_create_context_reply*(c: ptr xcb_connection_t; cookie: xcb_xf86dri_create_context_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xf86dri_create_context_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xf86dri_destroy_context_checked*(c: ptr xcb_connection_t; screen: uint32;
# context: uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xf86dri_destroy_context*(c: ptr xcb_connection_t; screen: uint32;
# context: uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xf86dri_create_drawable*(c: ptr xcb_connection_t; screen: uint32;
# drawable: uint32): xcb_xf86dri_create_drawable_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xf86dri_create_drawable_unchecked*(c: ptr xcb_connection_t;
# screen: uint32; drawable: uint32): xcb_xf86dri_create_drawable_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xf86dri_create_drawable_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xf86dri_create_drawable_reply*(c: ptr xcb_connection_t; cookie: xcb_xf86dri_create_drawable_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xf86dri_create_drawable_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xf86dri_destroy_drawable_checked*(c: ptr xcb_connection_t;
# screen: uint32; drawable: uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xf86dri_destroy_drawable*(c: ptr xcb_connection_t; screen: uint32;
# drawable: uint32): xcb_void_cookie_t
# proc xcb_xf86dri_get_drawable_info_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xf86dri_get_drawable_info*(c: ptr xcb_connection_t; screen: uint32;
# drawable: uint32): xcb_xf86dri_get_drawable_info_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xf86dri_get_drawable_info_unchecked*(c: ptr xcb_connection_t;
# screen: uint32; drawable: uint32): xcb_xf86dri_get_drawable_info_cookie_t
# proc xcb_xf86dri_get_drawable_info_clip_rects*(
# R: ptr xcb_xf86dri_get_drawable_info_reply_t): ptr xcb_xf86dri_drm_clip_rect_t
# proc xcb_xf86dri_get_drawable_info_clip_rects_length*(
# R: ptr xcb_xf86dri_get_drawable_info_reply_t): cint
# proc xcb_xf86dri_get_drawable_info_clip_rects_iterator*(
# R: ptr xcb_xf86dri_get_drawable_info_reply_t): xcb_xf86dri_drm_clip_rect_iterator_t
# proc xcb_xf86dri_get_drawable_info_back_clip_rects*(
# R: ptr xcb_xf86dri_get_drawable_info_reply_t): ptr xcb_xf86dri_drm_clip_rect_t
# proc xcb_xf86dri_get_drawable_info_back_clip_rects_length*(
# R: ptr xcb_xf86dri_get_drawable_info_reply_t): cint
# proc xcb_xf86dri_get_drawable_info_back_clip_rects_iterator*(
# R: ptr xcb_xf86dri_get_drawable_info_reply_t): xcb_xf86dri_drm_clip_rect_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xf86dri_get_drawable_info_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xf86dri_get_drawable_info_reply*(c: ptr xcb_connection_t; cookie: xcb_xf86dri_get_drawable_info_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xf86dri_get_drawable_info_reply_t
# proc xcb_xf86dri_get_device_info_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xf86dri_get_device_info*(c: ptr xcb_connection_t; screen: uint32): xcb_xf86dri_get_device_info_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xf86dri_get_device_info_unchecked*(c: ptr xcb_connection_t;
# screen: uint32): xcb_xf86dri_get_device_info_cookie_t
# proc xcb_xf86dri_get_device_info_device_private*(
# R: ptr xcb_xf86dri_get_device_info_reply_t): ptr uint32
# proc xcb_xf86dri_get_device_info_device_private_length*(
# R: ptr xcb_xf86dri_get_device_info_reply_t): cint
# proc xcb_xf86dri_get_device_info_device_private_end*(
# R: ptr xcb_xf86dri_get_device_info_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xf86dri_get_device_info_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xf86dri_get_device_info_reply*(c: ptr xcb_connection_t; cookie: xcb_xf86dri_get_device_info_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xf86dri_get_device_info_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xf86dri_auth_connection*(c: ptr xcb_connection_t; screen: uint32;
# magic: uint32): xcb_xf86dri_auth_connection_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xf86dri_auth_connection_unchecked*(c: ptr xcb_connection_t;
# screen: uint32; magic: uint32): xcb_xf86dri_auth_connection_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xf86dri_auth_connection_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xf86dri_auth_connection_reply*(c: ptr xcb_connection_t; cookie: xcb_xf86dri_auth_connection_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xf86dri_auth_connection_reply_t
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from xfixes.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB_XFixes_API XCB XFixes API
# ## @brief XFixes XCB Protocol Implementation.
# ## @{
# ##
# import
# xcb, xproto, render, shape
# const
# XCB_XFIXES_MAJOR_VERSION* = 5
# XCB_XFIXES_MINOR_VERSION* = 0
# var xcb_xfixes_id*: xcb_extension_t
# ## *
# ## @brief xcb_xfixes_query_version_cookie_t
# ##
# type
# xcb_xfixes_query_version_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xfixes_query_version.
# const
# XCB_XFIXES_QUERY_VERSION* = 0
# ## *
# ## @brief xcb_xfixes_query_version_request_t
# ##
# type
# xcb_xfixes_query_version_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# client_major_version*: uint32
# client_minor_version*: uint32
# ## *
# ## @brief xcb_xfixes_query_version_reply_t
# ##
# type
# xcb_xfixes_query_version_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# major_version*: uint32
# minor_version*: uint32
# pad1*: array[16, uint8]
# xcb_xfixes_save_set_mode_t* = enum
# XCB_XFIXES_SAVE_SET_MODE_INSERT = 0, XCB_XFIXES_SAVE_SET_MODE_DELETE = 1
# xcb_xfixes_save_set_target_t* = enum
# XCB_XFIXES_SAVE_SET_TARGET_NEAREST = 0, XCB_XFIXES_SAVE_SET_TARGET_ROOT = 1
# xcb_xfixes_save_set_mapping_t* = enum
# XCB_XFIXES_SAVE_SET_MAPPING_MAP = 0, XCB_XFIXES_SAVE_SET_MAPPING_UNMAP = 1
# ## * Opcode for xcb_xfixes_change_save_set.
# const
# XCB_XFIXES_CHANGE_SAVE_SET* = 1
# ## *
# ## @brief xcb_xfixes_change_save_set_request_t
# ##
# type
# xcb_xfixes_change_save_set_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# mode*: uint8
# target*: uint8
# map*: uint8
# pad0*: uint8
# window*: xcb_window_t
# xcb_xfixes_selection_event_t* = enum
# XCB_XFIXES_SELECTION_EVENT_SET_SELECTION_OWNER = 0,
# XCB_XFIXES_SELECTION_EVENT_SELECTION_WINDOW_DESTROY = 1,
# XCB_XFIXES_SELECTION_EVENT_SELECTION_CLIENT_CLOSE = 2
# xcb_xfixes_selection_event_mask_t* = enum
# XCB_XFIXES_SELECTION_EVENT_MASK_SET_SELECTION_OWNER = 1,
# XCB_XFIXES_SELECTION_EVENT_MASK_SELECTION_WINDOW_DESTROY = 2,
# XCB_XFIXES_SELECTION_EVENT_MASK_SELECTION_CLIENT_CLOSE = 4
# ## * Opcode for xcb_xfixes_selection_notify.
# const
# XCB_XFIXES_SELECTION_NOTIFY* = 0
# ## *
# ## @brief xcb_xfixes_selection_notify_event_t
# ##
# type
# xcb_xfixes_selection_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# subtype*: uint8
# sequence*: uint16
# window*: xcb_window_t
# owner*: xcb_window_t
# selection*: xcb_atom_t
# timestamp*: xcb_timestamp_t
# selection_timestamp*: xcb_timestamp_t
# pad0*: array[8, uint8]
# ## * Opcode for xcb_xfixes_select_selection_input.
# const
# XCB_XFIXES_SELECT_SELECTION_INPUT* = 2
# ## *
# ## @brief xcb_xfixes_select_selection_input_request_t
# ##
# type
# xcb_xfixes_select_selection_input_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# selection*: xcb_atom_t
# event_mask*: uint32
# xcb_xfixes_cursor_notify_t* = enum
# XCB_XFIXES_CURSOR_NOTIFY_DISPLAY_CURSOR = 0
# xcb_xfixes_cursor_notify_mask_t* = enum
# XCB_XFIXES_CURSOR_NOTIFY_MASK_DISPLAY_CURSOR = 1
# ## * Opcode for xcb_xfixes_cursor_notify.
# const
# XCB_XFIXES_CURSOR_NOTIFY* = 1
# ## *
# ## @brief xcb_xfixes_cursor_notify_event_t
# ##
# type
# xcb_xfixes_cursor_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# subtype*: uint8
# sequence*: uint16
# window*: xcb_window_t
# cursor_serial*: uint32
# timestamp*: xcb_timestamp_t
# name*: xcb_atom_t
# pad0*: array[12, uint8]
# ## * Opcode for xcb_xfixes_select_cursor_input.
# const
# XCB_XFIXES_SELECT_CURSOR_INPUT* = 3
# ## *
# ## @brief xcb_xfixes_select_cursor_input_request_t
# ##
# type
# xcb_xfixes_select_cursor_input_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# event_mask*: uint32
# ## *
# ## @brief xcb_xfixes_get_cursor_image_cookie_t
# ##
# type
# xcb_xfixes_get_cursor_image_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xfixes_get_cursor_image.
# const
# XCB_XFIXES_GET_CURSOR_IMAGE* = 4
# ## *
# ## @brief xcb_xfixes_get_cursor_image_request_t
# ##
# type
# xcb_xfixes_get_cursor_image_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_xfixes_get_cursor_image_reply_t
# ##
# type
# xcb_xfixes_get_cursor_image_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# x*: int16
# y*: int16
# width*: uint16
# height*: uint16
# xhot*: uint16
# yhot*: uint16
# cursor_serial*: uint32
# pad1*: array[8, uint8]
# xcb_xfixes_region_t* = uint32
# ## *
# ## @brief xcb_xfixes_region_iterator_t
# ##
# type
# xcb_xfixes_region_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xfixes_region_t
# rem*: cint
# index*: cint
# ## * Opcode for xcb_xfixes_bad_region.
# const
# XCB_XFIXES_BAD_REGION* = 0
# ## *
# ## @brief xcb_xfixes_bad_region_error_t
# ##
# type
# xcb_xfixes_bad_region_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# xcb_xfixes_region_enum_t* = enum
# XCB_XFIXES_REGION_NONE = 0
# ## * Opcode for xcb_xfixes_create_region.
# const
# XCB_XFIXES_CREATE_REGION* = 5
# ## *
# ## @brief xcb_xfixes_create_region_request_t
# ##
# type
# xcb_xfixes_create_region_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# region*: xcb_xfixes_region_t
# ## * Opcode for xcb_xfixes_create_region_from_bitmap.
# const
# XCB_XFIXES_CREATE_REGION_FROM_BITMAP* = 6
# ## *
# ## @brief xcb_xfixes_create_region_from_bitmap_request_t
# ##
# type
# xcb_xfixes_create_region_from_bitmap_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# region*: xcb_xfixes_region_t
# bitmap*: xcb_pixmap_t
# ## * Opcode for xcb_xfixes_create_region_from_window.
# const
# XCB_XFIXES_CREATE_REGION_FROM_WINDOW* = 7
# ## *
# ## @brief xcb_xfixes_create_region_from_window_request_t
# ##
# type
# xcb_xfixes_create_region_from_window_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# region*: xcb_xfixes_region_t
# window*: xcb_window_t
# kind*: xcb_shape_kind_t
# pad0*: array[3, uint8]
# ## * Opcode for xcb_xfixes_create_region_from_gc.
# const
# XCB_XFIXES_CREATE_REGION_FROM_GC* = 8
# ## *
# ## @brief xcb_xfixes_create_region_from_gc_request_t
# ##
# type
# xcb_xfixes_create_region_from_gc_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# region*: xcb_xfixes_region_t
# gc*: xcb_gcontext_t
# ## * Opcode for xcb_xfixes_create_region_from_picture.
# const
# XCB_XFIXES_CREATE_REGION_FROM_PICTURE* = 9
# ## *
# ## @brief xcb_xfixes_create_region_from_picture_request_t
# ##
# type
# xcb_xfixes_create_region_from_picture_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# region*: xcb_xfixes_region_t
# picture*: xcb_render_picture_t
# ## * Opcode for xcb_xfixes_destroy_region.
# const
# XCB_XFIXES_DESTROY_REGION* = 10
# ## *
# ## @brief xcb_xfixes_destroy_region_request_t
# ##
# type
# xcb_xfixes_destroy_region_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# region*: xcb_xfixes_region_t
# ## * Opcode for xcb_xfixes_set_region.
# const
# XCB_XFIXES_SET_REGION* = 11
# ## *
# ## @brief xcb_xfixes_set_region_request_t
# ##
# type
# xcb_xfixes_set_region_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# region*: xcb_xfixes_region_t
# ## * Opcode for xcb_xfixes_copy_region.
# const
# XCB_XFIXES_COPY_REGION* = 12
# ## *
# ## @brief xcb_xfixes_copy_region_request_t
# ##
# type
# xcb_xfixes_copy_region_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# source*: xcb_xfixes_region_t
# destination*: xcb_xfixes_region_t
# ## * Opcode for xcb_xfixes_union_region.
# const
# XCB_XFIXES_UNION_REGION* = 13
# ## *
# ## @brief xcb_xfixes_union_region_request_t
# ##
# type
# xcb_xfixes_union_region_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# source1*: xcb_xfixes_region_t
# source2*: xcb_xfixes_region_t
# destination*: xcb_xfixes_region_t
# ## * Opcode for xcb_xfixes_intersect_region.
# const
# XCB_XFIXES_INTERSECT_REGION* = 14
# ## *
# ## @brief xcb_xfixes_intersect_region_request_t
# ##
# type
# xcb_xfixes_intersect_region_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# source1*: xcb_xfixes_region_t
# source2*: xcb_xfixes_region_t
# destination*: xcb_xfixes_region_t
# ## * Opcode for xcb_xfixes_subtract_region.
# const
# XCB_XFIXES_SUBTRACT_REGION* = 15
# ## *
# ## @brief xcb_xfixes_subtract_region_request_t
# ##
# type
# xcb_xfixes_subtract_region_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# source1*: xcb_xfixes_region_t
# source2*: xcb_xfixes_region_t
# destination*: xcb_xfixes_region_t
# ## * Opcode for xcb_xfixes_invert_region.
# const
# XCB_XFIXES_INVERT_REGION* = 16
# ## *
# ## @brief xcb_xfixes_invert_region_request_t
# ##
# type
# xcb_xfixes_invert_region_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# source*: xcb_xfixes_region_t
# bounds*: xcb_rectangle_t
# destination*: xcb_xfixes_region_t
# ## * Opcode for xcb_xfixes_translate_region.
# const
# XCB_XFIXES_TRANSLATE_REGION* = 17
# ## *
# ## @brief xcb_xfixes_translate_region_request_t
# ##
# type
# xcb_xfixes_translate_region_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# region*: xcb_xfixes_region_t
# dx*: int16
# dy*: int16
# ## * Opcode for xcb_xfixes_region_extents.
# const
# XCB_XFIXES_REGION_EXTENTS* = 18
# ## *
# ## @brief xcb_xfixes_region_extents_request_t
# ##
# type
# xcb_xfixes_region_extents_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# source*: xcb_xfixes_region_t
# destination*: xcb_xfixes_region_t
# ## *
# ## @brief xcb_xfixes_fetch_region_cookie_t
# ##
# type
# xcb_xfixes_fetch_region_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xfixes_fetch_region.
# const
# XCB_XFIXES_FETCH_REGION* = 19
# ## *
# ## @brief xcb_xfixes_fetch_region_request_t
# ##
# type
# xcb_xfixes_fetch_region_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# region*: xcb_xfixes_region_t
# ## *
# ## @brief xcb_xfixes_fetch_region_reply_t
# ##
# type
# xcb_xfixes_fetch_region_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# extents*: xcb_rectangle_t
# pad1*: array[16, uint8]
# ## * Opcode for xcb_xfixes_set_gc_clip_region.
# const
# XCB_XFIXES_SET_GC_CLIP_REGION* = 20
# ## *
# ## @brief xcb_xfixes_set_gc_clip_region_request_t
# ##
# type
# xcb_xfixes_set_gc_clip_region_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# gc*: xcb_gcontext_t
# region*: xcb_xfixes_region_t
# x_origin*: int16
# y_origin*: int16
# ## * Opcode for xcb_xfixes_set_window_shape_region.
# const
# XCB_XFIXES_SET_WINDOW_SHAPE_REGION* = 21
# ## *
# ## @brief xcb_xfixes_set_window_shape_region_request_t
# ##
# type
# xcb_xfixes_set_window_shape_region_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# dest*: xcb_window_t
# dest_kind*: xcb_shape_kind_t
# pad0*: array[3, uint8]
# x_offset*: int16
# y_offset*: int16
# region*: xcb_xfixes_region_t
# ## * Opcode for xcb_xfixes_set_picture_clip_region.
# const
# XCB_XFIXES_SET_PICTURE_CLIP_REGION* = 22
# ## *
# ## @brief xcb_xfixes_set_picture_clip_region_request_t
# ##
# type
# xcb_xfixes_set_picture_clip_region_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# picture*: xcb_render_picture_t
# region*: xcb_xfixes_region_t
# x_origin*: int16
# y_origin*: int16
# ## * Opcode for xcb_xfixes_set_cursor_name.
# const
# XCB_XFIXES_SET_CURSOR_NAME* = 23
# ## *
# ## @brief xcb_xfixes_set_cursor_name_request_t
# ##
# type
# xcb_xfixes_set_cursor_name_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# cursor*: xcb_cursor_t
# nbytes*: uint16
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_xfixes_get_cursor_name_cookie_t
# ##
# type
# xcb_xfixes_get_cursor_name_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xfixes_get_cursor_name.
# const
# XCB_XFIXES_GET_CURSOR_NAME* = 24
# ## *
# ## @brief xcb_xfixes_get_cursor_name_request_t
# ##
# type
# xcb_xfixes_get_cursor_name_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# cursor*: xcb_cursor_t
# ## *
# ## @brief xcb_xfixes_get_cursor_name_reply_t
# ##
# type
# xcb_xfixes_get_cursor_name_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# atom*: xcb_atom_t
# nbytes*: uint16
# pad1*: array[18, uint8]
# ## *
# ## @brief xcb_xfixes_get_cursor_image_and_name_cookie_t
# ##
# type
# xcb_xfixes_get_cursor_image_and_name_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xfixes_get_cursor_image_and_name.
# const
# XCB_XFIXES_GET_CURSOR_IMAGE_AND_NAME* = 25
# ## *
# ## @brief xcb_xfixes_get_cursor_image_and_name_request_t
# ##
# type
# xcb_xfixes_get_cursor_image_and_name_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_xfixes_get_cursor_image_and_name_reply_t
# ##
# type
# xcb_xfixes_get_cursor_image_and_name_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# x*: int16
# y*: int16
# width*: uint16
# height*: uint16
# xhot*: uint16
# yhot*: uint16
# cursor_serial*: uint32
# cursor_atom*: xcb_atom_t
# nbytes*: uint16
# pad1*: array[2, uint8]
# ## * Opcode for xcb_xfixes_change_cursor.
# const
# XCB_XFIXES_CHANGE_CURSOR* = 26
# ## *
# ## @brief xcb_xfixes_change_cursor_request_t
# ##
# type
# xcb_xfixes_change_cursor_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# source*: xcb_cursor_t
# destination*: xcb_cursor_t
# ## * Opcode for xcb_xfixes_change_cursor_by_name.
# const
# XCB_XFIXES_CHANGE_CURSOR_BY_NAME* = 27
# ## *
# ## @brief xcb_xfixes_change_cursor_by_name_request_t
# ##
# type
# xcb_xfixes_change_cursor_by_name_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# src*: xcb_cursor_t
# nbytes*: uint16
# pad0*: array[2, uint8]
# ## * Opcode for xcb_xfixes_expand_region.
# const
# XCB_XFIXES_EXPAND_REGION* = 28
# ## *
# ## @brief xcb_xfixes_expand_region_request_t
# ##
# type
# xcb_xfixes_expand_region_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# source*: xcb_xfixes_region_t
# destination*: xcb_xfixes_region_t
# left*: uint16
# right*: uint16
# top*: uint16
# bottom*: uint16
# ## * Opcode for xcb_xfixes_hide_cursor.
# const
# XCB_XFIXES_HIDE_CURSOR* = 29
# ## *
# ## @brief xcb_xfixes_hide_cursor_request_t
# ##
# type
# xcb_xfixes_hide_cursor_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# ## * Opcode for xcb_xfixes_show_cursor.
# const
# XCB_XFIXES_SHOW_CURSOR* = 30
# ## *
# ## @brief xcb_xfixes_show_cursor_request_t
# ##
# type
# xcb_xfixes_show_cursor_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# xcb_xfixes_barrier_t* = uint32
# ## *
# ## @brief xcb_xfixes_barrier_iterator_t
# ##
# type
# xcb_xfixes_barrier_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xfixes_barrier_t
# rem*: cint
# index*: cint
# xcb_xfixes_barrier_directions_t* = enum
# XCB_XFIXES_BARRIER_DIRECTIONS_POSITIVE_X = 1,
# XCB_XFIXES_BARRIER_DIRECTIONS_POSITIVE_Y = 2,
# XCB_XFIXES_BARRIER_DIRECTIONS_NEGATIVE_X = 4,
# XCB_XFIXES_BARRIER_DIRECTIONS_NEGATIVE_Y = 8
# ## * Opcode for xcb_xfixes_create_pointer_barrier.
# const
# XCB_XFIXES_CREATE_POINTER_BARRIER* = 31
# ## *
# ## @brief xcb_xfixes_create_pointer_barrier_request_t
# ##
# type
# xcb_xfixes_create_pointer_barrier_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# barrier*: xcb_xfixes_barrier_t
# window*: xcb_window_t
# x1*: uint16
# y1*: uint16
# x2*: uint16
# y2*: uint16
# directions*: uint32
# pad0*: array[2, uint8]
# num_devices*: uint16
# ## * Opcode for xcb_xfixes_delete_pointer_barrier.
# const
# XCB_XFIXES_DELETE_POINTER_BARRIER* = 32
# ## *
# ## @brief xcb_xfixes_delete_pointer_barrier_request_t
# ##
# type
# xcb_xfixes_delete_pointer_barrier_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# barrier*: xcb_xfixes_barrier_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_query_version*(c: ptr xcb_connection_t;
# client_major_version: uint32;
# client_minor_version: uint32): xcb_xfixes_query_version_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xfixes_query_version_unchecked*(c: ptr xcb_connection_t;
# client_major_version: uint32;
# client_minor_version: uint32): xcb_xfixes_query_version_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xfixes_query_version_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xfixes_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_xfixes_query_version_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xfixes_query_version_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_change_save_set_checked*(c: ptr xcb_connection_t; mode: uint8;
# target: uint8; map: uint8;
# window: xcb_window_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_change_save_set*(c: ptr xcb_connection_t; mode: uint8;
# target: uint8; map: uint8; window: xcb_window_t): xcb_void_cookie_t
# proc xcb_xfixes_select_selection_input*(c: ptr xcb_connection_t;
# window: xcb_window_t;
# selection: xcb_atom_t; event_mask: uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_select_cursor_input_checked*(c: ptr xcb_connection_t;
# window: xcb_window_t; event_mask: uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_select_cursor_input*(c: ptr xcb_connection_t; window: xcb_window_t;
# event_mask: uint32): xcb_void_cookie_t
# proc xcb_xfixes_get_cursor_image_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_get_cursor_image*(c: ptr xcb_connection_t): xcb_xfixes_get_cursor_image_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xfixes_get_cursor_image_unchecked*(c: ptr xcb_connection_t): xcb_xfixes_get_cursor_image_cookie_t
# proc xcb_xfixes_get_cursor_image_cursor_image*(
# R: ptr xcb_xfixes_get_cursor_image_reply_t): ptr uint32
# proc xcb_xfixes_get_cursor_image_cursor_image_length*(
# R: ptr xcb_xfixes_get_cursor_image_reply_t): cint
# proc xcb_xfixes_get_cursor_image_cursor_image_end*(
# R: ptr xcb_xfixes_get_cursor_image_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xfixes_get_cursor_image_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xfixes_get_cursor_image_reply*(c: ptr xcb_connection_t; cookie: xcb_xfixes_get_cursor_image_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xfixes_get_cursor_image_reply_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xfixes_region_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xfixes_region_t)
# ##
# proc xcb_xfixes_region_next*(i: ptr xcb_xfixes_region_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xfixes_region_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xfixes_region_end*(i: xcb_xfixes_region_iterator_t): xcb_generic_iterator_t
# proc xcb_xfixes_create_region_sizeof*(_buffer: pointer; rectangles_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_create_region_checked*(c: ptr xcb_connection_t;
# region: xcb_xfixes_region_t;
# rectangles_len: uint32;
# rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_create_region*(c: ptr xcb_connection_t; region: xcb_xfixes_region_t;
# rectangles_len: uint32;
# rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t
# proc xcb_xfixes_create_region_rectangles*(
# R: ptr xcb_xfixes_create_region_request_t): ptr xcb_rectangle_t
# proc xcb_xfixes_create_region_rectangles_length*(
# R: ptr xcb_xfixes_create_region_request_t): cint
# proc xcb_xfixes_create_region_rectangles_iterator*(
# R: ptr xcb_xfixes_create_region_request_t): xcb_rectangle_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_create_region_from_bitmap_checked*(c: ptr xcb_connection_t;
# region: xcb_xfixes_region_t; bitmap: xcb_pixmap_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_create_region_from_bitmap*(c: ptr xcb_connection_t;
# region: xcb_xfixes_region_t; bitmap: xcb_pixmap_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_create_region_from_window_checked*(c: ptr xcb_connection_t;
# region: xcb_xfixes_region_t; window: xcb_window_t; kind: xcb_shape_kind_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_create_region_from_window*(c: ptr xcb_connection_t;
# region: xcb_xfixes_region_t; window: xcb_window_t; kind: xcb_shape_kind_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_create_region_from_gc_checked*(c: ptr xcb_connection_t;
# region: xcb_xfixes_region_t; gc: xcb_gcontext_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_create_region_from_gc*(c: ptr xcb_connection_t;
# region: xcb_xfixes_region_t;
# gc: xcb_gcontext_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_create_region_from_picture_checked*(c: ptr xcb_connection_t;
# region: xcb_xfixes_region_t; picture: xcb_render_picture_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_create_region_from_picture*(c: ptr xcb_connection_t;
# region: xcb_xfixes_region_t; picture: xcb_render_picture_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_destroy_region_checked*(c: ptr xcb_connection_t;
# region: xcb_xfixes_region_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_destroy_region*(c: ptr xcb_connection_t; region: xcb_xfixes_region_t): xcb_void_cookie_t
# proc xcb_xfixes_set_region_sizeof*(_buffer: pointer; rectangles_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_set_region_checked*(c: ptr xcb_connection_t;
# region: xcb_xfixes_region_t;
# rectangles_len: uint32;
# rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_set_region*(c: ptr xcb_connection_t; region: xcb_xfixes_region_t;
# rectangles_len: uint32;
# rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t
# proc xcb_xfixes_set_region_rectangles*(R: ptr xcb_xfixes_set_region_request_t): ptr xcb_rectangle_t
# proc xcb_xfixes_set_region_rectangles_length*(
# R: ptr xcb_xfixes_set_region_request_t): cint
# proc xcb_xfixes_set_region_rectangles_iterator*(
# R: ptr xcb_xfixes_set_region_request_t): xcb_rectangle_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_copy_region_checked*(c: ptr xcb_connection_t;
# source: xcb_xfixes_region_t;
# destination: xcb_xfixes_region_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_copy_region*(c: ptr xcb_connection_t; source: xcb_xfixes_region_t;
# destination: xcb_xfixes_region_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_union_region_checked*(c: ptr xcb_connection_t;
# source1: xcb_xfixes_region_t;
# source2: xcb_xfixes_region_t;
# destination: xcb_xfixes_region_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_union_region*(c: ptr xcb_connection_t; source1: xcb_xfixes_region_t;
# source2: xcb_xfixes_region_t;
# destination: xcb_xfixes_region_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_intersect_region_checked*(c: ptr xcb_connection_t;
# source1: xcb_xfixes_region_t; source2: xcb_xfixes_region_t;
# destination: xcb_xfixes_region_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_intersect_region*(c: ptr xcb_connection_t;
# source1: xcb_xfixes_region_t;
# source2: xcb_xfixes_region_t;
# destination: xcb_xfixes_region_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_subtract_region_checked*(c: ptr xcb_connection_t;
# source1: xcb_xfixes_region_t;
# source2: xcb_xfixes_region_t;
# destination: xcb_xfixes_region_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_subtract_region*(c: ptr xcb_connection_t;
# source1: xcb_xfixes_region_t;
# source2: xcb_xfixes_region_t;
# destination: xcb_xfixes_region_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_invert_region_checked*(c: ptr xcb_connection_t;
# source: xcb_xfixes_region_t;
# bounds: xcb_rectangle_t;
# destination: xcb_xfixes_region_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_invert_region*(c: ptr xcb_connection_t; source: xcb_xfixes_region_t;
# bounds: xcb_rectangle_t;
# destination: xcb_xfixes_region_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_translate_region_checked*(c: ptr xcb_connection_t;
# region: xcb_xfixes_region_t; dx: int16; dy: int16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_translate_region*(c: ptr xcb_connection_t;
# region: xcb_xfixes_region_t; dx: int16;
# dy: int16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_region_extents_checked*(c: ptr xcb_connection_t;
# source: xcb_xfixes_region_t;
# destination: xcb_xfixes_region_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_region_extents*(c: ptr xcb_connection_t;
# source: xcb_xfixes_region_t;
# destination: xcb_xfixes_region_t): xcb_void_cookie_t
# proc xcb_xfixes_fetch_region_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_fetch_region*(c: ptr xcb_connection_t; region: xcb_xfixes_region_t): xcb_xfixes_fetch_region_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xfixes_fetch_region_unchecked*(c: ptr xcb_connection_t;
# region: xcb_xfixes_region_t): xcb_xfixes_fetch_region_cookie_t
# proc xcb_xfixes_fetch_region_rectangles*(R: ptr xcb_xfixes_fetch_region_reply_t): ptr xcb_rectangle_t
# proc xcb_xfixes_fetch_region_rectangles_length*(
# R: ptr xcb_xfixes_fetch_region_reply_t): cint
# proc xcb_xfixes_fetch_region_rectangles_iterator*(
# R: ptr xcb_xfixes_fetch_region_reply_t): xcb_rectangle_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xfixes_fetch_region_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xfixes_fetch_region_reply*(c: ptr xcb_connection_t; cookie: xcb_xfixes_fetch_region_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xfixes_fetch_region_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_set_gc_clip_region_checked*(c: ptr xcb_connection_t;
# gc: xcb_gcontext_t; region: xcb_xfixes_region_t; x_origin: int16;
# y_origin: int16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_set_gc_clip_region*(c: ptr xcb_connection_t; gc: xcb_gcontext_t;
# region: xcb_xfixes_region_t; x_origin: int16;
# y_origin: int16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_set_window_shape_region_checked*(c: ptr xcb_connection_t;
# dest: xcb_window_t; dest_kind: xcb_shape_kind_t; x_offset: int16;
# y_offset: int16; region: xcb_xfixes_region_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_set_window_shape_region*(c: ptr xcb_connection_t;
# dest: xcb_window_t;
# dest_kind: xcb_shape_kind_t;
# x_offset: int16; y_offset: int16;
# region: xcb_xfixes_region_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_set_picture_clip_region_checked*(c: ptr xcb_connection_t;
# picture: xcb_render_picture_t; region: xcb_xfixes_region_t; x_origin: int16;
# y_origin: int16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_set_picture_clip_region*(c: ptr xcb_connection_t;
# picture: xcb_render_picture_t;
# region: xcb_xfixes_region_t;
# x_origin: int16; y_origin: int16): xcb_void_cookie_t
# proc xcb_xfixes_set_cursor_name_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_set_cursor_name_checked*(c: ptr xcb_connection_t;
# cursor: xcb_cursor_t; nbytes: uint16;
# name: cstring): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_set_cursor_name*(c: ptr xcb_connection_t; cursor: xcb_cursor_t;
# nbytes: uint16; name: cstring): xcb_void_cookie_t
# proc xcb_xfixes_set_cursor_name_name*(R: ptr xcb_xfixes_set_cursor_name_request_t): cstring
# proc xcb_xfixes_set_cursor_name_name_length*(
# R: ptr xcb_xfixes_set_cursor_name_request_t): cint
# proc xcb_xfixes_set_cursor_name_name_end*(
# R: ptr xcb_xfixes_set_cursor_name_request_t): xcb_generic_iterator_t
# proc xcb_xfixes_get_cursor_name_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_get_cursor_name*(c: ptr xcb_connection_t; cursor: xcb_cursor_t): xcb_xfixes_get_cursor_name_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xfixes_get_cursor_name_unchecked*(c: ptr xcb_connection_t;
# cursor: xcb_cursor_t): xcb_xfixes_get_cursor_name_cookie_t
# proc xcb_xfixes_get_cursor_name_name*(R: ptr xcb_xfixes_get_cursor_name_reply_t): cstring
# proc xcb_xfixes_get_cursor_name_name_length*(
# R: ptr xcb_xfixes_get_cursor_name_reply_t): cint
# proc xcb_xfixes_get_cursor_name_name_end*(
# R: ptr xcb_xfixes_get_cursor_name_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xfixes_get_cursor_name_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xfixes_get_cursor_name_reply*(c: ptr xcb_connection_t; cookie: xcb_xfixes_get_cursor_name_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xfixes_get_cursor_name_reply_t
# proc xcb_xfixes_get_cursor_image_and_name_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_get_cursor_image_and_name*(c: ptr xcb_connection_t): xcb_xfixes_get_cursor_image_and_name_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xfixes_get_cursor_image_and_name_unchecked*(c: ptr xcb_connection_t): xcb_xfixes_get_cursor_image_and_name_cookie_t
# proc xcb_xfixes_get_cursor_image_and_name_cursor_image*(
# R: ptr xcb_xfixes_get_cursor_image_and_name_reply_t): ptr uint32
# proc xcb_xfixes_get_cursor_image_and_name_cursor_image_length*(
# R: ptr xcb_xfixes_get_cursor_image_and_name_reply_t): cint
# proc xcb_xfixes_get_cursor_image_and_name_cursor_image_end*(
# R: ptr xcb_xfixes_get_cursor_image_and_name_reply_t): xcb_generic_iterator_t
# proc xcb_xfixes_get_cursor_image_and_name_name*(
# R: ptr xcb_xfixes_get_cursor_image_and_name_reply_t): cstring
# proc xcb_xfixes_get_cursor_image_and_name_name_length*(
# R: ptr xcb_xfixes_get_cursor_image_and_name_reply_t): cint
# proc xcb_xfixes_get_cursor_image_and_name_name_end*(
# R: ptr xcb_xfixes_get_cursor_image_and_name_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xfixes_get_cursor_image_and_name_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xfixes_get_cursor_image_and_name_reply*(c: ptr xcb_connection_t; cookie: xcb_xfixes_get_cursor_image_and_name_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xfixes_get_cursor_image_and_name_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_change_cursor_checked*(c: ptr xcb_connection_t;
# source: xcb_cursor_t;
# destination: xcb_cursor_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_change_cursor*(c: ptr xcb_connection_t; source: xcb_cursor_t;
# destination: xcb_cursor_t): xcb_void_cookie_t
# proc xcb_xfixes_change_cursor_by_name_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_change_cursor_by_name_checked*(c: ptr xcb_connection_t;
# src: xcb_cursor_t; nbytes: uint16; name: cstring): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_change_cursor_by_name*(c: ptr xcb_connection_t; src: xcb_cursor_t;
# nbytes: uint16; name: cstring): xcb_void_cookie_t
# proc xcb_xfixes_change_cursor_by_name_name*(
# R: ptr xcb_xfixes_change_cursor_by_name_request_t): cstring
# proc xcb_xfixes_change_cursor_by_name_name_length*(
# R: ptr xcb_xfixes_change_cursor_by_name_request_t): cint
# proc xcb_xfixes_change_cursor_by_name_name_end*(
# R: ptr xcb_xfixes_change_cursor_by_name_request_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_expand_region_checked*(c: ptr xcb_connection_t;
# source: xcb_xfixes_region_t;
# destination: xcb_xfixes_region_t;
# left: uint16; right: uint16;
# top: uint16; bottom: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_expand_region*(c: ptr xcb_connection_t; source: xcb_xfixes_region_t;
# destination: xcb_xfixes_region_t; left: uint16;
# right: uint16; top: uint16; bottom: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_hide_cursor_checked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_hide_cursor*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_show_cursor_checked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_show_cursor*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xfixes_barrier_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xfixes_barrier_t)
# ##
# proc xcb_xfixes_barrier_next*(i: ptr xcb_xfixes_barrier_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xfixes_barrier_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xfixes_barrier_end*(i: xcb_xfixes_barrier_iterator_t): xcb_generic_iterator_t
# proc xcb_xfixes_create_pointer_barrier_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_create_pointer_barrier_checked*(c: ptr xcb_connection_t;
# barrier: xcb_xfixes_barrier_t; window: xcb_window_t; x1: uint16; y1: uint16;
# x2: uint16; y2: uint16; directions: uint32; num_devices: uint16;
# devices: ptr uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_create_pointer_barrier*(c: ptr xcb_connection_t;
# barrier: xcb_xfixes_barrier_t;
# window: xcb_window_t; x1: uint16;
# y1: uint16; x2: uint16; y2: uint16;
# directions: uint32;
# num_devices: uint16;
# devices: ptr uint16): xcb_void_cookie_t
# proc xcb_xfixes_create_pointer_barrier_devices*(
# R: ptr xcb_xfixes_create_pointer_barrier_request_t): ptr uint16
# proc xcb_xfixes_create_pointer_barrier_devices_length*(
# R: ptr xcb_xfixes_create_pointer_barrier_request_t): cint
# proc xcb_xfixes_create_pointer_barrier_devices_end*(
# R: ptr xcb_xfixes_create_pointer_barrier_request_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xfixes_delete_pointer_barrier_checked*(c: ptr xcb_connection_t;
# barrier: xcb_xfixes_barrier_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xfixes_delete_pointer_barrier*(c: ptr xcb_connection_t;
# barrier: xcb_xfixes_barrier_t): xcb_void_cookie_t
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from xinerama.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB_Xinerama_API XCB Xinerama API
# ## @brief Xinerama XCB Protocol Implementation.
# ## @{
# ##
# import
# xcb, xproto
# const
# XCB_XINERAMA_MAJOR_VERSION* = 1
# XCB_XINERAMA_MINOR_VERSION* = 1
# var xcb_xinerama_id*: xcb_extension_t
# ## *
# ## @brief xcb_xinerama_screen_info_t
# ##
# type
# xcb_xinerama_screen_info_t* {.bycopy.} = object
# x_org*: int16
# y_org*: int16
# width*: uint16
# height*: uint16
# ## *
# ## @brief xcb_xinerama_screen_info_iterator_t
# ##
# type
# xcb_xinerama_screen_info_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xinerama_screen_info_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xinerama_query_version_cookie_t
# ##
# type
# xcb_xinerama_query_version_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xinerama_query_version.
# const
# XCB_XINERAMA_QUERY_VERSION* = 0
# ## *
# ## @brief xcb_xinerama_query_version_request_t
# ##
# type
# xcb_xinerama_query_version_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# major*: uint8
# minor*: uint8
# ## *
# ## @brief xcb_xinerama_query_version_reply_t
# ##
# type
# xcb_xinerama_query_version_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# major*: uint16
# minor*: uint16
# ## *
# ## @brief xcb_xinerama_get_state_cookie_t
# ##
# type
# xcb_xinerama_get_state_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xinerama_get_state.
# const
# XCB_XINERAMA_GET_STATE* = 1
# ## *
# ## @brief xcb_xinerama_get_state_request_t
# ##
# type
# xcb_xinerama_get_state_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# ## *
# ## @brief xcb_xinerama_get_state_reply_t
# ##
# type
# xcb_xinerama_get_state_reply_t* {.bycopy.} = object
# response_type*: uint8
# state*: uint8
# sequence*: uint16
# length*: uint32
# window*: xcb_window_t
# ## *
# ## @brief xcb_xinerama_get_screen_count_cookie_t
# ##
# type
# xcb_xinerama_get_screen_count_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xinerama_get_screen_count.
# const
# XCB_XINERAMA_GET_SCREEN_COUNT* = 2
# ## *
# ## @brief xcb_xinerama_get_screen_count_request_t
# ##
# type
# xcb_xinerama_get_screen_count_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# ## *
# ## @brief xcb_xinerama_get_screen_count_reply_t
# ##
# type
# xcb_xinerama_get_screen_count_reply_t* {.bycopy.} = object
# response_type*: uint8
# screen_count*: uint8
# sequence*: uint16
# length*: uint32
# window*: xcb_window_t
# ## *
# ## @brief xcb_xinerama_get_screen_size_cookie_t
# ##
# type
# xcb_xinerama_get_screen_size_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xinerama_get_screen_size.
# const
# XCB_XINERAMA_GET_SCREEN_SIZE* = 3
# ## *
# ## @brief xcb_xinerama_get_screen_size_request_t
# ##
# type
# xcb_xinerama_get_screen_size_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# screen*: uint32
# ## *
# ## @brief xcb_xinerama_get_screen_size_reply_t
# ##
# type
# xcb_xinerama_get_screen_size_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# width*: uint32
# height*: uint32
# window*: xcb_window_t
# screen*: uint32
# ## *
# ## @brief xcb_xinerama_is_active_cookie_t
# ##
# type
# xcb_xinerama_is_active_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xinerama_is_active.
# const
# XCB_XINERAMA_IS_ACTIVE* = 4
# ## *
# ## @brief xcb_xinerama_is_active_request_t
# ##
# type
# xcb_xinerama_is_active_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_xinerama_is_active_reply_t
# ##
# type
# xcb_xinerama_is_active_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# state*: uint32
# ## *
# ## @brief xcb_xinerama_query_screens_cookie_t
# ##
# type
# xcb_xinerama_query_screens_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xinerama_query_screens.
# const
# XCB_XINERAMA_QUERY_SCREENS* = 5
# ## *
# ## @brief xcb_xinerama_query_screens_request_t
# ##
# type
# xcb_xinerama_query_screens_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_xinerama_query_screens_reply_t
# ##
# type
# xcb_xinerama_query_screens_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# number*: uint32
# pad1*: array[20, uint8]
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xinerama_screen_info_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xinerama_screen_info_t)
# ##
# proc xcb_xinerama_screen_info_next*(i: ptr xcb_xinerama_screen_info_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xinerama_screen_info_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xinerama_screen_info_end*(i: xcb_xinerama_screen_info_iterator_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xinerama_query_version*(c: ptr xcb_connection_t; major: uint8;
# minor: uint8): xcb_xinerama_query_version_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xinerama_query_version_unchecked*(c: ptr xcb_connection_t; major: uint8;
# minor: uint8): xcb_xinerama_query_version_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xinerama_query_version_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xinerama_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_xinerama_query_version_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xinerama_query_version_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xinerama_get_state*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_xinerama_get_state_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xinerama_get_state_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_xinerama_get_state_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xinerama_get_state_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xinerama_get_state_reply*(c: ptr xcb_connection_t; cookie: xcb_xinerama_get_state_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xinerama_get_state_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xinerama_get_screen_count*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_xinerama_get_screen_count_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xinerama_get_screen_count_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t): xcb_xinerama_get_screen_count_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xinerama_get_screen_count_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xinerama_get_screen_count_reply*(c: ptr xcb_connection_t; cookie: xcb_xinerama_get_screen_count_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xinerama_get_screen_count_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xinerama_get_screen_size*(c: ptr xcb_connection_t; window: xcb_window_t;
# screen: uint32): xcb_xinerama_get_screen_size_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xinerama_get_screen_size_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t; screen: uint32): xcb_xinerama_get_screen_size_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xinerama_get_screen_size_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xinerama_get_screen_size_reply*(c: ptr xcb_connection_t; cookie: xcb_xinerama_get_screen_size_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xinerama_get_screen_size_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xinerama_is_active*(c: ptr xcb_connection_t): xcb_xinerama_is_active_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xinerama_is_active_unchecked*(c: ptr xcb_connection_t): xcb_xinerama_is_active_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xinerama_is_active_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xinerama_is_active_reply*(c: ptr xcb_connection_t; cookie: xcb_xinerama_is_active_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xinerama_is_active_reply_t
# proc xcb_xinerama_query_screens_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xinerama_query_screens*(c: ptr xcb_connection_t): xcb_xinerama_query_screens_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xinerama_query_screens_unchecked*(c: ptr xcb_connection_t): xcb_xinerama_query_screens_cookie_t
# proc xcb_xinerama_query_screens_screen_info*(
# R: ptr xcb_xinerama_query_screens_reply_t): ptr xcb_xinerama_screen_info_t
# proc xcb_xinerama_query_screens_screen_info_length*(
# R: ptr xcb_xinerama_query_screens_reply_t): cint
# proc xcb_xinerama_query_screens_screen_info_iterator*(
# R: ptr xcb_xinerama_query_screens_reply_t): xcb_xinerama_screen_info_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xinerama_query_screens_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xinerama_query_screens_reply*(c: ptr xcb_connection_t; cookie: xcb_xinerama_query_screens_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xinerama_query_screens_reply_t
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from xinput.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB_Input_API XCB Input API
# ## @brief Input XCB Protocol Implementation.
# ## @{
# ##
# import
# xcb, xfixes
# const
# XCB_INPUT_MAJOR_VERSION* = 2
# XCB_INPUT_MINOR_VERSION* = 3
# var xcb_input_id*: xcb_extension_t
# type
# xcb_input_event_class_t* = uint32
# ## *
# ## @brief xcb_input_event_class_iterator_t
# ##
# type
# xcb_input_event_class_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_event_class_t
# rem*: cint
# index*: cint
# xcb_input_key_code_t* = uint8
# ## *
# ## @brief xcb_input_key_code_iterator_t
# ##
# type
# xcb_input_key_code_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_key_code_t
# rem*: cint
# index*: cint
# xcb_input_device_id_t* = uint16
# ## *
# ## @brief xcb_input_device_id_iterator_t
# ##
# type
# xcb_input_device_id_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_device_id_t
# rem*: cint
# index*: cint
# xcb_input_fp1616_t* = int32
# ## *
# ## @brief xcb_input_fp1616_iterator_t
# ##
# type
# xcb_input_fp1616_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_fp1616_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_fp3232_t
# ##
# type
# xcb_input_fp3232_t* {.bycopy.} = object
# integral*: int32
# frac*: uint32
# ## *
# ## @brief xcb_input_fp3232_iterator_t
# ##
# type
# xcb_input_fp3232_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_fp3232_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_get_extension_version_cookie_t
# ##
# type
# xcb_input_get_extension_version_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_get_extension_version.
# const
# XCB_INPUT_GET_EXTENSION_VERSION* = 1
# ## *
# ## @brief xcb_input_get_extension_version_request_t
# ##
# type
# xcb_input_get_extension_version_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# name_len*: uint16
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_input_get_extension_version_reply_t
# ##
# type
# xcb_input_get_extension_version_reply_t* {.bycopy.} = object
# response_type*: uint8
# xi_reply_type*: uint8
# sequence*: uint16
# length*: uint32
# server_major*: uint16
# server_minor*: uint16
# present*: uint8
# pad0*: array[19, uint8]
# xcb_input_device_use_t* = enum
# XCB_INPUT_DEVICE_USE_IS_X_POINTER = 0, XCB_INPUT_DEVICE_USE_IS_X_KEYBOARD = 1,
# XCB_INPUT_DEVICE_USE_IS_X_EXTENSION_DEVICE = 2,
# XCB_INPUT_DEVICE_USE_IS_X_EXTENSION_KEYBOARD = 3,
# XCB_INPUT_DEVICE_USE_IS_X_EXTENSION_POINTER = 4
# xcb_input_input_class_t* = enum
# XCB_INPUT_INPUT_CLASS_KEY = 0, XCB_INPUT_INPUT_CLASS_BUTTON = 1,
# XCB_INPUT_INPUT_CLASS_VALUATOR = 2, XCB_INPUT_INPUT_CLASS_FEEDBACK = 3,
# XCB_INPUT_INPUT_CLASS_PROXIMITY = 4, XCB_INPUT_INPUT_CLASS_FOCUS = 5,
# XCB_INPUT_INPUT_CLASS_OTHER = 6
# xcb_input_valuator_mode_t* = enum
# XCB_INPUT_VALUATOR_MODE_RELATIVE = 0, XCB_INPUT_VALUATOR_MODE_ABSOLUTE = 1
# ## *
# ## @brief xcb_input_device_info_t
# ##
# type
# xcb_input_device_info_t* {.bycopy.} = object
# device_type*: xcb_atom_t
# device_id*: uint8
# num_class_info*: uint8
# device_use*: uint8
# pad0*: uint8
# ## *
# ## @brief xcb_input_device_info_iterator_t
# ##
# type
# xcb_input_device_info_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_device_info_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_key_info_t
# ##
# type
# xcb_input_key_info_t* {.bycopy.} = object
# class_id*: uint8
# len*: uint8
# min_keycode*: xcb_input_key_code_t
# max_keycode*: xcb_input_key_code_t
# num_keys*: uint16
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_input_key_info_iterator_t
# ##
# type
# xcb_input_key_info_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_key_info_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_button_info_t
# ##
# type
# xcb_input_button_info_t* {.bycopy.} = object
# class_id*: uint8
# len*: uint8
# num_buttons*: uint16
# ## *
# ## @brief xcb_input_button_info_iterator_t
# ##
# type
# xcb_input_button_info_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_button_info_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_axis_info_t
# ##
# type
# xcb_input_axis_info_t* {.bycopy.} = object
# resolution*: uint32
# minimum*: int32
# maximum*: int32
# ## *
# ## @brief xcb_input_axis_info_iterator_t
# ##
# type
# xcb_input_axis_info_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_axis_info_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_valuator_info_t
# ##
# type
# xcb_input_valuator_info_t* {.bycopy.} = object
# class_id*: uint8
# len*: uint8
# axes_len*: uint8
# mode*: uint8
# motion_size*: uint32
# ## *
# ## @brief xcb_input_valuator_info_iterator_t
# ##
# type
# xcb_input_valuator_info_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_valuator_info_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_input_info_info_t
# ##
# type
# INNER_C_STRUCT_xinput_248* {.bycopy.} = object
# min_keycode*: xcb_input_key_code_t
# max_keycode*: xcb_input_key_code_t
# num_keys*: uint16
# pad0*: array[2, uint8]
# INNER_C_STRUCT_xinput_254* {.bycopy.} = object
# num_buttons*: uint16
# INNER_C_STRUCT_xinput_257* {.bycopy.} = object
# axes_len*: uint8
# mode*: uint8
# motion_size*: uint32
# axes*: ptr xcb_input_axis_info_t
# xcb_input_input_info_info_t* {.bycopy.} = object
# key*: INNER_C_STRUCT_xinput_248
# button*: INNER_C_STRUCT_xinput_254
# valuator*: INNER_C_STRUCT_xinput_257
# ## *
# ## @brief xcb_input_input_info_t
# ##
# type
# xcb_input_input_info_t* {.bycopy.} = object
# class_id*: uint8
# len*: uint8
# proc xcb_input_input_info_info*(R: ptr xcb_input_input_info_t): pointer
# ## *
# ## @brief xcb_input_input_info_iterator_t
# ##
# type
# xcb_input_input_info_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_input_info_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_device_name_t
# ##
# type
# xcb_input_device_name_t* {.bycopy.} = object
# len*: uint8
# ## *
# ## @brief xcb_input_device_name_iterator_t
# ##
# type
# xcb_input_device_name_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_device_name_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_list_input_devices_cookie_t
# ##
# type
# xcb_input_list_input_devices_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_list_input_devices.
# const
# XCB_INPUT_LIST_INPUT_DEVICES* = 2
# ## *
# ## @brief xcb_input_list_input_devices_request_t
# ##
# type
# xcb_input_list_input_devices_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_input_list_input_devices_reply_t
# ##
# type
# xcb_input_list_input_devices_reply_t* {.bycopy.} = object
# response_type*: uint8
# xi_reply_type*: uint8
# sequence*: uint16
# length*: uint32
# devices_len*: uint8
# pad0*: array[23, uint8]
# xcb_input_event_type_base_t* = uint8
# ## *
# ## @brief xcb_input_event_type_base_iterator_t
# ##
# type
# xcb_input_event_type_base_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_event_type_base_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_input_class_info_t
# ##
# type
# xcb_input_input_class_info_t* {.bycopy.} = object
# class_id*: uint8
# event_type_base*: xcb_input_event_type_base_t
# ## *
# ## @brief xcb_input_input_class_info_iterator_t
# ##
# type
# xcb_input_input_class_info_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_input_class_info_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_open_device_cookie_t
# ##
# type
# xcb_input_open_device_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_open_device.
# const
# XCB_INPUT_OPEN_DEVICE* = 3
# ## *
# ## @brief xcb_input_open_device_request_t
# ##
# type
# xcb_input_open_device_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# device_id*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_input_open_device_reply_t
# ##
# type
# xcb_input_open_device_reply_t* {.bycopy.} = object
# response_type*: uint8
# xi_reply_type*: uint8
# sequence*: uint16
# length*: uint32
# num_classes*: uint8
# pad0*: array[23, uint8]
# ## * Opcode for xcb_input_close_device.
# const
# XCB_INPUT_CLOSE_DEVICE* = 4
# ## *
# ## @brief xcb_input_close_device_request_t
# ##
# type
# xcb_input_close_device_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# device_id*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_input_set_device_mode_cookie_t
# ##
# type
# xcb_input_set_device_mode_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_set_device_mode.
# const
# XCB_INPUT_SET_DEVICE_MODE* = 5
# ## *
# ## @brief xcb_input_set_device_mode_request_t
# ##
# type
# xcb_input_set_device_mode_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# device_id*: uint8
# mode*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_input_set_device_mode_reply_t
# ##
# type
# xcb_input_set_device_mode_reply_t* {.bycopy.} = object
# response_type*: uint8
# xi_reply_type*: uint8
# sequence*: uint16
# length*: uint32
# status*: uint8
# pad0*: array[23, uint8]
# ## * Opcode for xcb_input_select_extension_event.
# const
# XCB_INPUT_SELECT_EXTENSION_EVENT* = 6
# ## *
# ## @brief xcb_input_select_extension_event_request_t
# ##
# type
# xcb_input_select_extension_event_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# num_classes*: uint16
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_input_get_selected_extension_events_cookie_t
# ##
# type
# xcb_input_get_selected_extension_events_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_get_selected_extension_events.
# const
# XCB_INPUT_GET_SELECTED_EXTENSION_EVENTS* = 7
# ## *
# ## @brief xcb_input_get_selected_extension_events_request_t
# ##
# type
# xcb_input_get_selected_extension_events_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# ## *
# ## @brief xcb_input_get_selected_extension_events_reply_t
# ##
# type
# xcb_input_get_selected_extension_events_reply_t* {.bycopy.} = object
# response_type*: uint8
# xi_reply_type*: uint8
# sequence*: uint16
# length*: uint32
# num_this_classes*: uint16
# num_all_classes*: uint16
# pad0*: array[20, uint8]
# xcb_input_propagate_mode_t* = enum
# XCB_INPUT_PROPAGATE_MODE_ADD_TO_LIST = 0,
# XCB_INPUT_PROPAGATE_MODE_DELETE_FROM_LIST = 1
# ## * Opcode for xcb_input_change_device_dont_propagate_list.
# const
# XCB_INPUT_CHANGE_DEVICE_DONT_PROPAGATE_LIST* = 8
# ## *
# ## @brief xcb_input_change_device_dont_propagate_list_request_t
# ##
# type
# xcb_input_change_device_dont_propagate_list_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# num_classes*: uint16
# mode*: uint8
# pad0*: uint8
# ## *
# ## @brief xcb_input_get_device_dont_propagate_list_cookie_t
# ##
# type
# xcb_input_get_device_dont_propagate_list_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_get_device_dont_propagate_list.
# const
# XCB_INPUT_GET_DEVICE_DONT_PROPAGATE_LIST* = 9
# ## *
# ## @brief xcb_input_get_device_dont_propagate_list_request_t
# ##
# type
# xcb_input_get_device_dont_propagate_list_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# ## *
# ## @brief xcb_input_get_device_dont_propagate_list_reply_t
# ##
# type
# xcb_input_get_device_dont_propagate_list_reply_t* {.bycopy.} = object
# response_type*: uint8
# xi_reply_type*: uint8
# sequence*: uint16
# length*: uint32
# num_classes*: uint16
# pad0*: array[22, uint8]
# ## *
# ## @brief xcb_input_device_time_coord_t
# ##
# type
# xcb_input_device_time_coord_t* {.bycopy.} = object
# time*: xcb_timestamp_t
# ## *
# ## @brief xcb_input_device_time_coord_iterator_t
# ##
# type
# xcb_input_device_time_coord_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_device_time_coord_t
# rem*: cint
# index*: cint
# num_axes*: uint8 ## *<
# ## *
# ## @brief xcb_input_get_device_motion_events_cookie_t
# ##
# type
# xcb_input_get_device_motion_events_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_get_device_motion_events.
# const
# XCB_INPUT_GET_DEVICE_MOTION_EVENTS* = 10
# ## *
# ## @brief xcb_input_get_device_motion_events_request_t
# ##
# type
# xcb_input_get_device_motion_events_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# start*: xcb_timestamp_t
# stop*: xcb_timestamp_t
# device_id*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_input_get_device_motion_events_reply_t
# ##
# type
# xcb_input_get_device_motion_events_reply_t* {.bycopy.} = object
# response_type*: uint8
# xi_reply_type*: uint8
# sequence*: uint16
# length*: uint32
# num_events*: uint32
# num_axes*: uint8
# device_mode*: uint8
# pad0*: array[18, uint8]
# ## *
# ## @brief xcb_input_change_keyboard_device_cookie_t
# ##
# type
# xcb_input_change_keyboard_device_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_change_keyboard_device.
# const
# XCB_INPUT_CHANGE_KEYBOARD_DEVICE* = 11
# ## *
# ## @brief xcb_input_change_keyboard_device_request_t
# ##
# type
# xcb_input_change_keyboard_device_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# device_id*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_input_change_keyboard_device_reply_t
# ##
# type
# xcb_input_change_keyboard_device_reply_t* {.bycopy.} = object
# response_type*: uint8
# xi_reply_type*: uint8
# sequence*: uint16
# length*: uint32
# status*: uint8
# pad0*: array[23, uint8]
# ## *
# ## @brief xcb_input_change_pointer_device_cookie_t
# ##
# type
# xcb_input_change_pointer_device_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_change_pointer_device.
# const
# XCB_INPUT_CHANGE_POINTER_DEVICE* = 12
# ## *
# ## @brief xcb_input_change_pointer_device_request_t
# ##
# type
# xcb_input_change_pointer_device_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# x_axis*: uint8
# y_axis*: uint8
# device_id*: uint8
# pad0*: uint8
# ## *
# ## @brief xcb_input_change_pointer_device_reply_t
# ##
# type
# xcb_input_change_pointer_device_reply_t* {.bycopy.} = object
# response_type*: uint8
# xi_reply_type*: uint8
# sequence*: uint16
# length*: uint32
# status*: uint8
# pad0*: array[23, uint8]
# ## *
# ## @brief xcb_input_grab_device_cookie_t
# ##
# type
# xcb_input_grab_device_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_grab_device.
# const
# XCB_INPUT_GRAB_DEVICE* = 13
# ## *
# ## @brief xcb_input_grab_device_request_t
# ##
# type
# xcb_input_grab_device_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# grab_window*: xcb_window_t
# time*: xcb_timestamp_t
# num_classes*: uint16
# this_device_mode*: uint8
# other_device_mode*: uint8
# owner_events*: uint8
# device_id*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_input_grab_device_reply_t
# ##
# type
# xcb_input_grab_device_reply_t* {.bycopy.} = object
# response_type*: uint8
# xi_reply_type*: uint8
# sequence*: uint16
# length*: uint32
# status*: uint8
# pad0*: array[23, uint8]
# ## * Opcode for xcb_input_ungrab_device.
# const
# XCB_INPUT_UNGRAB_DEVICE* = 14
# ## *
# ## @brief xcb_input_ungrab_device_request_t
# ##
# type
# xcb_input_ungrab_device_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# time*: xcb_timestamp_t
# device_id*: uint8
# pad0*: array[3, uint8]
# xcb_input_modifier_device_t* = enum
# XCB_INPUT_MODIFIER_DEVICE_USE_X_KEYBOARD = 255
# ## * Opcode for xcb_input_grab_device_key.
# const
# XCB_INPUT_GRAB_DEVICE_KEY* = 15
# ## *
# ## @brief xcb_input_grab_device_key_request_t
# ##
# type
# xcb_input_grab_device_key_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# grab_window*: xcb_window_t
# num_classes*: uint16
# modifiers*: uint16
# modifier_device*: uint8
# grabbed_device*: uint8
# key*: uint8
# this_device_mode*: uint8
# other_device_mode*: uint8
# owner_events*: uint8
# pad0*: array[2, uint8]
# ## * Opcode for xcb_input_ungrab_device_key.
# const
# XCB_INPUT_UNGRAB_DEVICE_KEY* = 16
# ## *
# ## @brief xcb_input_ungrab_device_key_request_t
# ##
# type
# xcb_input_ungrab_device_key_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# grabWindow*: xcb_window_t
# modifiers*: uint16
# modifier_device*: uint8
# key*: uint8
# grabbed_device*: uint8
# ## * Opcode for xcb_input_grab_device_button.
# const
# XCB_INPUT_GRAB_DEVICE_BUTTON* = 17
# ## *
# ## @brief xcb_input_grab_device_button_request_t
# ##
# type
# xcb_input_grab_device_button_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# grab_window*: xcb_window_t
# grabbed_device*: uint8
# modifier_device*: uint8
# num_classes*: uint16
# modifiers*: uint16
# this_device_mode*: uint8
# other_device_mode*: uint8
# button*: uint8
# owner_events*: uint8
# pad0*: array[2, uint8]
# ## * Opcode for xcb_input_ungrab_device_button.
# const
# XCB_INPUT_UNGRAB_DEVICE_BUTTON* = 18
# ## *
# ## @brief xcb_input_ungrab_device_button_request_t
# ##
# type
# xcb_input_ungrab_device_button_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# grab_window*: xcb_window_t
# modifiers*: uint16
# modifier_device*: uint8
# button*: uint8
# grabbed_device*: uint8
# pad0*: array[3, uint8]
# xcb_input_device_input_mode_t* = enum
# XCB_INPUT_DEVICE_INPUT_MODE_ASYNC_THIS_DEVICE = 0,
# XCB_INPUT_DEVICE_INPUT_MODE_SYNC_THIS_DEVICE = 1,
# XCB_INPUT_DEVICE_INPUT_MODE_REPLAY_THIS_DEVICE = 2,
# XCB_INPUT_DEVICE_INPUT_MODE_ASYNC_OTHER_DEVICES = 3,
# XCB_INPUT_DEVICE_INPUT_MODE_ASYNC_ALL = 4,
# XCB_INPUT_DEVICE_INPUT_MODE_SYNC_ALL = 5
# ## * Opcode for xcb_input_allow_device_events.
# const
# XCB_INPUT_ALLOW_DEVICE_EVENTS* = 19
# ## *
# ## @brief xcb_input_allow_device_events_request_t
# ##
# type
# xcb_input_allow_device_events_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# time*: xcb_timestamp_t
# mode*: uint8
# device_id*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_input_get_device_focus_cookie_t
# ##
# type
# xcb_input_get_device_focus_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_get_device_focus.
# const
# XCB_INPUT_GET_DEVICE_FOCUS* = 20
# ## *
# ## @brief xcb_input_get_device_focus_request_t
# ##
# type
# xcb_input_get_device_focus_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# device_id*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_input_get_device_focus_reply_t
# ##
# type
# xcb_input_get_device_focus_reply_t* {.bycopy.} = object
# response_type*: uint8
# xi_reply_type*: uint8
# sequence*: uint16
# length*: uint32
# focus*: xcb_window_t
# time*: xcb_timestamp_t
# revert_to*: uint8
# pad0*: array[15, uint8]
# ## * Opcode for xcb_input_set_device_focus.
# const
# XCB_INPUT_SET_DEVICE_FOCUS* = 21
# ## *
# ## @brief xcb_input_set_device_focus_request_t
# ##
# type
# xcb_input_set_device_focus_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# focus*: xcb_window_t
# time*: xcb_timestamp_t
# revert_to*: uint8
# device_id*: uint8
# pad0*: array[2, uint8]
# xcb_input_feedback_class_t* = enum
# XCB_INPUT_FEEDBACK_CLASS_KEYBOARD = 0, XCB_INPUT_FEEDBACK_CLASS_POINTER = 1,
# XCB_INPUT_FEEDBACK_CLASS_STRING = 2, XCB_INPUT_FEEDBACK_CLASS_INTEGER = 3,
# XCB_INPUT_FEEDBACK_CLASS_LED = 4, XCB_INPUT_FEEDBACK_CLASS_BELL = 5
# ## *
# ## @brief xcb_input_kbd_feedback_state_t
# ##
# type
# xcb_input_kbd_feedback_state_t* {.bycopy.} = object
# class_id*: uint8
# feedback_id*: uint8
# len*: uint16
# pitch*: uint16
# duration*: uint16
# led_mask*: uint32
# led_values*: uint32
# global_auto_repeat*: uint8
# click*: uint8
# percent*: uint8
# pad0*: uint8
# auto_repeats*: array[32, uint8]
# ## *
# ## @brief xcb_input_kbd_feedback_state_iterator_t
# ##
# type
# xcb_input_kbd_feedback_state_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_kbd_feedback_state_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_ptr_feedback_state_t
# ##
# type
# xcb_input_ptr_feedback_state_t* {.bycopy.} = object
# class_id*: uint8
# feedback_id*: uint8
# len*: uint16
# pad0*: array[2, uint8]
# accel_num*: uint16
# accel_denom*: uint16
# threshold*: uint16
# ## *
# ## @brief xcb_input_ptr_feedback_state_iterator_t
# ##
# type
# xcb_input_ptr_feedback_state_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_ptr_feedback_state_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_integer_feedback_state_t
# ##
# type
# xcb_input_integer_feedback_state_t* {.bycopy.} = object
# class_id*: uint8
# feedback_id*: uint8
# len*: uint16
# resolution*: uint32
# min_value*: int32
# max_value*: int32
# ## *
# ## @brief xcb_input_integer_feedback_state_iterator_t
# ##
# type
# xcb_input_integer_feedback_state_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_integer_feedback_state_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_string_feedback_state_t
# ##
# type
# xcb_input_string_feedback_state_t* {.bycopy.} = object
# class_id*: uint8
# feedback_id*: uint8
# len*: uint16
# max_symbols*: uint16
# num_keysyms*: uint16
# ## *
# ## @brief xcb_input_string_feedback_state_iterator_t
# ##
# type
# xcb_input_string_feedback_state_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_string_feedback_state_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_bell_feedback_state_t
# ##
# type
# xcb_input_bell_feedback_state_t* {.bycopy.} = object
# class_id*: uint8
# feedback_id*: uint8
# len*: uint16
# percent*: uint8
# pad0*: array[3, uint8]
# pitch*: uint16
# duration*: uint16
# ## *
# ## @brief xcb_input_bell_feedback_state_iterator_t
# ##
# type
# xcb_input_bell_feedback_state_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_bell_feedback_state_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_led_feedback_state_t
# ##
# type
# xcb_input_led_feedback_state_t* {.bycopy.} = object
# class_id*: uint8
# feedback_id*: uint8
# len*: uint16
# led_mask*: uint32
# led_values*: uint32
# ## *
# ## @brief xcb_input_led_feedback_state_iterator_t
# ##
# type
# xcb_input_led_feedback_state_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_led_feedback_state_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_feedback_state_data_t
# ##
# type
# INNER_C_STRUCT_xinput_1023* {.bycopy.} = object
# pitch*: uint16
# duration*: uint16
# led_mask*: uint32
# led_values*: uint32
# global_auto_repeat*: uint8
# click*: uint8
# percent*: uint8
# pad0*: uint8
# auto_repeats*: array[32, uint8]
# INNER_C_STRUCT_xinput_1034* {.bycopy.} = object
# pad1*: array[2, uint8]
# accel_num*: uint16
# accel_denom*: uint16
# threshold*: uint16
# INNER_C_STRUCT_xinput_1040* {.bycopy.} = object
# max_symbols*: uint16
# num_keysyms*: uint16
# keysyms*: ptr xcb_keysym_t
# INNER_C_STRUCT_xinput_1045* {.bycopy.} = object
# resolution*: uint32
# min_value*: int32
# max_value*: int32
# INNER_C_STRUCT_xinput_1050* {.bycopy.} = object
# led_mask*: uint32
# led_values*: uint32
# INNER_C_STRUCT_xinput_1054* {.bycopy.} = object
# percent*: uint8
# pad2*: array[3, uint8]
# pitch*: uint16
# duration*: uint16
# xcb_input_feedback_state_data_t* {.bycopy.} = object
# keyboard*: INNER_C_STRUCT_xinput_1023
# pointer*: INNER_C_STRUCT_xinput_1034
# string*: INNER_C_STRUCT_xinput_1040
# integer*: INNER_C_STRUCT_xinput_1045
# led*: INNER_C_STRUCT_xinput_1050
# bell*: INNER_C_STRUCT_xinput_1054
# ## *
# ## @brief xcb_input_feedback_state_t
# ##
# type
# xcb_input_feedback_state_t* {.bycopy.} = object
# class_id*: uint8
# feedback_id*: uint8
# len*: uint16
# proc xcb_input_feedback_state_data*(R: ptr xcb_input_feedback_state_t): pointer
# ## *
# ## @brief xcb_input_feedback_state_iterator_t
# ##
# type
# xcb_input_feedback_state_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_feedback_state_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_get_feedback_control_cookie_t
# ##
# type
# xcb_input_get_feedback_control_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_get_feedback_control.
# const
# XCB_INPUT_GET_FEEDBACK_CONTROL* = 22
# ## *
# ## @brief xcb_input_get_feedback_control_request_t
# ##
# type
# xcb_input_get_feedback_control_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# device_id*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_input_get_feedback_control_reply_t
# ##
# type
# xcb_input_get_feedback_control_reply_t* {.bycopy.} = object
# response_type*: uint8
# xi_reply_type*: uint8
# sequence*: uint16
# length*: uint32
# num_feedbacks*: uint16
# pad0*: array[22, uint8]
# ## *
# ## @brief xcb_input_kbd_feedback_ctl_t
# ##
# type
# xcb_input_kbd_feedback_ctl_t* {.bycopy.} = object
# class_id*: uint8
# feedback_id*: uint8
# len*: uint16
# key*: xcb_input_key_code_t
# auto_repeat_mode*: uint8
# key_click_percent*: int8
# bell_percent*: int8
# bell_pitch*: int16
# bell_duration*: int16
# led_mask*: uint32
# led_values*: uint32
# ## *
# ## @brief xcb_input_kbd_feedback_ctl_iterator_t
# ##
# type
# xcb_input_kbd_feedback_ctl_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_kbd_feedback_ctl_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_ptr_feedback_ctl_t
# ##
# type
# xcb_input_ptr_feedback_ctl_t* {.bycopy.} = object
# class_id*: uint8
# feedback_id*: uint8
# len*: uint16
# pad0*: array[2, uint8]
# num*: int16
# denom*: int16
# threshold*: int16
# ## *
# ## @brief xcb_input_ptr_feedback_ctl_iterator_t
# ##
# type
# xcb_input_ptr_feedback_ctl_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_ptr_feedback_ctl_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_integer_feedback_ctl_t
# ##
# type
# xcb_input_integer_feedback_ctl_t* {.bycopy.} = object
# class_id*: uint8
# feedback_id*: uint8
# len*: uint16
# int_to_display*: int32
# ## *
# ## @brief xcb_input_integer_feedback_ctl_iterator_t
# ##
# type
# xcb_input_integer_feedback_ctl_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_integer_feedback_ctl_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_string_feedback_ctl_t
# ##
# type
# xcb_input_string_feedback_ctl_t* {.bycopy.} = object
# class_id*: uint8
# feedback_id*: uint8
# len*: uint16
# pad0*: array[2, uint8]
# num_keysyms*: uint16
# ## *
# ## @brief xcb_input_string_feedback_ctl_iterator_t
# ##
# type
# xcb_input_string_feedback_ctl_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_string_feedback_ctl_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_bell_feedback_ctl_t
# ##
# type
# xcb_input_bell_feedback_ctl_t* {.bycopy.} = object
# class_id*: uint8
# feedback_id*: uint8
# len*: uint16
# percent*: int8
# pad0*: array[3, uint8]
# pitch*: int16
# duration*: int16
# ## *
# ## @brief xcb_input_bell_feedback_ctl_iterator_t
# ##
# type
# xcb_input_bell_feedback_ctl_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_bell_feedback_ctl_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_led_feedback_ctl_t
# ##
# type
# xcb_input_led_feedback_ctl_t* {.bycopy.} = object
# class_id*: uint8
# feedback_id*: uint8
# len*: uint16
# led_mask*: uint32
# led_values*: uint32
# ## *
# ## @brief xcb_input_led_feedback_ctl_iterator_t
# ##
# type
# xcb_input_led_feedback_ctl_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_led_feedback_ctl_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_feedback_ctl_data_t
# ##
# type
# INNER_C_STRUCT_xinput_1249* {.bycopy.} = object
# key*: xcb_input_key_code_t
# auto_repeat_mode*: uint8
# key_click_percent*: int8
# bell_percent*: int8
# bell_pitch*: int16
# bell_duration*: int16
# led_mask*: uint32
# led_values*: uint32
# INNER_C_STRUCT_xinput_1259* {.bycopy.} = object
# pad0*: array[2, uint8]
# num*: int16
# denom*: int16
# threshold*: int16
# INNER_C_STRUCT_xinput_1265* {.bycopy.} = object
# pad1*: array[2, uint8]
# num_keysyms*: uint16
# keysyms*: ptr xcb_keysym_t
# INNER_C_STRUCT_xinput_1270* {.bycopy.} = object
# int_to_display*: int32
# INNER_C_STRUCT_xinput_1273* {.bycopy.} = object
# led_mask*: uint32
# led_values*: uint32
# INNER_C_STRUCT_xinput_1277* {.bycopy.} = object
# percent*: int8
# pad2*: array[3, uint8]
# pitch*: int16
# duration*: int16
# xcb_input_feedback_ctl_data_t* {.bycopy.} = object
# keyboard*: INNER_C_STRUCT_xinput_1249
# pointer*: INNER_C_STRUCT_xinput_1259
# string*: INNER_C_STRUCT_xinput_1265
# integer*: INNER_C_STRUCT_xinput_1270
# led*: INNER_C_STRUCT_xinput_1273
# bell*: INNER_C_STRUCT_xinput_1277
# ## *
# ## @brief xcb_input_feedback_ctl_t
# ##
# type
# xcb_input_feedback_ctl_t* {.bycopy.} = object
# class_id*: uint8
# feedback_id*: uint8
# len*: uint16
# proc xcb_input_feedback_ctl_data*(R: ptr xcb_input_feedback_ctl_t): pointer
# ## *
# ## @brief xcb_input_feedback_ctl_iterator_t
# ##
# type
# xcb_input_feedback_ctl_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_feedback_ctl_t
# rem*: cint
# index*: cint
# xcb_input_change_feedback_control_mask_t* = enum
# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_KEY_CLICK_PERCENT = 1,
# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_PERCENT = 2,
# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_PITCH = 4,
# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_DURATION = 8,
# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_LED = 16,
# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_LED_MODE = 32,
# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_KEY = 64,
# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_AUTO_REPEAT_MODE = 128
# const
# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_STRING = XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_KEY_CLICK_PERCENT
# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_INTEGER = XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_KEY_CLICK_PERCENT
# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_ACCEL_NUM = XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_KEY_CLICK_PERCENT
# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_ACCEL_DENOM = XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_PERCENT
# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_THRESHOLD = XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_PITCH
# ## * Opcode for xcb_input_change_feedback_control.
# const
# XCB_INPUT_CHANGE_FEEDBACK_CONTROL* = 23
# ## *
# ## @brief xcb_input_change_feedback_control_request_t
# ##
# type
# xcb_input_change_feedback_control_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# mask*: uint32
# device_id*: uint8
# feedback_id*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_input_get_device_key_mapping_cookie_t
# ##
# type
# xcb_input_get_device_key_mapping_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_get_device_key_mapping.
# const
# XCB_INPUT_GET_DEVICE_KEY_MAPPING* = 24
# ## *
# ## @brief xcb_input_get_device_key_mapping_request_t
# ##
# type
# xcb_input_get_device_key_mapping_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# device_id*: uint8
# first_keycode*: xcb_input_key_code_t
# count*: uint8
# pad0*: uint8
# ## *
# ## @brief xcb_input_get_device_key_mapping_reply_t
# ##
# type
# xcb_input_get_device_key_mapping_reply_t* {.bycopy.} = object
# response_type*: uint8
# xi_reply_type*: uint8
# sequence*: uint16
# length*: uint32
# keysyms_per_keycode*: uint8
# pad0*: array[23, uint8]
# ## * Opcode for xcb_input_change_device_key_mapping.
# const
# XCB_INPUT_CHANGE_DEVICE_KEY_MAPPING* = 25
# ## *
# ## @brief xcb_input_change_device_key_mapping_request_t
# ##
# type
# xcb_input_change_device_key_mapping_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# device_id*: uint8
# first_keycode*: xcb_input_key_code_t
# keysyms_per_keycode*: uint8
# keycode_count*: uint8
# ## *
# ## @brief xcb_input_get_device_modifier_mapping_cookie_t
# ##
# type
# xcb_input_get_device_modifier_mapping_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_get_device_modifier_mapping.
# const
# XCB_INPUT_GET_DEVICE_MODIFIER_MAPPING* = 26
# ## *
# ## @brief xcb_input_get_device_modifier_mapping_request_t
# ##
# type
# xcb_input_get_device_modifier_mapping_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# device_id*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_input_get_device_modifier_mapping_reply_t
# ##
# type
# xcb_input_get_device_modifier_mapping_reply_t* {.bycopy.} = object
# response_type*: uint8
# xi_reply_type*: uint8
# sequence*: uint16
# length*: uint32
# keycodes_per_modifier*: uint8
# pad0*: array[23, uint8]
# ## *
# ## @brief xcb_input_set_device_modifier_mapping_cookie_t
# ##
# type
# xcb_input_set_device_modifier_mapping_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_set_device_modifier_mapping.
# const
# XCB_INPUT_SET_DEVICE_MODIFIER_MAPPING* = 27
# ## *
# ## @brief xcb_input_set_device_modifier_mapping_request_t
# ##
# type
# xcb_input_set_device_modifier_mapping_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# device_id*: uint8
# keycodes_per_modifier*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_input_set_device_modifier_mapping_reply_t
# ##
# type
# xcb_input_set_device_modifier_mapping_reply_t* {.bycopy.} = object
# response_type*: uint8
# xi_reply_type*: uint8
# sequence*: uint16
# length*: uint32
# status*: uint8
# pad0*: array[23, uint8]
# ## *
# ## @brief xcb_input_get_device_button_mapping_cookie_t
# ##
# type
# xcb_input_get_device_button_mapping_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_get_device_button_mapping.
# const
# XCB_INPUT_GET_DEVICE_BUTTON_MAPPING* = 28
# ## *
# ## @brief xcb_input_get_device_button_mapping_request_t
# ##
# type
# xcb_input_get_device_button_mapping_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# device_id*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_input_get_device_button_mapping_reply_t
# ##
# type
# xcb_input_get_device_button_mapping_reply_t* {.bycopy.} = object
# response_type*: uint8
# xi_reply_type*: uint8
# sequence*: uint16
# length*: uint32
# map_size*: uint8
# pad0*: array[23, uint8]
# ## *
# ## @brief xcb_input_set_device_button_mapping_cookie_t
# ##
# type
# xcb_input_set_device_button_mapping_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_set_device_button_mapping.
# const
# XCB_INPUT_SET_DEVICE_BUTTON_MAPPING* = 29
# ## *
# ## @brief xcb_input_set_device_button_mapping_request_t
# ##
# type
# xcb_input_set_device_button_mapping_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# device_id*: uint8
# map_size*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_input_set_device_button_mapping_reply_t
# ##
# type
# xcb_input_set_device_button_mapping_reply_t* {.bycopy.} = object
# response_type*: uint8
# xi_reply_type*: uint8
# sequence*: uint16
# length*: uint32
# status*: uint8
# pad0*: array[23, uint8]
# ## *
# ## @brief xcb_input_key_state_t
# ##
# type
# xcb_input_key_state_t* {.bycopy.} = object
# class_id*: uint8
# len*: uint8
# num_keys*: uint8
# pad0*: uint8
# keys*: array[32, uint8]
# ## *
# ## @brief xcb_input_key_state_iterator_t
# ##
# type
# xcb_input_key_state_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_key_state_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_button_state_t
# ##
# type
# xcb_input_button_state_t* {.bycopy.} = object
# class_id*: uint8
# len*: uint8
# num_buttons*: uint8
# pad0*: uint8
# buttons*: array[32, uint8]
# ## *
# ## @brief xcb_input_button_state_iterator_t
# ##
# type
# xcb_input_button_state_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_button_state_t
# rem*: cint
# index*: cint
# xcb_input_valuator_state_mode_mask_t* = enum
# XCB_INPUT_VALUATOR_STATE_MODE_MASK_DEVICE_MODE_ABSOLUTE = 1,
# XCB_INPUT_VALUATOR_STATE_MODE_MASK_OUT_OF_PROXIMITY = 2
# ## *
# ## @brief xcb_input_valuator_state_t
# ##
# type
# xcb_input_valuator_state_t* {.bycopy.} = object
# class_id*: uint8
# len*: uint8
# num_valuators*: uint8
# mode*: uint8
# ## *
# ## @brief xcb_input_valuator_state_iterator_t
# ##
# type
# xcb_input_valuator_state_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_valuator_state_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_input_state_data_t
# ##
# type
# INNER_C_STRUCT_xinput_1591* {.bycopy.} = object
# num_keys*: uint8
# pad0*: uint8
# keys*: array[32, uint8]
# INNER_C_STRUCT_xinput_1596* {.bycopy.} = object
# num_buttons*: uint8
# pad1*: uint8
# buttons*: array[32, uint8]
# INNER_C_STRUCT_xinput_1601* {.bycopy.} = object
# num_valuators*: uint8
# mode*: uint8
# valuators*: ptr int32
# xcb_input_input_state_data_t* {.bycopy.} = object
# key*: INNER_C_STRUCT_xinput_1591
# button*: INNER_C_STRUCT_xinput_1596
# valuator*: INNER_C_STRUCT_xinput_1601
# ## *
# ## @brief xcb_input_input_state_t
# ##
# type
# xcb_input_input_state_t* {.bycopy.} = object
# class_id*: uint8
# len*: uint8
# proc xcb_input_input_state_data*(R: ptr xcb_input_input_state_t): pointer
# ## *
# ## @brief xcb_input_input_state_iterator_t
# ##
# type
# xcb_input_input_state_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_input_state_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_query_device_state_cookie_t
# ##
# type
# xcb_input_query_device_state_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_query_device_state.
# const
# XCB_INPUT_QUERY_DEVICE_STATE* = 30
# ## *
# ## @brief xcb_input_query_device_state_request_t
# ##
# type
# xcb_input_query_device_state_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# device_id*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_input_query_device_state_reply_t
# ##
# type
# xcb_input_query_device_state_reply_t* {.bycopy.} = object
# response_type*: uint8
# xi_reply_type*: uint8
# sequence*: uint16
# length*: uint32
# num_classes*: uint8
# pad0*: array[23, uint8]
# ## * Opcode for xcb_input_device_bell.
# const
# XCB_INPUT_DEVICE_BELL* = 32
# ## *
# ## @brief xcb_input_device_bell_request_t
# ##
# type
# xcb_input_device_bell_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# device_id*: uint8
# feedback_id*: uint8
# feedback_class*: uint8
# percent*: int8
# ## *
# ## @brief xcb_input_set_device_valuators_cookie_t
# ##
# type
# xcb_input_set_device_valuators_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_set_device_valuators.
# const
# XCB_INPUT_SET_DEVICE_VALUATORS* = 33
# ## *
# ## @brief xcb_input_set_device_valuators_request_t
# ##
# type
# xcb_input_set_device_valuators_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# device_id*: uint8
# first_valuator*: uint8
# num_valuators*: uint8
# pad0*: uint8
# ## *
# ## @brief xcb_input_set_device_valuators_reply_t
# ##
# type
# xcb_input_set_device_valuators_reply_t* {.bycopy.} = object
# response_type*: uint8
# xi_reply_type*: uint8
# sequence*: uint16
# length*: uint32
# status*: uint8
# pad0*: array[23, uint8]
# xcb_input_device_control_t* = enum
# XCB_INPUT_DEVICE_CONTROL_RESOLUTION = 1,
# XCB_INPUT_DEVICE_CONTROL_ABS_CALIB = 2, XCB_INPUT_DEVICE_CONTROL_CORE = 3,
# XCB_INPUT_DEVICE_CONTROL_ENABLE = 4, XCB_INPUT_DEVICE_CONTROL_ABS_AREA = 5
# ## *
# ## @brief xcb_input_device_resolution_state_t
# ##
# type
# xcb_input_device_resolution_state_t* {.bycopy.} = object
# control_id*: uint16
# len*: uint16
# num_valuators*: uint32
# ## *
# ## @brief xcb_input_device_resolution_state_iterator_t
# ##
# type
# xcb_input_device_resolution_state_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_device_resolution_state_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_device_abs_calib_state_t
# ##
# type
# xcb_input_device_abs_calib_state_t* {.bycopy.} = object
# control_id*: uint16
# len*: uint16
# min_x*: int32
# max_x*: int32
# min_y*: int32
# max_y*: int32
# flip_x*: uint32
# flip_y*: uint32
# rotation*: uint32
# button_threshold*: uint32
# ## *
# ## @brief xcb_input_device_abs_calib_state_iterator_t
# ##
# type
# xcb_input_device_abs_calib_state_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_device_abs_calib_state_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_device_abs_area_state_t
# ##
# type
# xcb_input_device_abs_area_state_t* {.bycopy.} = object
# control_id*: uint16
# len*: uint16
# offset_x*: uint32
# offset_y*: uint32
# width*: uint32
# height*: uint32
# screen*: uint32
# following*: uint32
# ## *
# ## @brief xcb_input_device_abs_area_state_iterator_t
# ##
# type
# xcb_input_device_abs_area_state_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_device_abs_area_state_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_device_core_state_t
# ##
# type
# xcb_input_device_core_state_t* {.bycopy.} = object
# control_id*: uint16
# len*: uint16
# status*: uint8
# iscore*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_input_device_core_state_iterator_t
# ##
# type
# xcb_input_device_core_state_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_device_core_state_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_device_enable_state_t
# ##
# type
# xcb_input_device_enable_state_t* {.bycopy.} = object
# control_id*: uint16
# len*: uint16
# enable*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_input_device_enable_state_iterator_t
# ##
# type
# xcb_input_device_enable_state_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_device_enable_state_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_device_state_data_t
# ##
# type
# INNER_C_STRUCT_xinput_1829* {.bycopy.} = object
# num_valuators*: uint32
# resolution_values*: ptr uint32
# resolution_min*: ptr uint32
# resolution_max*: ptr uint32
# INNER_C_STRUCT_xinput_1835* {.bycopy.} = object
# min_x*: int32
# max_x*: int32
# min_y*: int32
# max_y*: int32
# flip_x*: uint32
# flip_y*: uint32
# rotation*: uint32
# button_threshold*: uint32
# INNER_C_STRUCT_xinput_1845* {.bycopy.} = object
# status*: uint8
# iscore*: uint8
# pad0*: array[2, uint8]
# INNER_C_STRUCT_xinput_1850* {.bycopy.} = object
# enable*: uint8
# pad1*: array[3, uint8]
# INNER_C_STRUCT_xinput_1854* {.bycopy.} = object
# offset_x*: uint32
# offset_y*: uint32
# width*: uint32
# height*: uint32
# screen*: uint32
# following*: uint32
# xcb_input_device_state_data_t* {.bycopy.} = object
# resolution*: INNER_C_STRUCT_xinput_1829
# abs_calib*: INNER_C_STRUCT_xinput_1835
# core*: INNER_C_STRUCT_xinput_1845
# enable*: INNER_C_STRUCT_xinput_1850
# abs_area*: INNER_C_STRUCT_xinput_1854
# ## *
# ## @brief xcb_input_device_state_t
# ##
# type
# xcb_input_device_state_t* {.bycopy.} = object
# control_id*: uint16
# len*: uint16
# proc xcb_input_device_state_data*(R: ptr xcb_input_device_state_t): pointer
# ## *
# ## @brief xcb_input_device_state_iterator_t
# ##
# type
# xcb_input_device_state_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_device_state_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_get_device_control_cookie_t
# ##
# type
# xcb_input_get_device_control_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_get_device_control.
# const
# XCB_INPUT_GET_DEVICE_CONTROL* = 34
# ## *
# ## @brief xcb_input_get_device_control_request_t
# ##
# type
# xcb_input_get_device_control_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# control_id*: uint16
# device_id*: uint8
# pad0*: uint8
# ## *
# ## @brief xcb_input_get_device_control_reply_t
# ##
# type
# xcb_input_get_device_control_reply_t* {.bycopy.} = object
# response_type*: uint8
# xi_reply_type*: uint8
# sequence*: uint16
# length*: uint32
# status*: uint8
# pad0*: array[23, uint8]
# ## *
# ## @brief xcb_input_device_resolution_ctl_t
# ##
# type
# xcb_input_device_resolution_ctl_t* {.bycopy.} = object
# control_id*: uint16
# len*: uint16
# first_valuator*: uint8
# num_valuators*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_input_device_resolution_ctl_iterator_t
# ##
# type
# xcb_input_device_resolution_ctl_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_device_resolution_ctl_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_device_abs_calib_ctl_t
# ##
# type
# xcb_input_device_abs_calib_ctl_t* {.bycopy.} = object
# control_id*: uint16
# len*: uint16
# min_x*: int32
# max_x*: int32
# min_y*: int32
# max_y*: int32
# flip_x*: uint32
# flip_y*: uint32
# rotation*: uint32
# button_threshold*: uint32
# ## *
# ## @brief xcb_input_device_abs_calib_ctl_iterator_t
# ##
# type
# xcb_input_device_abs_calib_ctl_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_device_abs_calib_ctl_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_device_abs_area_ctrl_t
# ##
# type
# xcb_input_device_abs_area_ctrl_t* {.bycopy.} = object
# control_id*: uint16
# len*: uint16
# offset_x*: uint32
# offset_y*: uint32
# width*: int32
# height*: int32
# screen*: int32
# following*: uint32
# ## *
# ## @brief xcb_input_device_abs_area_ctrl_iterator_t
# ##
# type
# xcb_input_device_abs_area_ctrl_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_device_abs_area_ctrl_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_device_core_ctrl_t
# ##
# type
# xcb_input_device_core_ctrl_t* {.bycopy.} = object
# control_id*: uint16
# len*: uint16
# status*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_input_device_core_ctrl_iterator_t
# ##
# type
# xcb_input_device_core_ctrl_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_device_core_ctrl_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_device_enable_ctrl_t
# ##
# type
# xcb_input_device_enable_ctrl_t* {.bycopy.} = object
# control_id*: uint16
# len*: uint16
# enable*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_input_device_enable_ctrl_iterator_t
# ##
# type
# xcb_input_device_enable_ctrl_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_device_enable_ctrl_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_device_ctl_data_t
# ##
# type
# INNER_C_STRUCT_xinput_2028* {.bycopy.} = object
# first_valuator*: uint8
# num_valuators*: uint8
# pad0*: array[2, uint8]
# resolution_values*: ptr uint32
# INNER_C_STRUCT_xinput_2034* {.bycopy.} = object
# min_x*: int32
# max_x*: int32
# min_y*: int32
# max_y*: int32
# flip_x*: uint32
# flip_y*: uint32
# rotation*: uint32
# button_threshold*: uint32
# INNER_C_STRUCT_xinput_2044* {.bycopy.} = object
# status*: uint8
# pad1*: array[3, uint8]
# INNER_C_STRUCT_xinput_2048* {.bycopy.} = object
# enable*: uint8
# pad2*: array[3, uint8]
# INNER_C_STRUCT_xinput_2052* {.bycopy.} = object
# offset_x*: uint32
# offset_y*: uint32
# width*: int32
# height*: int32
# screen*: int32
# following*: uint32
# xcb_input_device_ctl_data_t* {.bycopy.} = object
# resolution*: INNER_C_STRUCT_xinput_2028
# abs_calib*: INNER_C_STRUCT_xinput_2034
# core*: INNER_C_STRUCT_xinput_2044
# enable*: INNER_C_STRUCT_xinput_2048
# abs_area*: INNER_C_STRUCT_xinput_2052
# ## *
# ## @brief xcb_input_device_ctl_t
# ##
# type
# xcb_input_device_ctl_t* {.bycopy.} = object
# control_id*: uint16
# len*: uint16
# proc xcb_input_device_ctl_data*(R: ptr xcb_input_device_ctl_t): pointer
# ## *
# ## @brief xcb_input_device_ctl_iterator_t
# ##
# type
# xcb_input_device_ctl_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_device_ctl_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_change_device_control_cookie_t
# ##
# type
# xcb_input_change_device_control_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_change_device_control.
# const
# XCB_INPUT_CHANGE_DEVICE_CONTROL* = 35
# ## *
# ## @brief xcb_input_change_device_control_request_t
# ##
# type
# xcb_input_change_device_control_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# control_id*: uint16
# device_id*: uint8
# pad0*: uint8
# ## *
# ## @brief xcb_input_change_device_control_reply_t
# ##
# type
# xcb_input_change_device_control_reply_t* {.bycopy.} = object
# response_type*: uint8
# xi_reply_type*: uint8
# sequence*: uint16
# length*: uint32
# status*: uint8
# pad0*: array[23, uint8]
# ## *
# ## @brief xcb_input_list_device_properties_cookie_t
# ##
# type
# xcb_input_list_device_properties_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_list_device_properties.
# const
# XCB_INPUT_LIST_DEVICE_PROPERTIES* = 36
# ## *
# ## @brief xcb_input_list_device_properties_request_t
# ##
# type
# xcb_input_list_device_properties_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# device_id*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_input_list_device_properties_reply_t
# ##
# type
# xcb_input_list_device_properties_reply_t* {.bycopy.} = object
# response_type*: uint8
# xi_reply_type*: uint8
# sequence*: uint16
# length*: uint32
# num_atoms*: uint16
# pad0*: array[22, uint8]
# xcb_input_property_format_t* = enum
# XCB_INPUT_PROPERTY_FORMAT_8_BITS = 8, XCB_INPUT_PROPERTY_FORMAT_16_BITS = 16,
# XCB_INPUT_PROPERTY_FORMAT_32_BITS = 32
# ## *
# ## @brief xcb_input_change_device_property_items_t
# ##
# type
# xcb_input_change_device_property_items_t* {.bycopy.} = object
# data8*: ptr uint8
# data16*: ptr uint16
# data32*: ptr uint32
# ## * Opcode for xcb_input_change_device_property.
# const
# XCB_INPUT_CHANGE_DEVICE_PROPERTY* = 37
# ## *
# ## @brief xcb_input_change_device_property_request_t
# ##
# type
# xcb_input_change_device_property_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# property*: xcb_atom_t
# `type`*: xcb_atom_t
# device_id*: uint8
# format*: uint8
# mode*: uint8
# pad0*: uint8
# num_items*: uint32
# ## * Opcode for xcb_input_delete_device_property.
# const
# XCB_INPUT_DELETE_DEVICE_PROPERTY* = 38
# ## *
# ## @brief xcb_input_delete_device_property_request_t
# ##
# type
# xcb_input_delete_device_property_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# property*: xcb_atom_t
# device_id*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_input_get_device_property_cookie_t
# ##
# type
# xcb_input_get_device_property_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_get_device_property.
# const
# XCB_INPUT_GET_DEVICE_PROPERTY* = 39
# ## *
# ## @brief xcb_input_get_device_property_request_t
# ##
# type
# xcb_input_get_device_property_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# property*: xcb_atom_t
# `type`*: xcb_atom_t
# offset*: uint32
# len*: uint32
# device_id*: uint8
# _delete*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_input_get_device_property_items_t
# ##
# type
# xcb_input_get_device_property_items_t* {.bycopy.} = object
# data8*: ptr uint8
# data16*: ptr uint16
# data32*: ptr uint32
# ## *
# ## @brief xcb_input_get_device_property_reply_t
# ##
# type
# xcb_input_get_device_property_reply_t* {.bycopy.} = object
# response_type*: uint8
# xi_reply_type*: uint8
# sequence*: uint16
# length*: uint32
# `type`*: xcb_atom_t
# bytes_after*: uint32
# num_items*: uint32
# format*: uint8
# device_id*: uint8
# pad0*: array[10, uint8]
# xcb_input_device_t* = enum
# XCB_INPUT_DEVICE_ALL = 0, XCB_INPUT_DEVICE_ALL_MASTER = 1
# ## *
# ## @brief xcb_input_group_info_t
# ##
# type
# xcb_input_group_info_t* {.bycopy.} = object
# base*: uint8
# latched*: uint8
# locked*: uint8
# effective*: uint8
# ## *
# ## @brief xcb_input_group_info_iterator_t
# ##
# type
# xcb_input_group_info_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_group_info_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_modifier_info_t
# ##
# type
# xcb_input_modifier_info_t* {.bycopy.} = object
# base*: uint32
# latched*: uint32
# locked*: uint32
# effective*: uint32
# ## *
# ## @brief xcb_input_modifier_info_iterator_t
# ##
# type
# xcb_input_modifier_info_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_modifier_info_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_xi_query_pointer_cookie_t
# ##
# type
# xcb_input_xi_query_pointer_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_xi_query_pointer.
# const
# XCB_INPUT_XI_QUERY_POINTER* = 40
# ## *
# ## @brief xcb_input_xi_query_pointer_request_t
# ##
# type
# xcb_input_xi_query_pointer_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# deviceid*: xcb_input_device_id_t
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_input_xi_query_pointer_reply_t
# ##
# type
# xcb_input_xi_query_pointer_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# root*: xcb_window_t
# child*: xcb_window_t
# root_x*: xcb_input_fp1616_t
# root_y*: xcb_input_fp1616_t
# win_x*: xcb_input_fp1616_t
# win_y*: xcb_input_fp1616_t
# same_screen*: uint8
# pad1*: uint8
# buttons_len*: uint16
# mods*: xcb_input_modifier_info_t
# group*: xcb_input_group_info_t
# ## * Opcode for xcb_input_xi_warp_pointer.
# const
# XCB_INPUT_XI_WARP_POINTER* = 41
# ## *
# ## @brief xcb_input_xi_warp_pointer_request_t
# ##
# type
# xcb_input_xi_warp_pointer_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# src_win*: xcb_window_t
# dst_win*: xcb_window_t
# src_x*: xcb_input_fp1616_t
# src_y*: xcb_input_fp1616_t
# src_width*: uint16
# src_height*: uint16
# dst_x*: xcb_input_fp1616_t
# dst_y*: xcb_input_fp1616_t
# deviceid*: xcb_input_device_id_t
# pad0*: array[2, uint8]
# ## * Opcode for xcb_input_xi_change_cursor.
# const
# XCB_INPUT_XI_CHANGE_CURSOR* = 42
# ## *
# ## @brief xcb_input_xi_change_cursor_request_t
# ##
# type
# xcb_input_xi_change_cursor_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# cursor*: xcb_cursor_t
# deviceid*: xcb_input_device_id_t
# pad0*: array[2, uint8]
# xcb_input_hierarchy_change_type_t* = enum
# XCB_INPUT_HIERARCHY_CHANGE_TYPE_ADD_MASTER = 1,
# XCB_INPUT_HIERARCHY_CHANGE_TYPE_REMOVE_MASTER = 2,
# XCB_INPUT_HIERARCHY_CHANGE_TYPE_ATTACH_SLAVE = 3,
# XCB_INPUT_HIERARCHY_CHANGE_TYPE_DETACH_SLAVE = 4
# xcb_input_change_mode_t* = enum
# XCB_INPUT_CHANGE_MODE_ATTACH = 1, XCB_INPUT_CHANGE_MODE_FLOAT = 2
# ## *
# ## @brief xcb_input_add_master_t
# ##
# type
# xcb_input_add_master_t* {.bycopy.} = object
# `type`*: uint16
# len*: uint16
# name_len*: uint16
# send_core*: uint8
# enable*: uint8
# ## *
# ## @brief xcb_input_add_master_iterator_t
# ##
# type
# xcb_input_add_master_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_add_master_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_remove_master_t
# ##
# type
# xcb_input_remove_master_t* {.bycopy.} = object
# `type`*: uint16
# len*: uint16
# deviceid*: xcb_input_device_id_t
# return_mode*: uint8
# pad0*: uint8
# return_pointer*: xcb_input_device_id_t
# return_keyboard*: xcb_input_device_id_t
# ## *
# ## @brief xcb_input_remove_master_iterator_t
# ##
# type
# xcb_input_remove_master_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_remove_master_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_attach_slave_t
# ##
# type
# xcb_input_attach_slave_t* {.bycopy.} = object
# `type`*: uint16
# len*: uint16
# deviceid*: xcb_input_device_id_t
# master*: xcb_input_device_id_t
# ## *
# ## @brief xcb_input_attach_slave_iterator_t
# ##
# type
# xcb_input_attach_slave_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_attach_slave_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_detach_slave_t
# ##
# type
# xcb_input_detach_slave_t* {.bycopy.} = object
# `type`*: uint16
# len*: uint16
# deviceid*: xcb_input_device_id_t
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_input_detach_slave_iterator_t
# ##
# type
# xcb_input_detach_slave_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_detach_slave_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_hierarchy_change_data_t
# ##
# type
# INNER_C_STRUCT_xinput_2469* {.bycopy.} = object
# name_len*: uint16
# send_core*: uint8
# enable*: uint8
# name*: cstring
# INNER_C_STRUCT_xinput_2475* {.bycopy.} = object
# deviceid*: xcb_input_device_id_t
# return_mode*: uint8
# pad1*: uint8
# return_pointer*: xcb_input_device_id_t
# return_keyboard*: xcb_input_device_id_t
# INNER_C_STRUCT_xinput_2482* {.bycopy.} = object
# deviceid*: xcb_input_device_id_t
# master*: xcb_input_device_id_t
# INNER_C_STRUCT_xinput_2486* {.bycopy.} = object
# deviceid*: xcb_input_device_id_t
# pad2*: array[2, uint8]
# xcb_input_hierarchy_change_data_t* {.bycopy.} = object
# add_master*: INNER_C_STRUCT_xinput_2469
# remove_master*: INNER_C_STRUCT_xinput_2475
# attach_slave*: INNER_C_STRUCT_xinput_2482
# detach_slave*: INNER_C_STRUCT_xinput_2486
# ## *
# ## @brief xcb_input_hierarchy_change_t
# ##
# type
# xcb_input_hierarchy_change_t* {.bycopy.} = object
# `type`*: uint16
# len*: uint16
# proc xcb_input_hierarchy_change_data*(R: ptr xcb_input_hierarchy_change_t): pointer
# ## *
# ## @brief xcb_input_hierarchy_change_iterator_t
# ##
# type
# xcb_input_hierarchy_change_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_hierarchy_change_t
# rem*: cint
# index*: cint
# ## * Opcode for xcb_input_xi_change_hierarchy.
# const
# XCB_INPUT_XI_CHANGE_HIERARCHY* = 43
# ## *
# ## @brief xcb_input_xi_change_hierarchy_request_t
# ##
# type
# xcb_input_xi_change_hierarchy_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# num_changes*: uint8
# pad0*: array[3, uint8]
# ## * Opcode for xcb_input_xi_set_client_pointer.
# const
# XCB_INPUT_XI_SET_CLIENT_POINTER* = 44
# ## *
# ## @brief xcb_input_xi_set_client_pointer_request_t
# ##
# type
# xcb_input_xi_set_client_pointer_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# deviceid*: xcb_input_device_id_t
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_input_xi_get_client_pointer_cookie_t
# ##
# type
# xcb_input_xi_get_client_pointer_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_xi_get_client_pointer.
# const
# XCB_INPUT_XI_GET_CLIENT_POINTER* = 45
# ## *
# ## @brief xcb_input_xi_get_client_pointer_request_t
# ##
# type
# xcb_input_xi_get_client_pointer_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# ## *
# ## @brief xcb_input_xi_get_client_pointer_reply_t
# ##
# type
# xcb_input_xi_get_client_pointer_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# set*: uint8
# pad1*: uint8
# deviceid*: xcb_input_device_id_t
# pad2*: array[20, uint8]
# xcb_input_xi_event_mask_t* = enum
# XCB_INPUT_XI_EVENT_MASK_DEVICE_CHANGED = 2,
# XCB_INPUT_XI_EVENT_MASK_KEY_PRESS = 4, XCB_INPUT_XI_EVENT_MASK_KEY_RELEASE = 8,
# XCB_INPUT_XI_EVENT_MASK_BUTTON_PRESS = 16,
# XCB_INPUT_XI_EVENT_MASK_BUTTON_RELEASE = 32,
# XCB_INPUT_XI_EVENT_MASK_MOTION = 64, XCB_INPUT_XI_EVENT_MASK_ENTER = 128,
# XCB_INPUT_XI_EVENT_MASK_LEAVE = 256, XCB_INPUT_XI_EVENT_MASK_FOCUS_IN = 512,
# XCB_INPUT_XI_EVENT_MASK_FOCUS_OUT = 1024,
# XCB_INPUT_XI_EVENT_MASK_HIERARCHY = 2048,
# XCB_INPUT_XI_EVENT_MASK_PROPERTY = 4096,
# XCB_INPUT_XI_EVENT_MASK_RAW_KEY_PRESS = 8192,
# XCB_INPUT_XI_EVENT_MASK_RAW_KEY_RELEASE = 16384,
# XCB_INPUT_XI_EVENT_MASK_RAW_BUTTON_PRESS = 32768,
# XCB_INPUT_XI_EVENT_MASK_RAW_BUTTON_RELEASE = 65536,
# XCB_INPUT_XI_EVENT_MASK_RAW_MOTION = 131072,
# XCB_INPUT_XI_EVENT_MASK_TOUCH_BEGIN = 262144,
# XCB_INPUT_XI_EVENT_MASK_TOUCH_UPDATE = 524288,
# XCB_INPUT_XI_EVENT_MASK_TOUCH_END = 1048576,
# XCB_INPUT_XI_EVENT_MASK_TOUCH_OWNERSHIP = 2097152,
# XCB_INPUT_XI_EVENT_MASK_RAW_TOUCH_BEGIN = 4194304,
# XCB_INPUT_XI_EVENT_MASK_RAW_TOUCH_UPDATE = 8388608,
# XCB_INPUT_XI_EVENT_MASK_RAW_TOUCH_END = 16777216,
# XCB_INPUT_XI_EVENT_MASK_BARRIER_HIT = 33554432,
# XCB_INPUT_XI_EVENT_MASK_BARRIER_LEAVE = 67108864
# ## *
# ## @brief xcb_input_event_mask_t
# ##
# type
# xcb_input_event_mask_t* {.bycopy.} = object
# deviceid*: xcb_input_device_id_t
# mask_len*: uint16
# ## *
# ## @brief xcb_input_event_mask_iterator_t
# ##
# type
# xcb_input_event_mask_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_event_mask_t
# rem*: cint
# index*: cint
# ## * Opcode for xcb_input_xi_select_events.
# const
# XCB_INPUT_XI_SELECT_EVENTS* = 46
# ## *
# ## @brief xcb_input_xi_select_events_request_t
# ##
# type
# xcb_input_xi_select_events_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# num_mask*: uint16
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_input_xi_query_version_cookie_t
# ##
# type
# xcb_input_xi_query_version_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_xi_query_version.
# const
# XCB_INPUT_XI_QUERY_VERSION* = 47
# ## *
# ## @brief xcb_input_xi_query_version_request_t
# ##
# type
# xcb_input_xi_query_version_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# major_version*: uint16
# minor_version*: uint16
# ## *
# ## @brief xcb_input_xi_query_version_reply_t
# ##
# type
# xcb_input_xi_query_version_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# major_version*: uint16
# minor_version*: uint16
# pad1*: array[20, uint8]
# xcb_input_device_class_type_t* = enum
# XCB_INPUT_DEVICE_CLASS_TYPE_KEY = 0, XCB_INPUT_DEVICE_CLASS_TYPE_BUTTON = 1,
# XCB_INPUT_DEVICE_CLASS_TYPE_VALUATOR = 2,
# XCB_INPUT_DEVICE_CLASS_TYPE_SCROLL = 3, XCB_INPUT_DEVICE_CLASS_TYPE_TOUCH = 8
# xcb_input_device_type_t* = enum
# XCB_INPUT_DEVICE_TYPE_MASTER_POINTER = 1,
# XCB_INPUT_DEVICE_TYPE_MASTER_KEYBOARD = 2,
# XCB_INPUT_DEVICE_TYPE_SLAVE_POINTER = 3,
# XCB_INPUT_DEVICE_TYPE_SLAVE_KEYBOARD = 4,
# XCB_INPUT_DEVICE_TYPE_FLOATING_SLAVE = 5
# xcb_input_scroll_flags_t* = enum
# XCB_INPUT_SCROLL_FLAGS_NO_EMULATION = 1, XCB_INPUT_SCROLL_FLAGS_PREFERRED = 2
# xcb_input_scroll_type_t* = enum
# XCB_INPUT_SCROLL_TYPE_VERTICAL = 1, XCB_INPUT_SCROLL_TYPE_HORIZONTAL = 2
# xcb_input_touch_mode_t* = enum
# XCB_INPUT_TOUCH_MODE_DIRECT = 1, XCB_INPUT_TOUCH_MODE_DEPENDENT = 2
# ## *
# ## @brief xcb_input_button_class_t
# ##
# type
# xcb_input_button_class_t* {.bycopy.} = object
# `type`*: uint16
# len*: uint16
# sourceid*: xcb_input_device_id_t
# num_buttons*: uint16
# ## *
# ## @brief xcb_input_button_class_iterator_t
# ##
# type
# xcb_input_button_class_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_button_class_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_key_class_t
# ##
# type
# xcb_input_key_class_t* {.bycopy.} = object
# `type`*: uint16
# len*: uint16
# sourceid*: xcb_input_device_id_t
# num_keys*: uint16
# ## *
# ## @brief xcb_input_key_class_iterator_t
# ##
# type
# xcb_input_key_class_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_key_class_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_scroll_class_t
# ##
# type
# xcb_input_scroll_class_t* {.bycopy.} = object
# `type`*: uint16
# len*: uint16
# sourceid*: xcb_input_device_id_t
# number*: uint16
# scroll_type*: uint16
# pad0*: array[2, uint8]
# flags*: uint32
# increment*: xcb_input_fp3232_t
# ## *
# ## @brief xcb_input_scroll_class_iterator_t
# ##
# type
# xcb_input_scroll_class_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_scroll_class_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_touch_class_t
# ##
# type
# xcb_input_touch_class_t* {.bycopy.} = object
# `type`*: uint16
# len*: uint16
# sourceid*: xcb_input_device_id_t
# mode*: uint8
# num_touches*: uint8
# ## *
# ## @brief xcb_input_touch_class_iterator_t
# ##
# type
# xcb_input_touch_class_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_touch_class_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_valuator_class_t
# ##
# type
# xcb_input_valuator_class_t* {.bycopy.} = object
# `type`*: uint16
# len*: uint16
# sourceid*: xcb_input_device_id_t
# number*: uint16
# label*: xcb_atom_t
# min*: xcb_input_fp3232_t
# max*: xcb_input_fp3232_t
# value*: xcb_input_fp3232_t
# resolution*: uint32
# mode*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_input_valuator_class_iterator_t
# ##
# type
# xcb_input_valuator_class_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_valuator_class_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_device_class_data_t
# ##
# type
# INNER_C_STRUCT_xinput_2812* {.bycopy.} = object
# num_keys*: uint16
# keys*: ptr uint32
# INNER_C_STRUCT_xinput_2816* {.bycopy.} = object
# num_buttons*: uint16
# state*: ptr uint32
# labels*: ptr xcb_atom_t
# INNER_C_STRUCT_xinput_2821* {.bycopy.} = object
# number*: uint16
# label*: xcb_atom_t
# min*: xcb_input_fp3232_t
# max*: xcb_input_fp3232_t
# value*: xcb_input_fp3232_t
# resolution*: uint32
# mode*: uint8
# pad0*: array[3, uint8]
# INNER_C_STRUCT_xinput_2831* {.bycopy.} = object
# number*: uint16
# scroll_type*: uint16
# pad1*: array[2, uint8]
# flags*: uint32
# increment*: xcb_input_fp3232_t
# INNER_C_STRUCT_xinput_2838* {.bycopy.} = object
# mode*: uint8
# num_touches*: uint8
# xcb_input_device_class_data_t* {.bycopy.} = object
# key*: INNER_C_STRUCT_xinput_2812
# button*: INNER_C_STRUCT_xinput_2816
# valuator*: INNER_C_STRUCT_xinput_2821
# scroll*: INNER_C_STRUCT_xinput_2831
# touch*: INNER_C_STRUCT_xinput_2838
# ## *
# ## @brief xcb_input_device_class_t
# ##
# type
# xcb_input_device_class_t* {.bycopy.} = object
# `type`*: uint16
# len*: uint16
# sourceid*: xcb_input_device_id_t
# proc xcb_input_device_class_data*(R: ptr xcb_input_device_class_t): pointer
# ## *
# ## @brief xcb_input_device_class_iterator_t
# ##
# type
# xcb_input_device_class_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_device_class_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_xi_device_info_t
# ##
# type
# xcb_input_xi_device_info_t* {.bycopy.} = object
# deviceid*: xcb_input_device_id_t
# `type`*: uint16
# attachment*: xcb_input_device_id_t
# num_classes*: uint16
# name_len*: uint16
# enabled*: uint8
# pad0*: uint8
# ## *
# ## @brief xcb_input_xi_device_info_iterator_t
# ##
# type
# xcb_input_xi_device_info_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_xi_device_info_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_xi_query_device_cookie_t
# ##
# type
# xcb_input_xi_query_device_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_xi_query_device.
# const
# XCB_INPUT_XI_QUERY_DEVICE* = 48
# ## *
# ## @brief xcb_input_xi_query_device_request_t
# ##
# type
# xcb_input_xi_query_device_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceid*: xcb_input_device_id_t
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_input_xi_query_device_reply_t
# ##
# type
# xcb_input_xi_query_device_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# num_infos*: uint16
# pad1*: array[22, uint8]
# ## * Opcode for xcb_input_xi_set_focus.
# const
# XCB_INPUT_XI_SET_FOCUS* = 49
# ## *
# ## @brief xcb_input_xi_set_focus_request_t
# ##
# type
# xcb_input_xi_set_focus_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# time*: xcb_timestamp_t
# deviceid*: xcb_input_device_id_t
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_input_xi_get_focus_cookie_t
# ##
# type
# xcb_input_xi_get_focus_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_xi_get_focus.
# const
# XCB_INPUT_XI_GET_FOCUS* = 50
# ## *
# ## @brief xcb_input_xi_get_focus_request_t
# ##
# type
# xcb_input_xi_get_focus_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceid*: xcb_input_device_id_t
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_input_xi_get_focus_reply_t
# ##
# type
# xcb_input_xi_get_focus_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# focus*: xcb_window_t
# pad1*: array[20, uint8]
# xcb_input_grab_owner_t* = enum
# XCB_INPUT_GRAB_OWNER_NO_OWNER = 0, XCB_INPUT_GRAB_OWNER_OWNER = 1
# ## *
# ## @brief xcb_input_xi_grab_device_cookie_t
# ##
# type
# xcb_input_xi_grab_device_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_xi_grab_device.
# const
# XCB_INPUT_XI_GRAB_DEVICE* = 51
# ## *
# ## @brief xcb_input_xi_grab_device_request_t
# ##
# type
# xcb_input_xi_grab_device_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# time*: xcb_timestamp_t
# cursor*: xcb_cursor_t
# deviceid*: xcb_input_device_id_t
# mode*: uint8
# paired_device_mode*: uint8
# owner_events*: uint8
# pad0*: uint8
# mask_len*: uint16
# ## *
# ## @brief xcb_input_xi_grab_device_reply_t
# ##
# type
# xcb_input_xi_grab_device_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# status*: uint8
# pad1*: array[23, uint8]
# ## * Opcode for xcb_input_xi_ungrab_device.
# const
# XCB_INPUT_XI_UNGRAB_DEVICE* = 52
# ## *
# ## @brief xcb_input_xi_ungrab_device_request_t
# ##
# type
# xcb_input_xi_ungrab_device_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# time*: xcb_timestamp_t
# deviceid*: xcb_input_device_id_t
# pad0*: array[2, uint8]
# xcb_input_event_mode_t* = enum
# XCB_INPUT_EVENT_MODE_ASYNC_DEVICE = 0, XCB_INPUT_EVENT_MODE_SYNC_DEVICE = 1,
# XCB_INPUT_EVENT_MODE_REPLAY_DEVICE = 2,
# XCB_INPUT_EVENT_MODE_ASYNC_PAIRED_DEVICE = 3,
# XCB_INPUT_EVENT_MODE_ASYNC_PAIR = 4, XCB_INPUT_EVENT_MODE_SYNC_PAIR = 5,
# XCB_INPUT_EVENT_MODE_ACCEPT_TOUCH = 6, XCB_INPUT_EVENT_MODE_REJECT_TOUCH = 7
# ## * Opcode for xcb_input_xi_allow_events.
# const
# XCB_INPUT_XI_ALLOW_EVENTS* = 53
# ## *
# ## @brief xcb_input_xi_allow_events_request_t
# ##
# type
# xcb_input_xi_allow_events_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# time*: xcb_timestamp_t
# deviceid*: xcb_input_device_id_t
# event_mode*: uint8
# pad0*: uint8
# touchid*: uint32
# grab_window*: xcb_window_t
# xcb_input_grab_mode_22_t* = enum
# XCB_INPUT_GRAB_MODE_22_SYNC = 0, XCB_INPUT_GRAB_MODE_22_ASYNC = 1,
# XCB_INPUT_GRAB_MODE_22_TOUCH = 2
# xcb_input_grab_type_t* = enum
# XCB_INPUT_GRAB_TYPE_BUTTON = 0, XCB_INPUT_GRAB_TYPE_KEYCODE = 1,
# XCB_INPUT_GRAB_TYPE_ENTER = 2, XCB_INPUT_GRAB_TYPE_FOCUS_IN = 3,
# XCB_INPUT_GRAB_TYPE_TOUCH_BEGIN = 4
# xcb_input_modifier_mask_t* = enum
# XCB_INPUT_MODIFIER_MASK_ANY = 2147483648'i64
# ## *
# ## @brief xcb_input_grab_modifier_info_t
# ##
# type
# xcb_input_grab_modifier_info_t* {.bycopy.} = object
# modifiers*: uint32
# status*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_input_grab_modifier_info_iterator_t
# ##
# type
# xcb_input_grab_modifier_info_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_grab_modifier_info_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_input_xi_passive_grab_device_cookie_t
# ##
# type
# xcb_input_xi_passive_grab_device_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_xi_passive_grab_device.
# const
# XCB_INPUT_XI_PASSIVE_GRAB_DEVICE* = 54
# ## *
# ## @brief xcb_input_xi_passive_grab_device_request_t
# ##
# type
# xcb_input_xi_passive_grab_device_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# time*: xcb_timestamp_t
# grab_window*: xcb_window_t
# cursor*: xcb_cursor_t
# detail*: uint32
# deviceid*: xcb_input_device_id_t
# num_modifiers*: uint16
# mask_len*: uint16
# grab_type*: uint8
# grab_mode*: uint8
# paired_device_mode*: uint8
# owner_events*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_input_xi_passive_grab_device_reply_t
# ##
# type
# xcb_input_xi_passive_grab_device_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# num_modifiers*: uint16
# pad1*: array[22, uint8]
# ## * Opcode for xcb_input_xi_passive_ungrab_device.
# const
# XCB_INPUT_XI_PASSIVE_UNGRAB_DEVICE* = 55
# ## *
# ## @brief xcb_input_xi_passive_ungrab_device_request_t
# ##
# type
# xcb_input_xi_passive_ungrab_device_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# grab_window*: xcb_window_t
# detail*: uint32
# deviceid*: xcb_input_device_id_t
# num_modifiers*: uint16
# grab_type*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_input_xi_list_properties_cookie_t
# ##
# type
# xcb_input_xi_list_properties_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_xi_list_properties.
# const
# XCB_INPUT_XI_LIST_PROPERTIES* = 56
# ## *
# ## @brief xcb_input_xi_list_properties_request_t
# ##
# type
# xcb_input_xi_list_properties_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceid*: xcb_input_device_id_t
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_input_xi_list_properties_reply_t
# ##
# type
# xcb_input_xi_list_properties_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# num_properties*: uint16
# pad1*: array[22, uint8]
# ## *
# ## @brief xcb_input_xi_change_property_items_t
# ##
# type
# xcb_input_xi_change_property_items_t* {.bycopy.} = object
# data8*: ptr uint8
# data16*: ptr uint16
# data32*: ptr uint32
# ## * Opcode for xcb_input_xi_change_property.
# const
# XCB_INPUT_XI_CHANGE_PROPERTY* = 57
# ## *
# ## @brief xcb_input_xi_change_property_request_t
# ##
# type
# xcb_input_xi_change_property_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceid*: xcb_input_device_id_t
# mode*: uint8
# format*: uint8
# property*: xcb_atom_t
# `type`*: xcb_atom_t
# num_items*: uint32
# ## * Opcode for xcb_input_xi_delete_property.
# const
# XCB_INPUT_XI_DELETE_PROPERTY* = 58
# ## *
# ## @brief xcb_input_xi_delete_property_request_t
# ##
# type
# xcb_input_xi_delete_property_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceid*: xcb_input_device_id_t
# pad0*: array[2, uint8]
# property*: xcb_atom_t
# ## *
# ## @brief xcb_input_xi_get_property_cookie_t
# ##
# type
# xcb_input_xi_get_property_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_xi_get_property.
# const
# XCB_INPUT_XI_GET_PROPERTY* = 59
# ## *
# ## @brief xcb_input_xi_get_property_request_t
# ##
# type
# xcb_input_xi_get_property_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceid*: xcb_input_device_id_t
# _delete*: uint8
# pad0*: uint8
# property*: xcb_atom_t
# `type`*: xcb_atom_t
# offset*: uint32
# len*: uint32
# ## *
# ## @brief xcb_input_xi_get_property_items_t
# ##
# type
# xcb_input_xi_get_property_items_t* {.bycopy.} = object
# data8*: ptr uint8
# data16*: ptr uint16
# data32*: ptr uint32
# ## *
# ## @brief xcb_input_xi_get_property_reply_t
# ##
# type
# xcb_input_xi_get_property_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# `type`*: xcb_atom_t
# bytes_after*: uint32
# num_items*: uint32
# format*: uint8
# pad1*: array[11, uint8]
# ## *
# ## @brief xcb_input_xi_get_selected_events_cookie_t
# ##
# type
# xcb_input_xi_get_selected_events_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_input_xi_get_selected_events.
# const
# XCB_INPUT_XI_GET_SELECTED_EVENTS* = 60
# ## *
# ## @brief xcb_input_xi_get_selected_events_request_t
# ##
# type
# xcb_input_xi_get_selected_events_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# ## *
# ## @brief xcb_input_xi_get_selected_events_reply_t
# ##
# type
# xcb_input_xi_get_selected_events_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# num_masks*: uint16
# pad1*: array[22, uint8]
# ## *
# ## @brief xcb_input_barrier_release_pointer_info_t
# ##
# type
# xcb_input_barrier_release_pointer_info_t* {.bycopy.} = object
# deviceid*: xcb_input_device_id_t
# pad0*: array[2, uint8]
# barrier*: xcb_xfixes_barrier_t
# eventid*: uint32
# ## *
# ## @brief xcb_input_barrier_release_pointer_info_iterator_t
# ##
# type
# xcb_input_barrier_release_pointer_info_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_barrier_release_pointer_info_t
# rem*: cint
# index*: cint
# ## * Opcode for xcb_input_xi_barrier_release_pointer.
# const
# XCB_INPUT_XI_BARRIER_RELEASE_POINTER* = 61
# ## *
# ## @brief xcb_input_xi_barrier_release_pointer_request_t
# ##
# type
# xcb_input_xi_barrier_release_pointer_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# num_barriers*: uint32
# ## * Opcode for xcb_input_device_valuator.
# const
# XCB_INPUT_DEVICE_VALUATOR* = 0
# ## *
# ## @brief xcb_input_device_valuator_event_t
# ##
# type
# xcb_input_device_valuator_event_t* {.bycopy.} = object
# response_type*: uint8
# device_id*: uint8
# sequence*: uint16
# device_state*: uint16
# num_valuators*: uint8
# first_valuator*: uint8
# valuators*: array[6, int32]
# xcb_input_more_events_mask_t* = enum
# XCB_INPUT_MORE_EVENTS_MASK_MORE_EVENTS = 128
# ## * Opcode for xcb_input_device_key_press.
# const
# XCB_INPUT_DEVICE_KEY_PRESS* = 1
# ## *
# ## @brief xcb_input_device_key_press_event_t
# ##
# type
# xcb_input_device_key_press_event_t* {.bycopy.} = object
# response_type*: uint8
# detail*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# root*: xcb_window_t
# event*: xcb_window_t
# child*: xcb_window_t
# root_x*: int16
# root_y*: int16
# event_x*: int16
# event_y*: int16
# state*: uint16
# same_screen*: uint8
# device_id*: uint8
# ## * Opcode for xcb_input_device_key_release.
# const
# XCB_INPUT_DEVICE_KEY_RELEASE* = 2
# type
# xcb_input_device_key_release_event_t* = xcb_input_device_key_press_event_t
# ## * Opcode for xcb_input_device_button_press.
# const
# XCB_INPUT_DEVICE_BUTTON_PRESS* = 3
# type
# xcb_input_device_button_press_event_t* = xcb_input_device_key_press_event_t
# ## * Opcode for xcb_input_device_button_release.
# const
# XCB_INPUT_DEVICE_BUTTON_RELEASE* = 4
# type
# xcb_input_device_button_release_event_t* = xcb_input_device_key_press_event_t
# ## * Opcode for xcb_input_device_motion_notify.
# const
# XCB_INPUT_DEVICE_MOTION_NOTIFY* = 5
# type
# xcb_input_device_motion_notify_event_t* = xcb_input_device_key_press_event_t
# ## * Opcode for xcb_input_device_focus_in.
# const
# XCB_INPUT_DEVICE_FOCUS_IN* = 6
# ## *
# ## @brief xcb_input_device_focus_in_event_t
# ##
# type
# xcb_input_device_focus_in_event_t* {.bycopy.} = object
# response_type*: uint8
# detail*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# window*: xcb_window_t
# mode*: uint8
# device_id*: uint8
# pad0*: array[18, uint8]
# ## * Opcode for xcb_input_device_focus_out.
# const
# XCB_INPUT_DEVICE_FOCUS_OUT* = 7
# type
# xcb_input_device_focus_out_event_t* = xcb_input_device_focus_in_event_t
# ## * Opcode for xcb_input_proximity_in.
# const
# XCB_INPUT_PROXIMITY_IN* = 8
# type
# xcb_input_proximity_in_event_t* = xcb_input_device_key_press_event_t
# ## * Opcode for xcb_input_proximity_out.
# const
# XCB_INPUT_PROXIMITY_OUT* = 9
# type
# xcb_input_proximity_out_event_t* = xcb_input_device_key_press_event_t
# xcb_input_classes_reported_mask_t* = enum
# XCB_INPUT_CLASSES_REPORTED_MASK_REPORTING_KEYS = 1,
# XCB_INPUT_CLASSES_REPORTED_MASK_REPORTING_BUTTONS = 2,
# XCB_INPUT_CLASSES_REPORTED_MASK_REPORTING_VALUATORS = 4,
# XCB_INPUT_CLASSES_REPORTED_MASK_DEVICE_MODE_ABSOLUTE = 64,
# XCB_INPUT_CLASSES_REPORTED_MASK_OUT_OF_PROXIMITY = 128
# ## * Opcode for xcb_input_device_state_notify.
# const
# XCB_INPUT_DEVICE_STATE_NOTIFY* = 10
# ## *
# ## @brief xcb_input_device_state_notify_event_t
# ##
# type
# xcb_input_device_state_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# device_id*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# num_keys*: uint8
# num_buttons*: uint8
# num_valuators*: uint8
# classes_reported*: uint8
# buttons*: array[4, uint8]
# keys*: array[4, uint8]
# valuators*: array[3, uint32]
# ## * Opcode for xcb_input_device_mapping_notify.
# const
# XCB_INPUT_DEVICE_MAPPING_NOTIFY* = 11
# ## *
# ## @brief xcb_input_device_mapping_notify_event_t
# ##
# type
# xcb_input_device_mapping_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# device_id*: uint8
# sequence*: uint16
# request*: uint8
# first_keycode*: xcb_input_key_code_t
# count*: uint8
# pad0*: uint8
# time*: xcb_timestamp_t
# pad1*: array[20, uint8]
# xcb_input_change_device_t* = enum
# XCB_INPUT_CHANGE_DEVICE_NEW_POINTER = 0,
# XCB_INPUT_CHANGE_DEVICE_NEW_KEYBOARD = 1
# ## * Opcode for xcb_input_change_device_notify.
# const
# XCB_INPUT_CHANGE_DEVICE_NOTIFY* = 12
# ## *
# ## @brief xcb_input_change_device_notify_event_t
# ##
# type
# xcb_input_change_device_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# device_id*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# request*: uint8
# pad0*: array[23, uint8]
# ## * Opcode for xcb_input_device_key_state_notify.
# const
# XCB_INPUT_DEVICE_KEY_STATE_NOTIFY* = 13
# ## *
# ## @brief xcb_input_device_key_state_notify_event_t
# ##
# type
# xcb_input_device_key_state_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# device_id*: uint8
# sequence*: uint16
# keys*: array[28, uint8]
# ## * Opcode for xcb_input_device_button_state_notify.
# const
# XCB_INPUT_DEVICE_BUTTON_STATE_NOTIFY* = 14
# ## *
# ## @brief xcb_input_device_button_state_notify_event_t
# ##
# type
# xcb_input_device_button_state_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# device_id*: uint8
# sequence*: uint16
# buttons*: array[28, uint8]
# xcb_input_device_change_t* = enum
# XCB_INPUT_DEVICE_CHANGE_ADDED = 0, XCB_INPUT_DEVICE_CHANGE_REMOVED = 1,
# XCB_INPUT_DEVICE_CHANGE_ENABLED = 2, XCB_INPUT_DEVICE_CHANGE_DISABLED = 3,
# XCB_INPUT_DEVICE_CHANGE_UNRECOVERABLE = 4,
# XCB_INPUT_DEVICE_CHANGE_CONTROL_CHANGED = 5
# ## * Opcode for xcb_input_device_presence_notify.
# const
# XCB_INPUT_DEVICE_PRESENCE_NOTIFY* = 15
# ## *
# ## @brief xcb_input_device_presence_notify_event_t
# ##
# type
# xcb_input_device_presence_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# devchange*: uint8
# device_id*: uint8
# control*: uint16
# pad1*: array[20, uint8]
# ## * Opcode for xcb_input_device_property_notify.
# const
# XCB_INPUT_DEVICE_PROPERTY_NOTIFY* = 16
# ## *
# ## @brief xcb_input_device_property_notify_event_t
# ##
# type
# xcb_input_device_property_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# state*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# property*: xcb_atom_t
# pad0*: array[19, uint8]
# device_id*: uint8
# xcb_input_change_reason_t* = enum
# XCB_INPUT_CHANGE_REASON_SLAVE_SWITCH = 1,
# XCB_INPUT_CHANGE_REASON_DEVICE_CHANGE = 2
# ## * Opcode for xcb_input_device_changed.
# const
# XCB_INPUT_DEVICE_CHANGED* = 1
# ## *
# ## @brief xcb_input_device_changed_event_t
# ##
# type
# xcb_input_device_changed_event_t* {.bycopy.} = object
# response_type*: uint8
# extension*: uint8
# sequence*: uint16
# length*: uint32
# event_type*: uint16
# deviceid*: xcb_input_device_id_t
# time*: xcb_timestamp_t
# num_classes*: uint16
# sourceid*: xcb_input_device_id_t
# reason*: uint8
# pad0*: array[11, uint8]
# full_sequence*: uint32
# xcb_input_key_event_flags_t* = enum
# XCB_INPUT_KEY_EVENT_FLAGS_KEY_REPEAT = 65536
# ## * Opcode for xcb_input_key_press.
# const
# XCB_INPUT_KEY_PRESS* = 2
# ## *
# ## @brief xcb_input_key_press_event_t
# ##
# type
# xcb_input_key_press_event_t* {.bycopy.} = object
# response_type*: uint8
# extension*: uint8
# sequence*: uint16
# length*: uint32
# event_type*: uint16
# deviceid*: xcb_input_device_id_t
# time*: xcb_timestamp_t
# detail*: uint32
# root*: xcb_window_t
# event*: xcb_window_t
# child*: xcb_window_t
# full_sequence*: uint32
# root_x*: xcb_input_fp1616_t
# root_y*: xcb_input_fp1616_t
# event_x*: xcb_input_fp1616_t
# event_y*: xcb_input_fp1616_t
# buttons_len*: uint16
# valuators_len*: uint16
# sourceid*: xcb_input_device_id_t
# pad0*: array[2, uint8]
# flags*: uint32
# mods*: xcb_input_modifier_info_t
# group*: xcb_input_group_info_t
# ## * Opcode for xcb_input_key_release.
# const
# XCB_INPUT_KEY_RELEASE* = 3
# type
# xcb_input_key_release_event_t* = xcb_input_key_press_event_t
# xcb_input_pointer_event_flags_t* = enum
# XCB_INPUT_POINTER_EVENT_FLAGS_POINTER_EMULATED = 65536
# ## * Opcode for xcb_input_button_press.
# const
# XCB_INPUT_BUTTON_PRESS* = 4
# ## *
# ## @brief xcb_input_button_press_event_t
# ##
# type
# xcb_input_button_press_event_t* {.bycopy.} = object
# response_type*: uint8
# extension*: uint8
# sequence*: uint16
# length*: uint32
# event_type*: uint16
# deviceid*: xcb_input_device_id_t
# time*: xcb_timestamp_t
# detail*: uint32
# root*: xcb_window_t
# event*: xcb_window_t
# child*: xcb_window_t
# full_sequence*: uint32
# root_x*: xcb_input_fp1616_t
# root_y*: xcb_input_fp1616_t
# event_x*: xcb_input_fp1616_t
# event_y*: xcb_input_fp1616_t
# buttons_len*: uint16
# valuators_len*: uint16
# sourceid*: xcb_input_device_id_t
# pad0*: array[2, uint8]
# flags*: uint32
# mods*: xcb_input_modifier_info_t
# group*: xcb_input_group_info_t
# ## * Opcode for xcb_input_button_release.
# const
# XCB_INPUT_BUTTON_RELEASE* = 5
# type
# xcb_input_button_release_event_t* = xcb_input_button_press_event_t
# ## * Opcode for xcb_input_motion.
# const
# XCB_INPUT_MOTION* = 6
# type
# xcb_input_motion_event_t* = xcb_input_button_press_event_t
# xcb_input_notify_mode_t* = enum
# XCB_INPUT_NOTIFY_MODE_NORMAL = 0, XCB_INPUT_NOTIFY_MODE_GRAB = 1,
# XCB_INPUT_NOTIFY_MODE_UNGRAB = 2, XCB_INPUT_NOTIFY_MODE_WHILE_GRABBED = 3,
# XCB_INPUT_NOTIFY_MODE_PASSIVE_GRAB = 4,
# XCB_INPUT_NOTIFY_MODE_PASSIVE_UNGRAB = 5
# xcb_input_notify_detail_t* = enum
# XCB_INPUT_NOTIFY_DETAIL_ANCESTOR = 0, XCB_INPUT_NOTIFY_DETAIL_VIRTUAL = 1,
# XCB_INPUT_NOTIFY_DETAIL_INFERIOR = 2, XCB_INPUT_NOTIFY_DETAIL_NONLINEAR = 3,
# XCB_INPUT_NOTIFY_DETAIL_NONLINEAR_VIRTUAL = 4,
# XCB_INPUT_NOTIFY_DETAIL_POINTER = 5, XCB_INPUT_NOTIFY_DETAIL_POINTER_ROOT = 6,
# XCB_INPUT_NOTIFY_DETAIL_NONE = 7
# ## * Opcode for xcb_input_enter.
# const
# XCB_INPUT_ENTER* = 7
# ## *
# ## @brief xcb_input_enter_event_t
# ##
# type
# xcb_input_enter_event_t* {.bycopy.} = object
# response_type*: uint8
# extension*: uint8
# sequence*: uint16
# length*: uint32
# event_type*: uint16
# deviceid*: xcb_input_device_id_t
# time*: xcb_timestamp_t
# sourceid*: xcb_input_device_id_t
# mode*: uint8
# detail*: uint8
# root*: xcb_window_t
# event*: xcb_window_t
# child*: xcb_window_t
# full_sequence*: uint32
# root_x*: xcb_input_fp1616_t
# root_y*: xcb_input_fp1616_t
# event_x*: xcb_input_fp1616_t
# event_y*: xcb_input_fp1616_t
# same_screen*: uint8
# focus*: uint8
# buttons_len*: uint16
# mods*: xcb_input_modifier_info_t
# group*: xcb_input_group_info_t
# ## * Opcode for xcb_input_leave.
# const
# XCB_INPUT_LEAVE* = 8
# type
# xcb_input_leave_event_t* = xcb_input_enter_event_t
# ## * Opcode for xcb_input_focus_in.
# const
# XCB_INPUT_FOCUS_IN* = 9
# type
# xcb_input_focus_in_event_t* = xcb_input_enter_event_t
# ## * Opcode for xcb_input_focus_out.
# const
# XCB_INPUT_FOCUS_OUT* = 10
# type
# xcb_input_focus_out_event_t* = xcb_input_enter_event_t
# xcb_input_hierarchy_mask_t* = enum
# XCB_INPUT_HIERARCHY_MASK_MASTER_ADDED = 1,
# XCB_INPUT_HIERARCHY_MASK_MASTER_REMOVED = 2,
# XCB_INPUT_HIERARCHY_MASK_SLAVE_ADDED = 4,
# XCB_INPUT_HIERARCHY_MASK_SLAVE_REMOVED = 8,
# XCB_INPUT_HIERARCHY_MASK_SLAVE_ATTACHED = 16,
# XCB_INPUT_HIERARCHY_MASK_SLAVE_DETACHED = 32,
# XCB_INPUT_HIERARCHY_MASK_DEVICE_ENABLED = 64,
# XCB_INPUT_HIERARCHY_MASK_DEVICE_DISABLED = 128
# ## *
# ## @brief xcb_input_hierarchy_info_t
# ##
# type
# xcb_input_hierarchy_info_t* {.bycopy.} = object
# deviceid*: xcb_input_device_id_t
# attachment*: xcb_input_device_id_t
# `type`*: uint8
# enabled*: uint8
# pad0*: array[2, uint8]
# flags*: uint32
# ## *
# ## @brief xcb_input_hierarchy_info_iterator_t
# ##
# type
# xcb_input_hierarchy_info_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_hierarchy_info_t
# rem*: cint
# index*: cint
# ## * Opcode for xcb_input_hierarchy.
# const
# XCB_INPUT_HIERARCHY* = 11
# ## *
# ## @brief xcb_input_hierarchy_event_t
# ##
# type
# xcb_input_hierarchy_event_t* {.bycopy.} = object
# response_type*: uint8
# extension*: uint8
# sequence*: uint16
# length*: uint32
# event_type*: uint16
# deviceid*: xcb_input_device_id_t
# time*: xcb_timestamp_t
# flags*: uint32
# num_infos*: uint16
# pad0*: array[10, uint8]
# full_sequence*: uint32
# xcb_input_property_flag_t* = enum
# XCB_INPUT_PROPERTY_FLAG_DELETED = 0, XCB_INPUT_PROPERTY_FLAG_CREATED = 1,
# XCB_INPUT_PROPERTY_FLAG_MODIFIED = 2
# ## * Opcode for xcb_input_property.
# const
# XCB_INPUT_PROPERTY* = 12
# ## *
# ## @brief xcb_input_property_event_t
# ##
# type
# xcb_input_property_event_t* {.bycopy.} = object
# response_type*: uint8
# extension*: uint8
# sequence*: uint16
# length*: uint32
# event_type*: uint16
# deviceid*: xcb_input_device_id_t
# time*: xcb_timestamp_t
# property*: xcb_atom_t
# what*: uint8
# pad0*: array[11, uint8]
# full_sequence*: uint32
# ## * Opcode for xcb_input_raw_key_press.
# const
# XCB_INPUT_RAW_KEY_PRESS* = 13
# ## *
# ## @brief xcb_input_raw_key_press_event_t
# ##
# type
# xcb_input_raw_key_press_event_t* {.bycopy.} = object
# response_type*: uint8
# extension*: uint8
# sequence*: uint16
# length*: uint32
# event_type*: uint16
# deviceid*: xcb_input_device_id_t
# time*: xcb_timestamp_t
# detail*: uint32
# sourceid*: xcb_input_device_id_t
# valuators_len*: uint16
# flags*: uint32
# pad0*: array[4, uint8]
# full_sequence*: uint32
# ## * Opcode for xcb_input_raw_key_release.
# const
# XCB_INPUT_RAW_KEY_RELEASE* = 14
# type
# xcb_input_raw_key_release_event_t* = xcb_input_raw_key_press_event_t
# ## * Opcode for xcb_input_raw_button_press.
# const
# XCB_INPUT_RAW_BUTTON_PRESS* = 15
# ## *
# ## @brief xcb_input_raw_button_press_event_t
# ##
# type
# xcb_input_raw_button_press_event_t* {.bycopy.} = object
# response_type*: uint8
# extension*: uint8
# sequence*: uint16
# length*: uint32
# event_type*: uint16
# deviceid*: xcb_input_device_id_t
# time*: xcb_timestamp_t
# detail*: uint32
# sourceid*: xcb_input_device_id_t
# valuators_len*: uint16
# flags*: uint32
# pad0*: array[4, uint8]
# full_sequence*: uint32
# ## * Opcode for xcb_input_raw_button_release.
# const
# XCB_INPUT_RAW_BUTTON_RELEASE* = 16
# type
# xcb_input_raw_button_release_event_t* = xcb_input_raw_button_press_event_t
# ## * Opcode for xcb_input_raw_motion.
# const
# XCB_INPUT_RAW_MOTION* = 17
# type
# xcb_input_raw_motion_event_t* = xcb_input_raw_button_press_event_t
# xcb_input_touch_event_flags_t* = enum
# XCB_INPUT_TOUCH_EVENT_FLAGS_TOUCH_PENDING_END = 65536,
# XCB_INPUT_TOUCH_EVENT_FLAGS_TOUCH_EMULATING_POINTER = 131072
# ## * Opcode for xcb_input_touch_begin.
# const
# XCB_INPUT_TOUCH_BEGIN* = 18
# ## *
# ## @brief xcb_input_touch_begin_event_t
# ##
# type
# xcb_input_touch_begin_event_t* {.bycopy.} = object
# response_type*: uint8
# extension*: uint8
# sequence*: uint16
# length*: uint32
# event_type*: uint16
# deviceid*: xcb_input_device_id_t
# time*: xcb_timestamp_t
# detail*: uint32
# root*: xcb_window_t
# event*: xcb_window_t
# child*: xcb_window_t
# full_sequence*: uint32
# root_x*: xcb_input_fp1616_t
# root_y*: xcb_input_fp1616_t
# event_x*: xcb_input_fp1616_t
# event_y*: xcb_input_fp1616_t
# buttons_len*: uint16
# valuators_len*: uint16
# sourceid*: xcb_input_device_id_t
# pad0*: array[2, uint8]
# flags*: uint32
# mods*: xcb_input_modifier_info_t
# group*: xcb_input_group_info_t
# ## * Opcode for xcb_input_touch_update.
# const
# XCB_INPUT_TOUCH_UPDATE* = 19
# type
# xcb_input_touch_update_event_t* = xcb_input_touch_begin_event_t
# ## * Opcode for xcb_input_touch_end.
# const
# XCB_INPUT_TOUCH_END* = 20
# type
# xcb_input_touch_end_event_t* = xcb_input_touch_begin_event_t
# xcb_input_touch_ownership_flags_t* = enum
# XCB_INPUT_TOUCH_OWNERSHIP_FLAGS_NONE = 0
# ## * Opcode for xcb_input_touch_ownership.
# const
# XCB_INPUT_TOUCH_OWNERSHIP* = 21
# ## *
# ## @brief xcb_input_touch_ownership_event_t
# ##
# type
# xcb_input_touch_ownership_event_t* {.bycopy.} = object
# response_type*: uint8
# extension*: uint8
# sequence*: uint16
# length*: uint32
# event_type*: uint16
# deviceid*: xcb_input_device_id_t
# time*: xcb_timestamp_t
# touchid*: uint32
# root*: xcb_window_t
# event*: xcb_window_t
# child*: xcb_window_t
# full_sequence*: uint32
# sourceid*: xcb_input_device_id_t
# pad0*: array[2, uint8]
# flags*: uint32
# pad1*: array[8, uint8]
# ## * Opcode for xcb_input_raw_touch_begin.
# const
# XCB_INPUT_RAW_TOUCH_BEGIN* = 22
# ## *
# ## @brief xcb_input_raw_touch_begin_event_t
# ##
# type
# xcb_input_raw_touch_begin_event_t* {.bycopy.} = object
# response_type*: uint8
# extension*: uint8
# sequence*: uint16
# length*: uint32
# event_type*: uint16
# deviceid*: xcb_input_device_id_t
# time*: xcb_timestamp_t
# detail*: uint32
# sourceid*: xcb_input_device_id_t
# valuators_len*: uint16
# flags*: uint32
# pad0*: array[4, uint8]
# full_sequence*: uint32
# ## * Opcode for xcb_input_raw_touch_update.
# const
# XCB_INPUT_RAW_TOUCH_UPDATE* = 23
# type
# xcb_input_raw_touch_update_event_t* = xcb_input_raw_touch_begin_event_t
# ## * Opcode for xcb_input_raw_touch_end.
# const
# XCB_INPUT_RAW_TOUCH_END* = 24
# type
# xcb_input_raw_touch_end_event_t* = xcb_input_raw_touch_begin_event_t
# xcb_input_barrier_flags_t* = enum
# XCB_INPUT_BARRIER_FLAGS_POINTER_RELEASED = 1,
# XCB_INPUT_BARRIER_FLAGS_DEVICE_IS_GRABBED = 2
# ## * Opcode for xcb_input_barrier_hit.
# const
# XCB_INPUT_BARRIER_HIT* = 25
# ## *
# ## @brief xcb_input_barrier_hit_event_t
# ##
# type
# xcb_input_barrier_hit_event_t* {.bycopy.} = object
# response_type*: uint8
# extension*: uint8
# sequence*: uint16
# length*: uint32
# event_type*: uint16
# deviceid*: xcb_input_device_id_t
# time*: xcb_timestamp_t
# eventid*: uint32
# root*: xcb_window_t
# event*: xcb_window_t
# barrier*: xcb_xfixes_barrier_t
# full_sequence*: uint32
# dtime*: uint32
# flags*: uint32
# sourceid*: xcb_input_device_id_t
# pad0*: array[2, uint8]
# root_x*: xcb_input_fp1616_t
# root_y*: xcb_input_fp1616_t
# dx*: xcb_input_fp3232_t
# dy*: xcb_input_fp3232_t
# ## * Opcode for xcb_input_barrier_leave.
# const
# XCB_INPUT_BARRIER_LEAVE* = 26
# type
# xcb_input_barrier_leave_event_t* = xcb_input_barrier_hit_event_t
# ## *
# ## @brief xcb_input_event_for_send_t
# ##
# type
# xcb_input_event_for_send_t* {.bycopy.} = object {.union.}
# device_valuator*: xcb_input_device_valuator_event_t
# device_key_press*: xcb_input_device_key_press_event_t
# device_key_release*: xcb_input_device_key_release_event_t
# device_button_press*: xcb_input_device_button_press_event_t
# device_button_release*: xcb_input_device_button_release_event_t
# device_motion_notify*: xcb_input_device_motion_notify_event_t
# device_focus_in*: xcb_input_device_focus_in_event_t
# device_focus_out*: xcb_input_device_focus_out_event_t
# proximity_in*: xcb_input_proximity_in_event_t
# proximity_out*: xcb_input_proximity_out_event_t
# device_state_notify*: xcb_input_device_state_notify_event_t
# device_mapping_notify*: xcb_input_device_mapping_notify_event_t
# change_device_notify*: xcb_input_change_device_notify_event_t
# device_key_state_notify*: xcb_input_device_key_state_notify_event_t
# device_button_state_notify*: xcb_input_device_button_state_notify_event_t
# device_presence_notify*: xcb_input_device_presence_notify_event_t
# event_header*: xcb_raw_generic_event_t
# ## *
# ## @brief xcb_input_event_for_send_iterator_t
# ##
# type
# xcb_input_event_for_send_iterator_t* {.bycopy.} = object
# data*: ptr xcb_input_event_for_send_t
# rem*: cint
# index*: cint
# ## * Opcode for xcb_input_send_extension_event.
# const
# XCB_INPUT_SEND_EXTENSION_EVENT* = 31
# ## *
# ## @brief xcb_input_send_extension_event_request_t
# ##
# type
# xcb_input_send_extension_event_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# destination*: xcb_window_t
# device_id*: uint8
# propagate*: uint8
# num_classes*: uint16
# num_events*: uint8
# pad0*: array[3, uint8]
# ## * Opcode for xcb_input_device.
# const
# XCB_INPUT_DEVICE* = 0
# ## *
# ## @brief xcb_input_device_error_t
# ##
# type
# xcb_input_device_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# ## * Opcode for xcb_input_event.
# const
# XCB_INPUT_EVENT* = 1
# ## *
# ## @brief xcb_input_event_error_t
# ##
# type
# xcb_input_event_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# ## * Opcode for xcb_input_mode.
# const
# XCB_INPUT_MODE* = 2
# ## *
# ## @brief xcb_input_mode_error_t
# ##
# type
# xcb_input_mode_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# ## * Opcode for xcb_input_device_busy.
# const
# XCB_INPUT_DEVICE_BUSY* = 3
# ## *
# ## @brief xcb_input_device_busy_error_t
# ##
# type
# xcb_input_device_busy_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# ## * Opcode for xcb_input_class.
# const
# XCB_INPUT_CLASS* = 4
# ## *
# ## @brief xcb_input_class_error_t
# ##
# type
# xcb_input_class_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_event_class_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_event_class_t)
# ##
# proc xcb_input_event_class_next*(i: ptr xcb_input_event_class_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_event_class_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_event_class_end*(i: xcb_input_event_class_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_key_code_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_key_code_t)
# ##
# proc xcb_input_key_code_next*(i: ptr xcb_input_key_code_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_key_code_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_key_code_end*(i: xcb_input_key_code_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_device_id_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_device_id_t)
# ##
# proc xcb_input_device_id_next*(i: ptr xcb_input_device_id_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_device_id_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_device_id_end*(i: xcb_input_device_id_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_fp1616_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_fp1616_t)
# ##
# proc xcb_input_fp1616_next*(i: ptr xcb_input_fp1616_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_fp1616_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_fp1616_end*(i: xcb_input_fp1616_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_fp3232_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_fp3232_t)
# ##
# proc xcb_input_fp3232_next*(i: ptr xcb_input_fp3232_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_fp3232_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_fp3232_end*(i: xcb_input_fp3232_iterator_t): xcb_generic_iterator_t
# proc xcb_input_get_extension_version_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_get_extension_version*(c: ptr xcb_connection_t; name_len: uint16;
# name: cstring): xcb_input_get_extension_version_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_get_extension_version_unchecked*(c: ptr xcb_connection_t;
# name_len: uint16; name: cstring): xcb_input_get_extension_version_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_get_extension_version_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_get_extension_version_reply*(c: ptr xcb_connection_t; cookie: xcb_input_get_extension_version_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_get_extension_version_reply_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_device_info_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_device_info_t)
# ##
# proc xcb_input_device_info_next*(i: ptr xcb_input_device_info_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_device_info_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_device_info_end*(i: xcb_input_device_info_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_key_info_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_key_info_t)
# ##
# proc xcb_input_key_info_next*(i: ptr xcb_input_key_info_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_key_info_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_key_info_end*(i: xcb_input_key_info_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_button_info_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_button_info_t)
# ##
# proc xcb_input_button_info_next*(i: ptr xcb_input_button_info_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_button_info_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_button_info_end*(i: xcb_input_button_info_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_axis_info_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_axis_info_t)
# ##
# proc xcb_input_axis_info_next*(i: ptr xcb_input_axis_info_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_axis_info_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_axis_info_end*(i: xcb_input_axis_info_iterator_t): xcb_generic_iterator_t
# proc xcb_input_valuator_info_sizeof*(_buffer: pointer): cint
# proc xcb_input_valuator_info_axes*(R: ptr xcb_input_valuator_info_t): ptr xcb_input_axis_info_t
# proc xcb_input_valuator_info_axes_length*(R: ptr xcb_input_valuator_info_t): cint
# proc xcb_input_valuator_info_axes_iterator*(R: ptr xcb_input_valuator_info_t): xcb_input_axis_info_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_valuator_info_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_valuator_info_t)
# ##
# proc xcb_input_valuator_info_next*(i: ptr xcb_input_valuator_info_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_valuator_info_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_valuator_info_end*(i: xcb_input_valuator_info_iterator_t): xcb_generic_iterator_t
# proc xcb_input_input_info_info_valuator_axes*(S: ptr xcb_input_input_info_info_t): ptr xcb_input_axis_info_t
# proc xcb_input_input_info_info_valuator_axes_length*(
# R: ptr xcb_input_input_info_t; S: ptr xcb_input_input_info_info_t): cint
# proc xcb_input_input_info_info_valuator_axes_iterator*(
# R: ptr xcb_input_input_info_t; S: ptr xcb_input_input_info_info_t): xcb_input_axis_info_iterator_t
# proc xcb_input_input_info_info_serialize*(_buffer: ptr pointer; class_id: uint8;
# _aux: ptr xcb_input_input_info_info_t): cint
# proc xcb_input_input_info_info_unpack*(_buffer: pointer; class_id: uint8;
# _aux: ptr xcb_input_input_info_info_t): cint
# proc xcb_input_input_info_info_sizeof*(_buffer: pointer; class_id: uint8): cint
# proc xcb_input_input_info_sizeof*(_buffer: pointer): cint
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_input_info_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_input_info_t)
# ##
# proc xcb_input_input_info_next*(i: ptr xcb_input_input_info_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_input_info_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_input_info_end*(i: xcb_input_input_info_iterator_t): xcb_generic_iterator_t
# proc xcb_input_device_name_sizeof*(_buffer: pointer): cint
# proc xcb_input_device_name_string*(R: ptr xcb_input_device_name_t): cstring
# proc xcb_input_device_name_string_length*(R: ptr xcb_input_device_name_t): cint
# proc xcb_input_device_name_string_end*(R: ptr xcb_input_device_name_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_device_name_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_device_name_t)
# ##
# proc xcb_input_device_name_next*(i: ptr xcb_input_device_name_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_device_name_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_device_name_end*(i: xcb_input_device_name_iterator_t): xcb_generic_iterator_t
# proc xcb_input_list_input_devices_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_list_input_devices*(c: ptr xcb_connection_t): xcb_input_list_input_devices_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_list_input_devices_unchecked*(c: ptr xcb_connection_t): xcb_input_list_input_devices_cookie_t
# proc xcb_input_list_input_devices_devices*(
# R: ptr xcb_input_list_input_devices_reply_t): ptr xcb_input_device_info_t
# proc xcb_input_list_input_devices_devices_length*(
# R: ptr xcb_input_list_input_devices_reply_t): cint
# proc xcb_input_list_input_devices_devices_iterator*(
# R: ptr xcb_input_list_input_devices_reply_t): xcb_input_device_info_iterator_t
# proc xcb_input_list_input_devices_infos_length*(
# R: ptr xcb_input_list_input_devices_reply_t): cint
# proc xcb_input_list_input_devices_infos_iterator*(
# R: ptr xcb_input_list_input_devices_reply_t): xcb_input_input_info_iterator_t
# proc xcb_input_list_input_devices_names_length*(
# R: ptr xcb_input_list_input_devices_reply_t): cint
# proc xcb_input_list_input_devices_names_iterator*(
# R: ptr xcb_input_list_input_devices_reply_t): xcb_str_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_list_input_devices_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_list_input_devices_reply*(c: ptr xcb_connection_t; cookie: xcb_input_list_input_devices_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_list_input_devices_reply_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_event_type_base_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_event_type_base_t)
# ##
# proc xcb_input_event_type_base_next*(i: ptr xcb_input_event_type_base_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_event_type_base_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_event_type_base_end*(i: xcb_input_event_type_base_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_input_class_info_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_input_class_info_t)
# ##
# proc xcb_input_input_class_info_next*(i: ptr xcb_input_input_class_info_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_input_class_info_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_input_class_info_end*(i: xcb_input_input_class_info_iterator_t): xcb_generic_iterator_t
# proc xcb_input_open_device_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_open_device*(c: ptr xcb_connection_t; device_id: uint8): xcb_input_open_device_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_open_device_unchecked*(c: ptr xcb_connection_t; device_id: uint8): xcb_input_open_device_cookie_t
# proc xcb_input_open_device_class_info*(R: ptr xcb_input_open_device_reply_t): ptr xcb_input_input_class_info_t
# proc xcb_input_open_device_class_info_length*(
# R: ptr xcb_input_open_device_reply_t): cint
# proc xcb_input_open_device_class_info_iterator*(
# R: ptr xcb_input_open_device_reply_t): xcb_input_input_class_info_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_open_device_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_open_device_reply*(c: ptr xcb_connection_t; cookie: xcb_input_open_device_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_open_device_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_close_device_checked*(c: ptr xcb_connection_t; device_id: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_close_device*(c: ptr xcb_connection_t; device_id: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_set_device_mode*(c: ptr xcb_connection_t; device_id: uint8;
# mode: uint8): xcb_input_set_device_mode_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_set_device_mode_unchecked*(c: ptr xcb_connection_t;
# device_id: uint8; mode: uint8): xcb_input_set_device_mode_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_set_device_mode_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_set_device_mode_reply*(c: ptr xcb_connection_t; cookie: xcb_input_set_device_mode_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_set_device_mode_reply_t
# proc xcb_input_select_extension_event_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_select_extension_event_checked*(c: ptr xcb_connection_t;
# window: xcb_window_t; num_classes: uint16;
# classes: ptr xcb_input_event_class_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_select_extension_event*(c: ptr xcb_connection_t;
# window: xcb_window_t; num_classes: uint16;
# classes: ptr xcb_input_event_class_t): xcb_void_cookie_t
# proc xcb_input_select_extension_event_classes*(
# R: ptr xcb_input_select_extension_event_request_t): ptr xcb_input_event_class_t
# proc xcb_input_select_extension_event_classes_length*(
# R: ptr xcb_input_select_extension_event_request_t): cint
# proc xcb_input_select_extension_event_classes_end*(
# R: ptr xcb_input_select_extension_event_request_t): xcb_generic_iterator_t
# proc xcb_input_get_selected_extension_events_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_get_selected_extension_events*(c: ptr xcb_connection_t;
# window: xcb_window_t): xcb_input_get_selected_extension_events_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_get_selected_extension_events_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t): xcb_input_get_selected_extension_events_cookie_t
# proc xcb_input_get_selected_extension_events_this_classes*(
# R: ptr xcb_input_get_selected_extension_events_reply_t): ptr xcb_input_event_class_t
# proc xcb_input_get_selected_extension_events_this_classes_length*(
# R: ptr xcb_input_get_selected_extension_events_reply_t): cint
# proc xcb_input_get_selected_extension_events_this_classes_end*(
# R: ptr xcb_input_get_selected_extension_events_reply_t): xcb_generic_iterator_t
# proc xcb_input_get_selected_extension_events_all_classes*(
# R: ptr xcb_input_get_selected_extension_events_reply_t): ptr xcb_input_event_class_t
# proc xcb_input_get_selected_extension_events_all_classes_length*(
# R: ptr xcb_input_get_selected_extension_events_reply_t): cint
# proc xcb_input_get_selected_extension_events_all_classes_end*(
# R: ptr xcb_input_get_selected_extension_events_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_get_selected_extension_events_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_get_selected_extension_events_reply*(c: ptr xcb_connection_t; cookie: xcb_input_get_selected_extension_events_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_get_selected_extension_events_reply_t
# proc xcb_input_change_device_dont_propagate_list_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_change_device_dont_propagate_list_checked*(
# c: ptr xcb_connection_t; window: xcb_window_t; num_classes: uint16;
# mode: uint8; classes: ptr xcb_input_event_class_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_change_device_dont_propagate_list*(c: ptr xcb_connection_t;
# window: xcb_window_t; num_classes: uint16; mode: uint8;
# classes: ptr xcb_input_event_class_t): xcb_void_cookie_t
# proc xcb_input_change_device_dont_propagate_list_classes*(
# R: ptr xcb_input_change_device_dont_propagate_list_request_t): ptr xcb_input_event_class_t
# proc xcb_input_change_device_dont_propagate_list_classes_length*(
# R: ptr xcb_input_change_device_dont_propagate_list_request_t): cint
# proc xcb_input_change_device_dont_propagate_list_classes_end*(
# R: ptr xcb_input_change_device_dont_propagate_list_request_t): xcb_generic_iterator_t
# proc xcb_input_get_device_dont_propagate_list_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_get_device_dont_propagate_list*(c: ptr xcb_connection_t;
# window: xcb_window_t): xcb_input_get_device_dont_propagate_list_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_get_device_dont_propagate_list_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t): xcb_input_get_device_dont_propagate_list_cookie_t
# proc xcb_input_get_device_dont_propagate_list_classes*(
# R: ptr xcb_input_get_device_dont_propagate_list_reply_t): ptr xcb_input_event_class_t
# proc xcb_input_get_device_dont_propagate_list_classes_length*(
# R: ptr xcb_input_get_device_dont_propagate_list_reply_t): cint
# proc xcb_input_get_device_dont_propagate_list_classes_end*(
# R: ptr xcb_input_get_device_dont_propagate_list_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_get_device_dont_propagate_list_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_get_device_dont_propagate_list_reply*(c: ptr xcb_connection_t; cookie: xcb_input_get_device_dont_propagate_list_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_get_device_dont_propagate_list_reply_t
# proc xcb_input_device_time_coord_sizeof*(_buffer: pointer; num_axes: uint8): cint
# proc xcb_input_device_time_coord_axisvalues*(R: ptr xcb_input_device_time_coord_t): ptr int32
# proc xcb_input_device_time_coord_axisvalues_length*(
# R: ptr xcb_input_device_time_coord_t; num_axes: uint8): cint
# proc xcb_input_device_time_coord_axisvalues_end*(
# R: ptr xcb_input_device_time_coord_t; num_axes: uint8): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_device_time_coord_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_device_time_coord_t)
# ##
# proc xcb_input_device_time_coord_next*(i: ptr xcb_input_device_time_coord_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_device_time_coord_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_device_time_coord_end*(i: xcb_input_device_time_coord_iterator_t): xcb_generic_iterator_t
# proc xcb_input_get_device_motion_events_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_get_device_motion_events*(c: ptr xcb_connection_t;
# start: xcb_timestamp_t;
# stop: xcb_timestamp_t; device_id: uint8): xcb_input_get_device_motion_events_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_get_device_motion_events_unchecked*(c: ptr xcb_connection_t;
# start: xcb_timestamp_t; stop: xcb_timestamp_t; device_id: uint8): xcb_input_get_device_motion_events_cookie_t
# proc xcb_input_get_device_motion_events_events_length*(
# R: ptr xcb_input_get_device_motion_events_reply_t): cint
# proc xcb_input_get_device_motion_events_events_iterator*(
# R: ptr xcb_input_get_device_motion_events_reply_t): xcb_input_device_time_coord_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_get_device_motion_events_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_get_device_motion_events_reply*(c: ptr xcb_connection_t; cookie: xcb_input_get_device_motion_events_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_get_device_motion_events_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_change_keyboard_device*(c: ptr xcb_connection_t; device_id: uint8): xcb_input_change_keyboard_device_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_change_keyboard_device_unchecked*(c: ptr xcb_connection_t;
# device_id: uint8): xcb_input_change_keyboard_device_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_change_keyboard_device_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_change_keyboard_device_reply*(c: ptr xcb_connection_t; cookie: xcb_input_change_keyboard_device_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_change_keyboard_device_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_change_pointer_device*(c: ptr xcb_connection_t; x_axis: uint8;
# y_axis: uint8; device_id: uint8): xcb_input_change_pointer_device_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_change_pointer_device_unchecked*(c: ptr xcb_connection_t;
# x_axis: uint8; y_axis: uint8; device_id: uint8): xcb_input_change_pointer_device_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_change_pointer_device_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_change_pointer_device_reply*(c: ptr xcb_connection_t; cookie: xcb_input_change_pointer_device_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_change_pointer_device_reply_t
# proc xcb_input_grab_device_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_grab_device*(c: ptr xcb_connection_t; grab_window: xcb_window_t;
# time: xcb_timestamp_t; num_classes: uint16;
# this_device_mode: uint8; other_device_mode: uint8;
# owner_events: uint8; device_id: uint8;
# classes: ptr xcb_input_event_class_t): xcb_input_grab_device_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_grab_device_unchecked*(c: ptr xcb_connection_t;
# grab_window: xcb_window_t;
# time: xcb_timestamp_t; num_classes: uint16;
# this_device_mode: uint8;
# other_device_mode: uint8;
# owner_events: uint8; device_id: uint8;
# classes: ptr xcb_input_event_class_t): xcb_input_grab_device_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_grab_device_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_grab_device_reply*(c: ptr xcb_connection_t; cookie: xcb_input_grab_device_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_grab_device_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_ungrab_device_checked*(c: ptr xcb_connection_t;
# time: xcb_timestamp_t; device_id: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_ungrab_device*(c: ptr xcb_connection_t; time: xcb_timestamp_t;
# device_id: uint8): xcb_void_cookie_t
# proc xcb_input_grab_device_key_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_grab_device_key_checked*(c: ptr xcb_connection_t;
# grab_window: xcb_window_t;
# num_classes: uint16; modifiers: uint16;
# modifier_device: uint8;
# grabbed_device: uint8; key: uint8;
# this_device_mode: uint8;
# other_device_mode: uint8;
# owner_events: uint8;
# classes: ptr xcb_input_event_class_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_grab_device_key*(c: ptr xcb_connection_t; grab_window: xcb_window_t;
# num_classes: uint16; modifiers: uint16;
# modifier_device: uint8; grabbed_device: uint8;
# key: uint8; this_device_mode: uint8;
# other_device_mode: uint8; owner_events: uint8;
# classes: ptr xcb_input_event_class_t): xcb_void_cookie_t
# proc xcb_input_grab_device_key_classes*(R: ptr xcb_input_grab_device_key_request_t): ptr xcb_input_event_class_t
# proc xcb_input_grab_device_key_classes_length*(
# R: ptr xcb_input_grab_device_key_request_t): cint
# proc xcb_input_grab_device_key_classes_end*(
# R: ptr xcb_input_grab_device_key_request_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_ungrab_device_key_checked*(c: ptr xcb_connection_t;
# grabWindow: xcb_window_t; modifiers: uint16; modifier_device: uint8;
# key: uint8; grabbed_device: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_ungrab_device_key*(c: ptr xcb_connection_t; grabWindow: xcb_window_t;
# modifiers: uint16; modifier_device: uint8;
# key: uint8; grabbed_device: uint8): xcb_void_cookie_t
# proc xcb_input_grab_device_button_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_grab_device_button_checked*(c: ptr xcb_connection_t;
# grab_window: xcb_window_t; grabbed_device: uint8; modifier_device: uint8;
# num_classes: uint16; modifiers: uint16; this_device_mode: uint8;
# other_device_mode: uint8; button: uint8; owner_events: uint8;
# classes: ptr xcb_input_event_class_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_grab_device_button*(c: ptr xcb_connection_t;
# grab_window: xcb_window_t;
# grabbed_device: uint8;
# modifier_device: uint8; num_classes: uint16;
# modifiers: uint16; this_device_mode: uint8;
# other_device_mode: uint8; button: uint8;
# owner_events: uint8;
# classes: ptr xcb_input_event_class_t): xcb_void_cookie_t
# proc xcb_input_grab_device_button_classes*(
# R: ptr xcb_input_grab_device_button_request_t): ptr xcb_input_event_class_t
# proc xcb_input_grab_device_button_classes_length*(
# R: ptr xcb_input_grab_device_button_request_t): cint
# proc xcb_input_grab_device_button_classes_end*(
# R: ptr xcb_input_grab_device_button_request_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_ungrab_device_button_checked*(c: ptr xcb_connection_t;
# grab_window: xcb_window_t; modifiers: uint16; modifier_device: uint8;
# button: uint8; grabbed_device: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_ungrab_device_button*(c: ptr xcb_connection_t;
# grab_window: xcb_window_t;
# modifiers: uint16; modifier_device: uint8;
# button: uint8; grabbed_device: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_allow_device_events_checked*(c: ptr xcb_connection_t;
# time: xcb_timestamp_t; mode: uint8; device_id: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_allow_device_events*(c: ptr xcb_connection_t; time: xcb_timestamp_t;
# mode: uint8; device_id: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_get_device_focus*(c: ptr xcb_connection_t; device_id: uint8): xcb_input_get_device_focus_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_get_device_focus_unchecked*(c: ptr xcb_connection_t;
# device_id: uint8): xcb_input_get_device_focus_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_get_device_focus_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_get_device_focus_reply*(c: ptr xcb_connection_t; cookie: xcb_input_get_device_focus_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_get_device_focus_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_set_device_focus_checked*(c: ptr xcb_connection_t;
# focus: xcb_window_t;
# time: xcb_timestamp_t; revert_to: uint8;
# device_id: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_set_device_focus*(c: ptr xcb_connection_t; focus: xcb_window_t;
# time: xcb_timestamp_t; revert_to: uint8;
# device_id: uint8): xcb_void_cookie_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_kbd_feedback_state_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_kbd_feedback_state_t)
# ##
# proc xcb_input_kbd_feedback_state_next*(i: ptr xcb_input_kbd_feedback_state_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_kbd_feedback_state_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_kbd_feedback_state_end*(i: xcb_input_kbd_feedback_state_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_ptr_feedback_state_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_ptr_feedback_state_t)
# ##
# proc xcb_input_ptr_feedback_state_next*(i: ptr xcb_input_ptr_feedback_state_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_ptr_feedback_state_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_ptr_feedback_state_end*(i: xcb_input_ptr_feedback_state_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_integer_feedback_state_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_integer_feedback_state_t)
# ##
# proc xcb_input_integer_feedback_state_next*(
# i: ptr xcb_input_integer_feedback_state_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_integer_feedback_state_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_integer_feedback_state_end*(
# i: xcb_input_integer_feedback_state_iterator_t): xcb_generic_iterator_t
# proc xcb_input_string_feedback_state_sizeof*(_buffer: pointer): cint
# proc xcb_input_string_feedback_state_keysyms*(
# R: ptr xcb_input_string_feedback_state_t): ptr xcb_keysym_t
# proc xcb_input_string_feedback_state_keysyms_length*(
# R: ptr xcb_input_string_feedback_state_t): cint
# proc xcb_input_string_feedback_state_keysyms_end*(
# R: ptr xcb_input_string_feedback_state_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_string_feedback_state_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_string_feedback_state_t)
# ##
# proc xcb_input_string_feedback_state_next*(
# i: ptr xcb_input_string_feedback_state_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_string_feedback_state_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_string_feedback_state_end*(
# i: xcb_input_string_feedback_state_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_bell_feedback_state_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_bell_feedback_state_t)
# ##
# proc xcb_input_bell_feedback_state_next*(i: ptr xcb_input_bell_feedback_state_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_bell_feedback_state_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_bell_feedback_state_end*(i: xcb_input_bell_feedback_state_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_led_feedback_state_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_led_feedback_state_t)
# ##
# proc xcb_input_led_feedback_state_next*(i: ptr xcb_input_led_feedback_state_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_led_feedback_state_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_led_feedback_state_end*(i: xcb_input_led_feedback_state_iterator_t): xcb_generic_iterator_t
# proc xcb_input_feedback_state_data_string_keysyms*(
# S: ptr xcb_input_feedback_state_data_t): ptr xcb_keysym_t
# proc xcb_input_feedback_state_data_string_keysyms_length*(
# R: ptr xcb_input_feedback_state_t; S: ptr xcb_input_feedback_state_data_t): cint
# proc xcb_input_feedback_state_data_string_keysyms_end*(
# R: ptr xcb_input_feedback_state_t; S: ptr xcb_input_feedback_state_data_t): xcb_generic_iterator_t
# proc xcb_input_feedback_state_data_serialize*(_buffer: ptr pointer;
# class_id: uint8; _aux: ptr xcb_input_feedback_state_data_t): cint
# proc xcb_input_feedback_state_data_unpack*(_buffer: pointer; class_id: uint8;
# _aux: ptr xcb_input_feedback_state_data_t): cint
# proc xcb_input_feedback_state_data_sizeof*(_buffer: pointer; class_id: uint8): cint
# proc xcb_input_feedback_state_sizeof*(_buffer: pointer): cint
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_feedback_state_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_feedback_state_t)
# ##
# proc xcb_input_feedback_state_next*(i: ptr xcb_input_feedback_state_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_feedback_state_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_feedback_state_end*(i: xcb_input_feedback_state_iterator_t): xcb_generic_iterator_t
# proc xcb_input_get_feedback_control_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_get_feedback_control*(c: ptr xcb_connection_t; device_id: uint8): xcb_input_get_feedback_control_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_get_feedback_control_unchecked*(c: ptr xcb_connection_t;
# device_id: uint8): xcb_input_get_feedback_control_cookie_t
# proc xcb_input_get_feedback_control_feedbacks_length*(
# R: ptr xcb_input_get_feedback_control_reply_t): cint
# proc xcb_input_get_feedback_control_feedbacks_iterator*(
# R: ptr xcb_input_get_feedback_control_reply_t): xcb_input_feedback_state_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_get_feedback_control_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_get_feedback_control_reply*(c: ptr xcb_connection_t; cookie: xcb_input_get_feedback_control_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_get_feedback_control_reply_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_kbd_feedback_ctl_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_kbd_feedback_ctl_t)
# ##
# proc xcb_input_kbd_feedback_ctl_next*(i: ptr xcb_input_kbd_feedback_ctl_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_kbd_feedback_ctl_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_kbd_feedback_ctl_end*(i: xcb_input_kbd_feedback_ctl_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_ptr_feedback_ctl_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_ptr_feedback_ctl_t)
# ##
# proc xcb_input_ptr_feedback_ctl_next*(i: ptr xcb_input_ptr_feedback_ctl_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_ptr_feedback_ctl_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_ptr_feedback_ctl_end*(i: xcb_input_ptr_feedback_ctl_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_integer_feedback_ctl_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_integer_feedback_ctl_t)
# ##
# proc xcb_input_integer_feedback_ctl_next*(
# i: ptr xcb_input_integer_feedback_ctl_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_integer_feedback_ctl_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_integer_feedback_ctl_end*(i: xcb_input_integer_feedback_ctl_iterator_t): xcb_generic_iterator_t
# proc xcb_input_string_feedback_ctl_sizeof*(_buffer: pointer): cint
# proc xcb_input_string_feedback_ctl_keysyms*(
# R: ptr xcb_input_string_feedback_ctl_t): ptr xcb_keysym_t
# proc xcb_input_string_feedback_ctl_keysyms_length*(
# R: ptr xcb_input_string_feedback_ctl_t): cint
# proc xcb_input_string_feedback_ctl_keysyms_end*(
# R: ptr xcb_input_string_feedback_ctl_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_string_feedback_ctl_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_string_feedback_ctl_t)
# ##
# proc xcb_input_string_feedback_ctl_next*(i: ptr xcb_input_string_feedback_ctl_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_string_feedback_ctl_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_string_feedback_ctl_end*(i: xcb_input_string_feedback_ctl_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_bell_feedback_ctl_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_bell_feedback_ctl_t)
# ##
# proc xcb_input_bell_feedback_ctl_next*(i: ptr xcb_input_bell_feedback_ctl_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_bell_feedback_ctl_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_bell_feedback_ctl_end*(i: xcb_input_bell_feedback_ctl_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_led_feedback_ctl_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_led_feedback_ctl_t)
# ##
# proc xcb_input_led_feedback_ctl_next*(i: ptr xcb_input_led_feedback_ctl_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_led_feedback_ctl_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_led_feedback_ctl_end*(i: xcb_input_led_feedback_ctl_iterator_t): xcb_generic_iterator_t
# proc xcb_input_feedback_ctl_data_string_keysyms*(
# S: ptr xcb_input_feedback_ctl_data_t): ptr xcb_keysym_t
# proc xcb_input_feedback_ctl_data_string_keysyms_length*(
# R: ptr xcb_input_feedback_ctl_t; S: ptr xcb_input_feedback_ctl_data_t): cint
# proc xcb_input_feedback_ctl_data_string_keysyms_end*(
# R: ptr xcb_input_feedback_ctl_t; S: ptr xcb_input_feedback_ctl_data_t): xcb_generic_iterator_t
# proc xcb_input_feedback_ctl_data_serialize*(_buffer: ptr pointer; class_id: uint8;
# _aux: ptr xcb_input_feedback_ctl_data_t): cint
# proc xcb_input_feedback_ctl_data_unpack*(_buffer: pointer; class_id: uint8;
# _aux: ptr xcb_input_feedback_ctl_data_t): cint
# proc xcb_input_feedback_ctl_data_sizeof*(_buffer: pointer; class_id: uint8): cint
# proc xcb_input_feedback_ctl_sizeof*(_buffer: pointer): cint
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_feedback_ctl_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_feedback_ctl_t)
# ##
# proc xcb_input_feedback_ctl_next*(i: ptr xcb_input_feedback_ctl_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_feedback_ctl_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_feedback_ctl_end*(i: xcb_input_feedback_ctl_iterator_t): xcb_generic_iterator_t
# proc xcb_input_change_feedback_control_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_change_feedback_control_checked*(c: ptr xcb_connection_t;
# mask: uint32; device_id: uint8; feedback_id: uint8;
# feedback: ptr xcb_input_feedback_ctl_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_change_feedback_control*(c: ptr xcb_connection_t; mask: uint32;
# device_id: uint8; feedback_id: uint8;
# feedback: ptr xcb_input_feedback_ctl_t): xcb_void_cookie_t
# proc xcb_input_change_feedback_control_feedback*(
# R: ptr xcb_input_change_feedback_control_request_t): ptr xcb_input_feedback_ctl_t
# proc xcb_input_get_device_key_mapping_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_get_device_key_mapping*(c: ptr xcb_connection_t; device_id: uint8;
# first_keycode: xcb_input_key_code_t;
# count: uint8): xcb_input_get_device_key_mapping_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_get_device_key_mapping_unchecked*(c: ptr xcb_connection_t;
# device_id: uint8; first_keycode: xcb_input_key_code_t; count: uint8): xcb_input_get_device_key_mapping_cookie_t
# proc xcb_input_get_device_key_mapping_keysyms*(
# R: ptr xcb_input_get_device_key_mapping_reply_t): ptr xcb_keysym_t
# proc xcb_input_get_device_key_mapping_keysyms_length*(
# R: ptr xcb_input_get_device_key_mapping_reply_t): cint
# proc xcb_input_get_device_key_mapping_keysyms_end*(
# R: ptr xcb_input_get_device_key_mapping_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_get_device_key_mapping_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_get_device_key_mapping_reply*(c: ptr xcb_connection_t; cookie: xcb_input_get_device_key_mapping_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_get_device_key_mapping_reply_t
# proc xcb_input_change_device_key_mapping_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_change_device_key_mapping_checked*(c: ptr xcb_connection_t;
# device_id: uint8; first_keycode: xcb_input_key_code_t;
# keysyms_per_keycode: uint8; keycode_count: uint8; keysyms: ptr xcb_keysym_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_change_device_key_mapping*(c: ptr xcb_connection_t;
# device_id: uint8; first_keycode: xcb_input_key_code_t;
# keysyms_per_keycode: uint8; keycode_count: uint8; keysyms: ptr xcb_keysym_t): xcb_void_cookie_t
# proc xcb_input_change_device_key_mapping_keysyms*(
# R: ptr xcb_input_change_device_key_mapping_request_t): ptr xcb_keysym_t
# proc xcb_input_change_device_key_mapping_keysyms_length*(
# R: ptr xcb_input_change_device_key_mapping_request_t): cint
# proc xcb_input_change_device_key_mapping_keysyms_end*(
# R: ptr xcb_input_change_device_key_mapping_request_t): xcb_generic_iterator_t
# proc xcb_input_get_device_modifier_mapping_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_get_device_modifier_mapping*(c: ptr xcb_connection_t;
# device_id: uint8): xcb_input_get_device_modifier_mapping_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_get_device_modifier_mapping_unchecked*(c: ptr xcb_connection_t;
# device_id: uint8): xcb_input_get_device_modifier_mapping_cookie_t
# proc xcb_input_get_device_modifier_mapping_keymaps*(
# R: ptr xcb_input_get_device_modifier_mapping_reply_t): ptr uint8
# proc xcb_input_get_device_modifier_mapping_keymaps_length*(
# R: ptr xcb_input_get_device_modifier_mapping_reply_t): cint
# proc xcb_input_get_device_modifier_mapping_keymaps_end*(
# R: ptr xcb_input_get_device_modifier_mapping_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_get_device_modifier_mapping_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_get_device_modifier_mapping_reply*(c: ptr xcb_connection_t; cookie: xcb_input_get_device_modifier_mapping_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_get_device_modifier_mapping_reply_t
# proc xcb_input_set_device_modifier_mapping_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_set_device_modifier_mapping*(c: ptr xcb_connection_t;
# device_id: uint8; keycodes_per_modifier: uint8; keymaps: ptr uint8): xcb_input_set_device_modifier_mapping_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_set_device_modifier_mapping_unchecked*(c: ptr xcb_connection_t;
# device_id: uint8; keycodes_per_modifier: uint8; keymaps: ptr uint8): xcb_input_set_device_modifier_mapping_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_set_device_modifier_mapping_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_set_device_modifier_mapping_reply*(c: ptr xcb_connection_t; cookie: xcb_input_set_device_modifier_mapping_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_set_device_modifier_mapping_reply_t
# proc xcb_input_get_device_button_mapping_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_get_device_button_mapping*(c: ptr xcb_connection_t;
# device_id: uint8): xcb_input_get_device_button_mapping_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_get_device_button_mapping_unchecked*(c: ptr xcb_connection_t;
# device_id: uint8): xcb_input_get_device_button_mapping_cookie_t
# proc xcb_input_get_device_button_mapping_map*(
# R: ptr xcb_input_get_device_button_mapping_reply_t): ptr uint8
# proc xcb_input_get_device_button_mapping_map_length*(
# R: ptr xcb_input_get_device_button_mapping_reply_t): cint
# proc xcb_input_get_device_button_mapping_map_end*(
# R: ptr xcb_input_get_device_button_mapping_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_get_device_button_mapping_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_get_device_button_mapping_reply*(c: ptr xcb_connection_t; cookie: xcb_input_get_device_button_mapping_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_get_device_button_mapping_reply_t
# proc xcb_input_set_device_button_mapping_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_set_device_button_mapping*(c: ptr xcb_connection_t;
# device_id: uint8; map_size: uint8; map: ptr uint8): xcb_input_set_device_button_mapping_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_set_device_button_mapping_unchecked*(c: ptr xcb_connection_t;
# device_id: uint8; map_size: uint8; map: ptr uint8): xcb_input_set_device_button_mapping_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_set_device_button_mapping_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_set_device_button_mapping_reply*(c: ptr xcb_connection_t; cookie: xcb_input_set_device_button_mapping_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_set_device_button_mapping_reply_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_key_state_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_key_state_t)
# ##
# proc xcb_input_key_state_next*(i: ptr xcb_input_key_state_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_key_state_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_key_state_end*(i: xcb_input_key_state_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_button_state_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_button_state_t)
# ##
# proc xcb_input_button_state_next*(i: ptr xcb_input_button_state_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_button_state_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_button_state_end*(i: xcb_input_button_state_iterator_t): xcb_generic_iterator_t
# proc xcb_input_valuator_state_sizeof*(_buffer: pointer): cint
# proc xcb_input_valuator_state_valuators*(R: ptr xcb_input_valuator_state_t): ptr int32
# proc xcb_input_valuator_state_valuators_length*(R: ptr xcb_input_valuator_state_t): cint
# proc xcb_input_valuator_state_valuators_end*(R: ptr xcb_input_valuator_state_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_valuator_state_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_valuator_state_t)
# ##
# proc xcb_input_valuator_state_next*(i: ptr xcb_input_valuator_state_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_valuator_state_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_valuator_state_end*(i: xcb_input_valuator_state_iterator_t): xcb_generic_iterator_t
# proc xcb_input_input_state_data_valuator_valuators*(
# S: ptr xcb_input_input_state_data_t): ptr int32
# proc xcb_input_input_state_data_valuator_valuators_length*(
# R: ptr xcb_input_input_state_t; S: ptr xcb_input_input_state_data_t): cint
# proc xcb_input_input_state_data_valuator_valuators_end*(
# R: ptr xcb_input_input_state_t; S: ptr xcb_input_input_state_data_t): xcb_generic_iterator_t
# proc xcb_input_input_state_data_serialize*(_buffer: ptr pointer; class_id: uint8;
# _aux: ptr xcb_input_input_state_data_t): cint
# proc xcb_input_input_state_data_unpack*(_buffer: pointer; class_id: uint8;
# _aux: ptr xcb_input_input_state_data_t): cint
# proc xcb_input_input_state_data_sizeof*(_buffer: pointer; class_id: uint8): cint
# proc xcb_input_input_state_sizeof*(_buffer: pointer): cint
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_input_state_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_input_state_t)
# ##
# proc xcb_input_input_state_next*(i: ptr xcb_input_input_state_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_input_state_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_input_state_end*(i: xcb_input_input_state_iterator_t): xcb_generic_iterator_t
# proc xcb_input_query_device_state_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_query_device_state*(c: ptr xcb_connection_t; device_id: uint8): xcb_input_query_device_state_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_query_device_state_unchecked*(c: ptr xcb_connection_t;
# device_id: uint8): xcb_input_query_device_state_cookie_t
# proc xcb_input_query_device_state_classes_length*(
# R: ptr xcb_input_query_device_state_reply_t): cint
# proc xcb_input_query_device_state_classes_iterator*(
# R: ptr xcb_input_query_device_state_reply_t): xcb_input_input_state_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_query_device_state_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_query_device_state_reply*(c: ptr xcb_connection_t; cookie: xcb_input_query_device_state_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_query_device_state_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_device_bell_checked*(c: ptr xcb_connection_t; device_id: uint8;
# feedback_id: uint8; feedback_class: uint8;
# percent: int8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_device_bell*(c: ptr xcb_connection_t; device_id: uint8;
# feedback_id: uint8; feedback_class: uint8;
# percent: int8): xcb_void_cookie_t
# proc xcb_input_set_device_valuators_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_set_device_valuators*(c: ptr xcb_connection_t; device_id: uint8;
# first_valuator: uint8;
# num_valuators: uint8; valuators: ptr int32): xcb_input_set_device_valuators_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_set_device_valuators_unchecked*(c: ptr xcb_connection_t;
# device_id: uint8; first_valuator: uint8; num_valuators: uint8;
# valuators: ptr int32): xcb_input_set_device_valuators_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_set_device_valuators_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_set_device_valuators_reply*(c: ptr xcb_connection_t; cookie: xcb_input_set_device_valuators_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_set_device_valuators_reply_t
# proc xcb_input_device_resolution_state_sizeof*(_buffer: pointer): cint
# proc xcb_input_device_resolution_state_resolution_values*(
# R: ptr xcb_input_device_resolution_state_t): ptr uint32
# proc xcb_input_device_resolution_state_resolution_values_length*(
# R: ptr xcb_input_device_resolution_state_t): cint
# proc xcb_input_device_resolution_state_resolution_values_end*(
# R: ptr xcb_input_device_resolution_state_t): xcb_generic_iterator_t
# proc xcb_input_device_resolution_state_resolution_min*(
# R: ptr xcb_input_device_resolution_state_t): ptr uint32
# proc xcb_input_device_resolution_state_resolution_min_length*(
# R: ptr xcb_input_device_resolution_state_t): cint
# proc xcb_input_device_resolution_state_resolution_min_end*(
# R: ptr xcb_input_device_resolution_state_t): xcb_generic_iterator_t
# proc xcb_input_device_resolution_state_resolution_max*(
# R: ptr xcb_input_device_resolution_state_t): ptr uint32
# proc xcb_input_device_resolution_state_resolution_max_length*(
# R: ptr xcb_input_device_resolution_state_t): cint
# proc xcb_input_device_resolution_state_resolution_max_end*(
# R: ptr xcb_input_device_resolution_state_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_device_resolution_state_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_device_resolution_state_t)
# ##
# proc xcb_input_device_resolution_state_next*(
# i: ptr xcb_input_device_resolution_state_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_device_resolution_state_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_device_resolution_state_end*(
# i: xcb_input_device_resolution_state_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_device_abs_calib_state_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_device_abs_calib_state_t)
# ##
# proc xcb_input_device_abs_calib_state_next*(
# i: ptr xcb_input_device_abs_calib_state_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_device_abs_calib_state_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_device_abs_calib_state_end*(
# i: xcb_input_device_abs_calib_state_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_device_abs_area_state_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_device_abs_area_state_t)
# ##
# proc xcb_input_device_abs_area_state_next*(
# i: ptr xcb_input_device_abs_area_state_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_device_abs_area_state_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_device_abs_area_state_end*(
# i: xcb_input_device_abs_area_state_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_device_core_state_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_device_core_state_t)
# ##
# proc xcb_input_device_core_state_next*(i: ptr xcb_input_device_core_state_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_device_core_state_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_device_core_state_end*(i: xcb_input_device_core_state_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_device_enable_state_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_device_enable_state_t)
# ##
# proc xcb_input_device_enable_state_next*(i: ptr xcb_input_device_enable_state_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_device_enable_state_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_device_enable_state_end*(i: xcb_input_device_enable_state_iterator_t): xcb_generic_iterator_t
# proc xcb_input_device_state_data_resolution_resolution_values*(
# S: ptr xcb_input_device_state_data_t): ptr uint32
# proc xcb_input_device_state_data_resolution_resolution_values_length*(
# R: ptr xcb_input_device_state_t; S: ptr xcb_input_device_state_data_t): cint
# proc xcb_input_device_state_data_resolution_resolution_values_end*(
# R: ptr xcb_input_device_state_t; S: ptr xcb_input_device_state_data_t): xcb_generic_iterator_t
# proc xcb_input_device_state_data_resolution_resolution_min*(
# S: ptr xcb_input_device_state_data_t): ptr uint32
# proc xcb_input_device_state_data_resolution_resolution_min_length*(
# R: ptr xcb_input_device_state_t; S: ptr xcb_input_device_state_data_t): cint
# proc xcb_input_device_state_data_resolution_resolution_min_end*(
# R: ptr xcb_input_device_state_t; S: ptr xcb_input_device_state_data_t): xcb_generic_iterator_t
# proc xcb_input_device_state_data_resolution_resolution_max*(
# S: ptr xcb_input_device_state_data_t): ptr uint32
# proc xcb_input_device_state_data_resolution_resolution_max_length*(
# R: ptr xcb_input_device_state_t; S: ptr xcb_input_device_state_data_t): cint
# proc xcb_input_device_state_data_resolution_resolution_max_end*(
# R: ptr xcb_input_device_state_t; S: ptr xcb_input_device_state_data_t): xcb_generic_iterator_t
# proc xcb_input_device_state_data_serialize*(_buffer: ptr pointer;
# control_id: uint16; _aux: ptr xcb_input_device_state_data_t): cint
# proc xcb_input_device_state_data_unpack*(_buffer: pointer; control_id: uint16;
# _aux: ptr xcb_input_device_state_data_t): cint
# proc xcb_input_device_state_data_sizeof*(_buffer: pointer; control_id: uint16): cint
# proc xcb_input_device_state_sizeof*(_buffer: pointer): cint
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_device_state_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_device_state_t)
# ##
# proc xcb_input_device_state_next*(i: ptr xcb_input_device_state_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_device_state_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_device_state_end*(i: xcb_input_device_state_iterator_t): xcb_generic_iterator_t
# proc xcb_input_get_device_control_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_get_device_control*(c: ptr xcb_connection_t; control_id: uint16;
# device_id: uint8): xcb_input_get_device_control_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_get_device_control_unchecked*(c: ptr xcb_connection_t;
# control_id: uint16; device_id: uint8): xcb_input_get_device_control_cookie_t
# proc xcb_input_get_device_control_control*(
# R: ptr xcb_input_get_device_control_reply_t): ptr xcb_input_device_state_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_get_device_control_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_get_device_control_reply*(c: ptr xcb_connection_t; cookie: xcb_input_get_device_control_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_get_device_control_reply_t
# proc xcb_input_device_resolution_ctl_sizeof*(_buffer: pointer): cint
# proc xcb_input_device_resolution_ctl_resolution_values*(
# R: ptr xcb_input_device_resolution_ctl_t): ptr uint32
# proc xcb_input_device_resolution_ctl_resolution_values_length*(
# R: ptr xcb_input_device_resolution_ctl_t): cint
# proc xcb_input_device_resolution_ctl_resolution_values_end*(
# R: ptr xcb_input_device_resolution_ctl_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_device_resolution_ctl_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_device_resolution_ctl_t)
# ##
# proc xcb_input_device_resolution_ctl_next*(
# i: ptr xcb_input_device_resolution_ctl_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_device_resolution_ctl_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_device_resolution_ctl_end*(
# i: xcb_input_device_resolution_ctl_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_device_abs_calib_ctl_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_device_abs_calib_ctl_t)
# ##
# proc xcb_input_device_abs_calib_ctl_next*(
# i: ptr xcb_input_device_abs_calib_ctl_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_device_abs_calib_ctl_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_device_abs_calib_ctl_end*(i: xcb_input_device_abs_calib_ctl_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_device_abs_area_ctrl_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_device_abs_area_ctrl_t)
# ##
# proc xcb_input_device_abs_area_ctrl_next*(
# i: ptr xcb_input_device_abs_area_ctrl_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_device_abs_area_ctrl_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_device_abs_area_ctrl_end*(i: xcb_input_device_abs_area_ctrl_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_device_core_ctrl_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_device_core_ctrl_t)
# ##
# proc xcb_input_device_core_ctrl_next*(i: ptr xcb_input_device_core_ctrl_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_device_core_ctrl_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_device_core_ctrl_end*(i: xcb_input_device_core_ctrl_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_device_enable_ctrl_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_device_enable_ctrl_t)
# ##
# proc xcb_input_device_enable_ctrl_next*(i: ptr xcb_input_device_enable_ctrl_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_device_enable_ctrl_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_device_enable_ctrl_end*(i: xcb_input_device_enable_ctrl_iterator_t): xcb_generic_iterator_t
# proc xcb_input_device_ctl_data_resolution_resolution_values*(
# S: ptr xcb_input_device_ctl_data_t): ptr uint32
# proc xcb_input_device_ctl_data_resolution_resolution_values_length*(
# R: ptr xcb_input_device_ctl_t; S: ptr xcb_input_device_ctl_data_t): cint
# proc xcb_input_device_ctl_data_resolution_resolution_values_end*(
# R: ptr xcb_input_device_ctl_t; S: ptr xcb_input_device_ctl_data_t): xcb_generic_iterator_t
# proc xcb_input_device_ctl_data_serialize*(_buffer: ptr pointer;
# control_id: uint16; _aux: ptr xcb_input_device_ctl_data_t): cint
# proc xcb_input_device_ctl_data_unpack*(_buffer: pointer; control_id: uint16;
# _aux: ptr xcb_input_device_ctl_data_t): cint
# proc xcb_input_device_ctl_data_sizeof*(_buffer: pointer; control_id: uint16): cint
# proc xcb_input_device_ctl_sizeof*(_buffer: pointer): cint
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_device_ctl_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_device_ctl_t)
# ##
# proc xcb_input_device_ctl_next*(i: ptr xcb_input_device_ctl_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_device_ctl_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_device_ctl_end*(i: xcb_input_device_ctl_iterator_t): xcb_generic_iterator_t
# proc xcb_input_change_device_control_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_change_device_control*(c: ptr xcb_connection_t; control_id: uint16;
# device_id: uint8;
# control: ptr xcb_input_device_ctl_t): xcb_input_change_device_control_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_change_device_control_unchecked*(c: ptr xcb_connection_t;
# control_id: uint16; device_id: uint8; control: ptr xcb_input_device_ctl_t): xcb_input_change_device_control_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_change_device_control_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_change_device_control_reply*(c: ptr xcb_connection_t; cookie: xcb_input_change_device_control_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_change_device_control_reply_t
# proc xcb_input_list_device_properties_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_list_device_properties*(c: ptr xcb_connection_t; device_id: uint8): xcb_input_list_device_properties_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_list_device_properties_unchecked*(c: ptr xcb_connection_t;
# device_id: uint8): xcb_input_list_device_properties_cookie_t
# proc xcb_input_list_device_properties_atoms*(
# R: ptr xcb_input_list_device_properties_reply_t): ptr xcb_atom_t
# proc xcb_input_list_device_properties_atoms_length*(
# R: ptr xcb_input_list_device_properties_reply_t): cint
# proc xcb_input_list_device_properties_atoms_end*(
# R: ptr xcb_input_list_device_properties_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_list_device_properties_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_list_device_properties_reply*(c: ptr xcb_connection_t; cookie: xcb_input_list_device_properties_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_list_device_properties_reply_t
# proc xcb_input_change_device_property_items_data_8*(
# S: ptr xcb_input_change_device_property_items_t): ptr uint8
# proc xcb_input_change_device_property_items_data_8_length*(
# R: ptr xcb_input_change_device_property_request_t;
# S: ptr xcb_input_change_device_property_items_t): cint
# proc xcb_input_change_device_property_items_data_8_end*(
# R: ptr xcb_input_change_device_property_request_t;
# S: ptr xcb_input_change_device_property_items_t): xcb_generic_iterator_t
# proc xcb_input_change_device_property_items_data_16*(
# S: ptr xcb_input_change_device_property_items_t): ptr uint16
# proc xcb_input_change_device_property_items_data_16_length*(
# R: ptr xcb_input_change_device_property_request_t;
# S: ptr xcb_input_change_device_property_items_t): cint
# proc xcb_input_change_device_property_items_data_16_end*(
# R: ptr xcb_input_change_device_property_request_t;
# S: ptr xcb_input_change_device_property_items_t): xcb_generic_iterator_t
# proc xcb_input_change_device_property_items_data_32*(
# S: ptr xcb_input_change_device_property_items_t): ptr uint32
# proc xcb_input_change_device_property_items_data_32_length*(
# R: ptr xcb_input_change_device_property_request_t;
# S: ptr xcb_input_change_device_property_items_t): cint
# proc xcb_input_change_device_property_items_data_32_end*(
# R: ptr xcb_input_change_device_property_request_t;
# S: ptr xcb_input_change_device_property_items_t): xcb_generic_iterator_t
# proc xcb_input_change_device_property_items_serialize*(_buffer: ptr pointer;
# num_items: uint32; format: uint8;
# _aux: ptr xcb_input_change_device_property_items_t): cint
# proc xcb_input_change_device_property_items_unpack*(_buffer: pointer;
# num_items: uint32; format: uint8;
# _aux: ptr xcb_input_change_device_property_items_t): cint
# proc xcb_input_change_device_property_items_sizeof*(_buffer: pointer;
# num_items: uint32; format: uint8): cint
# proc xcb_input_change_device_property_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_change_device_property_checked*(c: ptr xcb_connection_t;
# property: xcb_atom_t; `type`: xcb_atom_t; device_id: uint8; format: uint8;
# mode: uint8; num_items: uint32; items: pointer): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_change_device_property*(c: ptr xcb_connection_t;
# property: xcb_atom_t; `type`: xcb_atom_t;
# device_id: uint8; format: uint8;
# mode: uint8; num_items: uint32;
# items: pointer): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_change_device_property_aux_checked*(c: ptr xcb_connection_t;
# property: xcb_atom_t; `type`: xcb_atom_t; device_id: uint8; format: uint8;
# mode: uint8; num_items: uint32;
# items: ptr xcb_input_change_device_property_items_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_change_device_property_aux*(c: ptr xcb_connection_t;
# property: xcb_atom_t; `type`: xcb_atom_t; device_id: uint8; format: uint8;
# mode: uint8; num_items: uint32;
# items: ptr xcb_input_change_device_property_items_t): xcb_void_cookie_t
# proc xcb_input_change_device_property_items*(
# R: ptr xcb_input_change_device_property_request_t): pointer
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_delete_device_property_checked*(c: ptr xcb_connection_t;
# property: xcb_atom_t; device_id: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_delete_device_property*(c: ptr xcb_connection_t;
# property: xcb_atom_t; device_id: uint8): xcb_void_cookie_t
# proc xcb_input_get_device_property_items_data_8*(
# S: ptr xcb_input_get_device_property_items_t): ptr uint8
# proc xcb_input_get_device_property_items_data_8_length*(
# R: ptr xcb_input_get_device_property_reply_t;
# S: ptr xcb_input_get_device_property_items_t): cint
# proc xcb_input_get_device_property_items_data_8_end*(
# R: ptr xcb_input_get_device_property_reply_t;
# S: ptr xcb_input_get_device_property_items_t): xcb_generic_iterator_t
# proc xcb_input_get_device_property_items_data_16*(
# S: ptr xcb_input_get_device_property_items_t): ptr uint16
# proc xcb_input_get_device_property_items_data_16_length*(
# R: ptr xcb_input_get_device_property_reply_t;
# S: ptr xcb_input_get_device_property_items_t): cint
# proc xcb_input_get_device_property_items_data_16_end*(
# R: ptr xcb_input_get_device_property_reply_t;
# S: ptr xcb_input_get_device_property_items_t): xcb_generic_iterator_t
# proc xcb_input_get_device_property_items_data_32*(
# S: ptr xcb_input_get_device_property_items_t): ptr uint32
# proc xcb_input_get_device_property_items_data_32_length*(
# R: ptr xcb_input_get_device_property_reply_t;
# S: ptr xcb_input_get_device_property_items_t): cint
# proc xcb_input_get_device_property_items_data_32_end*(
# R: ptr xcb_input_get_device_property_reply_t;
# S: ptr xcb_input_get_device_property_items_t): xcb_generic_iterator_t
# proc xcb_input_get_device_property_items_serialize*(_buffer: ptr pointer;
# num_items: uint32; format: uint8;
# _aux: ptr xcb_input_get_device_property_items_t): cint
# proc xcb_input_get_device_property_items_unpack*(_buffer: pointer;
# num_items: uint32; format: uint8;
# _aux: ptr xcb_input_get_device_property_items_t): cint
# proc xcb_input_get_device_property_items_sizeof*(_buffer: pointer;
# num_items: uint32; format: uint8): cint
# proc xcb_input_get_device_property_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_get_device_property*(c: ptr xcb_connection_t; property: xcb_atom_t;
# `type`: xcb_atom_t; offset: uint32;
# len: uint32; device_id: uint8;
# _delete: uint8): xcb_input_get_device_property_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_get_device_property_unchecked*(c: ptr xcb_connection_t;
# property: xcb_atom_t; `type`: xcb_atom_t; offset: uint32; len: uint32;
# device_id: uint8; _delete: uint8): xcb_input_get_device_property_cookie_t
# proc xcb_input_get_device_property_items*(
# R: ptr xcb_input_get_device_property_reply_t): pointer
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_get_device_property_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_get_device_property_reply*(c: ptr xcb_connection_t; cookie: xcb_input_get_device_property_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_get_device_property_reply_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_group_info_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_group_info_t)
# ##
# proc xcb_input_group_info_next*(i: ptr xcb_input_group_info_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_group_info_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_group_info_end*(i: xcb_input_group_info_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_modifier_info_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_modifier_info_t)
# ##
# proc xcb_input_modifier_info_next*(i: ptr xcb_input_modifier_info_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_modifier_info_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_modifier_info_end*(i: xcb_input_modifier_info_iterator_t): xcb_generic_iterator_t
# proc xcb_input_xi_query_pointer_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_xi_query_pointer*(c: ptr xcb_connection_t; window: xcb_window_t;
# deviceid: xcb_input_device_id_t): xcb_input_xi_query_pointer_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_xi_query_pointer_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t; deviceid: xcb_input_device_id_t): xcb_input_xi_query_pointer_cookie_t
# proc xcb_input_xi_query_pointer_buttons*(R: ptr xcb_input_xi_query_pointer_reply_t): ptr uint32
# proc xcb_input_xi_query_pointer_buttons_length*(
# R: ptr xcb_input_xi_query_pointer_reply_t): cint
# proc xcb_input_xi_query_pointer_buttons_end*(
# R: ptr xcb_input_xi_query_pointer_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_xi_query_pointer_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_xi_query_pointer_reply*(c: ptr xcb_connection_t; cookie: xcb_input_xi_query_pointer_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_xi_query_pointer_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_xi_warp_pointer_checked*(c: ptr xcb_connection_t;
# src_win: xcb_window_t;
# dst_win: xcb_window_t;
# src_x: xcb_input_fp1616_t;
# src_y: xcb_input_fp1616_t;
# src_width: uint16; src_height: uint16;
# dst_x: xcb_input_fp1616_t;
# dst_y: xcb_input_fp1616_t;
# deviceid: xcb_input_device_id_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_xi_warp_pointer*(c: ptr xcb_connection_t; src_win: xcb_window_t;
# dst_win: xcb_window_t; src_x: xcb_input_fp1616_t;
# src_y: xcb_input_fp1616_t; src_width: uint16;
# src_height: uint16; dst_x: xcb_input_fp1616_t;
# dst_y: xcb_input_fp1616_t;
# deviceid: xcb_input_device_id_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_xi_change_cursor_checked*(c: ptr xcb_connection_t;
# window: xcb_window_t;
# cursor: xcb_cursor_t;
# deviceid: xcb_input_device_id_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_xi_change_cursor*(c: ptr xcb_connection_t; window: xcb_window_t;
# cursor: xcb_cursor_t;
# deviceid: xcb_input_device_id_t): xcb_void_cookie_t
# proc xcb_input_add_master_sizeof*(_buffer: pointer): cint
# proc xcb_input_add_master_name*(R: ptr xcb_input_add_master_t): cstring
# proc xcb_input_add_master_name_length*(R: ptr xcb_input_add_master_t): cint
# proc xcb_input_add_master_name_end*(R: ptr xcb_input_add_master_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_add_master_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_add_master_t)
# ##
# proc xcb_input_add_master_next*(i: ptr xcb_input_add_master_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_add_master_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_add_master_end*(i: xcb_input_add_master_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_remove_master_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_remove_master_t)
# ##
# proc xcb_input_remove_master_next*(i: ptr xcb_input_remove_master_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_remove_master_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_remove_master_end*(i: xcb_input_remove_master_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_attach_slave_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_attach_slave_t)
# ##
# proc xcb_input_attach_slave_next*(i: ptr xcb_input_attach_slave_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_attach_slave_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_attach_slave_end*(i: xcb_input_attach_slave_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_detach_slave_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_detach_slave_t)
# ##
# proc xcb_input_detach_slave_next*(i: ptr xcb_input_detach_slave_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_detach_slave_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_detach_slave_end*(i: xcb_input_detach_slave_iterator_t): xcb_generic_iterator_t
# proc xcb_input_hierarchy_change_data_add_master_name*(
# S: ptr xcb_input_hierarchy_change_data_t): cstring
# proc xcb_input_hierarchy_change_data_add_master_name_length*(
# R: ptr xcb_input_hierarchy_change_t; S: ptr xcb_input_hierarchy_change_data_t): cint
# proc xcb_input_hierarchy_change_data_add_master_name_end*(
# R: ptr xcb_input_hierarchy_change_t; S: ptr xcb_input_hierarchy_change_data_t): xcb_generic_iterator_t
# proc xcb_input_hierarchy_change_data_serialize*(_buffer: ptr pointer;
# `type`: uint16; _aux: ptr xcb_input_hierarchy_change_data_t): cint
# proc xcb_input_hierarchy_change_data_unpack*(_buffer: pointer; `type`: uint16;
# _aux: ptr xcb_input_hierarchy_change_data_t): cint
# proc xcb_input_hierarchy_change_data_sizeof*(_buffer: pointer; `type`: uint16): cint
# proc xcb_input_hierarchy_change_sizeof*(_buffer: pointer): cint
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_hierarchy_change_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_hierarchy_change_t)
# ##
# proc xcb_input_hierarchy_change_next*(i: ptr xcb_input_hierarchy_change_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_hierarchy_change_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_hierarchy_change_end*(i: xcb_input_hierarchy_change_iterator_t): xcb_generic_iterator_t
# proc xcb_input_xi_change_hierarchy_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_xi_change_hierarchy_checked*(c: ptr xcb_connection_t;
# num_changes: uint8; changes: ptr xcb_input_hierarchy_change_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_xi_change_hierarchy*(c: ptr xcb_connection_t; num_changes: uint8;
# changes: ptr xcb_input_hierarchy_change_t): xcb_void_cookie_t
# proc xcb_input_xi_change_hierarchy_changes_length*(
# R: ptr xcb_input_xi_change_hierarchy_request_t): cint
# proc xcb_input_xi_change_hierarchy_changes_iterator*(
# R: ptr xcb_input_xi_change_hierarchy_request_t): xcb_input_hierarchy_change_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_xi_set_client_pointer_checked*(c: ptr xcb_connection_t;
# window: xcb_window_t; deviceid: xcb_input_device_id_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_xi_set_client_pointer*(c: ptr xcb_connection_t; window: xcb_window_t;
# deviceid: xcb_input_device_id_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_xi_get_client_pointer*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_input_xi_get_client_pointer_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_xi_get_client_pointer_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t): xcb_input_xi_get_client_pointer_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_xi_get_client_pointer_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_xi_get_client_pointer_reply*(c: ptr xcb_connection_t; cookie: xcb_input_xi_get_client_pointer_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_xi_get_client_pointer_reply_t
# proc xcb_input_event_mask_sizeof*(_buffer: pointer): cint
# proc xcb_input_event_mask_mask*(R: ptr xcb_input_event_mask_t): ptr uint32
# proc xcb_input_event_mask_mask_length*(R: ptr xcb_input_event_mask_t): cint
# proc xcb_input_event_mask_mask_end*(R: ptr xcb_input_event_mask_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_event_mask_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_event_mask_t)
# ##
# proc xcb_input_event_mask_next*(i: ptr xcb_input_event_mask_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_event_mask_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_event_mask_end*(i: xcb_input_event_mask_iterator_t): xcb_generic_iterator_t
# proc xcb_input_xi_select_events_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_xi_select_events_checked*(c: ptr xcb_connection_t;
# window: xcb_window_t; num_mask: uint16;
# masks: ptr xcb_input_event_mask_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_xi_select_events*(c: ptr xcb_connection_t; window: xcb_window_t;
# num_mask: uint16;
# masks: ptr xcb_input_event_mask_t): xcb_void_cookie_t
# proc xcb_input_xi_select_events_masks_length*(
# R: ptr xcb_input_xi_select_events_request_t): cint
# proc xcb_input_xi_select_events_masks_iterator*(
# R: ptr xcb_input_xi_select_events_request_t): xcb_input_event_mask_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_xi_query_version*(c: ptr xcb_connection_t; major_version: uint16;
# minor_version: uint16): xcb_input_xi_query_version_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_xi_query_version_unchecked*(c: ptr xcb_connection_t;
# major_version: uint16; minor_version: uint16): xcb_input_xi_query_version_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_xi_query_version_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_xi_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_input_xi_query_version_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_xi_query_version_reply_t
# proc xcb_input_button_class_sizeof*(_buffer: pointer): cint
# proc xcb_input_button_class_state*(R: ptr xcb_input_button_class_t): ptr uint32
# proc xcb_input_button_class_state_length*(R: ptr xcb_input_button_class_t): cint
# proc xcb_input_button_class_state_end*(R: ptr xcb_input_button_class_t): xcb_generic_iterator_t
# proc xcb_input_button_class_labels*(R: ptr xcb_input_button_class_t): ptr xcb_atom_t
# proc xcb_input_button_class_labels_length*(R: ptr xcb_input_button_class_t): cint
# proc xcb_input_button_class_labels_end*(R: ptr xcb_input_button_class_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_button_class_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_button_class_t)
# ##
# proc xcb_input_button_class_next*(i: ptr xcb_input_button_class_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_button_class_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_button_class_end*(i: xcb_input_button_class_iterator_t): xcb_generic_iterator_t
# proc xcb_input_key_class_sizeof*(_buffer: pointer): cint
# proc xcb_input_key_class_keys*(R: ptr xcb_input_key_class_t): ptr uint32
# proc xcb_input_key_class_keys_length*(R: ptr xcb_input_key_class_t): cint
# proc xcb_input_key_class_keys_end*(R: ptr xcb_input_key_class_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_key_class_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_key_class_t)
# ##
# proc xcb_input_key_class_next*(i: ptr xcb_input_key_class_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_key_class_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_key_class_end*(i: xcb_input_key_class_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_scroll_class_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_scroll_class_t)
# ##
# proc xcb_input_scroll_class_next*(i: ptr xcb_input_scroll_class_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_scroll_class_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_scroll_class_end*(i: xcb_input_scroll_class_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_touch_class_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_touch_class_t)
# ##
# proc xcb_input_touch_class_next*(i: ptr xcb_input_touch_class_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_touch_class_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_touch_class_end*(i: xcb_input_touch_class_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_valuator_class_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_valuator_class_t)
# ##
# proc xcb_input_valuator_class_next*(i: ptr xcb_input_valuator_class_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_valuator_class_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_valuator_class_end*(i: xcb_input_valuator_class_iterator_t): xcb_generic_iterator_t
# proc xcb_input_device_class_data_key_keys*(S: ptr xcb_input_device_class_data_t): ptr uint32
# proc xcb_input_device_class_data_key_keys_length*(
# R: ptr xcb_input_device_class_t; S: ptr xcb_input_device_class_data_t): cint
# proc xcb_input_device_class_data_key_keys_end*(R: ptr xcb_input_device_class_t;
# S: ptr xcb_input_device_class_data_t): xcb_generic_iterator_t
# proc xcb_input_device_class_data_button_state*(
# S: ptr xcb_input_device_class_data_t): ptr uint32
# proc xcb_input_device_class_data_button_state_length*(
# R: ptr xcb_input_device_class_t; S: ptr xcb_input_device_class_data_t): cint
# proc xcb_input_device_class_data_button_state_end*(
# R: ptr xcb_input_device_class_t; S: ptr xcb_input_device_class_data_t): xcb_generic_iterator_t
# proc xcb_input_device_class_data_button_labels*(
# S: ptr xcb_input_device_class_data_t): ptr xcb_atom_t
# proc xcb_input_device_class_data_button_labels_length*(
# R: ptr xcb_input_device_class_t; S: ptr xcb_input_device_class_data_t): cint
# proc xcb_input_device_class_data_button_labels_end*(
# R: ptr xcb_input_device_class_t; S: ptr xcb_input_device_class_data_t): xcb_generic_iterator_t
# proc xcb_input_device_class_data_serialize*(_buffer: ptr pointer; `type`: uint16;
# _aux: ptr xcb_input_device_class_data_t): cint
# proc xcb_input_device_class_data_unpack*(_buffer: pointer; `type`: uint16;
# _aux: ptr xcb_input_device_class_data_t): cint
# proc xcb_input_device_class_data_sizeof*(_buffer: pointer; `type`: uint16): cint
# proc xcb_input_device_class_sizeof*(_buffer: pointer): cint
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_device_class_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_device_class_t)
# ##
# proc xcb_input_device_class_next*(i: ptr xcb_input_device_class_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_device_class_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_device_class_end*(i: xcb_input_device_class_iterator_t): xcb_generic_iterator_t
# proc xcb_input_xi_device_info_sizeof*(_buffer: pointer): cint
# proc xcb_input_xi_device_info_name*(R: ptr xcb_input_xi_device_info_t): cstring
# proc xcb_input_xi_device_info_name_length*(R: ptr xcb_input_xi_device_info_t): cint
# proc xcb_input_xi_device_info_name_end*(R: ptr xcb_input_xi_device_info_t): xcb_generic_iterator_t
# proc xcb_input_xi_device_info_classes_length*(R: ptr xcb_input_xi_device_info_t): cint
# proc xcb_input_xi_device_info_classes_iterator*(R: ptr xcb_input_xi_device_info_t): xcb_input_device_class_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_xi_device_info_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_xi_device_info_t)
# ##
# proc xcb_input_xi_device_info_next*(i: ptr xcb_input_xi_device_info_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_xi_device_info_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_xi_device_info_end*(i: xcb_input_xi_device_info_iterator_t): xcb_generic_iterator_t
# proc xcb_input_xi_query_device_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_xi_query_device*(c: ptr xcb_connection_t;
# deviceid: xcb_input_device_id_t): xcb_input_xi_query_device_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_xi_query_device_unchecked*(c: ptr xcb_connection_t;
# deviceid: xcb_input_device_id_t): xcb_input_xi_query_device_cookie_t
# proc xcb_input_xi_query_device_infos_length*(
# R: ptr xcb_input_xi_query_device_reply_t): cint
# proc xcb_input_xi_query_device_infos_iterator*(
# R: ptr xcb_input_xi_query_device_reply_t): xcb_input_xi_device_info_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_xi_query_device_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_xi_query_device_reply*(c: ptr xcb_connection_t; cookie: xcb_input_xi_query_device_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_xi_query_device_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_xi_set_focus_checked*(c: ptr xcb_connection_t; window: xcb_window_t;
# time: xcb_timestamp_t;
# deviceid: xcb_input_device_id_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_xi_set_focus*(c: ptr xcb_connection_t; window: xcb_window_t;
# time: xcb_timestamp_t; deviceid: xcb_input_device_id_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_xi_get_focus*(c: ptr xcb_connection_t;
# deviceid: xcb_input_device_id_t): xcb_input_xi_get_focus_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_xi_get_focus_unchecked*(c: ptr xcb_connection_t;
# deviceid: xcb_input_device_id_t): xcb_input_xi_get_focus_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_xi_get_focus_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_xi_get_focus_reply*(c: ptr xcb_connection_t; cookie: xcb_input_xi_get_focus_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_xi_get_focus_reply_t
# proc xcb_input_xi_grab_device_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_xi_grab_device*(c: ptr xcb_connection_t; window: xcb_window_t;
# time: xcb_timestamp_t; cursor: xcb_cursor_t;
# deviceid: xcb_input_device_id_t; mode: uint8;
# paired_device_mode: uint8; owner_events: uint8;
# mask_len: uint16; mask: ptr uint32): xcb_input_xi_grab_device_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_xi_grab_device_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t;
# time: xcb_timestamp_t;
# cursor: xcb_cursor_t;
# deviceid: xcb_input_device_id_t;
# mode: uint8;
# paired_device_mode: uint8;
# owner_events: uint8; mask_len: uint16;
# mask: ptr uint32): xcb_input_xi_grab_device_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_xi_grab_device_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_xi_grab_device_reply*(c: ptr xcb_connection_t; cookie: xcb_input_xi_grab_device_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_xi_grab_device_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_xi_ungrab_device_checked*(c: ptr xcb_connection_t;
# time: xcb_timestamp_t;
# deviceid: xcb_input_device_id_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_xi_ungrab_device*(c: ptr xcb_connection_t; time: xcb_timestamp_t;
# deviceid: xcb_input_device_id_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_xi_allow_events_checked*(c: ptr xcb_connection_t;
# time: xcb_timestamp_t;
# deviceid: xcb_input_device_id_t;
# event_mode: uint8; touchid: uint32;
# grab_window: xcb_window_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_xi_allow_events*(c: ptr xcb_connection_t; time: xcb_timestamp_t;
# deviceid: xcb_input_device_id_t;
# event_mode: uint8; touchid: uint32;
# grab_window: xcb_window_t): xcb_void_cookie_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_grab_modifier_info_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_grab_modifier_info_t)
# ##
# proc xcb_input_grab_modifier_info_next*(i: ptr xcb_input_grab_modifier_info_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_grab_modifier_info_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_grab_modifier_info_end*(i: xcb_input_grab_modifier_info_iterator_t): xcb_generic_iterator_t
# proc xcb_input_xi_passive_grab_device_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_xi_passive_grab_device*(c: ptr xcb_connection_t;
# time: xcb_timestamp_t;
# grab_window: xcb_window_t;
# cursor: xcb_cursor_t; detail: uint32;
# deviceid: xcb_input_device_id_t;
# num_modifiers: uint16; mask_len: uint16;
# grab_type: uint8; grab_mode: uint8;
# paired_device_mode: uint8;
# owner_events: uint8; mask: ptr uint32;
# modifiers: ptr uint32): xcb_input_xi_passive_grab_device_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_xi_passive_grab_device_unchecked*(c: ptr xcb_connection_t;
# time: xcb_timestamp_t; grab_window: xcb_window_t; cursor: xcb_cursor_t;
# detail: uint32; deviceid: xcb_input_device_id_t; num_modifiers: uint16;
# mask_len: uint16; grab_type: uint8; grab_mode: uint8;
# paired_device_mode: uint8; owner_events: uint8; mask: ptr uint32;
# modifiers: ptr uint32): xcb_input_xi_passive_grab_device_cookie_t
# proc xcb_input_xi_passive_grab_device_modifiers*(
# R: ptr xcb_input_xi_passive_grab_device_reply_t): ptr xcb_input_grab_modifier_info_t
# proc xcb_input_xi_passive_grab_device_modifiers_length*(
# R: ptr xcb_input_xi_passive_grab_device_reply_t): cint
# proc xcb_input_xi_passive_grab_device_modifiers_iterator*(
# R: ptr xcb_input_xi_passive_grab_device_reply_t): xcb_input_grab_modifier_info_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_xi_passive_grab_device_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_xi_passive_grab_device_reply*(c: ptr xcb_connection_t; cookie: xcb_input_xi_passive_grab_device_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_xi_passive_grab_device_reply_t
# proc xcb_input_xi_passive_ungrab_device_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_xi_passive_ungrab_device_checked*(c: ptr xcb_connection_t;
# grab_window: xcb_window_t; detail: uint32; deviceid: xcb_input_device_id_t;
# num_modifiers: uint16; grab_type: uint8; modifiers: ptr uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_xi_passive_ungrab_device*(c: ptr xcb_connection_t;
# grab_window: xcb_window_t;
# detail: uint32;
# deviceid: xcb_input_device_id_t;
# num_modifiers: uint16;
# grab_type: uint8;
# modifiers: ptr uint32): xcb_void_cookie_t
# proc xcb_input_xi_passive_ungrab_device_modifiers*(
# R: ptr xcb_input_xi_passive_ungrab_device_request_t): ptr uint32
# proc xcb_input_xi_passive_ungrab_device_modifiers_length*(
# R: ptr xcb_input_xi_passive_ungrab_device_request_t): cint
# proc xcb_input_xi_passive_ungrab_device_modifiers_end*(
# R: ptr xcb_input_xi_passive_ungrab_device_request_t): xcb_generic_iterator_t
# proc xcb_input_xi_list_properties_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_xi_list_properties*(c: ptr xcb_connection_t;
# deviceid: xcb_input_device_id_t): xcb_input_xi_list_properties_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_xi_list_properties_unchecked*(c: ptr xcb_connection_t;
# deviceid: xcb_input_device_id_t): xcb_input_xi_list_properties_cookie_t
# proc xcb_input_xi_list_properties_properties*(
# R: ptr xcb_input_xi_list_properties_reply_t): ptr xcb_atom_t
# proc xcb_input_xi_list_properties_properties_length*(
# R: ptr xcb_input_xi_list_properties_reply_t): cint
# proc xcb_input_xi_list_properties_properties_end*(
# R: ptr xcb_input_xi_list_properties_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_xi_list_properties_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_xi_list_properties_reply*(c: ptr xcb_connection_t; cookie: xcb_input_xi_list_properties_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_xi_list_properties_reply_t
# proc xcb_input_xi_change_property_items_data_8*(
# S: ptr xcb_input_xi_change_property_items_t): ptr uint8
# proc xcb_input_xi_change_property_items_data_8_length*(
# R: ptr xcb_input_xi_change_property_request_t;
# S: ptr xcb_input_xi_change_property_items_t): cint
# proc xcb_input_xi_change_property_items_data_8_end*(
# R: ptr xcb_input_xi_change_property_request_t;
# S: ptr xcb_input_xi_change_property_items_t): xcb_generic_iterator_t
# proc xcb_input_xi_change_property_items_data_16*(
# S: ptr xcb_input_xi_change_property_items_t): ptr uint16
# proc xcb_input_xi_change_property_items_data_16_length*(
# R: ptr xcb_input_xi_change_property_request_t;
# S: ptr xcb_input_xi_change_property_items_t): cint
# proc xcb_input_xi_change_property_items_data_16_end*(
# R: ptr xcb_input_xi_change_property_request_t;
# S: ptr xcb_input_xi_change_property_items_t): xcb_generic_iterator_t
# proc xcb_input_xi_change_property_items_data_32*(
# S: ptr xcb_input_xi_change_property_items_t): ptr uint32
# proc xcb_input_xi_change_property_items_data_32_length*(
# R: ptr xcb_input_xi_change_property_request_t;
# S: ptr xcb_input_xi_change_property_items_t): cint
# proc xcb_input_xi_change_property_items_data_32_end*(
# R: ptr xcb_input_xi_change_property_request_t;
# S: ptr xcb_input_xi_change_property_items_t): xcb_generic_iterator_t
# proc xcb_input_xi_change_property_items_serialize*(_buffer: ptr pointer;
# num_items: uint32; format: uint8;
# _aux: ptr xcb_input_xi_change_property_items_t): cint
# proc xcb_input_xi_change_property_items_unpack*(_buffer: pointer;
# num_items: uint32; format: uint8;
# _aux: ptr xcb_input_xi_change_property_items_t): cint
# proc xcb_input_xi_change_property_items_sizeof*(_buffer: pointer;
# num_items: uint32; format: uint8): cint
# proc xcb_input_xi_change_property_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_xi_change_property_checked*(c: ptr xcb_connection_t;
# deviceid: xcb_input_device_id_t; mode: uint8; format: uint8;
# property: xcb_atom_t; `type`: xcb_atom_t; num_items: uint32; items: pointer): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_xi_change_property*(c: ptr xcb_connection_t;
# deviceid: xcb_input_device_id_t; mode: uint8;
# format: uint8; property: xcb_atom_t;
# `type`: xcb_atom_t; num_items: uint32;
# items: pointer): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_xi_change_property_aux_checked*(c: ptr xcb_connection_t;
# deviceid: xcb_input_device_id_t; mode: uint8; format: uint8;
# property: xcb_atom_t; `type`: xcb_atom_t; num_items: uint32;
# items: ptr xcb_input_xi_change_property_items_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_xi_change_property_aux*(c: ptr xcb_connection_t;
# deviceid: xcb_input_device_id_t;
# mode: uint8; format: uint8;
# property: xcb_atom_t; `type`: xcb_atom_t;
# num_items: uint32; items: ptr xcb_input_xi_change_property_items_t): xcb_void_cookie_t
# proc xcb_input_xi_change_property_items*(R: ptr xcb_input_xi_change_property_request_t): pointer
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_xi_delete_property_checked*(c: ptr xcb_connection_t;
# deviceid: xcb_input_device_id_t; property: xcb_atom_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_xi_delete_property*(c: ptr xcb_connection_t;
# deviceid: xcb_input_device_id_t;
# property: xcb_atom_t): xcb_void_cookie_t
# proc xcb_input_xi_get_property_items_data_8*(
# S: ptr xcb_input_xi_get_property_items_t): ptr uint8
# proc xcb_input_xi_get_property_items_data_8_length*(
# R: ptr xcb_input_xi_get_property_reply_t;
# S: ptr xcb_input_xi_get_property_items_t): cint
# proc xcb_input_xi_get_property_items_data_8_end*(
# R: ptr xcb_input_xi_get_property_reply_t;
# S: ptr xcb_input_xi_get_property_items_t): xcb_generic_iterator_t
# proc xcb_input_xi_get_property_items_data_16*(
# S: ptr xcb_input_xi_get_property_items_t): ptr uint16
# proc xcb_input_xi_get_property_items_data_16_length*(
# R: ptr xcb_input_xi_get_property_reply_t;
# S: ptr xcb_input_xi_get_property_items_t): cint
# proc xcb_input_xi_get_property_items_data_16_end*(
# R: ptr xcb_input_xi_get_property_reply_t;
# S: ptr xcb_input_xi_get_property_items_t): xcb_generic_iterator_t
# proc xcb_input_xi_get_property_items_data_32*(
# S: ptr xcb_input_xi_get_property_items_t): ptr uint32
# proc xcb_input_xi_get_property_items_data_32_length*(
# R: ptr xcb_input_xi_get_property_reply_t;
# S: ptr xcb_input_xi_get_property_items_t): cint
# proc xcb_input_xi_get_property_items_data_32_end*(
# R: ptr xcb_input_xi_get_property_reply_t;
# S: ptr xcb_input_xi_get_property_items_t): xcb_generic_iterator_t
# proc xcb_input_xi_get_property_items_serialize*(_buffer: ptr pointer;
# num_items: uint32; format: uint8;
# _aux: ptr xcb_input_xi_get_property_items_t): cint
# proc xcb_input_xi_get_property_items_unpack*(_buffer: pointer; num_items: uint32;
# format: uint8; _aux: ptr xcb_input_xi_get_property_items_t): cint
# proc xcb_input_xi_get_property_items_sizeof*(_buffer: pointer; num_items: uint32;
# format: uint8): cint
# proc xcb_input_xi_get_property_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_xi_get_property*(c: ptr xcb_connection_t;
# deviceid: xcb_input_device_id_t; _delete: uint8;
# property: xcb_atom_t; `type`: xcb_atom_t;
# offset: uint32; len: uint32): xcb_input_xi_get_property_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_xi_get_property_unchecked*(c: ptr xcb_connection_t;
# deviceid: xcb_input_device_id_t; _delete: uint8; property: xcb_atom_t;
# `type`: xcb_atom_t; offset: uint32; len: uint32): xcb_input_xi_get_property_cookie_t
# proc xcb_input_xi_get_property_items*(R: ptr xcb_input_xi_get_property_reply_t): pointer
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_xi_get_property_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_xi_get_property_reply*(c: ptr xcb_connection_t; cookie: xcb_input_xi_get_property_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_xi_get_property_reply_t
# proc xcb_input_xi_get_selected_events_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_xi_get_selected_events*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_input_xi_get_selected_events_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_input_xi_get_selected_events_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t): xcb_input_xi_get_selected_events_cookie_t
# proc xcb_input_xi_get_selected_events_masks_length*(
# R: ptr xcb_input_xi_get_selected_events_reply_t): cint
# proc xcb_input_xi_get_selected_events_masks_iterator*(
# R: ptr xcb_input_xi_get_selected_events_reply_t): xcb_input_event_mask_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_input_xi_get_selected_events_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_input_xi_get_selected_events_reply*(c: ptr xcb_connection_t; cookie: xcb_input_xi_get_selected_events_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_input_xi_get_selected_events_reply_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_barrier_release_pointer_info_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_barrier_release_pointer_info_t)
# ##
# proc xcb_input_barrier_release_pointer_info_next*(
# i: ptr xcb_input_barrier_release_pointer_info_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_barrier_release_pointer_info_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_barrier_release_pointer_info_end*(
# i: xcb_input_barrier_release_pointer_info_iterator_t): xcb_generic_iterator_t
# proc xcb_input_xi_barrier_release_pointer_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_xi_barrier_release_pointer_checked*(c: ptr xcb_connection_t;
# num_barriers: uint32; barriers: ptr xcb_input_barrier_release_pointer_info_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_xi_barrier_release_pointer*(c: ptr xcb_connection_t;
# num_barriers: uint32; barriers: ptr xcb_input_barrier_release_pointer_info_t): xcb_void_cookie_t
# proc xcb_input_xi_barrier_release_pointer_barriers*(
# R: ptr xcb_input_xi_barrier_release_pointer_request_t): ptr xcb_input_barrier_release_pointer_info_t
# proc xcb_input_xi_barrier_release_pointer_barriers_length*(
# R: ptr xcb_input_xi_barrier_release_pointer_request_t): cint
# proc xcb_input_xi_barrier_release_pointer_barriers_iterator*(
# R: ptr xcb_input_xi_barrier_release_pointer_request_t): xcb_input_barrier_release_pointer_info_iterator_t
# proc xcb_input_device_changed_sizeof*(_buffer: pointer): cint
# proc xcb_input_device_changed_classes_length*(
# R: ptr xcb_input_device_changed_event_t): cint
# proc xcb_input_device_changed_classes_iterator*(
# R: ptr xcb_input_device_changed_event_t): xcb_input_device_class_iterator_t
# proc xcb_input_key_press_sizeof*(_buffer: pointer): cint
# proc xcb_input_key_press_button_mask*(R: ptr xcb_input_key_press_event_t): ptr uint32
# proc xcb_input_key_press_button_mask_length*(R: ptr xcb_input_key_press_event_t): cint
# proc xcb_input_key_press_button_mask_end*(R: ptr xcb_input_key_press_event_t): xcb_generic_iterator_t
# proc xcb_input_key_press_valuator_mask*(R: ptr xcb_input_key_press_event_t): ptr uint32
# proc xcb_input_key_press_valuator_mask_length*(R: ptr xcb_input_key_press_event_t): cint
# proc xcb_input_key_press_valuator_mask_end*(R: ptr xcb_input_key_press_event_t): xcb_generic_iterator_t
# proc xcb_input_key_press_axisvalues*(R: ptr xcb_input_key_press_event_t): ptr xcb_input_fp3232_t
# proc xcb_input_key_press_axisvalues_length*(R: ptr xcb_input_key_press_event_t): cint
# proc xcb_input_key_press_axisvalues_iterator*(R: ptr xcb_input_key_press_event_t): xcb_input_fp3232_iterator_t
# proc xcb_input_key_release_sizeof*(_buffer: pointer): cint
# ## *<
# proc xcb_input_button_press_sizeof*(_buffer: pointer): cint
# proc xcb_input_button_press_button_mask*(R: ptr xcb_input_button_press_event_t): ptr uint32
# proc xcb_input_button_press_button_mask_length*(
# R: ptr xcb_input_button_press_event_t): cint
# proc xcb_input_button_press_button_mask_end*(
# R: ptr xcb_input_button_press_event_t): xcb_generic_iterator_t
# proc xcb_input_button_press_valuator_mask*(R: ptr xcb_input_button_press_event_t): ptr uint32
# proc xcb_input_button_press_valuator_mask_length*(
# R: ptr xcb_input_button_press_event_t): cint
# proc xcb_input_button_press_valuator_mask_end*(
# R: ptr xcb_input_button_press_event_t): xcb_generic_iterator_t
# proc xcb_input_button_press_axisvalues*(R: ptr xcb_input_button_press_event_t): ptr xcb_input_fp3232_t
# proc xcb_input_button_press_axisvalues_length*(
# R: ptr xcb_input_button_press_event_t): cint
# proc xcb_input_button_press_axisvalues_iterator*(
# R: ptr xcb_input_button_press_event_t): xcb_input_fp3232_iterator_t
# proc xcb_input_button_release_sizeof*(_buffer: pointer): cint
# ## *<
# proc xcb_input_motion_sizeof*(_buffer: pointer): cint
# ## *<
# proc xcb_input_enter_sizeof*(_buffer: pointer): cint
# proc xcb_input_enter_buttons*(R: ptr xcb_input_enter_event_t): ptr uint32
# proc xcb_input_enter_buttons_length*(R: ptr xcb_input_enter_event_t): cint
# proc xcb_input_enter_buttons_end*(R: ptr xcb_input_enter_event_t): xcb_generic_iterator_t
# proc xcb_input_leave_sizeof*(_buffer: pointer): cint
# ## *<
# proc xcb_input_focus_in_sizeof*(_buffer: pointer): cint
# ## *<
# proc xcb_input_focus_out_sizeof*(_buffer: pointer): cint
# ## *<
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_hierarchy_info_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_hierarchy_info_t)
# ##
# proc xcb_input_hierarchy_info_next*(i: ptr xcb_input_hierarchy_info_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_hierarchy_info_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_hierarchy_info_end*(i: xcb_input_hierarchy_info_iterator_t): xcb_generic_iterator_t
# proc xcb_input_hierarchy_sizeof*(_buffer: pointer): cint
# proc xcb_input_hierarchy_infos*(R: ptr xcb_input_hierarchy_event_t): ptr xcb_input_hierarchy_info_t
# proc xcb_input_hierarchy_infos_length*(R: ptr xcb_input_hierarchy_event_t): cint
# proc xcb_input_hierarchy_infos_iterator*(R: ptr xcb_input_hierarchy_event_t): xcb_input_hierarchy_info_iterator_t
# proc xcb_input_raw_key_press_sizeof*(_buffer: pointer): cint
# proc xcb_input_raw_key_press_valuator_mask*(
# R: ptr xcb_input_raw_key_press_event_t): ptr uint32
# proc xcb_input_raw_key_press_valuator_mask_length*(
# R: ptr xcb_input_raw_key_press_event_t): cint
# proc xcb_input_raw_key_press_valuator_mask_end*(
# R: ptr xcb_input_raw_key_press_event_t): xcb_generic_iterator_t
# proc xcb_input_raw_key_press_axisvalues*(R: ptr xcb_input_raw_key_press_event_t): ptr xcb_input_fp3232_t
# proc xcb_input_raw_key_press_axisvalues_length*(
# R: ptr xcb_input_raw_key_press_event_t): cint
# proc xcb_input_raw_key_press_axisvalues_iterator*(
# R: ptr xcb_input_raw_key_press_event_t): xcb_input_fp3232_iterator_t
# proc xcb_input_raw_key_press_axisvalues_raw*(
# R: ptr xcb_input_raw_key_press_event_t): ptr xcb_input_fp3232_t
# proc xcb_input_raw_key_press_axisvalues_raw_length*(
# R: ptr xcb_input_raw_key_press_event_t): cint
# proc xcb_input_raw_key_press_axisvalues_raw_iterator*(
# R: ptr xcb_input_raw_key_press_event_t): xcb_input_fp3232_iterator_t
# proc xcb_input_raw_key_release_sizeof*(_buffer: pointer): cint
# ## *<
# proc xcb_input_raw_button_press_sizeof*(_buffer: pointer): cint
# proc xcb_input_raw_button_press_valuator_mask*(
# R: ptr xcb_input_raw_button_press_event_t): ptr uint32
# proc xcb_input_raw_button_press_valuator_mask_length*(
# R: ptr xcb_input_raw_button_press_event_t): cint
# proc xcb_input_raw_button_press_valuator_mask_end*(
# R: ptr xcb_input_raw_button_press_event_t): xcb_generic_iterator_t
# proc xcb_input_raw_button_press_axisvalues*(
# R: ptr xcb_input_raw_button_press_event_t): ptr xcb_input_fp3232_t
# proc xcb_input_raw_button_press_axisvalues_length*(
# R: ptr xcb_input_raw_button_press_event_t): cint
# proc xcb_input_raw_button_press_axisvalues_iterator*(
# R: ptr xcb_input_raw_button_press_event_t): xcb_input_fp3232_iterator_t
# proc xcb_input_raw_button_press_axisvalues_raw*(
# R: ptr xcb_input_raw_button_press_event_t): ptr xcb_input_fp3232_t
# proc xcb_input_raw_button_press_axisvalues_raw_length*(
# R: ptr xcb_input_raw_button_press_event_t): cint
# proc xcb_input_raw_button_press_axisvalues_raw_iterator*(
# R: ptr xcb_input_raw_button_press_event_t): xcb_input_fp3232_iterator_t
# proc xcb_input_raw_button_release_sizeof*(_buffer: pointer): cint
# ## *<
# proc xcb_input_raw_motion_sizeof*(_buffer: pointer): cint
# ## *<
# proc xcb_input_touch_begin_sizeof*(_buffer: pointer): cint
# proc xcb_input_touch_begin_button_mask*(R: ptr xcb_input_touch_begin_event_t): ptr uint32
# proc xcb_input_touch_begin_button_mask_length*(
# R: ptr xcb_input_touch_begin_event_t): cint
# proc xcb_input_touch_begin_button_mask_end*(R: ptr xcb_input_touch_begin_event_t): xcb_generic_iterator_t
# proc xcb_input_touch_begin_valuator_mask*(R: ptr xcb_input_touch_begin_event_t): ptr uint32
# proc xcb_input_touch_begin_valuator_mask_length*(
# R: ptr xcb_input_touch_begin_event_t): cint
# proc xcb_input_touch_begin_valuator_mask_end*(
# R: ptr xcb_input_touch_begin_event_t): xcb_generic_iterator_t
# proc xcb_input_touch_begin_axisvalues*(R: ptr xcb_input_touch_begin_event_t): ptr xcb_input_fp3232_t
# proc xcb_input_touch_begin_axisvalues_length*(
# R: ptr xcb_input_touch_begin_event_t): cint
# proc xcb_input_touch_begin_axisvalues_iterator*(
# R: ptr xcb_input_touch_begin_event_t): xcb_input_fp3232_iterator_t
# proc xcb_input_touch_update_sizeof*(_buffer: pointer): cint
# ## *<
# proc xcb_input_touch_end_sizeof*(_buffer: pointer): cint
# ## *<
# proc xcb_input_raw_touch_begin_sizeof*(_buffer: pointer): cint
# proc xcb_input_raw_touch_begin_valuator_mask*(
# R: ptr xcb_input_raw_touch_begin_event_t): ptr uint32
# proc xcb_input_raw_touch_begin_valuator_mask_length*(
# R: ptr xcb_input_raw_touch_begin_event_t): cint
# proc xcb_input_raw_touch_begin_valuator_mask_end*(
# R: ptr xcb_input_raw_touch_begin_event_t): xcb_generic_iterator_t
# proc xcb_input_raw_touch_begin_axisvalues*(
# R: ptr xcb_input_raw_touch_begin_event_t): ptr xcb_input_fp3232_t
# proc xcb_input_raw_touch_begin_axisvalues_length*(
# R: ptr xcb_input_raw_touch_begin_event_t): cint
# proc xcb_input_raw_touch_begin_axisvalues_iterator*(
# R: ptr xcb_input_raw_touch_begin_event_t): xcb_input_fp3232_iterator_t
# proc xcb_input_raw_touch_begin_axisvalues_raw*(
# R: ptr xcb_input_raw_touch_begin_event_t): ptr xcb_input_fp3232_t
# proc xcb_input_raw_touch_begin_axisvalues_raw_length*(
# R: ptr xcb_input_raw_touch_begin_event_t): cint
# proc xcb_input_raw_touch_begin_axisvalues_raw_iterator*(
# R: ptr xcb_input_raw_touch_begin_event_t): xcb_input_fp3232_iterator_t
# proc xcb_input_raw_touch_update_sizeof*(_buffer: pointer): cint
# ## *<
# proc xcb_input_raw_touch_end_sizeof*(_buffer: pointer): cint
# ## *<
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_input_event_for_send_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_input_event_for_send_t)
# ##
# proc xcb_input_event_for_send_next*(i: ptr xcb_input_event_for_send_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_input_event_for_send_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_input_event_for_send_end*(i: xcb_input_event_for_send_iterator_t): xcb_generic_iterator_t
# proc xcb_input_send_extension_event_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_input_send_extension_event_checked*(c: ptr xcb_connection_t;
# destination: xcb_window_t; device_id: uint8; propagate: uint8;
# num_classes: uint16; num_events: uint8;
# events: ptr xcb_input_event_for_send_t; classes: ptr xcb_input_event_class_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_input_send_extension_event*(c: ptr xcb_connection_t;
# destination: xcb_window_t; device_id: uint8;
# propagate: uint8; num_classes: uint16;
# num_events: uint8;
# events: ptr xcb_input_event_for_send_t;
# classes: ptr xcb_input_event_class_t): xcb_void_cookie_t
# proc xcb_input_send_extension_event_events*(
# R: ptr xcb_input_send_extension_event_request_t): ptr xcb_input_event_for_send_t
# proc xcb_input_send_extension_event_events_length*(
# R: ptr xcb_input_send_extension_event_request_t): cint
# proc xcb_input_send_extension_event_events_iterator*(
# R: ptr xcb_input_send_extension_event_request_t): xcb_input_event_for_send_iterator_t
# proc xcb_input_send_extension_event_classes*(
# R: ptr xcb_input_send_extension_event_request_t): ptr xcb_input_event_class_t
# proc xcb_input_send_extension_event_classes_length*(
# R: ptr xcb_input_send_extension_event_request_t): cint
# proc xcb_input_send_extension_event_classes_end*(
# R: ptr xcb_input_send_extension_event_request_t): xcb_generic_iterator_t
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from xkb.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB_xkb_API XCB xkb API
# ## @brief xkb XCB Protocol Implementation.
# ## @{
# ##
# import
# xcb, xproto
# type
# xcb_xkb_const_t* = enum
# XCB_XKB_CONST_KEY_NAME_LENGTH = 4, XCB_XKB_CONST_PER_KEY_BIT_ARRAY_SIZE = 32,
# XCB_XKB_CONST_MAX_LEGAL_KEY_CODE = 255
# xcb_xkb_event_type_t* = enum
# XCB_XKB_EVENT_TYPE_NEW_KEYBOARD_NOTIFY = 1, XCB_XKB_EVENT_TYPE_MAP_NOTIFY = 2,
# XCB_XKB_EVENT_TYPE_STATE_NOTIFY = 4, XCB_XKB_EVENT_TYPE_CONTROLS_NOTIFY = 8,
# XCB_XKB_EVENT_TYPE_INDICATOR_STATE_NOTIFY = 16,
# XCB_XKB_EVENT_TYPE_INDICATOR_MAP_NOTIFY = 32,
# XCB_XKB_EVENT_TYPE_NAMES_NOTIFY = 64,
# XCB_XKB_EVENT_TYPE_COMPAT_MAP_NOTIFY = 128,
# XCB_XKB_EVENT_TYPE_BELL_NOTIFY = 256, XCB_XKB_EVENT_TYPE_ACTION_MESSAGE = 512,
# XCB_XKB_EVENT_TYPE_ACCESS_X_NOTIFY = 1024,
# XCB_XKB_EVENT_TYPE_EXTENSION_DEVICE_NOTIFY = 2048
# xcb_xkb_nkn_detail_t* = enum
# XCB_XKB_NKN_DETAIL_KEYCODES = 1, XCB_XKB_NKN_DETAIL_GEOMETRY = 2,
# XCB_XKB_NKN_DETAIL_DEVICE_ID = 4
# xcb_xkb_axn_detail_t* = enum
# XCB_XKB_AXN_DETAIL_SK_PRESS = 1, XCB_XKB_AXN_DETAIL_SK_ACCEPT = 2,
# XCB_XKB_AXN_DETAIL_SK_REJECT = 4, XCB_XKB_AXN_DETAIL_SK_RELEASE = 8,
# XCB_XKB_AXN_DETAIL_BK_ACCEPT = 16, XCB_XKB_AXN_DETAIL_BK_REJECT = 32,
# XCB_XKB_AXN_DETAIL_AXK_WARNING = 64
# xcb_xkb_map_part_t* = enum
# XCB_XKB_MAP_PART_KEY_TYPES = 1, XCB_XKB_MAP_PART_KEY_SYMS = 2,
# XCB_XKB_MAP_PART_MODIFIER_MAP = 4, XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS = 8,
# XCB_XKB_MAP_PART_KEY_ACTIONS = 16, XCB_XKB_MAP_PART_KEY_BEHAVIORS = 32,
# XCB_XKB_MAP_PART_VIRTUAL_MODS = 64, XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP = 128
# xcb_xkb_set_map_flags_t* = enum
# XCB_XKB_SET_MAP_FLAGS_RESIZE_TYPES = 1,
# XCB_XKB_SET_MAP_FLAGS_RECOMPUTE_ACTIONS = 2
# xcb_xkb_state_part_t* = enum
# XCB_XKB_STATE_PART_MODIFIER_STATE = 1, XCB_XKB_STATE_PART_MODIFIER_BASE = 2,
# XCB_XKB_STATE_PART_MODIFIER_LATCH = 4, XCB_XKB_STATE_PART_MODIFIER_LOCK = 8,
# XCB_XKB_STATE_PART_GROUP_STATE = 16, XCB_XKB_STATE_PART_GROUP_BASE = 32,
# XCB_XKB_STATE_PART_GROUP_LATCH = 64, XCB_XKB_STATE_PART_GROUP_LOCK = 128,
# XCB_XKB_STATE_PART_COMPAT_STATE = 256, XCB_XKB_STATE_PART_GRAB_MODS = 512,
# XCB_XKB_STATE_PART_COMPAT_GRAB_MODS = 1024,
# XCB_XKB_STATE_PART_LOOKUP_MODS = 2048,
# XCB_XKB_STATE_PART_COMPAT_LOOKUP_MODS = 4096,
# XCB_XKB_STATE_PART_POINTER_BUTTONS = 8192
# xcb_xkb_bool_ctrl_t* = enum
# XCB_XKB_BOOL_CTRL_REPEAT_KEYS = 1, XCB_XKB_BOOL_CTRL_SLOW_KEYS = 2,
# XCB_XKB_BOOL_CTRL_BOUNCE_KEYS = 4, XCB_XKB_BOOL_CTRL_STICKY_KEYS = 8,
# XCB_XKB_BOOL_CTRL_MOUSE_KEYS = 16, XCB_XKB_BOOL_CTRL_MOUSE_KEYS_ACCEL = 32,
# XCB_XKB_BOOL_CTRL_ACCESS_X_KEYS = 64,
# XCB_XKB_BOOL_CTRL_ACCESS_X_TIMEOUT_MASK = 128,
# XCB_XKB_BOOL_CTRL_ACCESS_X_FEEDBACK_MASK = 256,
# XCB_XKB_BOOL_CTRL_AUDIBLE_BELL_MASK = 512,
# XCB_XKB_BOOL_CTRL_OVERLAY_1_MASK = 1024,
# XCB_XKB_BOOL_CTRL_OVERLAY_2_MASK = 2048,
# XCB_XKB_BOOL_CTRL_IGNORE_GROUP_LOCK_MASK = 4096
# xcb_xkb_control_t* = enum
# XCB_XKB_CONTROL_GROUPS_WRAP = 134217728,
# XCB_XKB_CONTROL_INTERNAL_MODS = 268435456,
# XCB_XKB_CONTROL_IGNORE_LOCK_MODS = 536870912,
# XCB_XKB_CONTROL_PER_KEY_REPEAT = 1073741824,
# XCB_XKB_CONTROL_CONTROLS_ENABLED = 2147483648'i64
# xcb_xkb_ax_option_t* = enum
# XCB_XKB_AX_OPTION_SK_PRESS_FB = 1, XCB_XKB_AX_OPTION_SK_ACCEPT_FB = 2,
# XCB_XKB_AX_OPTION_FEATURE_FB = 4, XCB_XKB_AX_OPTION_SLOW_WARN_FB = 8,
# XCB_XKB_AX_OPTION_INDICATOR_FB = 16, XCB_XKB_AX_OPTION_STICKY_KEYS_FB = 32,
# XCB_XKB_AX_OPTION_TWO_KEYS = 64, XCB_XKB_AX_OPTION_LATCH_TO_LOCK = 128,
# XCB_XKB_AX_OPTION_SK_RELEASE_FB = 256, XCB_XKB_AX_OPTION_SK_REJECT_FB = 512,
# XCB_XKB_AX_OPTION_BK_REJECT_FB = 1024, XCB_XKB_AX_OPTION_DUMB_BELL = 2048
# xcb_xkb_device_spec_t* = uint16
# ## *
# ## @brief xcb_xkb_device_spec_iterator_t
# ##
# type
# xcb_xkb_device_spec_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_device_spec_t
# rem*: cint
# index*: cint
# xcb_xkb_led_class_result_t* = enum
# XCB_XKB_LED_CLASS_RESULT_KBD_FEEDBACK_CLASS = 0,
# XCB_XKB_LED_CLASS_RESULT_LED_FEEDBACK_CLASS = 4
# xcb_xkb_led_class_t* = enum
# XCB_XKB_LED_CLASS_KBD_FEEDBACK_CLASS = 0,
# XCB_XKB_LED_CLASS_LED_FEEDBACK_CLASS = 4,
# XCB_XKB_LED_CLASS_DFLT_XI_CLASS = 768, XCB_XKB_LED_CLASS_ALL_XI_CLASSES = 1280
# xcb_xkb_led_class_spec_t* = uint16
# ## *
# ## @brief xcb_xkb_led_class_spec_iterator_t
# ##
# type
# xcb_xkb_led_class_spec_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_led_class_spec_t
# rem*: cint
# index*: cint
# xcb_xkb_bell_class_result_t* = enum
# XCB_XKB_BELL_CLASS_RESULT_KBD_FEEDBACK_CLASS = 0,
# XCB_XKB_BELL_CLASS_RESULT_BELL_FEEDBACK_CLASS = 5
# xcb_xkb_bell_class_t* = enum
# XCB_XKB_BELL_CLASS_KBD_FEEDBACK_CLASS = 0,
# XCB_XKB_BELL_CLASS_BELL_FEEDBACK_CLASS = 5,
# XCB_XKB_BELL_CLASS_DFLT_XI_CLASS = 768
# xcb_xkb_bell_class_spec_t* = uint16
# ## *
# ## @brief xcb_xkb_bell_class_spec_iterator_t
# ##
# type
# xcb_xkb_bell_class_spec_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_bell_class_spec_t
# rem*: cint
# index*: cint
# xcb_xkb_id_t* = enum
# XCB_XKB_ID_USE_CORE_KBD = 256, XCB_XKB_ID_USE_CORE_PTR = 512,
# XCB_XKB_ID_DFLT_XI_CLASS = 768, XCB_XKB_ID_DFLT_XI_ID = 1024,
# XCB_XKB_ID_ALL_XI_CLASS = 1280, XCB_XKB_ID_ALL_XI_ID = 1536,
# XCB_XKB_ID_XI_NONE = 65280
# xcb_xkb_id_spec_t* = uint16
# ## *
# ## @brief xcb_xkb_id_spec_iterator_t
# ##
# type
# xcb_xkb_id_spec_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_id_spec_t
# rem*: cint
# index*: cint
# xcb_xkb_group_t* = enum
# XCB_XKB_GROUP_1 = 0, XCB_XKB_GROUP_2 = 1, XCB_XKB_GROUP_3 = 2, XCB_XKB_GROUP_4 = 3
# xcb_xkb_groups_t* = enum
# XCB_XKB_GROUPS_ANY = 254, XCB_XKB_GROUPS_ALL = 255
# xcb_xkb_set_of_group_t* = enum
# XCB_XKB_SET_OF_GROUP_GROUP_1 = 1, XCB_XKB_SET_OF_GROUP_GROUP_2 = 2,
# XCB_XKB_SET_OF_GROUP_GROUP_3 = 4, XCB_XKB_SET_OF_GROUP_GROUP_4 = 8
# xcb_xkb_set_of_groups_t* = enum
# XCB_XKB_SET_OF_GROUPS_ANY = 128
# xcb_xkb_groups_wrap_t* = enum
# XCB_XKB_GROUPS_WRAP_WRAP_INTO_RANGE = 0,
# XCB_XKB_GROUPS_WRAP_CLAMP_INTO_RANGE = 64,
# XCB_XKB_GROUPS_WRAP_REDIRECT_INTO_RANGE = 128
# xcb_xkb_v_mods_high_t* = enum
# XCB_XKB_V_MODS_HIGH_8 = 1, XCB_XKB_V_MODS_HIGH_9 = 2, XCB_XKB_V_MODS_HIGH_10 = 4,
# XCB_XKB_V_MODS_HIGH_11 = 8, XCB_XKB_V_MODS_HIGH_12 = 16,
# XCB_XKB_V_MODS_HIGH_13 = 32, XCB_XKB_V_MODS_HIGH_14 = 64,
# XCB_XKB_V_MODS_HIGH_15 = 128
# xcb_xkb_v_mods_low_t* = enum
# XCB_XKB_V_MODS_LOW_0 = 1, XCB_XKB_V_MODS_LOW_1 = 2, XCB_XKB_V_MODS_LOW_2 = 4,
# XCB_XKB_V_MODS_LOW_3 = 8, XCB_XKB_V_MODS_LOW_4 = 16, XCB_XKB_V_MODS_LOW_5 = 32,
# XCB_XKB_V_MODS_LOW_6 = 64, XCB_XKB_V_MODS_LOW_7 = 128
# xcb_xkb_v_mod_t* = enum
# XCB_XKB_V_MOD_0 = 1, XCB_XKB_V_MOD_1 = 2, XCB_XKB_V_MOD_2 = 4, XCB_XKB_V_MOD_3 = 8,
# XCB_XKB_V_MOD_4 = 16, XCB_XKB_V_MOD_5 = 32, XCB_XKB_V_MOD_6 = 64,
# XCB_XKB_V_MOD_7 = 128, XCB_XKB_V_MOD_8 = 256, XCB_XKB_V_MOD_9 = 512,
# XCB_XKB_V_MOD_10 = 1024, XCB_XKB_V_MOD_11 = 2048, XCB_XKB_V_MOD_12 = 4096,
# XCB_XKB_V_MOD_13 = 8192, XCB_XKB_V_MOD_14 = 16384, XCB_XKB_V_MOD_15 = 32768
# xcb_xkb_explicit_t* = enum
# XCB_XKB_EXPLICIT_KEY_TYPE_1 = 1, XCB_XKB_EXPLICIT_KEY_TYPE_2 = 2,
# XCB_XKB_EXPLICIT_KEY_TYPE_3 = 4, XCB_XKB_EXPLICIT_KEY_TYPE_4 = 8,
# XCB_XKB_EXPLICIT_INTERPRET = 16, XCB_XKB_EXPLICIT_AUTO_REPEAT = 32,
# XCB_XKB_EXPLICIT_BEHAVIOR = 64, XCB_XKB_EXPLICIT_V_MOD_MAP = 128
# xcb_xkb_sym_interpret_match_t* = enum
# XCB_XKB_SYM_INTERPRET_MATCH_NONE_OF = 0,
# XCB_XKB_SYM_INTERPRET_MATCH_ANY_OF_OR_NONE = 1,
# XCB_XKB_SYM_INTERPRET_MATCH_ANY_OF = 2, XCB_XKB_SYM_INTERPRET_MATCH_ALL_OF = 3,
# XCB_XKB_SYM_INTERPRET_MATCH_EXACTLY = 4
# xcb_xkb_sym_interp_match_t* = enum
# XCB_XKB_SYM_INTERP_MATCH_OP_MASK = 127,
# XCB_XKB_SYM_INTERP_MATCH_LEVEL_ONE_ONLY = 128
# xcb_xkb_im_flag_t* = enum
# XCB_XKB_IM_FLAG_LED_DRIVES_KB = 32, XCB_XKB_IM_FLAG_NO_AUTOMATIC = 64,
# XCB_XKB_IM_FLAG_NO_EXPLICIT = 128
# xcb_xkb_im_mods_which_t* = enum
# XCB_XKB_IM_MODS_WHICH_USE_BASE = 1, XCB_XKB_IM_MODS_WHICH_USE_LATCHED = 2,
# XCB_XKB_IM_MODS_WHICH_USE_LOCKED = 4, XCB_XKB_IM_MODS_WHICH_USE_EFFECTIVE = 8,
# XCB_XKB_IM_MODS_WHICH_USE_COMPAT = 16
# xcb_xkb_im_groups_which_t* = enum
# XCB_XKB_IM_GROUPS_WHICH_USE_BASE = 1, XCB_XKB_IM_GROUPS_WHICH_USE_LATCHED = 2,
# XCB_XKB_IM_GROUPS_WHICH_USE_LOCKED = 4,
# XCB_XKB_IM_GROUPS_WHICH_USE_EFFECTIVE = 8,
# XCB_XKB_IM_GROUPS_WHICH_USE_COMPAT = 16
# ## *
# ## @brief xcb_xkb_indicator_map_t
# ##
# type
# xcb_xkb_indicator_map_t* {.bycopy.} = object
# flags*: uint8
# whichGroups*: uint8
# groups*: uint8
# whichMods*: uint8
# mods*: uint8
# realMods*: uint8
# vmods*: uint16
# ctrls*: uint32
# ## *
# ## @brief xcb_xkb_indicator_map_iterator_t
# ##
# type
# xcb_xkb_indicator_map_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_indicator_map_t
# rem*: cint
# index*: cint
# xcb_xkb_cm_detail_t* = enum
# XCB_XKB_CM_DETAIL_SYM_INTERP = 1, XCB_XKB_CM_DETAIL_GROUP_COMPAT = 2
# xcb_xkb_name_detail_t* = enum
# XCB_XKB_NAME_DETAIL_KEYCODES = 1, XCB_XKB_NAME_DETAIL_GEOMETRY = 2,
# XCB_XKB_NAME_DETAIL_SYMBOLS = 4, XCB_XKB_NAME_DETAIL_PHYS_SYMBOLS = 8,
# XCB_XKB_NAME_DETAIL_TYPES = 16, XCB_XKB_NAME_DETAIL_COMPAT = 32,
# XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES = 64,
# XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES = 128,
# XCB_XKB_NAME_DETAIL_INDICATOR_NAMES = 256, XCB_XKB_NAME_DETAIL_KEY_NAMES = 512,
# XCB_XKB_NAME_DETAIL_KEY_ALIASES = 1024,
# XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES = 2048,
# XCB_XKB_NAME_DETAIL_GROUP_NAMES = 4096, XCB_XKB_NAME_DETAIL_RG_NAMES = 8192
# xcb_xkb_gbn_detail_t* = enum
# XCB_XKB_GBN_DETAIL_TYPES = 1, XCB_XKB_GBN_DETAIL_COMPAT_MAP = 2,
# XCB_XKB_GBN_DETAIL_CLIENT_SYMBOLS = 4, XCB_XKB_GBN_DETAIL_SERVER_SYMBOLS = 8,
# XCB_XKB_GBN_DETAIL_INDICATOR_MAPS = 16, XCB_XKB_GBN_DETAIL_KEY_NAMES = 32,
# XCB_XKB_GBN_DETAIL_GEOMETRY = 64, XCB_XKB_GBN_DETAIL_OTHER_NAMES = 128
# xcb_xkb_xi_feature_t* = enum
# XCB_XKB_XI_FEATURE_KEYBOARDS = 1, XCB_XKB_XI_FEATURE_BUTTON_ACTIONS = 2,
# XCB_XKB_XI_FEATURE_INDICATOR_NAMES = 4, XCB_XKB_XI_FEATURE_INDICATOR_MAPS = 8,
# XCB_XKB_XI_FEATURE_INDICATOR_STATE = 16
# xcb_xkb_per_client_flag_t* = enum
# XCB_XKB_PER_CLIENT_FLAG_DETECTABLE_AUTO_REPEAT = 1,
# XCB_XKB_PER_CLIENT_FLAG_GRABS_USE_XKB_STATE = 2,
# XCB_XKB_PER_CLIENT_FLAG_AUTO_RESET_CONTROLS = 4,
# XCB_XKB_PER_CLIENT_FLAG_LOOKUP_STATE_WHEN_GRABBED = 8,
# XCB_XKB_PER_CLIENT_FLAG_SEND_EVENT_USES_XKB_STATE = 16
# ## *
# ## @brief xcb_xkb_mod_def_t
# ##
# type
# xcb_xkb_mod_def_t* {.bycopy.} = object
# mask*: uint8
# realMods*: uint8
# vmods*: uint16
# ## *
# ## @brief xcb_xkb_mod_def_iterator_t
# ##
# type
# xcb_xkb_mod_def_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_mod_def_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_key_name_t
# ##
# type
# xcb_xkb_key_name_t* {.bycopy.} = object
# name*: array[4, char]
# ## *
# ## @brief xcb_xkb_key_name_iterator_t
# ##
# type
# xcb_xkb_key_name_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_key_name_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_key_alias_t
# ##
# type
# xcb_xkb_key_alias_t* {.bycopy.} = object
# real*: array[4, char]
# alias*: array[4, char]
# ## *
# ## @brief xcb_xkb_key_alias_iterator_t
# ##
# type
# xcb_xkb_key_alias_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_key_alias_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_counted_string_16_t
# ##
# type
# xcb_xkb_counted_string_16_t* {.bycopy.} = object
# length*: uint16
# ## *
# ## @brief xcb_xkb_counted_string_16_iterator_t
# ##
# type
# xcb_xkb_counted_string_16_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_counted_string_16_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_kt_map_entry_t
# ##
# type
# xcb_xkb_kt_map_entry_t* {.bycopy.} = object
# active*: uint8
# mods_mask*: uint8
# level*: uint8
# mods_mods*: uint8
# mods_vmods*: uint16
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_xkb_kt_map_entry_iterator_t
# ##
# type
# xcb_xkb_kt_map_entry_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_kt_map_entry_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_key_type_t
# ##
# type
# xcb_xkb_key_type_t* {.bycopy.} = object
# mods_mask*: uint8
# mods_mods*: uint8
# mods_vmods*: uint16
# numLevels*: uint8
# nMapEntries*: uint8
# hasPreserve*: uint8
# pad0*: uint8
# ## *
# ## @brief xcb_xkb_key_type_iterator_t
# ##
# type
# xcb_xkb_key_type_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_key_type_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_key_sym_map_t
# ##
# type
# xcb_xkb_key_sym_map_t* {.bycopy.} = object
# kt_index*: array[4, uint8]
# groupInfo*: uint8
# width*: uint8
# nSyms*: uint16
# ## *
# ## @brief xcb_xkb_key_sym_map_iterator_t
# ##
# type
# xcb_xkb_key_sym_map_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_key_sym_map_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_common_behavior_t
# ##
# type
# xcb_xkb_common_behavior_t* {.bycopy.} = object
# `type`*: uint8
# data*: uint8
# ## *
# ## @brief xcb_xkb_common_behavior_iterator_t
# ##
# type
# xcb_xkb_common_behavior_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_common_behavior_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_default_behavior_t
# ##
# type
# xcb_xkb_default_behavior_t* {.bycopy.} = object
# `type`*: uint8
# pad0*: uint8
# ## *
# ## @brief xcb_xkb_default_behavior_iterator_t
# ##
# type
# xcb_xkb_default_behavior_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_default_behavior_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_lock_behavior_t
# ##
# type
# xcb_xkb_lock_behavior_t* {.bycopy.} = object
# `type`*: uint8
# pad0*: uint8
# ## *
# ## @brief xcb_xkb_lock_behavior_iterator_t
# ##
# type
# xcb_xkb_lock_behavior_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_lock_behavior_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_radio_group_behavior_t
# ##
# type
# xcb_xkb_radio_group_behavior_t* {.bycopy.} = object
# `type`*: uint8
# group*: uint8
# ## *
# ## @brief xcb_xkb_radio_group_behavior_iterator_t
# ##
# type
# xcb_xkb_radio_group_behavior_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_radio_group_behavior_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_overlay_behavior_t
# ##
# type
# xcb_xkb_overlay_behavior_t* {.bycopy.} = object
# `type`*: uint8
# key*: xcb_keycode_t
# ## *
# ## @brief xcb_xkb_overlay_behavior_iterator_t
# ##
# type
# xcb_xkb_overlay_behavior_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_overlay_behavior_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_permament_lock_behavior_t
# ##
# type
# xcb_xkb_permament_lock_behavior_t* {.bycopy.} = object
# `type`*: uint8
# pad0*: uint8
# ## *
# ## @brief xcb_xkb_permament_lock_behavior_iterator_t
# ##
# type
# xcb_xkb_permament_lock_behavior_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_permament_lock_behavior_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_permament_radio_group_behavior_t
# ##
# type
# xcb_xkb_permament_radio_group_behavior_t* {.bycopy.} = object
# `type`*: uint8
# group*: uint8
# ## *
# ## @brief xcb_xkb_permament_radio_group_behavior_iterator_t
# ##
# type
# xcb_xkb_permament_radio_group_behavior_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_permament_radio_group_behavior_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_permament_overlay_behavior_t
# ##
# type
# xcb_xkb_permament_overlay_behavior_t* {.bycopy.} = object
# `type`*: uint8
# key*: xcb_keycode_t
# ## *
# ## @brief xcb_xkb_permament_overlay_behavior_iterator_t
# ##
# type
# xcb_xkb_permament_overlay_behavior_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_permament_overlay_behavior_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_behavior_t
# ##
# type
# xcb_xkb_behavior_t* {.bycopy.} = object {.union.}
# common*: xcb_xkb_common_behavior_t
# _default*: xcb_xkb_default_behavior_t
# lock*: xcb_xkb_lock_behavior_t
# radioGroup*: xcb_xkb_radio_group_behavior_t
# overlay1*: xcb_xkb_overlay_behavior_t
# overlay2*: xcb_xkb_overlay_behavior_t
# permamentLock*: xcb_xkb_permament_lock_behavior_t
# permamentRadioGroup*: xcb_xkb_permament_radio_group_behavior_t
# permamentOverlay1*: xcb_xkb_permament_overlay_behavior_t
# permamentOverlay2*: xcb_xkb_permament_overlay_behavior_t
# `type`*: uint8
# ## *
# ## @brief xcb_xkb_behavior_iterator_t
# ##
# type
# xcb_xkb_behavior_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_behavior_t
# rem*: cint
# index*: cint
# xcb_xkb_behavior_type_t* = enum
# XCB_XKB_BEHAVIOR_TYPE_DEFAULT = 0, XCB_XKB_BEHAVIOR_TYPE_LOCK = 1,
# XCB_XKB_BEHAVIOR_TYPE_RADIO_GROUP = 2, XCB_XKB_BEHAVIOR_TYPE_OVERLAY_1 = 3,
# XCB_XKB_BEHAVIOR_TYPE_OVERLAY_2 = 4,
# XCB_XKB_BEHAVIOR_TYPE_PERMAMENT_LOCK = 129,
# XCB_XKB_BEHAVIOR_TYPE_PERMAMENT_RADIO_GROUP = 130,
# XCB_XKB_BEHAVIOR_TYPE_PERMAMENT_OVERLAY_1 = 131,
# XCB_XKB_BEHAVIOR_TYPE_PERMAMENT_OVERLAY_2 = 132
# ## *
# ## @brief xcb_xkb_set_behavior_t
# ##
# type
# xcb_xkb_set_behavior_t* {.bycopy.} = object
# keycode*: xcb_keycode_t
# behavior*: xcb_xkb_behavior_t
# pad0*: uint8
# ## *
# ## @brief xcb_xkb_set_behavior_iterator_t
# ##
# type
# xcb_xkb_set_behavior_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_set_behavior_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_set_explicit_t
# ##
# type
# xcb_xkb_set_explicit_t* {.bycopy.} = object
# keycode*: xcb_keycode_t
# explicit*: uint8
# ## *
# ## @brief xcb_xkb_set_explicit_iterator_t
# ##
# type
# xcb_xkb_set_explicit_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_set_explicit_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_key_mod_map_t
# ##
# type
# xcb_xkb_key_mod_map_t* {.bycopy.} = object
# keycode*: xcb_keycode_t
# mods*: uint8
# ## *
# ## @brief xcb_xkb_key_mod_map_iterator_t
# ##
# type
# xcb_xkb_key_mod_map_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_key_mod_map_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_key_v_mod_map_t
# ##
# type
# xcb_xkb_key_v_mod_map_t* {.bycopy.} = object
# keycode*: xcb_keycode_t
# pad0*: uint8
# vmods*: uint16
# ## *
# ## @brief xcb_xkb_key_v_mod_map_iterator_t
# ##
# type
# xcb_xkb_key_v_mod_map_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_key_v_mod_map_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_kt_set_map_entry_t
# ##
# type
# xcb_xkb_kt_set_map_entry_t* {.bycopy.} = object
# level*: uint8
# realMods*: uint8
# virtualMods*: uint16
# ## *
# ## @brief xcb_xkb_kt_set_map_entry_iterator_t
# ##
# type
# xcb_xkb_kt_set_map_entry_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_kt_set_map_entry_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_set_key_type_t
# ##
# type
# xcb_xkb_set_key_type_t* {.bycopy.} = object
# mask*: uint8
# realMods*: uint8
# virtualMods*: uint16
# numLevels*: uint8
# nMapEntries*: uint8
# preserve*: uint8
# pad0*: uint8
# ## *
# ## @brief xcb_xkb_set_key_type_iterator_t
# ##
# type
# xcb_xkb_set_key_type_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_set_key_type_t
# rem*: cint
# index*: cint
# xcb_xkb_string8_t* = char
# ## *
# ## @brief xcb_xkb_string8_iterator_t
# ##
# type
# xcb_xkb_string8_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_string8_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_outline_t
# ##
# type
# xcb_xkb_outline_t* {.bycopy.} = object
# nPoints*: uint8
# cornerRadius*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_xkb_outline_iterator_t
# ##
# type
# xcb_xkb_outline_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_outline_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_shape_t
# ##
# type
# xcb_xkb_shape_t* {.bycopy.} = object
# name*: xcb_atom_t
# nOutlines*: uint8
# primaryNdx*: uint8
# approxNdx*: uint8
# pad0*: uint8
# ## *
# ## @brief xcb_xkb_shape_iterator_t
# ##
# type
# xcb_xkb_shape_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_shape_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_key_t
# ##
# type
# xcb_xkb_key_t* {.bycopy.} = object
# name*: array[4, xcb_xkb_string8_t]
# gap*: int16
# shapeNdx*: uint8
# colorNdx*: uint8
# ## *
# ## @brief xcb_xkb_key_iterator_t
# ##
# type
# xcb_xkb_key_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_key_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_overlay_key_t
# ##
# type
# xcb_xkb_overlay_key_t* {.bycopy.} = object
# over*: array[4, xcb_xkb_string8_t]
# under*: array[4, xcb_xkb_string8_t]
# ## *
# ## @brief xcb_xkb_overlay_key_iterator_t
# ##
# type
# xcb_xkb_overlay_key_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_overlay_key_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_overlay_row_t
# ##
# type
# xcb_xkb_overlay_row_t* {.bycopy.} = object
# rowUnder*: uint8
# nKeys*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_xkb_overlay_row_iterator_t
# ##
# type
# xcb_xkb_overlay_row_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_overlay_row_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_overlay_t
# ##
# type
# xcb_xkb_overlay_t* {.bycopy.} = object
# name*: xcb_atom_t
# nRows*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_xkb_overlay_iterator_t
# ##
# type
# xcb_xkb_overlay_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_overlay_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_row_t
# ##
# type
# xcb_xkb_row_t* {.bycopy.} = object
# top*: int16
# left*: int16
# nKeys*: uint8
# vertical*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_xkb_row_iterator_t
# ##
# type
# xcb_xkb_row_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_row_t
# rem*: cint
# index*: cint
# xcb_xkb_doodad_type_t* = enum
# XCB_XKB_DOODAD_TYPE_OUTLINE = 1, XCB_XKB_DOODAD_TYPE_SOLID = 2,
# XCB_XKB_DOODAD_TYPE_TEXT = 3, XCB_XKB_DOODAD_TYPE_INDICATOR = 4,
# XCB_XKB_DOODAD_TYPE_LOGO = 5
# ## *
# ## @brief xcb_xkb_listing_t
# ##
# type
# xcb_xkb_listing_t* {.bycopy.} = object
# flags*: uint16
# length*: uint16
# ## *
# ## @brief xcb_xkb_listing_iterator_t
# ##
# type
# xcb_xkb_listing_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_listing_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_device_led_info_t
# ##
# type
# xcb_xkb_device_led_info_t* {.bycopy.} = object
# ledClass*: xcb_xkb_led_class_spec_t
# ledID*: xcb_xkb_id_spec_t
# namesPresent*: uint32
# mapsPresent*: uint32
# physIndicators*: uint32
# state*: uint32
# ## *
# ## @brief xcb_xkb_device_led_info_iterator_t
# ##
# type
# xcb_xkb_device_led_info_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_device_led_info_t
# rem*: cint
# index*: cint
# xcb_xkb_error_t* = enum
# XCB_XKB_ERROR_BAD_ID = 253, XCB_XKB_ERROR_BAD_CLASS = 254,
# XCB_XKB_ERROR_BAD_DEVICE = 255
# ## * Opcode for xcb_xkb_keyboard.
# const
# XCB_XKB_KEYBOARD* = 0
# ## *
# ## @brief xcb_xkb_keyboard_error_t
# ##
# type
# xcb_xkb_keyboard_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# value*: uint32
# minorOpcode*: uint16
# majorOpcode*: uint8
# pad0*: array[21, uint8]
# xcb_xkb_sa_t* = enum
# XCB_XKB_SA_CLEAR_LOCKS = 1, XCB_XKB_SA_LATCH_TO_LOCK = 2,
# XCB_XKB_SA_USE_MOD_MAP_MODS = 4
# xcb_xkb_sa_type_t* = enum
# XCB_XKB_SA_TYPE_NO_ACTION = 0, XCB_XKB_SA_TYPE_SET_MODS = 1,
# XCB_XKB_SA_TYPE_LATCH_MODS = 2, XCB_XKB_SA_TYPE_LOCK_MODS = 3,
# XCB_XKB_SA_TYPE_SET_GROUP = 4, XCB_XKB_SA_TYPE_LATCH_GROUP = 5,
# XCB_XKB_SA_TYPE_LOCK_GROUP = 6, XCB_XKB_SA_TYPE_MOVE_PTR = 7,
# XCB_XKB_SA_TYPE_PTR_BTN = 8, XCB_XKB_SA_TYPE_LOCK_PTR_BTN = 9,
# XCB_XKB_SA_TYPE_SET_PTR_DFLT = 10, XCB_XKB_SA_TYPE_ISO_LOCK = 11,
# XCB_XKB_SA_TYPE_TERMINATE = 12, XCB_XKB_SA_TYPE_SWITCH_SCREEN = 13,
# XCB_XKB_SA_TYPE_SET_CONTROLS = 14, XCB_XKB_SA_TYPE_LOCK_CONTROLS = 15,
# XCB_XKB_SA_TYPE_ACTION_MESSAGE = 16, XCB_XKB_SA_TYPE_REDIRECT_KEY = 17,
# XCB_XKB_SA_TYPE_DEVICE_BTN = 18, XCB_XKB_SA_TYPE_LOCK_DEVICE_BTN = 19,
# XCB_XKB_SA_TYPE_DEVICE_VALUATOR = 20
# const
# XCB_XKB_SA_GROUP_ABSOLUTE = XCB_XKB_SA_USE_MOD_MAP_MODS
# ## *
# ## @brief xcb_xkb_sa_no_action_t
# ##
# type
# xcb_xkb_sa_no_action_t* {.bycopy.} = object
# `type`*: uint8
# pad0*: array[7, uint8]
# ## *
# ## @brief xcb_xkb_sa_no_action_iterator_t
# ##
# type
# xcb_xkb_sa_no_action_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_sa_no_action_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_sa_set_mods_t
# ##
# type
# xcb_xkb_sa_set_mods_t* {.bycopy.} = object
# `type`*: uint8
# flags*: uint8
# mask*: uint8
# realMods*: uint8
# vmodsHigh*: uint8
# vmodsLow*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_xkb_sa_set_mods_iterator_t
# ##
# type
# xcb_xkb_sa_set_mods_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_sa_set_mods_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_sa_latch_mods_t
# ##
# type
# xcb_xkb_sa_latch_mods_t* {.bycopy.} = object
# `type`*: uint8
# flags*: uint8
# mask*: uint8
# realMods*: uint8
# vmodsHigh*: uint8
# vmodsLow*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_xkb_sa_latch_mods_iterator_t
# ##
# type
# xcb_xkb_sa_latch_mods_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_sa_latch_mods_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_sa_lock_mods_t
# ##
# type
# xcb_xkb_sa_lock_mods_t* {.bycopy.} = object
# `type`*: uint8
# flags*: uint8
# mask*: uint8
# realMods*: uint8
# vmodsHigh*: uint8
# vmodsLow*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_xkb_sa_lock_mods_iterator_t
# ##
# type
# xcb_xkb_sa_lock_mods_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_sa_lock_mods_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_sa_set_group_t
# ##
# type
# xcb_xkb_sa_set_group_t* {.bycopy.} = object
# `type`*: uint8
# flags*: uint8
# group*: int8
# pad0*: array[5, uint8]
# ## *
# ## @brief xcb_xkb_sa_set_group_iterator_t
# ##
# type
# xcb_xkb_sa_set_group_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_sa_set_group_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_sa_latch_group_t
# ##
# type
# xcb_xkb_sa_latch_group_t* {.bycopy.} = object
# `type`*: uint8
# flags*: uint8
# group*: int8
# pad0*: array[5, uint8]
# ## *
# ## @brief xcb_xkb_sa_latch_group_iterator_t
# ##
# type
# xcb_xkb_sa_latch_group_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_sa_latch_group_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_sa_lock_group_t
# ##
# type
# xcb_xkb_sa_lock_group_t* {.bycopy.} = object
# `type`*: uint8
# flags*: uint8
# group*: int8
# pad0*: array[5, uint8]
# ## *
# ## @brief xcb_xkb_sa_lock_group_iterator_t
# ##
# type
# xcb_xkb_sa_lock_group_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_sa_lock_group_t
# rem*: cint
# index*: cint
# xcb_xkb_sa_move_ptr_flag_t* = enum
# XCB_XKB_SA_MOVE_PTR_FLAG_NO_ACCELERATION = 1,
# XCB_XKB_SA_MOVE_PTR_FLAG_MOVE_ABSOLUTE_X = 2,
# XCB_XKB_SA_MOVE_PTR_FLAG_MOVE_ABSOLUTE_Y = 4
# ## *
# ## @brief xcb_xkb_sa_move_ptr_t
# ##
# type
# xcb_xkb_sa_move_ptr_t* {.bycopy.} = object
# `type`*: uint8
# flags*: uint8
# xHigh*: int8
# xLow*: uint8
# yHigh*: int8
# yLow*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_xkb_sa_move_ptr_iterator_t
# ##
# type
# xcb_xkb_sa_move_ptr_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_sa_move_ptr_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_sa_ptr_btn_t
# ##
# type
# xcb_xkb_sa_ptr_btn_t* {.bycopy.} = object
# `type`*: uint8
# flags*: uint8
# count*: uint8
# button*: uint8
# pad0*: array[4, uint8]
# ## *
# ## @brief xcb_xkb_sa_ptr_btn_iterator_t
# ##
# type
# xcb_xkb_sa_ptr_btn_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_sa_ptr_btn_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_sa_lock_ptr_btn_t
# ##
# type
# xcb_xkb_sa_lock_ptr_btn_t* {.bycopy.} = object
# `type`*: uint8
# flags*: uint8
# pad0*: uint8
# button*: uint8
# pad1*: array[4, uint8]
# ## *
# ## @brief xcb_xkb_sa_lock_ptr_btn_iterator_t
# ##
# type
# xcb_xkb_sa_lock_ptr_btn_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_sa_lock_ptr_btn_t
# rem*: cint
# index*: cint
# xcb_xkb_sa_set_ptr_dflt_flag_t* = enum
# XCB_XKB_SA_SET_PTR_DFLT_FLAG_AFFECT_DFLT_BUTTON = 1,
# XCB_XKB_SA_SET_PTR_DFLT_FLAG_DFLT_BTN_ABSOLUTE = 4
# ## *
# ## @brief xcb_xkb_sa_set_ptr_dflt_t
# ##
# type
# xcb_xkb_sa_set_ptr_dflt_t* {.bycopy.} = object
# `type`*: uint8
# flags*: uint8
# affect*: uint8
# value*: int8
# pad0*: array[4, uint8]
# ## *
# ## @brief xcb_xkb_sa_set_ptr_dflt_iterator_t
# ##
# type
# xcb_xkb_sa_set_ptr_dflt_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_sa_set_ptr_dflt_t
# rem*: cint
# index*: cint
# xcb_xkb_sa_iso_lock_flag_t* = enum
# XCB_XKB_SA_ISO_LOCK_FLAG_NO_LOCK = 1, XCB_XKB_SA_ISO_LOCK_FLAG_NO_UNLOCK = 2,
# XCB_XKB_SA_ISO_LOCK_FLAG_USE_MOD_MAP_MODS = 4,
# XCB_XKB_SA_ISO_LOCK_FLAG_ISO_DFLT_IS_GROUP = 8
# xcb_xkb_sa_iso_lock_no_affect_t* = enum
# XCB_XKB_SA_ISO_LOCK_NO_AFFECT_CTRLS = 8,
# XCB_XKB_SA_ISO_LOCK_NO_AFFECT_PTR = 16,
# XCB_XKB_SA_ISO_LOCK_NO_AFFECT_GROUP = 32,
# XCB_XKB_SA_ISO_LOCK_NO_AFFECT_MODS = 64
# const
# XCB_XKB_SA_ISO_LOCK_FLAG_GROUP_ABSOLUTE = XCB_XKB_SA_ISO_LOCK_FLAG_USE_MOD_MAP_MODS
# ## *
# ## @brief xcb_xkb_sa_iso_lock_t
# ##
# type
# xcb_xkb_sa_iso_lock_t* {.bycopy.} = object
# `type`*: uint8
# flags*: uint8
# mask*: uint8
# realMods*: uint8
# group*: int8
# affect*: uint8
# vmodsHigh*: uint8
# vmodsLow*: uint8
# ## *
# ## @brief xcb_xkb_sa_iso_lock_iterator_t
# ##
# type
# xcb_xkb_sa_iso_lock_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_sa_iso_lock_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_sa_terminate_t
# ##
# type
# xcb_xkb_sa_terminate_t* {.bycopy.} = object
# `type`*: uint8
# pad0*: array[7, uint8]
# ## *
# ## @brief xcb_xkb_sa_terminate_iterator_t
# ##
# type
# xcb_xkb_sa_terminate_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_sa_terminate_t
# rem*: cint
# index*: cint
# xcb_xkb_switch_screen_flag_t* = enum
# XCB_XKB_SWITCH_SCREEN_FLAG_APPLICATION = 1,
# XCB_XKB_SWITCH_SCREEN_FLAG_ABSOLUTE = 4
# ## *
# ## @brief xcb_xkb_sa_switch_screen_t
# ##
# type
# xcb_xkb_sa_switch_screen_t* {.bycopy.} = object
# `type`*: uint8
# flags*: uint8
# newScreen*: int8
# pad0*: array[5, uint8]
# ## *
# ## @brief xcb_xkb_sa_switch_screen_iterator_t
# ##
# type
# xcb_xkb_sa_switch_screen_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_sa_switch_screen_t
# rem*: cint
# index*: cint
# xcb_xkb_bool_ctrls_high_t* = enum
# XCB_XKB_BOOL_CTRLS_HIGH_ACCESS_X_FEEDBACK = 1,
# XCB_XKB_BOOL_CTRLS_HIGH_AUDIBLE_BELL = 2,
# XCB_XKB_BOOL_CTRLS_HIGH_OVERLAY_1 = 4, XCB_XKB_BOOL_CTRLS_HIGH_OVERLAY_2 = 8,
# XCB_XKB_BOOL_CTRLS_HIGH_IGNORE_GROUP_LOCK = 16
# xcb_xkb_bool_ctrls_low_t* = enum
# XCB_XKB_BOOL_CTRLS_LOW_REPEAT_KEYS = 1, XCB_XKB_BOOL_CTRLS_LOW_SLOW_KEYS = 2,
# XCB_XKB_BOOL_CTRLS_LOW_BOUNCE_KEYS = 4, XCB_XKB_BOOL_CTRLS_LOW_STICKY_KEYS = 8,
# XCB_XKB_BOOL_CTRLS_LOW_MOUSE_KEYS = 16,
# XCB_XKB_BOOL_CTRLS_LOW_MOUSE_KEYS_ACCEL = 32,
# XCB_XKB_BOOL_CTRLS_LOW_ACCESS_X_KEYS = 64,
# XCB_XKB_BOOL_CTRLS_LOW_ACCESS_X_TIMEOUT = 128
# ## *
# ## @brief xcb_xkb_sa_set_controls_t
# ##
# type
# xcb_xkb_sa_set_controls_t* {.bycopy.} = object
# `type`*: uint8
# pad0*: array[3, uint8]
# boolCtrlsHigh*: uint8
# boolCtrlsLow*: uint8
# pad1*: array[2, uint8]
# ## *
# ## @brief xcb_xkb_sa_set_controls_iterator_t
# ##
# type
# xcb_xkb_sa_set_controls_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_sa_set_controls_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_sa_lock_controls_t
# ##
# type
# xcb_xkb_sa_lock_controls_t* {.bycopy.} = object
# `type`*: uint8
# pad0*: array[3, uint8]
# boolCtrlsHigh*: uint8
# boolCtrlsLow*: uint8
# pad1*: array[2, uint8]
# ## *
# ## @brief xcb_xkb_sa_lock_controls_iterator_t
# ##
# type
# xcb_xkb_sa_lock_controls_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_sa_lock_controls_t
# rem*: cint
# index*: cint
# xcb_xkb_action_message_flag_t* = enum
# XCB_XKB_ACTION_MESSAGE_FLAG_ON_PRESS = 1,
# XCB_XKB_ACTION_MESSAGE_FLAG_ON_RELEASE = 2,
# XCB_XKB_ACTION_MESSAGE_FLAG_GEN_KEY_EVENT = 4
# ## *
# ## @brief xcb_xkb_sa_action_message_t
# ##
# type
# xcb_xkb_sa_action_message_t* {.bycopy.} = object
# `type`*: uint8
# flags*: uint8
# message*: array[6, uint8]
# ## *
# ## @brief xcb_xkb_sa_action_message_iterator_t
# ##
# type
# xcb_xkb_sa_action_message_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_sa_action_message_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_sa_redirect_key_t
# ##
# type
# xcb_xkb_sa_redirect_key_t* {.bycopy.} = object
# `type`*: uint8
# newkey*: xcb_keycode_t
# mask*: uint8
# realModifiers*: uint8
# vmodsMaskHigh*: uint8
# vmodsMaskLow*: uint8
# vmodsHigh*: uint8
# vmodsLow*: uint8
# ## *
# ## @brief xcb_xkb_sa_redirect_key_iterator_t
# ##
# type
# xcb_xkb_sa_redirect_key_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_sa_redirect_key_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_sa_device_btn_t
# ##
# type
# xcb_xkb_sa_device_btn_t* {.bycopy.} = object
# `type`*: uint8
# flags*: uint8
# count*: uint8
# button*: uint8
# device*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_xkb_sa_device_btn_iterator_t
# ##
# type
# xcb_xkb_sa_device_btn_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_sa_device_btn_t
# rem*: cint
# index*: cint
# xcb_xkb_lock_device_flags_t* = enum
# XCB_XKB_LOCK_DEVICE_FLAGS_NO_LOCK = 1, XCB_XKB_LOCK_DEVICE_FLAGS_NO_UNLOCK = 2
# ## *
# ## @brief xcb_xkb_sa_lock_device_btn_t
# ##
# type
# xcb_xkb_sa_lock_device_btn_t* {.bycopy.} = object
# `type`*: uint8
# flags*: uint8
# pad0*: uint8
# button*: uint8
# device*: uint8
# pad1*: array[3, uint8]
# ## *
# ## @brief xcb_xkb_sa_lock_device_btn_iterator_t
# ##
# type
# xcb_xkb_sa_lock_device_btn_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_sa_lock_device_btn_t
# rem*: cint
# index*: cint
# xcb_xkb_sa_val_what_t* = enum
# XCB_XKB_SA_VAL_WHAT_IGNORE_VAL = 0, XCB_XKB_SA_VAL_WHAT_SET_VAL_MIN = 1,
# XCB_XKB_SA_VAL_WHAT_SET_VAL_CENTER = 2, XCB_XKB_SA_VAL_WHAT_SET_VAL_MAX = 3,
# XCB_XKB_SA_VAL_WHAT_SET_VAL_RELATIVE = 4,
# XCB_XKB_SA_VAL_WHAT_SET_VAL_ABSOLUTE = 5
# ## *
# ## @brief xcb_xkb_sa_device_valuator_t
# ##
# type
# xcb_xkb_sa_device_valuator_t* {.bycopy.} = object
# `type`*: uint8
# device*: uint8
# val1what*: uint8
# val1index*: uint8
# val1value*: uint8
# val2what*: uint8
# val2index*: uint8
# val2value*: uint8
# ## *
# ## @brief xcb_xkb_sa_device_valuator_iterator_t
# ##
# type
# xcb_xkb_sa_device_valuator_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_sa_device_valuator_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_si_action_t
# ##
# type
# xcb_xkb_si_action_t* {.bycopy.} = object
# `type`*: uint8
# data*: array[7, uint8]
# ## *
# ## @brief xcb_xkb_si_action_iterator_t
# ##
# type
# xcb_xkb_si_action_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_si_action_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_sym_interpret_t
# ##
# type
# xcb_xkb_sym_interpret_t* {.bycopy.} = object
# sym*: xcb_keysym_t
# mods*: uint8
# match*: uint8
# virtualMod*: uint8
# flags*: uint8
# action*: xcb_xkb_si_action_t
# ## *
# ## @brief xcb_xkb_sym_interpret_iterator_t
# ##
# type
# xcb_xkb_sym_interpret_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_sym_interpret_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_action_t
# ##
# type
# xcb_xkb_action_t* {.bycopy.} = object {.union.}
# noaction*: xcb_xkb_sa_no_action_t
# setmods*: xcb_xkb_sa_set_mods_t
# latchmods*: xcb_xkb_sa_latch_mods_t
# lockmods*: xcb_xkb_sa_lock_mods_t
# setgroup*: xcb_xkb_sa_set_group_t
# latchgroup*: xcb_xkb_sa_latch_group_t
# lockgroup*: xcb_xkb_sa_lock_group_t
# moveptr*: xcb_xkb_sa_move_ptr_t
# ptrbtn*: xcb_xkb_sa_ptr_btn_t
# lockptrbtn*: xcb_xkb_sa_lock_ptr_btn_t
# setptrdflt*: xcb_xkb_sa_set_ptr_dflt_t
# isolock*: xcb_xkb_sa_iso_lock_t
# terminate*: xcb_xkb_sa_terminate_t
# switchscreen*: xcb_xkb_sa_switch_screen_t
# setcontrols*: xcb_xkb_sa_set_controls_t
# lockcontrols*: xcb_xkb_sa_lock_controls_t
# message*: xcb_xkb_sa_action_message_t
# redirect*: xcb_xkb_sa_redirect_key_t
# devbtn*: xcb_xkb_sa_device_btn_t
# lockdevbtn*: xcb_xkb_sa_lock_device_btn_t
# devval*: xcb_xkb_sa_device_valuator_t
# `type`*: uint8
# ## *
# ## @brief xcb_xkb_action_iterator_t
# ##
# type
# xcb_xkb_action_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xkb_action_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xkb_use_extension_cookie_t
# ##
# type
# xcb_xkb_use_extension_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xkb_use_extension.
# const
# XCB_XKB_USE_EXTENSION* = 0
# ## *
# ## @brief xcb_xkb_use_extension_request_t
# ##
# type
# xcb_xkb_use_extension_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# wantedMajor*: uint16
# wantedMinor*: uint16
# ## *
# ## @brief xcb_xkb_use_extension_reply_t
# ##
# type
# xcb_xkb_use_extension_reply_t* {.bycopy.} = object
# response_type*: uint8
# supported*: uint8
# sequence*: uint16
# length*: uint32
# serverMajor*: uint16
# serverMinor*: uint16
# pad0*: array[20, uint8]
# ## *
# ## @brief xcb_xkb_select_events_details_t
# ##
# type
# xcb_xkb_select_events_details_t* {.bycopy.} = object
# affectNewKeyboard*: uint16
# newKeyboardDetails*: uint16
# affectState*: uint16
# stateDetails*: uint16
# affectCtrls*: uint32
# ctrlDetails*: uint32
# affectIndicatorState*: uint32
# indicatorStateDetails*: uint32
# affectIndicatorMap*: uint32
# indicatorMapDetails*: uint32
# affectNames*: uint16
# namesDetails*: uint16
# affectCompat*: uint8
# compatDetails*: uint8
# affectBell*: uint8
# bellDetails*: uint8
# affectMsgDetails*: uint8
# msgDetails*: uint8
# affectAccessX*: uint16
# accessXDetails*: uint16
# affectExtDev*: uint16
# extdevDetails*: uint16
# ## * Opcode for xcb_xkb_select_events.
# const
# XCB_XKB_SELECT_EVENTS* = 1
# ## *
# ## @brief xcb_xkb_select_events_request_t
# ##
# type
# xcb_xkb_select_events_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceSpec*: xcb_xkb_device_spec_t
# affectWhich*: uint16
# clear*: uint16
# selectAll*: uint16
# affectMap*: uint16
# map*: uint16
# ## * Opcode for xcb_xkb_bell.
# const
# XCB_XKB_BELL* = 3
# ## *
# ## @brief xcb_xkb_bell_request_t
# ##
# type
# xcb_xkb_bell_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceSpec*: xcb_xkb_device_spec_t
# bellClass*: xcb_xkb_bell_class_spec_t
# bellID*: xcb_xkb_id_spec_t
# percent*: int8
# forceSound*: uint8
# eventOnly*: uint8
# pad0*: uint8
# pitch*: int16
# duration*: int16
# pad1*: array[2, uint8]
# name*: xcb_atom_t
# window*: xcb_window_t
# ## *
# ## @brief xcb_xkb_get_state_cookie_t
# ##
# type
# xcb_xkb_get_state_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xkb_get_state.
# const
# XCB_XKB_GET_STATE* = 4
# ## *
# ## @brief xcb_xkb_get_state_request_t
# ##
# type
# xcb_xkb_get_state_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceSpec*: xcb_xkb_device_spec_t
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_xkb_get_state_reply_t
# ##
# type
# xcb_xkb_get_state_reply_t* {.bycopy.} = object
# response_type*: uint8
# deviceID*: uint8
# sequence*: uint16
# length*: uint32
# mods*: uint8
# baseMods*: uint8
# latchedMods*: uint8
# lockedMods*: uint8
# group*: uint8
# lockedGroup*: uint8
# baseGroup*: int16
# latchedGroup*: int16
# compatState*: uint8
# grabMods*: uint8
# compatGrabMods*: uint8
# lookupMods*: uint8
# compatLookupMods*: uint8
# pad0*: uint8
# ptrBtnState*: uint16
# pad1*: array[6, uint8]
# ## * Opcode for xcb_xkb_latch_lock_state.
# const
# XCB_XKB_LATCH_LOCK_STATE* = 5
# ## *
# ## @brief xcb_xkb_latch_lock_state_request_t
# ##
# type
# xcb_xkb_latch_lock_state_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceSpec*: xcb_xkb_device_spec_t
# affectModLocks*: uint8
# modLocks*: uint8
# lockGroup*: uint8
# groupLock*: uint8
# affectModLatches*: uint8
# pad0*: uint8
# pad1*: uint8
# latchGroup*: uint8
# groupLatch*: uint16
# ## *
# ## @brief xcb_xkb_get_controls_cookie_t
# ##
# type
# xcb_xkb_get_controls_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xkb_get_controls.
# const
# XCB_XKB_GET_CONTROLS* = 6
# ## *
# ## @brief xcb_xkb_get_controls_request_t
# ##
# type
# xcb_xkb_get_controls_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceSpec*: xcb_xkb_device_spec_t
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_xkb_get_controls_reply_t
# ##
# type
# xcb_xkb_get_controls_reply_t* {.bycopy.} = object
# response_type*: uint8
# deviceID*: uint8
# sequence*: uint16
# length*: uint32
# mouseKeysDfltBtn*: uint8
# numGroups*: uint8
# groupsWrap*: uint8
# internalModsMask*: uint8
# ignoreLockModsMask*: uint8
# internalModsRealMods*: uint8
# ignoreLockModsRealMods*: uint8
# pad0*: uint8
# internalModsVmods*: uint16
# ignoreLockModsVmods*: uint16
# repeatDelay*: uint16
# repeatInterval*: uint16
# slowKeysDelay*: uint16
# debounceDelay*: uint16
# mouseKeysDelay*: uint16
# mouseKeysInterval*: uint16
# mouseKeysTimeToMax*: uint16
# mouseKeysMaxSpeed*: uint16
# mouseKeysCurve*: int16
# accessXOption*: uint16
# accessXTimeout*: uint16
# accessXTimeoutOptionsMask*: uint16
# accessXTimeoutOptionsValues*: uint16
# pad1*: array[2, uint8]
# accessXTimeoutMask*: uint32
# accessXTimeoutValues*: uint32
# enabledControls*: uint32
# perKeyRepeat*: array[32, uint8]
# ## * Opcode for xcb_xkb_set_controls.
# const
# XCB_XKB_SET_CONTROLS* = 7
# ## *
# ## @brief xcb_xkb_set_controls_request_t
# ##
# type
# xcb_xkb_set_controls_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceSpec*: xcb_xkb_device_spec_t
# affectInternalRealMods*: uint8
# internalRealMods*: uint8
# affectIgnoreLockRealMods*: uint8
# ignoreLockRealMods*: uint8
# affectInternalVirtualMods*: uint16
# internalVirtualMods*: uint16
# affectIgnoreLockVirtualMods*: uint16
# ignoreLockVirtualMods*: uint16
# mouseKeysDfltBtn*: uint8
# groupsWrap*: uint8
# accessXOptions*: uint16
# pad0*: array[2, uint8]
# affectEnabledControls*: uint32
# enabledControls*: uint32
# changeControls*: uint32
# repeatDelay*: uint16
# repeatInterval*: uint16
# slowKeysDelay*: uint16
# debounceDelay*: uint16
# mouseKeysDelay*: uint16
# mouseKeysInterval*: uint16
# mouseKeysTimeToMax*: uint16
# mouseKeysMaxSpeed*: uint16
# mouseKeysCurve*: int16
# accessXTimeout*: uint16
# accessXTimeoutMask*: uint32
# accessXTimeoutValues*: uint32
# accessXTimeoutOptionsMask*: uint16
# accessXTimeoutOptionsValues*: uint16
# perKeyRepeat*: array[32, uint8]
# ## *
# ## @brief xcb_xkb_get_map_cookie_t
# ##
# type
# xcb_xkb_get_map_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xkb_get_map.
# const
# XCB_XKB_GET_MAP* = 8
# ## *
# ## @brief xcb_xkb_get_map_request_t
# ##
# type
# xcb_xkb_get_map_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceSpec*: xcb_xkb_device_spec_t
# full*: uint16
# partial*: uint16
# firstType*: uint8
# nTypes*: uint8
# firstKeySym*: xcb_keycode_t
# nKeySyms*: uint8
# firstKeyAction*: xcb_keycode_t
# nKeyActions*: uint8
# firstKeyBehavior*: xcb_keycode_t
# nKeyBehaviors*: uint8
# virtualMods*: uint16
# firstKeyExplicit*: xcb_keycode_t
# nKeyExplicit*: uint8
# firstModMapKey*: xcb_keycode_t
# nModMapKeys*: uint8
# firstVModMapKey*: xcb_keycode_t
# nVModMapKeys*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_xkb_get_map_map_t
# ##
# type
# xcb_xkb_get_map_map_t* {.bycopy.} = object
# types_rtrn*: ptr xcb_xkb_key_type_t
# syms_rtrn*: ptr xcb_xkb_key_sym_map_t
# acts_rtrn_count*: ptr uint8
# pad2*: ptr uint8
# acts_rtrn_acts*: ptr xcb_xkb_action_t
# behaviors_rtrn*: ptr xcb_xkb_set_behavior_t
# vmods_rtrn*: ptr uint8
# pad3*: ptr uint8
# explicit_rtrn*: ptr xcb_xkb_set_explicit_t
# pad4*: ptr uint8
# modmap_rtrn*: ptr xcb_xkb_key_mod_map_t
# pad5*: ptr uint8
# vmodmap_rtrn*: ptr xcb_xkb_key_v_mod_map_t
# ## *
# ## @brief xcb_xkb_get_map_reply_t
# ##
# type
# xcb_xkb_get_map_reply_t* {.bycopy.} = object
# response_type*: uint8
# deviceID*: uint8
# sequence*: uint16
# length*: uint32
# pad0*: array[2, uint8]
# minKeyCode*: xcb_keycode_t
# maxKeyCode*: xcb_keycode_t
# present*: uint16
# firstType*: uint8
# nTypes*: uint8
# totalTypes*: uint8
# firstKeySym*: xcb_keycode_t
# totalSyms*: uint16
# nKeySyms*: uint8
# firstKeyAction*: xcb_keycode_t
# totalActions*: uint16
# nKeyActions*: uint8
# firstKeyBehavior*: xcb_keycode_t
# nKeyBehaviors*: uint8
# totalKeyBehaviors*: uint8
# firstKeyExplicit*: xcb_keycode_t
# nKeyExplicit*: uint8
# totalKeyExplicit*: uint8
# firstModMapKey*: xcb_keycode_t
# nModMapKeys*: uint8
# totalModMapKeys*: uint8
# firstVModMapKey*: xcb_keycode_t
# nVModMapKeys*: uint8
# totalVModMapKeys*: uint8
# pad1*: uint8
# virtualMods*: uint16
# ## *
# ## @brief xcb_xkb_set_map_values_t
# ##
# type
# xcb_xkb_set_map_values_t* {.bycopy.} = object
# types*: ptr xcb_xkb_set_key_type_t
# syms*: ptr xcb_xkb_key_sym_map_t
# actionsCount*: ptr uint8
# actions*: ptr xcb_xkb_action_t
# behaviors*: ptr xcb_xkb_set_behavior_t
# vmods*: ptr uint8
# explicit*: ptr xcb_xkb_set_explicit_t
# modmap*: ptr xcb_xkb_key_mod_map_t
# vmodmap*: ptr xcb_xkb_key_v_mod_map_t
# ## * Opcode for xcb_xkb_set_map.
# const
# XCB_XKB_SET_MAP* = 9
# ## *
# ## @brief xcb_xkb_set_map_request_t
# ##
# type
# xcb_xkb_set_map_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceSpec*: xcb_xkb_device_spec_t
# present*: uint16
# flags*: uint16
# minKeyCode*: xcb_keycode_t
# maxKeyCode*: xcb_keycode_t
# firstType*: uint8
# nTypes*: uint8
# firstKeySym*: xcb_keycode_t
# nKeySyms*: uint8
# totalSyms*: uint16
# firstKeyAction*: xcb_keycode_t
# nKeyActions*: uint8
# totalActions*: uint16
# firstKeyBehavior*: xcb_keycode_t
# nKeyBehaviors*: uint8
# totalKeyBehaviors*: uint8
# firstKeyExplicit*: xcb_keycode_t
# nKeyExplicit*: uint8
# totalKeyExplicit*: uint8
# firstModMapKey*: xcb_keycode_t
# nModMapKeys*: uint8
# totalModMapKeys*: uint8
# firstVModMapKey*: xcb_keycode_t
# nVModMapKeys*: uint8
# totalVModMapKeys*: uint8
# virtualMods*: uint16
# ## *
# ## @brief xcb_xkb_get_compat_map_cookie_t
# ##
# type
# xcb_xkb_get_compat_map_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xkb_get_compat_map.
# const
# XCB_XKB_GET_COMPAT_MAP* = 10
# ## *
# ## @brief xcb_xkb_get_compat_map_request_t
# ##
# type
# xcb_xkb_get_compat_map_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceSpec*: xcb_xkb_device_spec_t
# groups*: uint8
# getAllSI*: uint8
# firstSI*: uint16
# nSI*: uint16
# ## *
# ## @brief xcb_xkb_get_compat_map_reply_t
# ##
# type
# xcb_xkb_get_compat_map_reply_t* {.bycopy.} = object
# response_type*: uint8
# deviceID*: uint8
# sequence*: uint16
# length*: uint32
# groupsRtrn*: uint8
# pad0*: uint8
# firstSIRtrn*: uint16
# nSIRtrn*: uint16
# nTotalSI*: uint16
# pad1*: array[16, uint8]
# ## * Opcode for xcb_xkb_set_compat_map.
# const
# XCB_XKB_SET_COMPAT_MAP* = 11
# ## *
# ## @brief xcb_xkb_set_compat_map_request_t
# ##
# type
# xcb_xkb_set_compat_map_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceSpec*: xcb_xkb_device_spec_t
# pad0*: uint8
# recomputeActions*: uint8
# truncateSI*: uint8
# groups*: uint8
# firstSI*: uint16
# nSI*: uint16
# pad1*: array[2, uint8]
# ## *
# ## @brief xcb_xkb_get_indicator_state_cookie_t
# ##
# type
# xcb_xkb_get_indicator_state_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xkb_get_indicator_state.
# const
# XCB_XKB_GET_INDICATOR_STATE* = 12
# ## *
# ## @brief xcb_xkb_get_indicator_state_request_t
# ##
# type
# xcb_xkb_get_indicator_state_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceSpec*: xcb_xkb_device_spec_t
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_xkb_get_indicator_state_reply_t
# ##
# type
# xcb_xkb_get_indicator_state_reply_t* {.bycopy.} = object
# response_type*: uint8
# deviceID*: uint8
# sequence*: uint16
# length*: uint32
# state*: uint32
# pad0*: array[20, uint8]
# ## *
# ## @brief xcb_xkb_get_indicator_map_cookie_t
# ##
# type
# xcb_xkb_get_indicator_map_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xkb_get_indicator_map.
# const
# XCB_XKB_GET_INDICATOR_MAP* = 13
# ## *
# ## @brief xcb_xkb_get_indicator_map_request_t
# ##
# type
# xcb_xkb_get_indicator_map_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceSpec*: xcb_xkb_device_spec_t
# pad0*: array[2, uint8]
# which*: uint32
# ## *
# ## @brief xcb_xkb_get_indicator_map_reply_t
# ##
# type
# xcb_xkb_get_indicator_map_reply_t* {.bycopy.} = object
# response_type*: uint8
# deviceID*: uint8
# sequence*: uint16
# length*: uint32
# which*: uint32
# realIndicators*: uint32
# nIndicators*: uint8
# pad0*: array[15, uint8]
# ## * Opcode for xcb_xkb_set_indicator_map.
# const
# XCB_XKB_SET_INDICATOR_MAP* = 14
# ## *
# ## @brief xcb_xkb_set_indicator_map_request_t
# ##
# type
# xcb_xkb_set_indicator_map_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceSpec*: xcb_xkb_device_spec_t
# pad0*: array[2, uint8]
# which*: uint32
# ## *
# ## @brief xcb_xkb_get_named_indicator_cookie_t
# ##
# type
# xcb_xkb_get_named_indicator_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xkb_get_named_indicator.
# const
# XCB_XKB_GET_NAMED_INDICATOR* = 15
# ## *
# ## @brief xcb_xkb_get_named_indicator_request_t
# ##
# type
# xcb_xkb_get_named_indicator_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceSpec*: xcb_xkb_device_spec_t
# ledClass*: xcb_xkb_led_class_spec_t
# ledID*: xcb_xkb_id_spec_t
# pad0*: array[2, uint8]
# indicator*: xcb_atom_t
# ## *
# ## @brief xcb_xkb_get_named_indicator_reply_t
# ##
# type
# xcb_xkb_get_named_indicator_reply_t* {.bycopy.} = object
# response_type*: uint8
# deviceID*: uint8
# sequence*: uint16
# length*: uint32
# indicator*: xcb_atom_t
# found*: uint8
# on*: uint8
# realIndicator*: uint8
# ndx*: uint8
# map_flags*: uint8
# map_whichGroups*: uint8
# map_groups*: uint8
# map_whichMods*: uint8
# map_mods*: uint8
# map_realMods*: uint8
# map_vmod*: uint16
# map_ctrls*: uint32
# supported*: uint8
# pad0*: array[3, uint8]
# ## * Opcode for xcb_xkb_set_named_indicator.
# const
# XCB_XKB_SET_NAMED_INDICATOR* = 16
# ## *
# ## @brief xcb_xkb_set_named_indicator_request_t
# ##
# type
# xcb_xkb_set_named_indicator_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceSpec*: xcb_xkb_device_spec_t
# ledClass*: xcb_xkb_led_class_spec_t
# ledID*: xcb_xkb_id_spec_t
# pad0*: array[2, uint8]
# indicator*: xcb_atom_t
# setState*: uint8
# on*: uint8
# setMap*: uint8
# createMap*: uint8
# pad1*: uint8
# map_flags*: uint8
# map_whichGroups*: uint8
# map_groups*: uint8
# map_whichMods*: uint8
# map_realMods*: uint8
# map_vmods*: uint16
# map_ctrls*: uint32
# ## *
# ## @brief xcb_xkb_get_names_cookie_t
# ##
# type
# xcb_xkb_get_names_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xkb_get_names.
# const
# XCB_XKB_GET_NAMES* = 17
# ## *
# ## @brief xcb_xkb_get_names_request_t
# ##
# type
# xcb_xkb_get_names_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceSpec*: xcb_xkb_device_spec_t
# pad0*: array[2, uint8]
# which*: uint32
# ## *
# ## @brief xcb_xkb_get_names_value_list_t
# ##
# type
# xcb_xkb_get_names_value_list_t* {.bycopy.} = object
# keycodesName*: xcb_atom_t
# geometryName*: xcb_atom_t
# symbolsName*: xcb_atom_t
# physSymbolsName*: xcb_atom_t
# typesName*: xcb_atom_t
# compatName*: xcb_atom_t
# typeNames*: ptr xcb_atom_t
# nLevelsPerType*: ptr uint8
# pad1*: ptr uint8
# ktLevelNames*: ptr xcb_atom_t
# indicatorNames*: ptr xcb_atom_t
# virtualModNames*: ptr xcb_atom_t
# groups*: ptr xcb_atom_t
# keyNames*: ptr xcb_xkb_key_name_t
# keyAliases*: ptr xcb_xkb_key_alias_t
# radioGroupNames*: ptr xcb_atom_t
# ## *
# ## @brief xcb_xkb_get_names_reply_t
# ##
# type
# xcb_xkb_get_names_reply_t* {.bycopy.} = object
# response_type*: uint8
# deviceID*: uint8
# sequence*: uint16
# length*: uint32
# which*: uint32
# minKeyCode*: xcb_keycode_t
# maxKeyCode*: xcb_keycode_t
# nTypes*: uint8
# groupNames*: uint8
# virtualMods*: uint16
# firstKey*: xcb_keycode_t
# nKeys*: uint8
# indicators*: uint32
# nRadioGroups*: uint8
# nKeyAliases*: uint8
# nKTLevels*: uint16
# pad0*: array[4, uint8]
# ## *
# ## @brief xcb_xkb_set_names_values_t
# ##
# type
# xcb_xkb_set_names_values_t* {.bycopy.} = object
# keycodesName*: xcb_atom_t
# geometryName*: xcb_atom_t
# symbolsName*: xcb_atom_t
# physSymbolsName*: xcb_atom_t
# typesName*: xcb_atom_t
# compatName*: xcb_atom_t
# typeNames*: ptr xcb_atom_t
# nLevelsPerType*: ptr uint8
# ktLevelNames*: ptr xcb_atom_t
# indicatorNames*: ptr xcb_atom_t
# virtualModNames*: ptr xcb_atom_t
# groups*: ptr xcb_atom_t
# keyNames*: ptr xcb_xkb_key_name_t
# keyAliases*: ptr xcb_xkb_key_alias_t
# radioGroupNames*: ptr xcb_atom_t
# ## * Opcode for xcb_xkb_set_names.
# const
# XCB_XKB_SET_NAMES* = 18
# ## *
# ## @brief xcb_xkb_set_names_request_t
# ##
# type
# xcb_xkb_set_names_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceSpec*: xcb_xkb_device_spec_t
# virtualMods*: uint16
# which*: uint32
# firstType*: uint8
# nTypes*: uint8
# firstKTLevelt*: uint8
# nKTLevels*: uint8
# indicators*: uint32
# groupNames*: uint8
# nRadioGroups*: uint8
# firstKey*: xcb_keycode_t
# nKeys*: uint8
# nKeyAliases*: uint8
# pad0*: uint8
# totalKTLevelNames*: uint16
# ## *
# ## @brief xcb_xkb_per_client_flags_cookie_t
# ##
# type
# xcb_xkb_per_client_flags_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xkb_per_client_flags.
# const
# XCB_XKB_PER_CLIENT_FLAGS* = 21
# ## *
# ## @brief xcb_xkb_per_client_flags_request_t
# ##
# type
# xcb_xkb_per_client_flags_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceSpec*: xcb_xkb_device_spec_t
# pad0*: array[2, uint8]
# change*: uint32
# value*: uint32
# ctrlsToChange*: uint32
# autoCtrls*: uint32
# autoCtrlsValues*: uint32
# ## *
# ## @brief xcb_xkb_per_client_flags_reply_t
# ##
# type
# xcb_xkb_per_client_flags_reply_t* {.bycopy.} = object
# response_type*: uint8
# deviceID*: uint8
# sequence*: uint16
# length*: uint32
# supported*: uint32
# value*: uint32
# autoCtrls*: uint32
# autoCtrlsValues*: uint32
# pad0*: array[8, uint8]
# ## *
# ## @brief xcb_xkb_list_components_cookie_t
# ##
# type
# xcb_xkb_list_components_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xkb_list_components.
# const
# XCB_XKB_LIST_COMPONENTS* = 22
# ## *
# ## @brief xcb_xkb_list_components_request_t
# ##
# type
# xcb_xkb_list_components_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceSpec*: xcb_xkb_device_spec_t
# maxNames*: uint16
# ## *
# ## @brief xcb_xkb_list_components_reply_t
# ##
# type
# xcb_xkb_list_components_reply_t* {.bycopy.} = object
# response_type*: uint8
# deviceID*: uint8
# sequence*: uint16
# length*: uint32
# nKeymaps*: uint16
# nKeycodes*: uint16
# nTypes*: uint16
# nCompatMaps*: uint16
# nSymbols*: uint16
# nGeometries*: uint16
# extra*: uint16
# pad0*: array[10, uint8]
# ## *
# ## @brief xcb_xkb_get_kbd_by_name_cookie_t
# ##
# type
# xcb_xkb_get_kbd_by_name_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xkb_get_kbd_by_name.
# const
# XCB_XKB_GET_KBD_BY_NAME* = 23
# ## *
# ## @brief xcb_xkb_get_kbd_by_name_request_t
# ##
# type
# xcb_xkb_get_kbd_by_name_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceSpec*: xcb_xkb_device_spec_t
# need*: uint16
# want*: uint16
# load*: uint8
# pad0*: uint8
# ## *
# ## @brief xcb_xkb_get_kbd_by_name_replies_types_map_t
# ##
# type
# xcb_xkb_get_kbd_by_name_replies_types_map_t* {.bycopy.} = object
# types_rtrn*: ptr xcb_xkb_key_type_t
# syms_rtrn*: ptr xcb_xkb_key_sym_map_t
# acts_rtrn_count*: ptr uint8
# acts_rtrn_acts*: ptr xcb_xkb_action_t
# behaviors_rtrn*: ptr xcb_xkb_set_behavior_t
# vmods_rtrn*: ptr uint8
# explicit_rtrn*: ptr xcb_xkb_set_explicit_t
# modmap_rtrn*: ptr xcb_xkb_key_mod_map_t
# vmodmap_rtrn*: ptr xcb_xkb_key_v_mod_map_t
# ## *
# ## @brief xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t
# ##
# type
# xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t* {.bycopy.} = object
# keycodesName*: xcb_atom_t
# geometryName*: xcb_atom_t
# symbolsName*: xcb_atom_t
# physSymbolsName*: xcb_atom_t
# typesName*: xcb_atom_t
# compatName*: xcb_atom_t
# typeNames*: ptr xcb_atom_t
# nLevelsPerType*: ptr uint8
# ktLevelNames*: ptr xcb_atom_t
# indicatorNames*: ptr xcb_atom_t
# virtualModNames*: ptr xcb_atom_t
# groups*: ptr xcb_atom_t
# keyNames*: ptr xcb_xkb_key_name_t
# keyAliases*: ptr xcb_xkb_key_alias_t
# radioGroupNames*: ptr xcb_atom_t
# ## *
# ## @brief xcb_xkb_get_kbd_by_name_replies_t
# ##
# type
# INNER_C_STRUCT_xkb_2530* {.bycopy.} = object
# getmap_type*: uint8
# typeDeviceID*: uint8
# getmap_sequence*: uint16
# getmap_length*: uint32
# pad1*: array[2, uint8]
# typeMinKeyCode*: xcb_keycode_t
# typeMaxKeyCode*: xcb_keycode_t
# present*: uint16
# firstType*: uint8
# nTypes*: uint8
# totalTypes*: uint8
# firstKeySym*: xcb_keycode_t
# totalSyms*: uint16
# nKeySyms*: uint8
# firstKeyAction*: xcb_keycode_t
# totalActions*: uint16
# nKeyActions*: uint8
# firstKeyBehavior*: xcb_keycode_t
# nKeyBehaviors*: uint8
# totalKeyBehaviors*: uint8
# firstKeyExplicit*: xcb_keycode_t
# nKeyExplicit*: uint8
# totalKeyExplicit*: uint8
# firstModMapKey*: xcb_keycode_t
# nModMapKeys*: uint8
# totalModMapKeys*: uint8
# firstVModMapKey*: xcb_keycode_t
# nVModMapKeys*: uint8
# totalVModMapKeys*: uint8
# pad2*: uint8
# virtualMods*: uint16
# map*: xcb_xkb_get_kbd_by_name_replies_types_map_t
# INNER_C_STRUCT_xkb_2564* {.bycopy.} = object
# compatmap_type*: uint8
# compatDeviceID*: uint8
# compatmap_sequence*: uint16
# compatmap_length*: uint32
# groupsRtrn*: uint8
# pad7*: uint8
# firstSIRtrn*: uint16
# nSIRtrn*: uint16
# nTotalSI*: uint16
# pad8*: array[16, uint8]
# si_rtrn*: ptr xcb_xkb_sym_interpret_t
# group_rtrn*: ptr xcb_xkb_mod_def_t
# INNER_C_STRUCT_xkb_2578* {.bycopy.} = object
# indicatormap_type*: uint8
# indicatorDeviceID*: uint8
# indicatormap_sequence*: uint16
# indicatormap_length*: uint32
# which*: uint32
# realIndicators*: uint32
# nIndicators*: uint8
# pad9*: array[15, uint8]
# maps*: ptr xcb_xkb_indicator_map_t
# INNER_C_STRUCT_xkb_2589* {.bycopy.} = object
# keyname_type*: uint8
# keyDeviceID*: uint8
# keyname_sequence*: uint16
# keyname_length*: uint32
# which*: uint32
# keyMinKeyCode*: xcb_keycode_t
# keyMaxKeyCode*: xcb_keycode_t
# nTypes*: uint8
# groupNames*: uint8
# virtualMods*: uint16
# firstKey*: xcb_keycode_t
# nKeys*: uint8
# indicators*: uint32
# nRadioGroups*: uint8
# nKeyAliases*: uint8
# nKTLevels*: uint16
# pad10*: array[4, uint8]
# valueList*: xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t
# INNER_C_STRUCT_xkb_2609* {.bycopy.} = object
# geometry_type*: uint8
# geometryDeviceID*: uint8
# geometry_sequence*: uint16
# geometry_length*: uint32
# name*: xcb_atom_t
# geometryFound*: uint8
# pad12*: uint8
# widthMM*: uint16
# heightMM*: uint16
# nProperties*: uint16
# nColors*: uint16
# nShapes*: uint16
# nSections*: uint16
# nDoodads*: uint16
# nKeyAliases*: uint16
# baseColorNdx*: uint8
# labelColorNdx*: uint8
# labelFont*: ptr xcb_xkb_counted_string_16_t
# xcb_xkb_get_kbd_by_name_replies_t* {.bycopy.} = object
# types*: INNER_C_STRUCT_xkb_2530
# compat_map*: INNER_C_STRUCT_xkb_2564
# indicator_maps*: INNER_C_STRUCT_xkb_2578
# key_names*: INNER_C_STRUCT_xkb_2589
# geometry*: INNER_C_STRUCT_xkb_2609
# proc xcb_xkb_get_kbd_by_name_replies_types_map*(
# R: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_get_kbd_by_name_replies_types_map_t
# ## *
# ## @brief xcb_xkb_get_kbd_by_name_reply_t
# ##
# type
# xcb_xkb_get_kbd_by_name_reply_t* {.bycopy.} = object
# response_type*: uint8
# deviceID*: uint8
# sequence*: uint16
# length*: uint32
# minKeyCode*: xcb_keycode_t
# maxKeyCode*: xcb_keycode_t
# loaded*: uint8
# newKeyboard*: uint8
# found*: uint16
# reported*: uint16
# pad0*: array[16, uint8]
# ## *
# ## @brief xcb_xkb_get_device_info_cookie_t
# ##
# type
# xcb_xkb_get_device_info_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xkb_get_device_info.
# const
# XCB_XKB_GET_DEVICE_INFO* = 24
# ## *
# ## @brief xcb_xkb_get_device_info_request_t
# ##
# type
# xcb_xkb_get_device_info_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceSpec*: xcb_xkb_device_spec_t
# wanted*: uint16
# allButtons*: uint8
# firstButton*: uint8
# nButtons*: uint8
# pad0*: uint8
# ledClass*: xcb_xkb_led_class_spec_t
# ledID*: xcb_xkb_id_spec_t
# ## *
# ## @brief xcb_xkb_get_device_info_reply_t
# ##
# type
# xcb_xkb_get_device_info_reply_t* {.bycopy.} = object
# response_type*: uint8
# deviceID*: uint8
# sequence*: uint16
# length*: uint32
# present*: uint16
# supported*: uint16
# unsupported*: uint16
# nDeviceLedFBs*: uint16
# firstBtnWanted*: uint8
# nBtnsWanted*: uint8
# firstBtnRtrn*: uint8
# nBtnsRtrn*: uint8
# totalBtns*: uint8
# hasOwnState*: uint8
# dfltKbdFB*: uint16
# dfltLedFB*: uint16
# pad0*: array[2, uint8]
# devType*: xcb_atom_t
# nameLen*: uint16
# ## * Opcode for xcb_xkb_set_device_info.
# const
# XCB_XKB_SET_DEVICE_INFO* = 25
# ## *
# ## @brief xcb_xkb_set_device_info_request_t
# ##
# type
# xcb_xkb_set_device_info_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# deviceSpec*: xcb_xkb_device_spec_t
# firstBtn*: uint8
# nBtns*: uint8
# change*: uint16
# nDeviceLedFBs*: uint16
# ## *
# ## @brief xcb_xkb_set_debugging_flags_cookie_t
# ##
# type
# xcb_xkb_set_debugging_flags_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xkb_set_debugging_flags.
# const
# XCB_XKB_SET_DEBUGGING_FLAGS* = 101
# ## *
# ## @brief xcb_xkb_set_debugging_flags_request_t
# ##
# type
# xcb_xkb_set_debugging_flags_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# msgLength*: uint16
# pad0*: array[2, uint8]
# affectFlags*: uint32
# flags*: uint32
# affectCtrls*: uint32
# ctrls*: uint32
# ## *
# ## @brief xcb_xkb_set_debugging_flags_reply_t
# ##
# type
# xcb_xkb_set_debugging_flags_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# currentFlags*: uint32
# currentCtrls*: uint32
# supportedFlags*: uint32
# supportedCtrls*: uint32
# pad1*: array[8, uint8]
# ## * Opcode for xcb_xkb_new_keyboard_notify.
# const
# XCB_XKB_NEW_KEYBOARD_NOTIFY* = 0
# ## *
# ## @brief xcb_xkb_new_keyboard_notify_event_t
# ##
# type
# xcb_xkb_new_keyboard_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# xkbType*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# deviceID*: uint8
# oldDeviceID*: uint8
# minKeyCode*: xcb_keycode_t
# maxKeyCode*: xcb_keycode_t
# oldMinKeyCode*: xcb_keycode_t
# oldMaxKeyCode*: xcb_keycode_t
# requestMajor*: uint8
# requestMinor*: uint8
# changed*: uint16
# pad0*: array[14, uint8]
# ## * Opcode for xcb_xkb_map_notify.
# const
# XCB_XKB_MAP_NOTIFY* = 1
# ## *
# ## @brief xcb_xkb_map_notify_event_t
# ##
# type
# xcb_xkb_map_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# xkbType*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# deviceID*: uint8
# ptrBtnActions*: uint8
# changed*: uint16
# minKeyCode*: xcb_keycode_t
# maxKeyCode*: xcb_keycode_t
# firstType*: uint8
# nTypes*: uint8
# firstKeySym*: xcb_keycode_t
# nKeySyms*: uint8
# firstKeyAct*: xcb_keycode_t
# nKeyActs*: uint8
# firstKeyBehavior*: xcb_keycode_t
# nKeyBehavior*: uint8
# firstKeyExplicit*: xcb_keycode_t
# nKeyExplicit*: uint8
# firstModMapKey*: xcb_keycode_t
# nModMapKeys*: uint8
# firstVModMapKey*: xcb_keycode_t
# nVModMapKeys*: uint8
# virtualMods*: uint16
# pad0*: array[2, uint8]
# ## * Opcode for xcb_xkb_state_notify.
# const
# XCB_XKB_STATE_NOTIFY* = 2
# ## *
# ## @brief xcb_xkb_state_notify_event_t
# ##
# type
# xcb_xkb_state_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# xkbType*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# deviceID*: uint8
# mods*: uint8
# baseMods*: uint8
# latchedMods*: uint8
# lockedMods*: uint8
# group*: uint8
# baseGroup*: int16
# latchedGroup*: int16
# lockedGroup*: uint8
# compatState*: uint8
# grabMods*: uint8
# compatGrabMods*: uint8
# lookupMods*: uint8
# compatLoockupMods*: uint8
# ptrBtnState*: uint16
# changed*: uint16
# keycode*: xcb_keycode_t
# eventType*: uint8
# requestMajor*: uint8
# requestMinor*: uint8
# ## * Opcode for xcb_xkb_controls_notify.
# const
# XCB_XKB_CONTROLS_NOTIFY* = 3
# ## *
# ## @brief xcb_xkb_controls_notify_event_t
# ##
# type
# xcb_xkb_controls_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# xkbType*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# deviceID*: uint8
# numGroups*: uint8
# pad0*: array[2, uint8]
# changedControls*: uint32
# enabledControls*: uint32
# enabledControlChanges*: uint32
# keycode*: xcb_keycode_t
# eventType*: uint8
# requestMajor*: uint8
# requestMinor*: uint8
# pad1*: array[4, uint8]
# ## * Opcode for xcb_xkb_indicator_state_notify.
# const
# XCB_XKB_INDICATOR_STATE_NOTIFY* = 4
# ## *
# ## @brief xcb_xkb_indicator_state_notify_event_t
# ##
# type
# xcb_xkb_indicator_state_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# xkbType*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# deviceID*: uint8
# pad0*: array[3, uint8]
# state*: uint32
# stateChanged*: uint32
# pad1*: array[12, uint8]
# ## * Opcode for xcb_xkb_indicator_map_notify.
# const
# XCB_XKB_INDICATOR_MAP_NOTIFY* = 5
# ## *
# ## @brief xcb_xkb_indicator_map_notify_event_t
# ##
# type
# xcb_xkb_indicator_map_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# xkbType*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# deviceID*: uint8
# pad0*: array[3, uint8]
# state*: uint32
# mapChanged*: uint32
# pad1*: array[12, uint8]
# ## * Opcode for xcb_xkb_names_notify.
# const
# XCB_XKB_NAMES_NOTIFY* = 6
# ## *
# ## @brief xcb_xkb_names_notify_event_t
# ##
# type
# xcb_xkb_names_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# xkbType*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# deviceID*: uint8
# pad0*: uint8
# changed*: uint16
# firstType*: uint8
# nTypes*: uint8
# firstLevelName*: uint8
# nLevelNames*: uint8
# pad1*: uint8
# nRadioGroups*: uint8
# nKeyAliases*: uint8
# changedGroupNames*: uint8
# changedVirtualMods*: uint16
# firstKey*: xcb_keycode_t
# nKeys*: uint8
# changedIndicators*: uint32
# pad2*: array[4, uint8]
# ## * Opcode for xcb_xkb_compat_map_notify.
# const
# XCB_XKB_COMPAT_MAP_NOTIFY* = 7
# ## *
# ## @brief xcb_xkb_compat_map_notify_event_t
# ##
# type
# xcb_xkb_compat_map_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# xkbType*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# deviceID*: uint8
# changedGroups*: uint8
# firstSI*: uint16
# nSI*: uint16
# nTotalSI*: uint16
# pad0*: array[16, uint8]
# ## * Opcode for xcb_xkb_bell_notify.
# const
# XCB_XKB_BELL_NOTIFY* = 8
# ## *
# ## @brief xcb_xkb_bell_notify_event_t
# ##
# type
# xcb_xkb_bell_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# xkbType*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# deviceID*: uint8
# bellClass*: uint8
# bellID*: uint8
# percent*: uint8
# pitch*: uint16
# duration*: uint16
# name*: xcb_atom_t
# window*: xcb_window_t
# eventOnly*: uint8
# pad0*: array[7, uint8]
# ## * Opcode for xcb_xkb_action_message.
# const
# XCB_XKB_ACTION_MESSAGE* = 9
# ## *
# ## @brief xcb_xkb_action_message_event_t
# ##
# type
# xcb_xkb_action_message_event_t* {.bycopy.} = object
# response_type*: uint8
# xkbType*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# deviceID*: uint8
# keycode*: xcb_keycode_t
# press*: uint8
# keyEventFollows*: uint8
# mods*: uint8
# group*: uint8
# message*: array[8, xcb_xkb_string8_t]
# pad0*: array[10, uint8]
# ## * Opcode for xcb_xkb_access_x_notify.
# const
# XCB_XKB_ACCESS_X_NOTIFY* = 10
# ## *
# ## @brief xcb_xkb_access_x_notify_event_t
# ##
# type
# xcb_xkb_access_x_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# xkbType*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# deviceID*: uint8
# keycode*: xcb_keycode_t
# detailt*: uint16
# slowKeysDelay*: uint16
# debounceDelay*: uint16
# pad0*: array[16, uint8]
# ## * Opcode for xcb_xkb_extension_device_notify.
# const
# XCB_XKB_EXTENSION_DEVICE_NOTIFY* = 11
# ## *
# ## @brief xcb_xkb_extension_device_notify_event_t
# ##
# type
# xcb_xkb_extension_device_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# xkbType*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# deviceID*: uint8
# pad0*: uint8
# reason*: uint16
# ledClass*: uint16
# ledID*: uint16
# ledsDefined*: uint32
# ledState*: uint32
# firstButton*: uint8
# nButtons*: uint8
# supported*: uint16
# unsupported*: uint16
# pad1*: array[2, uint8]
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_device_spec_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_device_spec_t)
# ##
# proc xcb_xkb_device_spec_next*(i: ptr xcb_xkb_device_spec_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_device_spec_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_device_spec_end*(i: xcb_xkb_device_spec_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_led_class_spec_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_led_class_spec_t)
# ##
# proc xcb_xkb_led_class_spec_next*(i: ptr xcb_xkb_led_class_spec_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_led_class_spec_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_led_class_spec_end*(i: xcb_xkb_led_class_spec_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_bell_class_spec_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_bell_class_spec_t)
# ##
# proc xcb_xkb_bell_class_spec_next*(i: ptr xcb_xkb_bell_class_spec_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_bell_class_spec_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_bell_class_spec_end*(i: xcb_xkb_bell_class_spec_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_id_spec_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_id_spec_t)
# ##
# proc xcb_xkb_id_spec_next*(i: ptr xcb_xkb_id_spec_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_id_spec_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_id_spec_end*(i: xcb_xkb_id_spec_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_indicator_map_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_indicator_map_t)
# ##
# proc xcb_xkb_indicator_map_next*(i: ptr xcb_xkb_indicator_map_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_indicator_map_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_indicator_map_end*(i: xcb_xkb_indicator_map_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_mod_def_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_mod_def_t)
# ##
# proc xcb_xkb_mod_def_next*(i: ptr xcb_xkb_mod_def_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_mod_def_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_mod_def_end*(i: xcb_xkb_mod_def_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_key_name_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_key_name_t)
# ##
# proc xcb_xkb_key_name_next*(i: ptr xcb_xkb_key_name_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_key_name_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_key_name_end*(i: xcb_xkb_key_name_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_key_alias_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_key_alias_t)
# ##
# proc xcb_xkb_key_alias_next*(i: ptr xcb_xkb_key_alias_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_key_alias_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_key_alias_end*(i: xcb_xkb_key_alias_iterator_t): xcb_generic_iterator_t
# proc xcb_xkb_counted_string_16_sizeof*(_buffer: pointer): cint
# proc xcb_xkb_counted_string_16_string*(R: ptr xcb_xkb_counted_string_16_t): cstring
# proc xcb_xkb_counted_string_16_string_length*(R: ptr xcb_xkb_counted_string_16_t): cint
# proc xcb_xkb_counted_string_16_string_end*(R: ptr xcb_xkb_counted_string_16_t): xcb_generic_iterator_t
# proc xcb_xkb_counted_string_16_alignment_pad*(R: ptr xcb_xkb_counted_string_16_t): pointer
# proc xcb_xkb_counted_string_16_alignment_pad_length*(
# R: ptr xcb_xkb_counted_string_16_t): cint
# proc xcb_xkb_counted_string_16_alignment_pad_end*(
# R: ptr xcb_xkb_counted_string_16_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_counted_string_16_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_counted_string_16_t)
# ##
# proc xcb_xkb_counted_string_16_next*(i: ptr xcb_xkb_counted_string_16_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_counted_string_16_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_counted_string_16_end*(i: xcb_xkb_counted_string_16_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_kt_map_entry_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_kt_map_entry_t)
# ##
# proc xcb_xkb_key_type_end*(i: xcb_xkb_key_type_iterator_t): xcb_generic_iterator_t
# proc xcb_xkb_key_sym_map_sizeof*(_buffer: pointer): cint
# proc xcb_xkb_key_sym_map_syms*(R: ptr xcb_xkb_key_sym_map_t): ptr xcb_keysym_t
# proc xcb_xkb_key_sym_map_syms_length*(R: ptr xcb_xkb_key_sym_map_t): cint
# proc xcb_xkb_key_sym_map_syms_end*(R: ptr xcb_xkb_key_sym_map_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_key_sym_map_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_key_sym_map_t)
# ##
# proc xcb_xkb_key_sym_map_next*(i: ptr xcb_xkb_key_sym_map_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_key_sym_map_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_key_sym_map_end*(i: xcb_xkb_key_sym_map_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_common_behavior_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_common_behavior_t)
# ##
# proc xcb_xkb_common_behavior_next*(i: ptr xcb_xkb_common_behavior_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_common_behavior_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_common_behavior_end*(i: xcb_xkb_common_behavior_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_default_behavior_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_default_behavior_t)
# ##
# proc xcb_xkb_default_behavior_next*(i: ptr xcb_xkb_default_behavior_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_default_behavior_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_default_behavior_end*(i: xcb_xkb_default_behavior_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_lock_behavior_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_lock_behavior_t)
# ##
# proc xcb_xkb_lock_behavior_next*(i: ptr xcb_xkb_lock_behavior_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_lock_behavior_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_lock_behavior_end*(i: xcb_xkb_lock_behavior_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_radio_group_behavior_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_radio_group_behavior_t)
# ##
# proc xcb_xkb_radio_group_behavior_next*(i: ptr xcb_xkb_radio_group_behavior_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_radio_group_behavior_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_radio_group_behavior_end*(i: xcb_xkb_radio_group_behavior_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_overlay_behavior_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_overlay_behavior_t)
# ##
# proc xcb_xkb_overlay_behavior_next*(i: ptr xcb_xkb_overlay_behavior_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_overlay_behavior_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_overlay_behavior_end*(i: xcb_xkb_overlay_behavior_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_permament_lock_behavior_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_permament_lock_behavior_t)
# ##
# proc xcb_xkb_permament_lock_behavior_next*(
# i: ptr xcb_xkb_permament_lock_behavior_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_permament_lock_behavior_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_permament_lock_behavior_end*(
# i: xcb_xkb_permament_lock_behavior_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_permament_radio_group_behavior_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_permament_radio_group_behavior_t)
# ##
# proc xcb_xkb_permament_radio_group_behavior_next*(
# i: ptr xcb_xkb_permament_radio_group_behavior_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_permament_radio_group_behavior_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_permament_radio_group_behavior_end*(
# i: xcb_xkb_permament_radio_group_behavior_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_permament_overlay_behavior_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_permament_overlay_behavior_t)
# ##
# proc xcb_xkb_permament_overlay_behavior_next*(
# i: ptr xcb_xkb_permament_overlay_behavior_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_permament_overlay_behavior_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_permament_overlay_behavior_end*(
# i: xcb_xkb_permament_overlay_behavior_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_behavior_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_behavior_t)
# ##
# proc xcb_xkb_behavior_next*(i: ptr xcb_xkb_behavior_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_behavior_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_behavior_end*(i: xcb_xkb_behavior_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_set_behavior_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_set_behavior_t)
# ##
# proc xcb_xkb_set_behavior_next*(i: ptr xcb_xkb_set_behavior_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_set_behavior_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_set_behavior_end*(i: xcb_xkb_set_behavior_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_set_explicit_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_set_explicit_t)
# ##
# proc xcb_xkb_set_explicit_next*(i: ptr xcb_xkb_set_explicit_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_set_explicit_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_set_explicit_end*(i: xcb_xkb_set_explicit_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_key_mod_map_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_key_mod_map_t)
# ##
# proc xcb_xkb_key_mod_map_next*(i: ptr xcb_xkb_key_mod_map_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_key_mod_map_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_key_mod_map_end*(i: xcb_xkb_key_mod_map_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_key_v_mod_map_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_key_v_mod_map_t)
# ##
# proc xcb_xkb_key_v_mod_map_next*(i: ptr xcb_xkb_key_v_mod_map_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_key_v_mod_map_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_key_v_mod_map_end*(i: xcb_xkb_key_v_mod_map_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_kt_set_map_entry_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_kt_set_map_entry_t)
# ##
# proc xcb_xkb_kt_set_map_entry_next*(i: ptr xcb_xkb_kt_set_map_entry_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_kt_set_map_entry_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_kt_set_map_entry_end*(i: xcb_xkb_kt_set_map_entry_iterator_t): xcb_generic_iterator_t
# proc xcb_xkb_set_key_type_sizeof*(_buffer: pointer): cint
# proc xcb_xkb_set_key_type_entries*(R: ptr xcb_xkb_set_key_type_t): ptr xcb_xkb_kt_set_map_entry_t
# proc xcb_xkb_set_key_type_entries_length*(R: ptr xcb_xkb_set_key_type_t): cint
# proc xcb_xkb_set_key_type_entries_iterator*(R: ptr xcb_xkb_set_key_type_t): xcb_xkb_kt_set_map_entry_iterator_t
# proc xcb_xkb_set_key_type_preserve_entries*(R: ptr xcb_xkb_set_key_type_t): ptr xcb_xkb_kt_set_map_entry_t
# proc xcb_xkb_set_key_type_preserve_entries_length*(R: ptr xcb_xkb_set_key_type_t): cint
# proc xcb_xkb_set_key_type_preserve_entries_iterator*(
# R: ptr xcb_xkb_set_key_type_t): xcb_xkb_kt_set_map_entry_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_set_key_type_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_set_key_type_t)
# ##
# proc xcb_xkb_set_key_type_next*(i: ptr xcb_xkb_set_key_type_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_set_key_type_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_set_key_type_end*(i: xcb_xkb_set_key_type_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_string8_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_string8_t)
# ##
# proc xcb_xkb_string8_next*(i: ptr xcb_xkb_string8_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_string8_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_string8_end*(i: xcb_xkb_string8_iterator_t): xcb_generic_iterator_t
# proc xcb_xkb_outline_sizeof*(_buffer: pointer): cint
# proc xcb_xkb_outline_points*(R: ptr xcb_xkb_outline_t): ptr xcb_point_t
# proc xcb_xkb_outline_points_length*(R: ptr xcb_xkb_outline_t): cint
# proc xcb_xkb_outline_points_iterator*(R: ptr xcb_xkb_outline_t): xcb_point_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_outline_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_outline_t)
# ##
# proc xcb_xkb_outline_next*(i: ptr xcb_xkb_outline_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_outline_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_outline_end*(i: xcb_xkb_outline_iterator_t): xcb_generic_iterator_t
# proc xcb_xkb_shape_sizeof*(_buffer: pointer): cint
# proc xcb_xkb_shape_outlines_length*(R: ptr xcb_xkb_shape_t): cint
# proc xcb_xkb_shape_outlines_iterator*(R: ptr xcb_xkb_shape_t): xcb_xkb_outline_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_shape_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_shape_t)
# ##
# proc xcb_xkb_shape_next*(i: ptr xcb_xkb_shape_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_shape_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_shape_end*(i: xcb_xkb_shape_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_key_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_key_t)
# ##
# proc xcb_xkb_key_next*(i: ptr xcb_xkb_key_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_key_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_key_end*(i: xcb_xkb_key_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_overlay_key_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_overlay_key_t)
# ##
# proc xcb_xkb_overlay_key_next*(i: ptr xcb_xkb_overlay_key_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_overlay_key_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_overlay_key_end*(i: xcb_xkb_overlay_key_iterator_t): xcb_generic_iterator_t
# proc xcb_xkb_overlay_row_sizeof*(_buffer: pointer): cint
# proc xcb_xkb_overlay_row_keys*(R: ptr xcb_xkb_overlay_row_t): ptr xcb_xkb_overlay_key_t
# proc xcb_xkb_overlay_row_keys_length*(R: ptr xcb_xkb_overlay_row_t): cint
# proc xcb_xkb_overlay_row_keys_iterator*(R: ptr xcb_xkb_overlay_row_t): xcb_xkb_overlay_key_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_overlay_row_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_overlay_row_t)
# ##
# proc xcb_xkb_overlay_row_next*(i: ptr xcb_xkb_overlay_row_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_overlay_row_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_overlay_row_end*(i: xcb_xkb_overlay_row_iterator_t): xcb_generic_iterator_t
# proc xcb_xkb_overlay_sizeof*(_buffer: pointer): cint
# proc xcb_xkb_overlay_rows_length*(R: ptr xcb_xkb_overlay_t): cint
# proc xcb_xkb_overlay_rows_iterator*(R: ptr xcb_xkb_overlay_t): xcb_xkb_overlay_row_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_overlay_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_overlay_t)
# ##
# proc xcb_xkb_overlay_next*(i: ptr xcb_xkb_overlay_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_overlay_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_overlay_end*(i: xcb_xkb_overlay_iterator_t): xcb_generic_iterator_t
# proc xcb_xkb_row_sizeof*(_buffer: pointer): cint
# proc xcb_xkb_row_keys*(R: ptr xcb_xkb_row_t): ptr xcb_xkb_key_t
# proc xcb_xkb_row_keys_length*(R: ptr xcb_xkb_row_t): cint
# proc xcb_xkb_row_keys_iterator*(R: ptr xcb_xkb_row_t): xcb_xkb_key_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_row_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_row_t)
# ##
# proc xcb_xkb_row_next*(i: ptr xcb_xkb_row_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_row_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_row_end*(i: xcb_xkb_row_iterator_t): xcb_generic_iterator_t
# proc xcb_xkb_listing_sizeof*(_buffer: pointer): cint
# proc xcb_xkb_listing_string*(R: ptr xcb_xkb_listing_t): ptr xcb_xkb_string8_t
# proc xcb_xkb_listing_string_length*(R: ptr xcb_xkb_listing_t): cint
# proc xcb_xkb_listing_string_end*(R: ptr xcb_xkb_listing_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_listing_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_listing_t)
# ##
# proc xcb_xkb_listing_next*(i: ptr xcb_xkb_listing_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_listing_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_listing_end*(i: xcb_xkb_listing_iterator_t): xcb_generic_iterator_t
# proc xcb_xkb_device_led_info_sizeof*(_buffer: pointer): cint
# proc xcb_xkb_device_led_info_names*(R: ptr xcb_xkb_device_led_info_t): ptr xcb_atom_t
# proc xcb_xkb_device_led_info_names_length*(R: ptr xcb_xkb_device_led_info_t): cint
# proc xcb_xkb_device_led_info_names_end*(R: ptr xcb_xkb_device_led_info_t): xcb_generic_iterator_t
# proc xcb_xkb_device_led_info_maps*(R: ptr xcb_xkb_device_led_info_t): ptr xcb_xkb_indicator_map_t
# proc xcb_xkb_device_led_info_maps_length*(R: ptr xcb_xkb_device_led_info_t): cint
# proc xcb_xkb_device_led_info_maps_iterator*(R: ptr xcb_xkb_device_led_info_t): xcb_xkb_indicator_map_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_device_led_info_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_device_led_info_t)
# ##
# proc xcb_xkb_device_led_info_next*(i: ptr xcb_xkb_device_led_info_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_device_led_info_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_device_led_info_end*(i: xcb_xkb_device_led_info_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_sa_no_action_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_sa_no_action_t)
# ##
# proc xcb_xkb_sa_no_action_next*(i: ptr xcb_xkb_sa_no_action_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_sa_no_action_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_sa_no_action_end*(i: xcb_xkb_sa_no_action_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_sa_set_mods_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_sa_set_mods_t)
# ##
# proc xcb_xkb_sa_set_mods_next*(i: ptr xcb_xkb_sa_set_mods_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_sa_set_mods_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_sa_set_mods_end*(i: xcb_xkb_sa_set_mods_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_sa_latch_mods_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_sa_latch_mods_t)
# ##
# proc xcb_xkb_sa_latch_mods_next*(i: ptr xcb_xkb_sa_latch_mods_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_sa_latch_mods_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_sa_latch_mods_end*(i: xcb_xkb_sa_latch_mods_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_sa_lock_mods_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_sa_lock_mods_t)
# ##
# proc xcb_xkb_sa_lock_mods_next*(i: ptr xcb_xkb_sa_lock_mods_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_sa_lock_mods_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_sa_lock_mods_end*(i: xcb_xkb_sa_lock_mods_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_sa_set_group_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_sa_set_group_t)
# ##
# proc xcb_xkb_sa_set_group_next*(i: ptr xcb_xkb_sa_set_group_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_sa_set_group_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_sa_set_group_end*(i: xcb_xkb_sa_set_group_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_sa_latch_group_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_sa_latch_group_t)
# ##
# proc xcb_xkb_sa_latch_group_next*(i: ptr xcb_xkb_sa_latch_group_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_sa_latch_group_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_sa_latch_group_end*(i: xcb_xkb_sa_latch_group_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_sa_lock_group_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_sa_lock_group_t)
# ##
# proc xcb_xkb_sa_lock_group_next*(i: ptr xcb_xkb_sa_lock_group_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_sa_lock_group_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_sa_lock_group_end*(i: xcb_xkb_sa_lock_group_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_sa_move_ptr_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_sa_move_ptr_t)
# ##
# proc xcb_xkb_sa_move_ptr_next*(i: ptr xcb_xkb_sa_move_ptr_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_sa_move_ptr_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_sa_move_ptr_end*(i: xcb_xkb_sa_move_ptr_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_sa_ptr_btn_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_sa_ptr_btn_t)
# ##
# proc xcb_xkb_sa_ptr_btn_next*(i: ptr xcb_xkb_sa_ptr_btn_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_sa_ptr_btn_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_sa_ptr_btn_end*(i: xcb_xkb_sa_ptr_btn_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_sa_lock_ptr_btn_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_sa_lock_ptr_btn_t)
# ##
# proc xcb_xkb_sa_lock_ptr_btn_next*(i: ptr xcb_xkb_sa_lock_ptr_btn_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_sa_lock_ptr_btn_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_sa_lock_ptr_btn_end*(i: xcb_xkb_sa_lock_ptr_btn_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_sa_set_ptr_dflt_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_sa_set_ptr_dflt_t)
# ##
# proc xcb_xkb_sa_set_ptr_dflt_next*(i: ptr xcb_xkb_sa_set_ptr_dflt_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_sa_set_ptr_dflt_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_sa_set_ptr_dflt_end*(i: xcb_xkb_sa_set_ptr_dflt_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_sa_iso_lock_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_sa_iso_lock_t)
# ##
# proc xcb_xkb_sa_iso_lock_next*(i: ptr xcb_xkb_sa_iso_lock_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_sa_iso_lock_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_sa_iso_lock_end*(i: xcb_xkb_sa_iso_lock_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_sa_terminate_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_sa_terminate_t)
# ##
# proc xcb_xkb_sa_terminate_next*(i: ptr xcb_xkb_sa_terminate_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_sa_terminate_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_sa_terminate_end*(i: xcb_xkb_sa_terminate_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_sa_switch_screen_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_sa_switch_screen_t)
# ##
# proc xcb_xkb_sa_switch_screen_next*(i: ptr xcb_xkb_sa_switch_screen_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_sa_switch_screen_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_sa_switch_screen_end*(i: xcb_xkb_sa_switch_screen_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_sa_set_controls_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_sa_set_controls_t)
# ##
# proc xcb_xkb_sa_set_controls_next*(i: ptr xcb_xkb_sa_set_controls_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_sa_set_controls_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_sa_set_controls_end*(i: xcb_xkb_sa_set_controls_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_sa_lock_controls_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_sa_lock_controls_t)
# ##
# proc xcb_xkb_sa_lock_controls_next*(i: ptr xcb_xkb_sa_lock_controls_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_sa_lock_controls_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_sa_lock_controls_end*(i: xcb_xkb_sa_lock_controls_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_sa_action_message_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_sa_action_message_t)
# ##
# proc xcb_xkb_sa_action_message_next*(i: ptr xcb_xkb_sa_action_message_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_sa_action_message_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_sa_action_message_end*(i: xcb_xkb_sa_action_message_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_sa_redirect_key_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_sa_redirect_key_t)
# ##
# proc xcb_xkb_sa_redirect_key_next*(i: ptr xcb_xkb_sa_redirect_key_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_sa_redirect_key_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_sa_redirect_key_end*(i: xcb_xkb_sa_redirect_key_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_sa_device_btn_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_sa_device_btn_t)
# ##
# proc xcb_xkb_sa_device_btn_next*(i: ptr xcb_xkb_sa_device_btn_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_sa_device_btn_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_sa_device_btn_end*(i: xcb_xkb_sa_device_btn_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_sa_lock_device_btn_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_sa_lock_device_btn_t)
# ##
# proc xcb_xkb_sa_lock_device_btn_next*(i: ptr xcb_xkb_sa_lock_device_btn_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_sa_lock_device_btn_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_sa_lock_device_btn_end*(i: xcb_xkb_sa_lock_device_btn_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_sa_device_valuator_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_sa_device_valuator_t)
# ##
# proc xcb_xkb_sa_device_valuator_next*(i: ptr xcb_xkb_sa_device_valuator_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_sa_device_valuator_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_sa_device_valuator_end*(i: xcb_xkb_sa_device_valuator_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_si_action_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_si_action_t)
# ##
# proc xcb_xkb_si_action_next*(i: ptr xcb_xkb_si_action_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_si_action_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_si_action_end*(i: xcb_xkb_si_action_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_sym_interpret_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_sym_interpret_t)
# ##
# proc xcb_xkb_sym_interpret_next*(i: ptr xcb_xkb_sym_interpret_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_sym_interpret_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_sym_interpret_end*(i: xcb_xkb_sym_interpret_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xkb_action_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xkb_action_t)
# ##
# proc xcb_xkb_action_next*(i: ptr xcb_xkb_action_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xkb_action_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xkb_action_end*(i: xcb_xkb_action_iterator_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xkb_use_extension_unchecked*(c: ptr xcb_connection_t;
# wantedMajor: uint16; wantedMinor: uint16): xcb_xkb_use_extension_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xkb_use_extension_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xkb_select_events_checked*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t;
# affectWhich: uint16; clear: uint16;
# selectAll: uint16; affectMap: uint16;
# map: uint16; details: pointer): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xkb_select_events_aux_checked*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t;
# affectWhich: uint16; clear: uint16;
# selectAll: uint16; affectMap: uint16;
# map: uint16; details: ptr xcb_xkb_select_events_details_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xkb_select_events_aux*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t;
# affectWhich: uint16; clear: uint16;
# selectAll: uint16; affectMap: uint16;
# map: uint16;
# details: ptr xcb_xkb_select_events_details_t): xcb_void_cookie_t
# proc xcb_xkb_select_events_details*(R: ptr xcb_xkb_select_events_request_t): pointer
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xkb_bell_checked*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t;
# bellClass: xcb_xkb_bell_class_spec_t;
# bellID: xcb_xkb_id_spec_t; percent: int8;
# forceSound: uint8; eventOnly: uint8; pitch: int16;
# duration: int16; name: xcb_atom_t; window: xcb_window_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xkb_bell*(c: ptr xcb_connection_t; deviceSpec: xcb_xkb_device_spec_t;
# bellClass: xcb_xkb_bell_class_spec_t; bellID: xcb_xkb_id_spec_t;
# percent: int8; forceSound: uint8; eventOnly: uint8;
# pitch: int16; duration: int16; name: xcb_atom_t;
# window: xcb_window_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xkb_get_state*(c: ptr xcb_connection_t; deviceSpec: xcb_xkb_device_spec_t): xcb_xkb_get_state_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xkb_get_state_unchecked*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t): xcb_xkb_get_state_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xkb_get_state_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xkb_get_state_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_get_state_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_get_state_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xkb_latch_lock_state_checked*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t;
# affectModLocks: uint8; modLocks: uint8;
# lockGroup: uint8; groupLock: uint8;
# affectModLatches: uint8;
# latchGroup: uint8; groupLatch: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xkb_latch_lock_state*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t;
# affectModLocks: uint8; modLocks: uint8;
# lockGroup: uint8; groupLock: uint8;
# affectModLatches: uint8; latchGroup: uint8;
# groupLatch: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xkb_get_controls*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t): xcb_xkb_get_controls_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xkb_get_controls_unchecked*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t): xcb_xkb_get_controls_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xkb_get_controls_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xkb_get_controls_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_get_controls_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_get_controls_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xkb_set_controls_checked*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t;
# affectInternalRealMods: uint8;
# internalRealMods: uint8;
# affectIgnoreLockRealMods: uint8;
# ignoreLockRealMods: uint8;
# affectInternalVirtualMods: uint16;
# internalVirtualMods: uint16;
# affectIgnoreLockVirtualMods: uint16;
# ignoreLockVirtualMods: uint16;
# mouseKeysDfltBtn: uint8; groupsWrap: uint8;
# accessXOptions: uint16;
# affectEnabledControls: uint32;
# enabledControls: uint32;
# changeControls: uint32; repeatDelay: uint16;
# repeatInterval: uint16;
# slowKeysDelay: uint16;
# debounceDelay: uint16;
# mouseKeysDelay: uint16;
# mouseKeysInterval: uint16;
# mouseKeysTimeToMax: uint16;
# mouseKeysMaxSpeed: uint16;
# mouseKeysCurve: int16;
# accessXTimeout: uint16;
# accessXTimeoutMask: uint32;
# accessXTimeoutValues: uint32;
# accessXTimeoutOptionsMask: uint16;
# accessXTimeoutOptionsValues: uint16;
# perKeyRepeat: ptr uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xkb_set_controls*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t;
# affectInternalRealMods: uint8;
# internalRealMods: uint8;
# affectIgnoreLockRealMods: uint8;
# ignoreLockRealMods: uint8;
# affectInternalVirtualMods: uint16;
# internalVirtualMods: uint16;
# affectIgnoreLockVirtualMods: uint16;
# ignoreLockVirtualMods: uint16;
# mouseKeysDfltBtn: uint8; groupsWrap: uint8;
# accessXOptions: uint16;
# affectEnabledControls: uint32;
# enabledControls: uint32; changeControls: uint32;
# repeatDelay: uint16; repeatInterval: uint16;
# slowKeysDelay: uint16; debounceDelay: uint16;
# mouseKeysDelay: uint16; mouseKeysInterval: uint16;
# mouseKeysTimeToMax: uint16;
# mouseKeysMaxSpeed: uint16; mouseKeysCurve: int16;
# accessXTimeout: uint16; accessXTimeoutMask: uint32;
# accessXTimeoutValues: uint32;
# accessXTimeoutOptionsMask: uint16;
# accessXTimeoutOptionsValues: uint16;
# perKeyRepeat: ptr uint8): xcb_void_cookie_t
# proc xcb_xkb_get_map_map_vmods_rtrn_end*(R: ptr xcb_xkb_get_map_reply_t;
# S: ptr xcb_xkb_get_map_map_t): xcb_generic_iterator_t
# proc xcb_xkb_get_map_map_explicit_rtrn*(S: ptr xcb_xkb_get_map_map_t): ptr xcb_xkb_set_explicit_t
# proc xcb_xkb_get_map_map_explicit_rtrn_length*(R: ptr xcb_xkb_get_map_reply_t;
# S: ptr xcb_xkb_get_map_map_t): cint
# proc xcb_xkb_get_map_map_explicit_rtrn_iterator*(R: ptr xcb_xkb_get_map_reply_t;
# S: ptr xcb_xkb_get_map_map_t): xcb_xkb_set_explicit_iterator_t
# proc xcb_xkb_get_map_map_modmap_rtrn*(S: ptr xcb_xkb_get_map_map_t): ptr xcb_xkb_key_mod_map_t
# proc xcb_xkb_get_map_map_modmap_rtrn_length*(R: ptr xcb_xkb_get_map_reply_t;
# S: ptr xcb_xkb_get_map_map_t): cint
# proc xcb_xkb_get_map_map_modmap_rtrn_iterator*(R: ptr xcb_xkb_get_map_reply_t;
# S: ptr xcb_xkb_get_map_map_t): xcb_xkb_key_mod_map_iterator_t
# proc xcb_xkb_get_map_map_vmodmap_rtrn*(S: ptr xcb_xkb_get_map_map_t): ptr xcb_xkb_key_v_mod_map_t
# proc xcb_xkb_get_map_map_vmodmap_rtrn_length*(R: ptr xcb_xkb_get_map_reply_t;
# S: ptr xcb_xkb_get_map_map_t): cint
# proc xcb_xkb_get_map_map_vmodmap_rtrn_iterator*(R: ptr xcb_xkb_get_map_reply_t;
# S: ptr xcb_xkb_get_map_map_t): xcb_xkb_key_v_mod_map_iterator_t
# proc xcb_xkb_get_map_map_serialize*(_buffer: ptr pointer; nTypes: uint8;
# nKeySyms: uint8; nKeyActions: uint8;
# totalActions: uint16;
# totalKeyBehaviors: uint8;
# virtualMods: uint16;
# totalKeyExplicit: uint8;
# totalModMapKeys: uint8;
# totalVModMapKeys: uint8; present: uint16;
# _aux: ptr xcb_xkb_get_map_map_t): cint
# proc xcb_xkb_get_map_map_sizeof*(_buffer: pointer; nTypes: uint8;
# nKeySyms: uint8; nKeyActions: uint8;
# totalActions: uint16;
# totalKeyBehaviors: uint8; virtualMods: uint16;
# totalKeyExplicit: uint8;
# totalModMapKeys: uint8;
# totalVModMapKeys: uint8; present: uint16): cint
# proc xcb_xkb_get_map_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# proc xcb_xkb_get_map_unchecked*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t; full: uint16;
# partial: uint16; firstType: uint8;
# nTypes: uint8; firstKeySym: xcb_keycode_t;
# nKeySyms: uint8; firstKeyAction: xcb_keycode_t;
# nKeyActions: uint8;
# firstKeyBehavior: xcb_keycode_t;
# nKeyBehaviors: uint8; virtualMods: uint16;
# firstKeyExplicit: xcb_keycode_t;
# nKeyExplicit: uint8;
# firstModMapKey: xcb_keycode_t;
# nModMapKeys: uint8;
# firstVModMapKey: xcb_keycode_t;
# nVModMapKeys: uint8): xcb_xkb_get_map_cookie_t
# proc xcb_xkb_set_map_values_types_length*(R: ptr xcb_xkb_set_map_request_t;
# S: ptr xcb_xkb_set_map_values_t): cint
# proc xcb_xkb_set_map_values_types_iterator*(R: ptr xcb_xkb_set_map_request_t;
# S: ptr xcb_xkb_set_map_values_t): xcb_xkb_set_key_type_iterator_t
# proc xcb_xkb_set_map_values_syms_length*(R: ptr xcb_xkb_set_map_request_t;
# S: ptr xcb_xkb_set_map_values_t): cint
# proc xcb_xkb_set_map_values_syms_iterator*(R: ptr xcb_xkb_set_map_request_t;
# S: ptr xcb_xkb_set_map_values_t): xcb_xkb_key_sym_map_iterator_t
# proc xcb_xkb_set_map_values_actions_count*(S: ptr xcb_xkb_set_map_values_t): ptr uint8
# proc xcb_xkb_set_map_values_actions_count_length*(
# R: ptr xcb_xkb_set_map_request_t; S: ptr xcb_xkb_set_map_values_t): cint
# proc xcb_xkb_set_map_values_actions_count_end*(R: ptr xcb_xkb_set_map_request_t;
# S: ptr xcb_xkb_set_map_values_t): xcb_generic_iterator_t
# proc xcb_xkb_set_map_values_actions*(S: ptr xcb_xkb_set_map_values_t): ptr xcb_xkb_action_t
# proc xcb_xkb_set_map_values_actions_length*(R: ptr xcb_xkb_set_map_request_t;
# S: ptr xcb_xkb_set_map_values_t): cint
# proc xcb_xkb_set_map_values_actions_iterator*(R: ptr xcb_xkb_set_map_request_t;
# S: ptr xcb_xkb_set_map_values_t): xcb_xkb_action_iterator_t
# proc xcb_xkb_set_map_values_behaviors*(S: ptr xcb_xkb_set_map_values_t): ptr xcb_xkb_set_behavior_t
# proc xcb_xkb_set_map_values_behaviors_length*(R: ptr xcb_xkb_set_map_request_t;
# S: ptr xcb_xkb_set_map_values_t): cint
# proc xcb_xkb_set_map_values_behaviors_iterator*(R: ptr xcb_xkb_set_map_request_t;
# S: ptr xcb_xkb_set_map_values_t): xcb_xkb_set_behavior_iterator_t
# proc xcb_xkb_set_map_values_vmods*(S: ptr xcb_xkb_set_map_values_t): ptr uint8
# proc xcb_xkb_set_map_values_vmods_length*(R: ptr xcb_xkb_set_map_request_t;
# S: ptr xcb_xkb_set_map_values_t): cint
# proc xcb_xkb_set_map_values_vmods_end*(R: ptr xcb_xkb_set_map_request_t;
# S: ptr xcb_xkb_set_map_values_t): xcb_generic_iterator_t
# proc xcb_xkb_set_map_values_explicit*(S: ptr xcb_xkb_set_map_values_t): ptr xcb_xkb_set_explicit_t
# proc xcb_xkb_set_map_values_explicit_length*(R: ptr xcb_xkb_set_map_request_t;
# S: ptr xcb_xkb_set_map_values_t): cint
# proc xcb_xkb_set_map_values_explicit_iterator*(R: ptr xcb_xkb_set_map_request_t;
# S: ptr xcb_xkb_set_map_values_t): xcb_xkb_set_explicit_iterator_t
# proc xcb_xkb_set_map_values_modmap*(S: ptr xcb_xkb_set_map_values_t): ptr xcb_xkb_key_mod_map_t
# proc xcb_xkb_set_map_values_modmap_length*(R: ptr xcb_xkb_set_map_request_t;
# S: ptr xcb_xkb_set_map_values_t): cint
# proc xcb_xkb_set_map_values_modmap_iterator*(R: ptr xcb_xkb_set_map_request_t;
# S: ptr xcb_xkb_set_map_values_t): xcb_xkb_key_mod_map_iterator_t
# proc xcb_xkb_set_map_values_vmodmap*(S: ptr xcb_xkb_set_map_values_t): ptr xcb_xkb_key_v_mod_map_t
# proc xcb_xkb_set_map_values_vmodmap_length*(R: ptr xcb_xkb_set_map_request_t;
# S: ptr xcb_xkb_set_map_values_t): cint
# proc xcb_xkb_set_map_values_vmodmap_iterator*(R: ptr xcb_xkb_set_map_request_t;
# S: ptr xcb_xkb_set_map_values_t): xcb_xkb_key_v_mod_map_iterator_t
# proc xcb_xkb_set_map_values_serialize*(_buffer: ptr pointer; nTypes: uint8;
# nKeySyms: uint8; nKeyActions: uint8;
# totalActions: uint16;
# totalKeyBehaviors: uint8;
# virtualMods: uint16;
# totalKeyExplicit: uint8;
# totalModMapKeys: uint8;
# totalVModMapKeys: uint8;
# present: uint16;
# _aux: ptr xcb_xkb_set_map_values_t): cint
# proc xcb_xkb_set_map_values_unpack*(_buffer: pointer; nTypes: uint8;
# nKeySyms: uint8; nKeyActions: uint8;
# totalActions: uint16;
# totalKeyBehaviors: uint8;
# virtualMods: uint16;
# totalKeyExplicit: uint8;
# totalModMapKeys: uint8;
# totalVModMapKeys: uint8; present: uint16;
# _aux: ptr xcb_xkb_set_map_values_t): cint
# proc xcb_xkb_set_map_values_sizeof*(_buffer: pointer; nTypes: uint8;
# nKeySyms: uint8; nKeyActions: uint8;
# totalActions: uint16;
# totalKeyBehaviors: uint8;
# virtualMods: uint16;
# totalKeyExplicit: uint8;
# totalModMapKeys: uint8;
# totalVModMapKeys: uint8; present: uint16): cint
# proc xcb_xkb_set_map_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xkb_set_map_checked*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t; present: uint16;
# flags: uint16; minKeyCode: xcb_keycode_t;
# maxKeyCode: xcb_keycode_t; firstType: uint8;
# nTypes: uint8; firstKeySym: xcb_keycode_t;
# nKeySyms: uint8; totalSyms: uint16;
# firstKeyAction: xcb_keycode_t; nKeyActions: uint8;
# totalActions: uint16;
# firstKeyBehavior: xcb_keycode_t;
# nKeyBehaviors: uint8; totalKeyBehaviors: uint8;
# firstKeyExplicit: xcb_keycode_t;
# nKeyExplicit: uint8; totalKeyExplicit: uint8;
# firstModMapKey: xcb_keycode_t; nModMapKeys: uint8;
# totalModMapKeys: uint8;
# firstVModMapKey: xcb_keycode_t;
# nVModMapKeys: uint8; totalVModMapKeys: uint8;
# virtualMods: uint16; values: pointer): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xkb_set_map*(c: ptr xcb_connection_t; deviceSpec: xcb_xkb_device_spec_t;
# present: uint16; flags: uint16; minKeyCode: xcb_keycode_t;
# maxKeyCode: xcb_keycode_t; firstType: uint8; nTypes: uint8;
# firstKeySym: xcb_keycode_t; nKeySyms: uint8;
# totalSyms: uint16; firstKeyAction: xcb_keycode_t;
# nKeyActions: uint8; totalActions: uint16;
# firstKeyBehavior: xcb_keycode_t; nKeyBehaviors: uint8;
# totalKeyBehaviors: uint8; firstKeyExplicit: xcb_keycode_t;
# nKeyExplicit: uint8; totalKeyExplicit: uint8;
# firstModMapKey: xcb_keycode_t; nModMapKeys: uint8;
# totalModMapKeys: uint8; firstVModMapKey: xcb_keycode_t;
# nVModMapKeys: uint8; totalVModMapKeys: uint8;
# virtualMods: uint16; values: pointer): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xkb_set_map_aux_checked*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t;
# present: uint16; flags: uint16;
# minKeyCode: xcb_keycode_t;
# maxKeyCode: xcb_keycode_t; firstType: uint8;
# nTypes: uint8; firstKeySym: xcb_keycode_t;
# nKeySyms: uint8; totalSyms: uint16;
# firstKeyAction: xcb_keycode_t;
# nKeyActions: uint8; totalActions: uint16;
# firstKeyBehavior: xcb_keycode_t;
# nKeyBehaviors: uint8;
# totalKeyBehaviors: uint8;
# firstKeyExplicit: xcb_keycode_t;
# nKeyExplicit: uint8; totalKeyExplicit: uint8;
# firstModMapKey: xcb_keycode_t;
# nModMapKeys: uint8; totalModMapKeys: uint8;
# firstVModMapKey: xcb_keycode_t;
# nVModMapKeys: uint8; totalVModMapKeys: uint8;
# virtualMods: uint16;
# values: ptr xcb_xkb_set_map_values_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xkb_set_map_aux*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t; present: uint16;
# flags: uint16; minKeyCode: xcb_keycode_t;
# maxKeyCode: xcb_keycode_t; firstType: uint8;
# nTypes: uint8; firstKeySym: xcb_keycode_t;
# nKeySyms: uint8; totalSyms: uint16;
# firstKeyAction: xcb_keycode_t; nKeyActions: uint8;
# totalActions: uint16; firstKeyBehavior: xcb_keycode_t;
# nKeyBehaviors: uint8; totalKeyBehaviors: uint8;
# firstKeyExplicit: xcb_keycode_t; nKeyExplicit: uint8;
# totalKeyExplicit: uint8; firstModMapKey: xcb_keycode_t;
# nModMapKeys: uint8; totalModMapKeys: uint8;
# firstVModMapKey: xcb_keycode_t; nVModMapKeys: uint8;
# totalVModMapKeys: uint8; virtualMods: uint16;
# values: ptr xcb_xkb_set_map_values_t): xcb_void_cookie_t
# proc xcb_xkb_set_map_values*(R: ptr xcb_xkb_set_map_request_t): pointer
# proc xcb_xkb_get_compat_map_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xkb_get_compat_map*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t; groups: uint8;
# getAllSI: uint8; firstSI: uint16; nSI: uint16): xcb_xkb_get_compat_map_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xkb_get_compat_map_unchecked*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t;
# groups: uint8; getAllSI: uint8;
# firstSI: uint16; nSI: uint16): xcb_xkb_get_compat_map_cookie_t
# proc xcb_xkb_get_compat_map_si_rtrn*(R: ptr xcb_xkb_get_compat_map_reply_t): ptr xcb_xkb_sym_interpret_t
# proc xcb_xkb_get_compat_map_si_rtrn_length*(R: ptr xcb_xkb_get_compat_map_reply_t): cint
# proc xcb_xkb_get_compat_map_si_rtrn_iterator*(
# R: ptr xcb_xkb_get_compat_map_reply_t): xcb_xkb_sym_interpret_iterator_t
# proc xcb_xkb_get_compat_map_group_rtrn*(R: ptr xcb_xkb_get_compat_map_reply_t): ptr xcb_xkb_mod_def_t
# proc xcb_xkb_get_compat_map_group_rtrn_length*(
# R: ptr xcb_xkb_get_compat_map_reply_t): cint
# proc xcb_xkb_get_compat_map_group_rtrn_iterator*(
# R: ptr xcb_xkb_get_compat_map_reply_t): xcb_xkb_mod_def_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xkb_get_compat_map_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xkb_get_compat_map_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_get_compat_map_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_get_compat_map_reply_t
# proc xcb_xkb_set_compat_map_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xkb_set_compat_map_checked*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t;
# recomputeActions: uint8;
# truncateSI: uint8; groups: uint8;
# firstSI: uint16; nSI: uint16;
# si: ptr xcb_xkb_sym_interpret_t;
# groupMaps: ptr xcb_xkb_mod_def_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xkb_set_compat_map*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t;
# recomputeActions: uint8; truncateSI: uint8;
# groups: uint8; firstSI: uint16; nSI: uint16;
# si: ptr xcb_xkb_sym_interpret_t;
# groupMaps: ptr xcb_xkb_mod_def_t): xcb_void_cookie_t
# proc xcb_xkb_set_compat_map_si*(R: ptr xcb_xkb_set_compat_map_request_t): ptr xcb_xkb_sym_interpret_t
# proc xcb_xkb_set_compat_map_si_length*(R: ptr xcb_xkb_set_compat_map_request_t): cint
# proc xcb_xkb_set_compat_map_si_iterator*(R: ptr xcb_xkb_set_compat_map_request_t): xcb_xkb_sym_interpret_iterator_t
# proc xcb_xkb_set_compat_map_group_maps*(R: ptr xcb_xkb_set_compat_map_request_t): ptr xcb_xkb_mod_def_t
# proc xcb_xkb_set_compat_map_group_maps_length*(
# R: ptr xcb_xkb_set_compat_map_request_t): cint
# proc xcb_xkb_set_compat_map_group_maps_iterator*(
# R: ptr xcb_xkb_set_compat_map_request_t): xcb_xkb_mod_def_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xkb_get_indicator_state*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t): xcb_xkb_get_indicator_state_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xkb_get_indicator_state_unchecked*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t): xcb_xkb_get_indicator_state_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xkb_get_indicator_state_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xkb_get_indicator_state_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_get_indicator_state_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_get_indicator_state_reply_t
# proc xcb_xkb_get_indicator_map_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xkb_get_indicator_map*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t; which: uint32): xcb_xkb_get_indicator_map_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xkb_get_indicator_map_unchecked*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t; which: uint32): xcb_xkb_get_indicator_map_cookie_t
# proc xcb_xkb_get_indicator_map_maps*(R: ptr xcb_xkb_get_indicator_map_reply_t): ptr xcb_xkb_indicator_map_t
# proc xcb_xkb_get_indicator_map_maps_length*(
# R: ptr xcb_xkb_get_indicator_map_reply_t): cint
# proc xcb_xkb_get_indicator_map_maps_iterator*(
# R: ptr xcb_xkb_get_indicator_map_reply_t): xcb_xkb_indicator_map_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xkb_get_indicator_map_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xkb_get_indicator_map_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_get_indicator_map_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_get_indicator_map_reply_t
# proc xcb_xkb_set_indicator_map_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xkb_set_indicator_map_checked*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t;
# which: uint32;
# maps: ptr xcb_xkb_indicator_map_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xkb_set_indicator_map*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t; which: uint32;
# maps: ptr xcb_xkb_indicator_map_t): xcb_void_cookie_t
# proc xcb_xkb_set_indicator_map_maps*(R: ptr xcb_xkb_set_indicator_map_request_t): ptr xcb_xkb_indicator_map_t
# proc xcb_xkb_set_indicator_map_maps_length*(
# R: ptr xcb_xkb_set_indicator_map_request_t): cint
# proc xcb_xkb_set_indicator_map_maps_iterator*(
# R: ptr xcb_xkb_set_indicator_map_request_t): xcb_xkb_indicator_map_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xkb_get_named_indicator*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t;
# ledClass: xcb_xkb_led_class_spec_t;
# ledID: xcb_xkb_id_spec_t; indicator: xcb_atom_t): xcb_xkb_get_named_indicator_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xkb_get_named_indicator_unchecked*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t; ledClass: xcb_xkb_led_class_spec_t;
# ledID: xcb_xkb_id_spec_t; indicator: xcb_atom_t): xcb_xkb_get_named_indicator_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xkb_get_named_indicator_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xkb_get_named_indicator_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_get_named_indicator_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_get_named_indicator_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xkb_set_named_indicator_checked*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t; ledClass: xcb_xkb_led_class_spec_t;
# ledID: xcb_xkb_id_spec_t; indicator: xcb_atom_t; setState: uint8; on: uint8;
# setMap: uint8; createMap: uint8; map_flags: uint8; map_whichGroups: uint8;
# map_groups: uint8; map_whichMods: uint8; map_realMods: uint8;
# map_vmods: uint16; map_ctrls: uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xkb_set_named_indicator*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t;
# ledClass: xcb_xkb_led_class_spec_t;
# ledID: xcb_xkb_id_spec_t; indicator: xcb_atom_t;
# setState: uint8; on: uint8; setMap: uint8;
# createMap: uint8; map_flags: uint8;
# map_whichGroups: uint8; map_groups: uint8;
# map_whichMods: uint8; map_realMods: uint8;
# map_vmods: uint16; map_ctrls: uint32): xcb_void_cookie_t
# proc xcb_xkb_get_names_value_list_type_names*(
# S: ptr xcb_xkb_get_names_value_list_t): ptr xcb_atom_t
# proc xcb_xkb_get_names_value_list_type_names_length*(
# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): cint
# proc xcb_xkb_get_names_value_list_type_names_end*(
# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): xcb_generic_iterator_t
# proc xcb_xkb_get_names_value_list_n_levels_per_type*(
# S: ptr xcb_xkb_get_names_value_list_t): ptr uint8
# proc xcb_xkb_get_names_value_list_n_levels_per_type_length*(
# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): cint
# proc xcb_xkb_get_names_value_list_n_levels_per_type_end*(
# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): xcb_generic_iterator_t
# proc xcb_xkb_get_names_value_list_kt_level_names*(
# S: ptr xcb_xkb_get_names_value_list_t): ptr xcb_atom_t
# proc xcb_xkb_get_names_value_list_kt_level_names_length*(
# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): cint
# proc xcb_xkb_get_names_value_list_kt_level_names_end*(
# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): xcb_generic_iterator_t
# proc xcb_xkb_get_names_value_list_indicator_names*(
# S: ptr xcb_xkb_get_names_value_list_t): ptr xcb_atom_t
# proc xcb_xkb_get_names_value_list_indicator_names_length*(
# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): cint
# proc xcb_xkb_get_names_value_list_indicator_names_end*(
# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): xcb_generic_iterator_t
# proc xcb_xkb_get_names_value_list_virtual_mod_names*(
# S: ptr xcb_xkb_get_names_value_list_t): ptr xcb_atom_t
# proc xcb_xkb_get_names_value_list_virtual_mod_names_length*(
# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): cint
# proc xcb_xkb_get_names_value_list_virtual_mod_names_end*(
# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): xcb_generic_iterator_t
# proc xcb_xkb_get_names_value_list_groups*(S: ptr xcb_xkb_get_names_value_list_t): ptr xcb_atom_t
# proc xcb_xkb_get_names_value_list_groups_length*(
# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): cint
# proc xcb_xkb_get_names_value_list_groups_end*(R: ptr xcb_xkb_get_names_reply_t;
# S: ptr xcb_xkb_get_names_value_list_t): xcb_generic_iterator_t
# proc xcb_xkb_get_names_value_list_key_names*(
# S: ptr xcb_xkb_get_names_value_list_t): ptr xcb_xkb_key_name_t
# proc xcb_xkb_get_names_value_list_key_names_length*(
# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): cint
# proc xcb_xkb_get_names_value_list_key_names_iterator*(
# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): xcb_xkb_key_name_iterator_t
# proc xcb_xkb_get_names_value_list_key_aliases*(
# S: ptr xcb_xkb_get_names_value_list_t): ptr xcb_xkb_key_alias_t
# proc xcb_xkb_get_names_value_list_key_aliases_length*(
# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): cint
# proc xcb_xkb_get_names_value_list_key_aliases_iterator*(
# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): xcb_xkb_key_alias_iterator_t
# proc xcb_xkb_get_names_value_list_radio_group_names*(
# S: ptr xcb_xkb_get_names_value_list_t): ptr xcb_atom_t
# proc xcb_xkb_get_names_value_list_radio_group_names_length*(
# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): cint
# proc xcb_xkb_get_names_value_list_radio_group_names_end*(
# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): xcb_generic_iterator_t
# proc xcb_xkb_get_names_value_list_serialize*(_buffer: ptr pointer; nTypes: uint8;
# indicators: uint32; virtualMods: uint16; groupNames: uint8; nKeys: uint8;
# nKeyAliases: uint8; nRadioGroups: uint8; which: uint32;
# _aux: ptr xcb_xkb_get_names_value_list_t): cint
# proc xcb_xkb_get_names_value_list_unpack*(_buffer: pointer; nTypes: uint8;
# indicators: uint32; virtualMods: uint16; groupNames: uint8; nKeys: uint8;
# nKeyAliases: uint8; nRadioGroups: uint8; which: uint32;
# _aux: ptr xcb_xkb_get_names_value_list_t): cint
# proc xcb_xkb_get_names_value_list_sizeof*(_buffer: pointer; nTypes: uint8;
# indicators: uint32; virtualMods: uint16; groupNames: uint8; nKeys: uint8;
# nKeyAliases: uint8; nRadioGroups: uint8; which: uint32): cint
# proc xcb_xkb_get_names_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xkb_get_names*(c: ptr xcb_connection_t; deviceSpec: xcb_xkb_device_spec_t;
# which: uint32): xcb_xkb_get_names_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xkb_get_names_unchecked*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t;
# which: uint32): xcb_xkb_get_names_cookie_t
# proc xcb_xkb_get_names_value_list*(R: ptr xcb_xkb_get_names_reply_t): pointer
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xkb_get_names_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xkb_get_names_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_get_names_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_get_names_reply_t
# proc xcb_xkb_set_names_values_type_names*(S: ptr xcb_xkb_set_names_values_t): ptr xcb_atom_t
# proc xcb_xkb_set_names_values_type_names_length*(
# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): cint
# proc xcb_xkb_set_names_values_type_names_end*(R: ptr xcb_xkb_set_names_request_t;
# S: ptr xcb_xkb_set_names_values_t): xcb_generic_iterator_t
# proc xcb_xkb_set_names_values_n_levels_per_type*(
# S: ptr xcb_xkb_set_names_values_t): ptr uint8
# proc xcb_xkb_set_names_values_n_levels_per_type_length*(
# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): cint
# proc xcb_xkb_set_names_values_n_levels_per_type_end*(
# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): xcb_generic_iterator_t
# proc xcb_xkb_set_names_values_kt_level_names*(S: ptr xcb_xkb_set_names_values_t): ptr xcb_atom_t
# proc xcb_xkb_set_names_values_kt_level_names_length*(
# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): cint
# proc xcb_xkb_set_names_values_kt_level_names_end*(
# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): xcb_generic_iterator_t
# proc xcb_xkb_set_names_values_indicator_names*(S: ptr xcb_xkb_set_names_values_t): ptr xcb_atom_t
# proc xcb_xkb_set_names_values_indicator_names_length*(
# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): cint
# proc xcb_xkb_set_names_values_indicator_names_end*(
# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): xcb_generic_iterator_t
# proc xcb_xkb_set_names_values_virtual_mod_names*(
# S: ptr xcb_xkb_set_names_values_t): ptr xcb_atom_t
# proc xcb_xkb_set_names_values_virtual_mod_names_length*(
# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): cint
# proc xcb_xkb_set_names_values_virtual_mod_names_end*(
# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): xcb_generic_iterator_t
# proc xcb_xkb_set_names_values_groups*(S: ptr xcb_xkb_set_names_values_t): ptr xcb_atom_t
# proc xcb_xkb_set_names_values_groups_length*(R: ptr xcb_xkb_set_names_request_t;
# S: ptr xcb_xkb_set_names_values_t): cint
# proc xcb_xkb_set_names_values_groups_end*(R: ptr xcb_xkb_set_names_request_t;
# S: ptr xcb_xkb_set_names_values_t): xcb_generic_iterator_t
# proc xcb_xkb_set_names_values_key_names*(S: ptr xcb_xkb_set_names_values_t): ptr xcb_xkb_key_name_t
# proc xcb_xkb_set_names_values_key_names_length*(
# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): cint
# proc xcb_xkb_set_names_values_key_names_iterator*(
# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): xcb_xkb_key_name_iterator_t
# proc xcb_xkb_set_names_values_key_aliases*(S: ptr xcb_xkb_set_names_values_t): ptr xcb_xkb_key_alias_t
# proc xcb_xkb_set_names_values_key_aliases_length*(
# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): cint
# proc xcb_xkb_set_names_values_key_aliases_iterator*(
# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): xcb_xkb_key_alias_iterator_t
# proc xcb_xkb_set_names_values_radio_group_names*(
# S: ptr xcb_xkb_set_names_values_t): ptr xcb_atom_t
# proc xcb_xkb_set_names_values_radio_group_names_length*(
# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): cint
# proc xcb_xkb_set_names_values_radio_group_names_end*(
# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): xcb_generic_iterator_t
# proc xcb_xkb_set_names_values_serialize*(_buffer: ptr pointer; nTypes: uint8;
# indicators: uint32;
# virtualMods: uint16;
# groupNames: uint8; nKeys: uint8;
# nKeyAliases: uint8;
# nRadioGroups: uint8; which: uint32;
# _aux: ptr xcb_xkb_set_names_values_t): cint
# proc xcb_xkb_set_names_values_unpack*(_buffer: pointer; nTypes: uint8;
# indicators: uint32; virtualMods: uint16;
# groupNames: uint8; nKeys: uint8;
# nKeyAliases: uint8; nRadioGroups: uint8;
# which: uint32;
# _aux: ptr xcb_xkb_set_names_values_t): cint
# proc xcb_xkb_set_names_values_sizeof*(_buffer: pointer; nTypes: uint8;
# indicators: uint32; virtualMods: uint16;
# groupNames: uint8; nKeys: uint8;
# nKeyAliases: uint8; nRadioGroups: uint8;
# which: uint32): cint
# proc xcb_xkb_set_names_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xkb_set_names_checked*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t;
# virtualMods: uint16; which: uint32;
# firstType: uint8; nTypes: uint8;
# firstKTLevelt: uint8; nKTLevels: uint8;
# indicators: uint32; groupNames: uint8;
# nRadioGroups: uint8; firstKey: xcb_keycode_t;
# nKeys: uint8; nKeyAliases: uint8;
# totalKTLevelNames: uint16; values: pointer): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xkb_set_names*(c: ptr xcb_connection_t; deviceSpec: xcb_xkb_device_spec_t;
# virtualMods: uint16; which: uint32; firstType: uint8;
# nTypes: uint8; firstKTLevelt: uint8; nKTLevels: uint8;
# indicators: uint32; groupNames: uint8;
# nRadioGroups: uint8; firstKey: xcb_keycode_t;
# nKeys: uint8; nKeyAliases: uint8;
# totalKTLevelNames: uint16; values: pointer): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xkb_set_names_aux_checked*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t;
# virtualMods: uint16; which: uint32;
# firstType: uint8; nTypes: uint8;
# firstKTLevelt: uint8; nKTLevels: uint8;
# indicators: uint32; groupNames: uint8;
# nRadioGroups: uint8; firstKey: xcb_keycode_t;
# nKeys: uint8; nKeyAliases: uint8;
# totalKTLevelNames: uint16;
# values: ptr xcb_xkb_set_names_values_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xkb_set_names_aux*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t;
# virtualMods: uint16; which: uint32;
# firstType: uint8; nTypes: uint8;
# firstKTLevelt: uint8; nKTLevels: uint8;
# indicators: uint32; groupNames: uint8;
# nRadioGroups: uint8; firstKey: xcb_keycode_t;
# nKeys: uint8; nKeyAliases: uint8;
# totalKTLevelNames: uint16;
# values: ptr xcb_xkb_set_names_values_t): xcb_void_cookie_t
# proc xcb_xkb_set_names_values*(R: ptr xcb_xkb_set_names_request_t): pointer
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xkb_per_client_flags*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t; change: uint32;
# value: uint32; ctrlsToChange: uint32;
# autoCtrls: uint32; autoCtrlsValues: uint32): xcb_xkb_per_client_flags_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xkb_per_client_flags_unchecked*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t;
# change: uint32; value: uint32;
# ctrlsToChange: uint32;
# autoCtrls: uint32;
# autoCtrlsValues: uint32): xcb_xkb_per_client_flags_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xkb_per_client_flags_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xkb_per_client_flags_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_per_client_flags_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_per_client_flags_reply_t
# proc xcb_xkb_list_components_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xkb_list_components*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t; maxNames: uint16): xcb_xkb_list_components_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xkb_list_components_unchecked*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t;
# maxNames: uint16): xcb_xkb_list_components_cookie_t
# proc xcb_xkb_list_components_keymaps_length*(
# R: ptr xcb_xkb_list_components_reply_t): cint
# proc xcb_xkb_list_components_keymaps_iterator*(
# R: ptr xcb_xkb_list_components_reply_t): xcb_xkb_listing_iterator_t
# proc xcb_xkb_list_components_keycodes_length*(
# R: ptr xcb_xkb_list_components_reply_t): cint
# proc xcb_xkb_list_components_keycodes_iterator*(
# R: ptr xcb_xkb_list_components_reply_t): xcb_xkb_listing_iterator_t
# proc xcb_xkb_list_components_types_length*(R: ptr xcb_xkb_list_components_reply_t): cint
# proc xcb_xkb_list_components_types_iterator*(
# R: ptr xcb_xkb_list_components_reply_t): xcb_xkb_listing_iterator_t
# proc xcb_xkb_list_components_compat_maps_length*(
# R: ptr xcb_xkb_list_components_reply_t): cint
# proc xcb_xkb_list_components_compat_maps_iterator*(
# R: ptr xcb_xkb_list_components_reply_t): xcb_xkb_listing_iterator_t
# proc xcb_xkb_list_components_symbols_length*(
# R: ptr xcb_xkb_list_components_reply_t): cint
# proc xcb_xkb_list_components_symbols_iterator*(
# R: ptr xcb_xkb_list_components_reply_t): xcb_xkb_listing_iterator_t
# proc xcb_xkb_list_components_geometries_length*(
# R: ptr xcb_xkb_list_components_reply_t): cint
# proc xcb_xkb_list_components_geometries_iterator*(
# R: ptr xcb_xkb_list_components_reply_t): xcb_xkb_listing_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xkb_list_components_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xkb_list_components_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_list_components_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_list_components_reply_t
# proc xcb_xkb_get_kbd_by_name_replies_types_map_types_rtrn_length*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_types_map_types_rtrn_iterator*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_xkb_key_type_iterator_t
# proc xcb_xkb_get_kbd_by_name_replies_types_map_syms_rtrn_length*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_types_map_syms_rtrn_iterator*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_xkb_key_sym_map_iterator_t
# proc xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count*(
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr uint8
# proc xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count_length*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count_end*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_generic_iterator_t
# proc xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts*(
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_action_t
# proc xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts_length*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts_iterator*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_xkb_action_iterator_t
# proc xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn*(
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_set_behavior_t
# proc xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn_length*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn_iterator*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_xkb_set_behavior_iterator_t
# proc xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn*(
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr uint8
# proc xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn_length*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn_end*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_generic_iterator_t
# proc xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn*(
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_set_explicit_t
# proc xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn_length*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn_iterator*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_xkb_set_explicit_iterator_t
# proc xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn*(
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_key_mod_map_t
# proc xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn_length*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn_iterator*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_xkb_key_mod_map_iterator_t
# proc xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn*(
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_key_v_mod_map_t
# proc xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn_length*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn_iterator*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_xkb_key_v_mod_map_iterator_t
# proc xcb_xkb_get_kbd_by_name_replies_types_map_serialize*(_buffer: ptr pointer;
# nTypes: uint8; nKeySyms: uint8; nKeyActions: uint8; totalActions: uint16;
# totalKeyBehaviors: uint8; virtualMods: uint16; totalKeyExplicit: uint8;
# totalModMapKeys: uint8; totalVModMapKeys: uint8; present: uint16;
# _aux: ptr xcb_xkb_get_kbd_by_name_replies_types_map_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_types_map_unpack*(_buffer: pointer;
# nTypes: uint8; nKeySyms: uint8; nKeyActions: uint8; totalActions: uint16;
# totalKeyBehaviors: uint8; virtualMods: uint16; totalKeyExplicit: uint8;
# totalModMapKeys: uint8; totalVModMapKeys: uint8; present: uint16;
# _aux: ptr xcb_xkb_get_kbd_by_name_replies_types_map_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_types_map_sizeof*(_buffer: pointer;
# nTypes: uint8; nKeySyms: uint8; nKeyActions: uint8; totalActions: uint16;
# totalKeyBehaviors: uint8; virtualMods: uint16; totalKeyExplicit: uint8;
# totalModMapKeys: uint8; totalVModMapKeys: uint8; present: uint16): cint
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names*(
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_atom_t
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names_length*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names_end*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_generic_iterator_t
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type*(
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr uint8
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type_length*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type_end*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_generic_iterator_t
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names*(
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_atom_t
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names_length*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names_end*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_generic_iterator_t
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names*(
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_atom_t
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names_length*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names_end*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_generic_iterator_t
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names*(
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_atom_t
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names_length*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names_end*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_generic_iterator_t
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups*(
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_atom_t
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups_length*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups_end*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_generic_iterator_t
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names*(
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_key_name_t
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names_length*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names_iterator*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_xkb_key_name_iterator_t
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases*(
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_key_alias_t
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases_length*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases_iterator*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_xkb_key_alias_iterator_t
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names*(
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_atom_t
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names_length*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names_end*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_generic_iterator_t
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_serialize*(
# _buffer: ptr pointer; nTypes: uint8; indicators: uint32; virtualMods: uint16;
# groupNames: uint8; nKeys: uint8; nKeyAliases: uint8; nRadioGroups: uint8;
# which: uint32;
# _aux: ptr xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_unpack*(
# _buffer: pointer; nTypes: uint8; indicators: uint32; virtualMods: uint16;
# groupNames: uint8; nKeys: uint8; nKeyAliases: uint8; nRadioGroups: uint8;
# which: uint32;
# _aux: ptr xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_sizeof*(
# _buffer: pointer; nTypes: uint8; indicators: uint32; virtualMods: uint16;
# groupNames: uint8; nKeys: uint8; nKeyAliases: uint8; nRadioGroups: uint8;
# which: uint32): cint
# proc xcb_xkb_get_kbd_by_name_replies_compat_map_si_rtrn*(
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_sym_interpret_t
# proc xcb_xkb_get_kbd_by_name_replies_compat_map_si_rtrn_length*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_compat_map_si_rtrn_iterator*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_xkb_sym_interpret_iterator_t
# proc xcb_xkb_get_kbd_by_name_replies_compat_map_group_rtrn*(
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_mod_def_t
# proc xcb_xkb_get_kbd_by_name_replies_compat_map_group_rtrn_length*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_compat_map_group_rtrn_iterator*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_xkb_mod_def_iterator_t
# proc xcb_xkb_get_kbd_by_name_replies_indicator_maps_maps*(
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_indicator_map_t
# proc xcb_xkb_get_kbd_by_name_replies_indicator_maps_maps_length*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_indicator_maps_maps_iterator*(
# R: ptr xcb_xkb_get_kbd_by_name_reply_t;
# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_xkb_indicator_map_iterator_t
# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list*(
# R: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t
# proc xcb_xkb_get_kbd_by_name_replies_geometry_label_font*(
# R: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_counted_string_16_t
# proc xcb_xkb_get_kbd_by_name_replies_serialize*(_buffer: ptr pointer;
# reported: uint16; _aux: ptr xcb_xkb_get_kbd_by_name_replies_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_unpack*(_buffer: pointer; reported: uint16;
# _aux: ptr xcb_xkb_get_kbd_by_name_replies_t): cint
# proc xcb_xkb_get_kbd_by_name_replies_sizeof*(_buffer: pointer; reported: uint16): cint
# proc xcb_xkb_get_kbd_by_name_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xkb_get_kbd_by_name*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t; need: uint16;
# want: uint16; load: uint8): xcb_xkb_get_kbd_by_name_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xkb_get_kbd_by_name_unchecked*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t;
# need: uint16; want: uint16; load: uint8): xcb_xkb_get_kbd_by_name_cookie_t
# proc xcb_xkb_get_kbd_by_name_replies*(R: ptr xcb_xkb_get_kbd_by_name_reply_t): pointer
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xkb_get_kbd_by_name_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xkb_get_kbd_by_name_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_get_kbd_by_name_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_get_kbd_by_name_reply_t
# proc xcb_xkb_get_device_info_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xkb_get_device_info*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t; wanted: uint16;
# allButtons: uint8; firstButton: uint8;
# nButtons: uint8;
# ledClass: xcb_xkb_led_class_spec_t;
# ledID: xcb_xkb_id_spec_t): xcb_xkb_get_device_info_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xkb_get_device_info_unchecked*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t;
# wanted: uint16; allButtons: uint8;
# firstButton: uint8; nButtons: uint8;
# ledClass: xcb_xkb_led_class_spec_t;
# ledID: xcb_xkb_id_spec_t): xcb_xkb_get_device_info_cookie_t
# proc xcb_xkb_get_device_info_name*(R: ptr xcb_xkb_get_device_info_reply_t): ptr xcb_xkb_string8_t
# proc xcb_xkb_get_device_info_name_length*(R: ptr xcb_xkb_get_device_info_reply_t): cint
# proc xcb_xkb_get_device_info_name_end*(R: ptr xcb_xkb_get_device_info_reply_t): xcb_generic_iterator_t
# proc xcb_xkb_get_device_info_btn_actions*(R: ptr xcb_xkb_get_device_info_reply_t): ptr xcb_xkb_action_t
# proc xcb_xkb_get_device_info_btn_actions_length*(
# R: ptr xcb_xkb_get_device_info_reply_t): cint
# proc xcb_xkb_get_device_info_btn_actions_iterator*(
# R: ptr xcb_xkb_get_device_info_reply_t): xcb_xkb_action_iterator_t
# proc xcb_xkb_get_device_info_leds_length*(R: ptr xcb_xkb_get_device_info_reply_t): cint
# proc xcb_xkb_get_device_info_leds_iterator*(
# R: ptr xcb_xkb_get_device_info_reply_t): xcb_xkb_device_led_info_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xkb_get_device_info_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xkb_get_device_info_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_get_device_info_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_get_device_info_reply_t
# proc xcb_xkb_set_device_info_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xkb_set_device_info_checked*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t;
# firstBtn: uint8; nBtns: uint8;
# change: uint16; nDeviceLedFBs: uint16;
# btnActions: ptr xcb_xkb_action_t;
# leds: ptr xcb_xkb_device_led_info_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xkb_set_device_info*(c: ptr xcb_connection_t;
# deviceSpec: xcb_xkb_device_spec_t; firstBtn: uint8;
# nBtns: uint8; change: uint16;
# nDeviceLedFBs: uint16;
# btnActions: ptr xcb_xkb_action_t;
# leds: ptr xcb_xkb_device_led_info_t): xcb_void_cookie_t
# proc xcb_xkb_set_device_info_btn_actions*(
# R: ptr xcb_xkb_set_device_info_request_t): ptr xcb_xkb_action_t
# proc xcb_xkb_set_device_info_btn_actions_length*(
# R: ptr xcb_xkb_set_device_info_request_t): cint
# proc xcb_xkb_set_device_info_btn_actions_iterator*(
# R: ptr xcb_xkb_set_device_info_request_t): xcb_xkb_action_iterator_t
# proc xcb_xkb_set_device_info_leds_length*(
# R: ptr xcb_xkb_set_device_info_request_t): cint
# proc xcb_xkb_set_device_info_leds_iterator*(
# R: ptr xcb_xkb_set_device_info_request_t): xcb_xkb_device_led_info_iterator_t
# proc xcb_xkb_set_debugging_flags_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xkb_set_debugging_flags*(c: ptr xcb_connection_t; msgLength: uint16;
# affectFlags: uint32; flags: uint32;
# affectCtrls: uint32; ctrls: uint32;
# message: ptr xcb_xkb_string8_t): xcb_xkb_set_debugging_flags_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xkb_set_debugging_flags_unchecked*(c: ptr xcb_connection_t;
# msgLength: uint16; affectFlags: uint32; flags: uint32;
# affectCtrls: uint32; ctrls: uint32; message: ptr xcb_xkb_string8_t): xcb_xkb_set_debugging_flags_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xkb_set_debugging_flags_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xkb_set_debugging_flags_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_set_debugging_flags_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_set_debugging_flags_reply_t
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from xprint.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB_XPrint_API XCB XPrint API
# ## @brief XPrint XCB Protocol Implementation.
# ## @{
# ##
# import
# xcb, xproto
# const
# XCB_XPRINT_MAJOR_VERSION* = 1
# XCB_XPRINT_MINOR_VERSION* = 0
# var xcb_x_print_id*: xcb_extension_t
# type
# xcb_x_print_string8_t* = char
# ## *
# ## @brief xcb_x_print_string8_iterator_t
# ##
# type
# xcb_x_print_string8_iterator_t* {.bycopy.} = object
# data*: ptr xcb_x_print_string8_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_x_print_printer_t
# ##
# type
# xcb_x_print_printer_t* {.bycopy.} = object
# nameLen*: uint32
# descLen*: uint32
# ## *
# ## @brief xcb_x_print_printer_iterator_t
# ##
# type
# xcb_x_print_printer_iterator_t* {.bycopy.} = object
# data*: ptr xcb_x_print_printer_t
# rem*: cint
# index*: cint
# xcb_x_print_pcontext_t* = uint32
# ## *
# ## @brief xcb_x_print_pcontext_iterator_t
# ##
# type
# xcb_x_print_pcontext_iterator_t* {.bycopy.} = object
# data*: ptr xcb_x_print_pcontext_t
# rem*: cint
# index*: cint
# xcb_x_print_get_doc_t* = enum
# XCB_X_PRINT_GET_DOC_FINISHED = 0, XCB_X_PRINT_GET_DOC_SECOND_CONSUMER = 1
# xcb_x_print_ev_mask_t* = enum
# XCB_X_PRINT_EV_MASK_NO_EVENT_MASK = 0, XCB_X_PRINT_EV_MASK_PRINT_MASK = 1,
# XCB_X_PRINT_EV_MASK_ATTRIBUTE_MASK = 2
# xcb_x_print_detail_t* = enum
# XCB_X_PRINT_DETAIL_START_JOB_NOTIFY = 1, XCB_X_PRINT_DETAIL_END_JOB_NOTIFY = 2,
# XCB_X_PRINT_DETAIL_START_DOC_NOTIFY = 3, XCB_X_PRINT_DETAIL_END_DOC_NOTIFY = 4,
# XCB_X_PRINT_DETAIL_START_PAGE_NOTIFY = 5,
# XCB_X_PRINT_DETAIL_END_PAGE_NOTIFY = 6
# xcb_x_print_attr_t* = enum
# XCB_X_PRINT_ATTR_JOB_ATTR = 1, XCB_X_PRINT_ATTR_DOC_ATTR = 2,
# XCB_X_PRINT_ATTR_PAGE_ATTR = 3, XCB_X_PRINT_ATTR_PRINTER_ATTR = 4,
# XCB_X_PRINT_ATTR_SERVER_ATTR = 5, XCB_X_PRINT_ATTR_MEDIUM_ATTR = 6,
# XCB_X_PRINT_ATTR_SPOOLER_ATTR = 7
# ## *
# ## @brief xcb_x_print_print_query_version_cookie_t
# ##
# type
# xcb_x_print_print_query_version_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_x_print_print_query_version.
# const
# XCB_X_PRINT_PRINT_QUERY_VERSION* = 0
# ## *
# ## @brief xcb_x_print_print_query_version_request_t
# ##
# type
# xcb_x_print_print_query_version_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_x_print_print_query_version_reply_t
# ##
# type
# xcb_x_print_print_query_version_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# major_version*: uint16
# minor_version*: uint16
# ## *
# ## @brief xcb_x_print_print_get_printer_list_cookie_t
# ##
# type
# xcb_x_print_print_get_printer_list_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_x_print_print_get_printer_list.
# const
# XCB_X_PRINT_PRINT_GET_PRINTER_LIST* = 1
# ## *
# ## @brief xcb_x_print_print_get_printer_list_request_t
# ##
# type
# xcb_x_print_print_get_printer_list_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# printerNameLen*: uint32
# localeLen*: uint32
# ## *
# ## @brief xcb_x_print_print_get_printer_list_reply_t
# ##
# type
# xcb_x_print_print_get_printer_list_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# listCount*: uint32
# pad1*: array[20, uint8]
# ## * Opcode for xcb_x_print_print_rehash_printer_list.
# const
# XCB_X_PRINT_PRINT_REHASH_PRINTER_LIST* = 20
# ## *
# ## @brief xcb_x_print_print_rehash_printer_list_request_t
# ##
# type
# xcb_x_print_print_rehash_printer_list_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## * Opcode for xcb_x_print_create_context.
# const
# XCB_X_PRINT_CREATE_CONTEXT* = 2
# ## *
# ## @brief xcb_x_print_create_context_request_t
# ##
# type
# xcb_x_print_create_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context_id*: uint32
# printerNameLen*: uint32
# localeLen*: uint32
# ## * Opcode for xcb_x_print_print_set_context.
# const
# XCB_X_PRINT_PRINT_SET_CONTEXT* = 3
# ## *
# ## @brief xcb_x_print_print_set_context_request_t
# ##
# type
# xcb_x_print_print_set_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context*: uint32
# ## *
# ## @brief xcb_x_print_print_get_context_cookie_t
# ##
# type
# xcb_x_print_print_get_context_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_x_print_print_get_context.
# const
# XCB_X_PRINT_PRINT_GET_CONTEXT* = 4
# ## *
# ## @brief xcb_x_print_print_get_context_request_t
# ##
# type
# xcb_x_print_print_get_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_x_print_print_get_context_reply_t
# ##
# type
# xcb_x_print_print_get_context_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# context*: uint32
# ## * Opcode for xcb_x_print_print_destroy_context.
# const
# XCB_X_PRINT_PRINT_DESTROY_CONTEXT* = 5
# ## *
# ## @brief xcb_x_print_print_destroy_context_request_t
# ##
# type
# xcb_x_print_print_destroy_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context*: uint32
# ## *
# ## @brief xcb_x_print_print_get_screen_of_context_cookie_t
# ##
# type
# xcb_x_print_print_get_screen_of_context_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_x_print_print_get_screen_of_context.
# const
# XCB_X_PRINT_PRINT_GET_SCREEN_OF_CONTEXT* = 6
# ## *
# ## @brief xcb_x_print_print_get_screen_of_context_request_t
# ##
# type
# xcb_x_print_print_get_screen_of_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_x_print_print_get_screen_of_context_reply_t
# ##
# type
# xcb_x_print_print_get_screen_of_context_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# root*: xcb_window_t
# ## * Opcode for xcb_x_print_print_start_job.
# const
# XCB_X_PRINT_PRINT_START_JOB* = 7
# ## *
# ## @brief xcb_x_print_print_start_job_request_t
# ##
# type
# xcb_x_print_print_start_job_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# output_mode*: uint8
# ## * Opcode for xcb_x_print_print_end_job.
# const
# XCB_X_PRINT_PRINT_END_JOB* = 8
# ## *
# ## @brief xcb_x_print_print_end_job_request_t
# ##
# type
# xcb_x_print_print_end_job_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# cancel*: uint8
# ## * Opcode for xcb_x_print_print_start_doc.
# const
# XCB_X_PRINT_PRINT_START_DOC* = 9
# ## *
# ## @brief xcb_x_print_print_start_doc_request_t
# ##
# type
# xcb_x_print_print_start_doc_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# driver_mode*: uint8
# ## * Opcode for xcb_x_print_print_end_doc.
# const
# XCB_X_PRINT_PRINT_END_DOC* = 10
# ## *
# ## @brief xcb_x_print_print_end_doc_request_t
# ##
# type
# xcb_x_print_print_end_doc_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# cancel*: uint8
# ## * Opcode for xcb_x_print_print_put_document_data.
# const
# XCB_X_PRINT_PRINT_PUT_DOCUMENT_DATA* = 11
# ## *
# ## @brief xcb_x_print_print_put_document_data_request_t
# ##
# type
# xcb_x_print_print_put_document_data_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# len_data*: uint32
# len_fmt*: uint16
# len_options*: uint16
# ## *
# ## @brief xcb_x_print_print_get_document_data_cookie_t
# ##
# type
# xcb_x_print_print_get_document_data_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_x_print_print_get_document_data.
# const
# XCB_X_PRINT_PRINT_GET_DOCUMENT_DATA* = 12
# ## *
# ## @brief xcb_x_print_print_get_document_data_request_t
# ##
# type
# xcb_x_print_print_get_document_data_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context*: xcb_x_print_pcontext_t
# max_bytes*: uint32
# ## *
# ## @brief xcb_x_print_print_get_document_data_reply_t
# ##
# type
# xcb_x_print_print_get_document_data_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# status_code*: uint32
# finished_flag*: uint32
# dataLen*: uint32
# pad1*: array[12, uint8]
# ## * Opcode for xcb_x_print_print_start_page.
# const
# XCB_X_PRINT_PRINT_START_PAGE* = 13
# ## *
# ## @brief xcb_x_print_print_start_page_request_t
# ##
# type
# xcb_x_print_print_start_page_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# ## * Opcode for xcb_x_print_print_end_page.
# const
# XCB_X_PRINT_PRINT_END_PAGE* = 14
# ## *
# ## @brief xcb_x_print_print_end_page_request_t
# ##
# type
# xcb_x_print_print_end_page_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# cancel*: uint8
# pad0*: array[3, uint8]
# ## * Opcode for xcb_x_print_print_select_input.
# const
# XCB_X_PRINT_PRINT_SELECT_INPUT* = 15
# ## *
# ## @brief xcb_x_print_print_select_input_request_t
# ##
# type
# xcb_x_print_print_select_input_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context*: xcb_x_print_pcontext_t
# event_mask*: uint32
# ## *
# ## @brief xcb_x_print_print_input_selected_cookie_t
# ##
# type
# xcb_x_print_print_input_selected_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_x_print_print_input_selected.
# const
# XCB_X_PRINT_PRINT_INPUT_SELECTED* = 16
# ## *
# ## @brief xcb_x_print_print_input_selected_request_t
# ##
# type
# xcb_x_print_print_input_selected_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context*: xcb_x_print_pcontext_t
# ## *
# ## @brief xcb_x_print_print_input_selected_reply_t
# ##
# type
# xcb_x_print_print_input_selected_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# event_mask*: uint32
# all_events_mask*: uint32
# ## *
# ## @brief xcb_x_print_print_get_attributes_cookie_t
# ##
# type
# xcb_x_print_print_get_attributes_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_x_print_print_get_attributes.
# const
# XCB_X_PRINT_PRINT_GET_ATTRIBUTES* = 17
# ## *
# ## @brief xcb_x_print_print_get_attributes_request_t
# ##
# type
# xcb_x_print_print_get_attributes_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context*: xcb_x_print_pcontext_t
# pool*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_x_print_print_get_attributes_reply_t
# ##
# type
# xcb_x_print_print_get_attributes_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# stringLen*: uint32
# pad1*: array[20, uint8]
# ## *
# ## @brief xcb_x_print_print_get_one_attributes_cookie_t
# ##
# type
# xcb_x_print_print_get_one_attributes_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_x_print_print_get_one_attributes.
# const
# XCB_X_PRINT_PRINT_GET_ONE_ATTRIBUTES* = 19
# ## *
# ## @brief xcb_x_print_print_get_one_attributes_request_t
# ##
# type
# xcb_x_print_print_get_one_attributes_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context*: xcb_x_print_pcontext_t
# nameLen*: uint32
# pool*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_x_print_print_get_one_attributes_reply_t
# ##
# type
# xcb_x_print_print_get_one_attributes_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# valueLen*: uint32
# pad1*: array[20, uint8]
# ## * Opcode for xcb_x_print_print_set_attributes.
# const
# XCB_X_PRINT_PRINT_SET_ATTRIBUTES* = 18
# ## *
# ## @brief xcb_x_print_print_set_attributes_request_t
# ##
# type
# xcb_x_print_print_set_attributes_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context*: xcb_x_print_pcontext_t
# stringLen*: uint32
# pool*: uint8
# rule*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_x_print_print_get_page_dimensions_cookie_t
# ##
# type
# xcb_x_print_print_get_page_dimensions_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_x_print_print_get_page_dimensions.
# const
# XCB_X_PRINT_PRINT_GET_PAGE_DIMENSIONS* = 21
# ## *
# ## @brief xcb_x_print_print_get_page_dimensions_request_t
# ##
# type
# xcb_x_print_print_get_page_dimensions_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context*: xcb_x_print_pcontext_t
# ## *
# ## @brief xcb_x_print_print_get_page_dimensions_reply_t
# ##
# type
# xcb_x_print_print_get_page_dimensions_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# width*: uint16
# height*: uint16
# offset_x*: uint16
# offset_y*: uint16
# reproducible_width*: uint16
# reproducible_height*: uint16
# ## *
# ## @brief xcb_x_print_print_query_screens_cookie_t
# ##
# type
# xcb_x_print_print_query_screens_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_x_print_print_query_screens.
# const
# XCB_X_PRINT_PRINT_QUERY_SCREENS* = 22
# ## *
# ## @brief xcb_x_print_print_query_screens_request_t
# ##
# type
# xcb_x_print_print_query_screens_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_x_print_print_query_screens_reply_t
# ##
# type
# xcb_x_print_print_query_screens_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# listCount*: uint32
# pad1*: array[20, uint8]
# ## *
# ## @brief xcb_x_print_print_set_image_resolution_cookie_t
# ##
# type
# xcb_x_print_print_set_image_resolution_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_x_print_print_set_image_resolution.
# const
# XCB_X_PRINT_PRINT_SET_IMAGE_RESOLUTION* = 23
# ## *
# ## @brief xcb_x_print_print_set_image_resolution_request_t
# ##
# type
# xcb_x_print_print_set_image_resolution_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context*: xcb_x_print_pcontext_t
# image_resolution*: uint16
# ## *
# ## @brief xcb_x_print_print_set_image_resolution_reply_t
# ##
# type
# xcb_x_print_print_set_image_resolution_reply_t* {.bycopy.} = object
# response_type*: uint8
# status*: uint8
# sequence*: uint16
# length*: uint32
# previous_resolutions*: uint16
# ## *
# ## @brief xcb_x_print_print_get_image_resolution_cookie_t
# ##
# type
# xcb_x_print_print_get_image_resolution_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_x_print_print_get_image_resolution.
# const
# XCB_X_PRINT_PRINT_GET_IMAGE_RESOLUTION* = 24
# ## *
# ## @brief xcb_x_print_print_get_image_resolution_request_t
# ##
# type
# xcb_x_print_print_get_image_resolution_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context*: xcb_x_print_pcontext_t
# ## *
# ## @brief xcb_x_print_print_get_image_resolution_reply_t
# ##
# type
# xcb_x_print_print_get_image_resolution_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# image_resolution*: uint16
# ## * Opcode for xcb_x_print_notify.
# const
# XCB_X_PRINT_NOTIFY* = 0
# ## *
# ## @brief xcb_x_print_notify_event_t
# ##
# type
# xcb_x_print_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# detail*: uint8
# sequence*: uint16
# context*: xcb_x_print_pcontext_t
# cancel*: uint8
# ## * Opcode for xcb_x_print_attribut_notify.
# const
# XCB_X_PRINT_ATTRIBUT_NOTIFY* = 1
# ## *
# ## @brief xcb_x_print_attribut_notify_event_t
# ##
# type
# xcb_x_print_attribut_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# detail*: uint8
# sequence*: uint16
# context*: xcb_x_print_pcontext_t
# ## * Opcode for xcb_x_print_bad_context.
# const
# XCB_X_PRINT_BAD_CONTEXT* = 0
# ## *
# ## @brief xcb_x_print_bad_context_error_t
# ##
# type
# xcb_x_print_bad_context_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# ## * Opcode for xcb_x_print_bad_sequence.
# const
# XCB_X_PRINT_BAD_SEQUENCE* = 1
# ## *
# ## @brief xcb_x_print_bad_sequence_error_t
# ##
# type
# xcb_x_print_bad_sequence_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_x_print_string8_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_x_print_string8_t)
# ##
# proc xcb_x_print_string8_next*(i: ptr xcb_x_print_string8_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_x_print_string8_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_x_print_string8_end*(i: xcb_x_print_string8_iterator_t): xcb_generic_iterator_t
# proc xcb_x_print_printer_serialize*(_buffer: ptr pointer;
# _aux: ptr xcb_x_print_printer_t;
# name: ptr xcb_x_print_string8_t;
# description: ptr xcb_x_print_string8_t): cint
# proc xcb_x_print_printer_unserialize*(_buffer: pointer;
# _aux: ptr ptr xcb_x_print_printer_t): cint
# proc xcb_x_print_printer_sizeof*(_buffer: pointer): cint
# proc xcb_x_print_printer_name*(R: ptr xcb_x_print_printer_t): ptr xcb_x_print_string8_t
# proc xcb_x_print_printer_name_length*(R: ptr xcb_x_print_printer_t): cint
# proc xcb_x_print_printer_name_end*(R: ptr xcb_x_print_printer_t): xcb_generic_iterator_t
# proc xcb_x_print_printer_description*(R: ptr xcb_x_print_printer_t): ptr xcb_x_print_string8_t
# proc xcb_x_print_printer_description_length*(R: ptr xcb_x_print_printer_t): cint
# proc xcb_x_print_printer_description_end*(R: ptr xcb_x_print_printer_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_x_print_printer_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_x_print_printer_t)
# ##
# proc xcb_x_print_printer_next*(i: ptr xcb_x_print_printer_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_x_print_printer_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_x_print_printer_end*(i: xcb_x_print_printer_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_x_print_pcontext_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_x_print_pcontext_t)
# ##
# proc xcb_x_print_pcontext_next*(i: ptr xcb_x_print_pcontext_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_x_print_pcontext_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_x_print_pcontext_end*(i: xcb_x_print_pcontext_iterator_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_x_print_print_query_version*(c: ptr xcb_connection_t): xcb_x_print_print_query_version_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_x_print_print_query_version_unchecked*(c: ptr xcb_connection_t): xcb_x_print_print_query_version_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_x_print_print_query_version_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_x_print_print_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_x_print_print_query_version_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_x_print_print_query_version_reply_t
# proc xcb_x_print_print_get_printer_list_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_x_print_print_get_printer_list*(c: ptr xcb_connection_t;
# printerNameLen: uint32;
# localeLen: uint32; printer_name: ptr xcb_x_print_string8_t;
# locale: ptr xcb_x_print_string8_t): xcb_x_print_print_get_printer_list_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_x_print_print_get_printer_list_unchecked*(c: ptr xcb_connection_t;
# printerNameLen: uint32; localeLen: uint32;
# printer_name: ptr xcb_x_print_string8_t; locale: ptr xcb_x_print_string8_t): xcb_x_print_print_get_printer_list_cookie_t
# proc xcb_x_print_print_get_printer_list_printers_length*(
# R: ptr xcb_x_print_print_get_printer_list_reply_t): cint
# proc xcb_x_print_print_get_printer_list_printers_iterator*(
# R: ptr xcb_x_print_print_get_printer_list_reply_t): xcb_x_print_printer_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_x_print_print_get_printer_list_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_x_print_print_get_printer_list_reply*(c: ptr xcb_connection_t; cookie: xcb_x_print_print_get_printer_list_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_x_print_print_get_printer_list_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_x_print_print_rehash_printer_list_checked*(c: ptr xcb_connection_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_x_print_print_rehash_printer_list*(c: ptr xcb_connection_t): xcb_void_cookie_t
# proc xcb_x_print_create_context_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_x_print_create_context_checked*(c: ptr xcb_connection_t;
# context_id: uint32;
# printerNameLen: uint32;
# localeLen: uint32;
# printerName: ptr xcb_x_print_string8_t;
# locale: ptr xcb_x_print_string8_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_x_print_create_context*(c: ptr xcb_connection_t; context_id: uint32;
# printerNameLen: uint32; localeLen: uint32;
# printerName: ptr xcb_x_print_string8_t;
# locale: ptr xcb_x_print_string8_t): xcb_void_cookie_t
# proc xcb_x_print_create_context_printer_name*(
# R: ptr xcb_x_print_create_context_request_t): ptr xcb_x_print_string8_t
# proc xcb_x_print_create_context_printer_name_length*(
# R: ptr xcb_x_print_create_context_request_t): cint
# proc xcb_x_print_create_context_printer_name_end*(
# R: ptr xcb_x_print_create_context_request_t): xcb_generic_iterator_t
# proc xcb_x_print_create_context_locale*(R: ptr xcb_x_print_create_context_request_t): ptr xcb_x_print_string8_t
# proc xcb_x_print_create_context_locale_length*(
# R: ptr xcb_x_print_create_context_request_t): cint
# proc xcb_x_print_create_context_locale_end*(
# R: ptr xcb_x_print_create_context_request_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_x_print_print_set_context_checked*(c: ptr xcb_connection_t;
# context: uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_x_print_print_set_context*(c: ptr xcb_connection_t; context: uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_x_print_print_get_context*(c: ptr xcb_connection_t): xcb_x_print_print_get_context_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_x_print_print_get_context_unchecked*(c: ptr xcb_connection_t): xcb_x_print_print_get_context_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_x_print_print_get_context_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_x_print_print_get_context_reply*(c: ptr xcb_connection_t; cookie: xcb_x_print_print_get_context_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_x_print_print_get_context_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_x_print_print_destroy_context_checked*(c: ptr xcb_connection_t;
# context: uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_x_print_print_destroy_context*(c: ptr xcb_connection_t; context: uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_x_print_print_get_screen_of_context*(c: ptr xcb_connection_t): xcb_x_print_print_get_screen_of_context_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_x_print_print_get_screen_of_context_unchecked*(c: ptr xcb_connection_t): xcb_x_print_print_get_screen_of_context_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_x_print_print_get_screen_of_context_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_x_print_print_get_screen_of_context_reply*(c: ptr xcb_connection_t; cookie: xcb_x_print_print_get_screen_of_context_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_x_print_print_get_screen_of_context_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_x_print_print_start_job_checked*(c: ptr xcb_connection_t;
# output_mode: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_x_print_print_start_job*(c: ptr xcb_connection_t; output_mode: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_x_print_print_end_job_checked*(c: ptr xcb_connection_t; cancel: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_x_print_print_end_job*(c: ptr xcb_connection_t; cancel: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_x_print_print_start_doc_checked*(c: ptr xcb_connection_t;
# driver_mode: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_x_print_print_start_doc*(c: ptr xcb_connection_t; driver_mode: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_x_print_print_end_doc_checked*(c: ptr xcb_connection_t; cancel: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_x_print_print_end_doc*(c: ptr xcb_connection_t; cancel: uint8): xcb_void_cookie_t
# proc xcb_x_print_print_put_document_data_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_x_print_print_put_document_data_checked*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t; len_data: uint32; len_fmt: uint16;
# len_options: uint16; data: ptr uint8; doc_format: ptr xcb_x_print_string8_t;
# options: ptr xcb_x_print_string8_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_x_print_print_put_document_data*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t; len_data: uint32; len_fmt: uint16;
# len_options: uint16; data: ptr uint8; doc_format: ptr xcb_x_print_string8_t;
# options: ptr xcb_x_print_string8_t): xcb_void_cookie_t
# proc xcb_x_print_print_put_document_data_data*(
# R: ptr xcb_x_print_print_put_document_data_request_t): ptr uint8
# proc xcb_x_print_print_put_document_data_data_length*(
# R: ptr xcb_x_print_print_put_document_data_request_t): cint
# proc xcb_x_print_print_put_document_data_data_end*(
# R: ptr xcb_x_print_print_put_document_data_request_t): xcb_generic_iterator_t
# proc xcb_x_print_print_put_document_data_doc_format*(
# R: ptr xcb_x_print_print_put_document_data_request_t): ptr xcb_x_print_string8_t
# proc xcb_x_print_print_put_document_data_doc_format_length*(
# R: ptr xcb_x_print_print_put_document_data_request_t): cint
# proc xcb_x_print_print_put_document_data_doc_format_end*(
# R: ptr xcb_x_print_print_put_document_data_request_t): xcb_generic_iterator_t
# proc xcb_x_print_print_put_document_data_options*(
# R: ptr xcb_x_print_print_put_document_data_request_t): ptr xcb_x_print_string8_t
# proc xcb_x_print_print_put_document_data_options_length*(
# R: ptr xcb_x_print_print_put_document_data_request_t): cint
# proc xcb_x_print_print_put_document_data_options_end*(
# R: ptr xcb_x_print_print_put_document_data_request_t): xcb_generic_iterator_t
# proc xcb_x_print_print_get_document_data_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_x_print_print_get_document_data*(c: ptr xcb_connection_t;
# context: xcb_x_print_pcontext_t; max_bytes: uint32): xcb_x_print_print_get_document_data_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_x_print_print_get_document_data_unchecked*(c: ptr xcb_connection_t;
# context: xcb_x_print_pcontext_t; max_bytes: uint32): xcb_x_print_print_get_document_data_cookie_t
# proc xcb_x_print_print_get_document_data_data*(
# R: ptr xcb_x_print_print_get_document_data_reply_t): ptr uint8
# proc xcb_x_print_print_get_document_data_data_length*(
# R: ptr xcb_x_print_print_get_document_data_reply_t): cint
# proc xcb_x_print_print_get_document_data_data_end*(
# R: ptr xcb_x_print_print_get_document_data_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_x_print_print_get_document_data_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_x_print_print_get_document_data_reply*(c: ptr xcb_connection_t; cookie: xcb_x_print_print_get_document_data_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_x_print_print_get_document_data_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_x_print_print_start_page_checked*(c: ptr xcb_connection_t;
# window: xcb_window_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_x_print_print_start_page*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_x_print_print_end_page_checked*(c: ptr xcb_connection_t; cancel: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_x_print_print_end_page*(c: ptr xcb_connection_t; cancel: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_x_print_print_select_input_checked*(c: ptr xcb_connection_t;
# context: xcb_x_print_pcontext_t; event_mask: uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_x_print_print_select_input*(c: ptr xcb_connection_t;
# context: xcb_x_print_pcontext_t;
# event_mask: uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_x_print_print_input_selected*(c: ptr xcb_connection_t;
# context: xcb_x_print_pcontext_t): xcb_x_print_print_input_selected_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_x_print_print_input_selected_unchecked*(c: ptr xcb_connection_t;
# context: xcb_x_print_pcontext_t): xcb_x_print_print_input_selected_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_x_print_print_input_selected_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_x_print_print_input_selected_reply*(c: ptr xcb_connection_t; cookie: xcb_x_print_print_input_selected_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_x_print_print_input_selected_reply_t
# proc xcb_x_print_print_get_attributes_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_x_print_print_get_attributes*(c: ptr xcb_connection_t;
# context: xcb_x_print_pcontext_t;
# pool: uint8): xcb_x_print_print_get_attributes_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_x_print_print_get_attributes_unchecked*(c: ptr xcb_connection_t;
# context: xcb_x_print_pcontext_t; pool: uint8): xcb_x_print_print_get_attributes_cookie_t
# proc xcb_x_print_print_get_attributes_attributes*(
# R: ptr xcb_x_print_print_get_attributes_reply_t): ptr xcb_x_print_string8_t
# proc xcb_x_print_print_get_attributes_attributes_length*(
# R: ptr xcb_x_print_print_get_attributes_reply_t): cint
# proc xcb_x_print_print_get_attributes_attributes_end*(
# R: ptr xcb_x_print_print_get_attributes_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_x_print_print_get_attributes_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_x_print_print_get_attributes_reply*(c: ptr xcb_connection_t; cookie: xcb_x_print_print_get_attributes_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_x_print_print_get_attributes_reply_t
# proc xcb_x_print_print_get_one_attributes_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_x_print_print_get_one_attributes*(c: ptr xcb_connection_t;
# context: xcb_x_print_pcontext_t; nameLen: uint32; pool: uint8;
# name: ptr xcb_x_print_string8_t): xcb_x_print_print_get_one_attributes_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_x_print_print_get_one_attributes_unchecked*(c: ptr xcb_connection_t;
# context: xcb_x_print_pcontext_t; nameLen: uint32; pool: uint8;
# name: ptr xcb_x_print_string8_t): xcb_x_print_print_get_one_attributes_cookie_t
# proc xcb_x_print_print_get_one_attributes_value*(
# R: ptr xcb_x_print_print_get_one_attributes_reply_t): ptr xcb_x_print_string8_t
# proc xcb_x_print_print_get_one_attributes_value_length*(
# R: ptr xcb_x_print_print_get_one_attributes_reply_t): cint
# proc xcb_x_print_print_get_one_attributes_value_end*(
# R: ptr xcb_x_print_print_get_one_attributes_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_x_print_print_get_one_attributes_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_x_print_print_get_one_attributes_reply*(c: ptr xcb_connection_t; cookie: xcb_x_print_print_get_one_attributes_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_x_print_print_get_one_attributes_reply_t
# proc xcb_x_print_print_set_attributes_sizeof*(_buffer: pointer;
# attributes_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_x_print_print_set_attributes_checked*(c: ptr xcb_connection_t;
# context: xcb_x_print_pcontext_t; stringLen: uint32; pool: uint8;
# rule: uint8; attributes_len: uint32; attributes: ptr xcb_x_print_string8_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_x_print_print_set_attributes*(c: ptr xcb_connection_t;
# context: xcb_x_print_pcontext_t;
# stringLen: uint32; pool: uint8;
# rule: uint8; attributes_len: uint32;
# attributes: ptr xcb_x_print_string8_t): xcb_void_cookie_t
# proc xcb_x_print_print_set_attributes_attributes*(
# R: ptr xcb_x_print_print_set_attributes_request_t): ptr xcb_x_print_string8_t
# proc xcb_x_print_print_set_attributes_attributes_length*(
# R: ptr xcb_x_print_print_set_attributes_request_t): cint
# proc xcb_x_print_print_set_attributes_attributes_end*(
# R: ptr xcb_x_print_print_set_attributes_request_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_x_print_print_get_page_dimensions*(c: ptr xcb_connection_t;
# context: xcb_x_print_pcontext_t): xcb_x_print_print_get_page_dimensions_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_x_print_print_get_page_dimensions_unchecked*(c: ptr xcb_connection_t;
# context: xcb_x_print_pcontext_t): xcb_x_print_print_get_page_dimensions_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_x_print_print_get_page_dimensions_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_x_print_print_get_page_dimensions_reply*(c: ptr xcb_connection_t; cookie: xcb_x_print_print_get_page_dimensions_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_x_print_print_get_page_dimensions_reply_t
# proc xcb_x_print_print_query_screens_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_x_print_print_query_screens*(c: ptr xcb_connection_t): xcb_x_print_print_query_screens_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_x_print_print_query_screens_unchecked*(c: ptr xcb_connection_t): xcb_x_print_print_query_screens_cookie_t
# proc xcb_x_print_print_query_screens_roots*(
# R: ptr xcb_x_print_print_query_screens_reply_t): ptr xcb_window_t
# proc xcb_x_print_print_query_screens_roots_length*(
# R: ptr xcb_x_print_print_query_screens_reply_t): cint
# proc xcb_x_print_print_query_screens_roots_end*(
# R: ptr xcb_x_print_print_query_screens_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_x_print_print_query_screens_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_x_print_print_query_screens_reply*(c: ptr xcb_connection_t; cookie: xcb_x_print_print_query_screens_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_x_print_print_query_screens_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_x_print_print_set_image_resolution*(c: ptr xcb_connection_t;
# context: xcb_x_print_pcontext_t; image_resolution: uint16): xcb_x_print_print_set_image_resolution_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_x_print_print_set_image_resolution_unchecked*(c: ptr xcb_connection_t;
# context: xcb_x_print_pcontext_t; image_resolution: uint16): xcb_x_print_print_set_image_resolution_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_x_print_print_set_image_resolution_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_x_print_print_set_image_resolution_reply*(c: ptr xcb_connection_t; cookie: xcb_x_print_print_set_image_resolution_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_x_print_print_set_image_resolution_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_x_print_print_get_image_resolution*(c: ptr xcb_connection_t;
# context: xcb_x_print_pcontext_t): xcb_x_print_print_get_image_resolution_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_x_print_print_get_image_resolution_unchecked*(c: ptr xcb_connection_t;
# context: xcb_x_print_pcontext_t): xcb_x_print_print_get_image_resolution_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_x_print_print_get_image_resolution_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_x_print_print_get_image_resolution_reply*(c: ptr xcb_connection_t; cookie: xcb_x_print_print_get_image_resolution_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_x_print_print_get_image_resolution_reply_t
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from xproto.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB__API XCB API
# ## @brief XCB Protocol Implementation.
# ## @{
# ##
# import
# xcb
# ## *
# ## @brief xcb_char2b_t
# ##
# type
# xcb_char2b_t* {.bycopy.} = object
# byte1*: uint8
# byte2*: uint8
# ## *
# ## @brief xcb_char2b_iterator_t
# ##
# type
# xcb_char2b_iterator_t* {.bycopy.} = object
# data*: ptr xcb_char2b_t
# rem*: cint
# index*: cint
# xcb_window_t* = uint32
# ## *
# ## @brief xcb_window_iterator_t
# ##
# type
# xcb_window_iterator_t* {.bycopy.} = object
# data*: ptr xcb_window_t
# rem*: cint
# index*: cint
# xcb_pixmap_t* = uint32
# ## *
# ## @brief xcb_pixmap_iterator_t
# ##
# type
# xcb_pixmap_iterator_t* {.bycopy.} = object
# data*: ptr xcb_pixmap_t
# rem*: cint
# index*: cint
# xcb_cursor_t* = uint32
# ## *
# ## @brief xcb_cursor_iterator_t
# ##
# type
# xcb_cursor_iterator_t* {.bycopy.} = object
# data*: ptr xcb_cursor_t
# rem*: cint
# index*: cint
# xcb_font_t* = uint32
# ## *
# ## @brief xcb_font_iterator_t
# ##
# type
# xcb_font_iterator_t* {.bycopy.} = object
# data*: ptr xcb_font_t
# rem*: cint
# index*: cint
# xcb_gcontext_t* = uint32
# ## *
# ## @brief xcb_gcontext_iterator_t
# ##
# type
# xcb_gcontext_iterator_t* {.bycopy.} = object
# data*: ptr xcb_gcontext_t
# rem*: cint
# index*: cint
# xcb_colormap_t* = uint32
# ## *
# ## @brief xcb_colormap_iterator_t
# ##
# type
# xcb_colormap_iterator_t* {.bycopy.} = object
# data*: ptr xcb_colormap_t
# rem*: cint
# index*: cint
# xcb_atom_t* = uint32
# ## *
# ## @brief xcb_atom_iterator_t
# ##
# type
# xcb_atom_iterator_t* {.bycopy.} = object
# data*: ptr xcb_atom_t
# rem*: cint
# index*: cint
# xcb_drawable_t* = uint32
# ## *
# ## @brief xcb_drawable_iterator_t
# ##
# type
# xcb_drawable_iterator_t* {.bycopy.} = object
# data*: ptr xcb_drawable_t
# rem*: cint
# index*: cint
# xcb_fontable_t* = uint32
# ## *
# ## @brief xcb_fontable_iterator_t
# ##
# type
# xcb_fontable_iterator_t* {.bycopy.} = object
# data*: ptr xcb_fontable_t
# rem*: cint
# index*: cint
# xcb_bool32_t* = uint32
# ## *
# ## @brief xcb_bool32_iterator_t
# ##
# type
# xcb_bool32_iterator_t* {.bycopy.} = object
# data*: ptr xcb_bool32_t
# rem*: cint
# index*: cint
# xcb_visualid_t* = uint32
# ## *
# ## @brief xcb_visualid_iterator_t
# ##
# type
# xcb_visualid_iterator_t* {.bycopy.} = object
# data*: ptr xcb_visualid_t
# rem*: cint
# index*: cint
# xcb_timestamp_t* = uint32
# ## *
# ## @brief xcb_timestamp_iterator_t
# ##
# type
# xcb_timestamp_iterator_t* {.bycopy.} = object
# data*: ptr xcb_timestamp_t
# rem*: cint
# index*: cint
# xcb_keysym_t* = uint32
# ## *
# ## @brief xcb_keysym_iterator_t
# ##
# type
# xcb_keysym_iterator_t* {.bycopy.} = object
# data*: ptr xcb_keysym_t
# rem*: cint
# index*: cint
# xcb_keycode_t* = uint8
# ## *
# ## @brief xcb_keycode_iterator_t
# ##
# type
# xcb_keycode_iterator_t* {.bycopy.} = object
# data*: ptr xcb_keycode_t
# rem*: cint
# index*: cint
# xcb_keycode32_t* = uint32
# ## *
# ## @brief xcb_keycode32_iterator_t
# ##
# type
# xcb_keycode32_iterator_t* {.bycopy.} = object
# data*: ptr xcb_keycode32_t
# rem*: cint
# index*: cint
# xcb_button_t* = uint8
# ## *
# ## @brief xcb_button_iterator_t
# ##
# type
# xcb_button_iterator_t* {.bycopy.} = object
# data*: ptr xcb_button_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_point_t
# ##
# type
# xcb_point_t* {.bycopy.} = object
# x*: int16
# y*: int16
# ## *
# ## @brief xcb_point_iterator_t
# ##
# type
# xcb_point_iterator_t* {.bycopy.} = object
# data*: ptr xcb_point_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_rectangle_t
# ##
# type
# xcb_rectangle_t* {.bycopy.} = object
# x*: int16
# y*: int16
# width*: uint16
# height*: uint16
# ## *
# ## @brief xcb_rectangle_iterator_t
# ##
# type
# xcb_rectangle_iterator_t* {.bycopy.} = object
# data*: ptr xcb_rectangle_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_arc_t
# ##
# type
# xcb_arc_t* {.bycopy.} = object
# x*: int16
# y*: int16
# width*: uint16
# height*: uint16
# angle1*: int16
# angle2*: int16
# ## *
# ## @brief xcb_arc_iterator_t
# ##
# type
# xcb_arc_iterator_t* {.bycopy.} = object
# data*: ptr xcb_arc_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_format_t
# ##
# type
# xcb_format_t* {.bycopy.} = object
# depth*: uint8
# bits_per_pixel*: uint8
# scanline_pad*: uint8
# pad0*: array[5, uint8]
# ## *
# ## @brief xcb_format_iterator_t
# ##
# type
# xcb_format_iterator_t* {.bycopy.} = object
# data*: ptr xcb_format_t
# rem*: cint
# index*: cint
# xcb_visual_class_t* = enum
# XCB_VISUAL_CLASS_STATIC_GRAY = 0, XCB_VISUAL_CLASS_GRAY_SCALE = 1,
# XCB_VISUAL_CLASS_STATIC_COLOR = 2, XCB_VISUAL_CLASS_PSEUDO_COLOR = 3,
# XCB_VISUAL_CLASS_TRUE_COLOR = 4, XCB_VISUAL_CLASS_DIRECT_COLOR = 5
# ## *
# ## @brief xcb_visualtype_t
# ##
# type
# xcb_visualtype_t* {.bycopy.} = object
# visual_id*: xcb_visualid_t
# _class*: uint8
# bits_per_rgb_value*: uint8
# colormap_entries*: uint16
# red_mask*: uint32
# green_mask*: uint32
# blue_mask*: uint32
# pad0*: array[4, uint8]
# ## *
# ## @brief xcb_visualtype_iterator_t
# ##
# type
# xcb_visualtype_iterator_t* {.bycopy.} = object
# data*: ptr xcb_visualtype_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_depth_t
# ##
# type
# xcb_depth_t* {.bycopy.} = object
# depth*: uint8
# pad0*: uint8
# visuals_len*: uint16
# pad1*: array[4, uint8]
# ## *
# ## @brief xcb_depth_iterator_t
# ##
# type
# xcb_depth_iterator_t* {.bycopy.} = object
# data*: ptr xcb_depth_t
# rem*: cint
# index*: cint
# xcb_event_mask_t* = enum
# XCB_EVENT_MASK_NO_EVENT = 0, XCB_EVENT_MASK_KEY_PRESS = 1,
# XCB_EVENT_MASK_KEY_RELEASE = 2, XCB_EVENT_MASK_BUTTON_PRESS = 4,
# XCB_EVENT_MASK_BUTTON_RELEASE = 8, XCB_EVENT_MASK_ENTER_WINDOW = 16,
# XCB_EVENT_MASK_LEAVE_WINDOW = 32, XCB_EVENT_MASK_POINTER_MOTION = 64,
# XCB_EVENT_MASK_POINTER_MOTION_HINT = 128, XCB_EVENT_MASK_BUTTON_1_MOTION = 256,
# XCB_EVENT_MASK_BUTTON_2_MOTION = 512, XCB_EVENT_MASK_BUTTON_3_MOTION = 1024,
# XCB_EVENT_MASK_BUTTON_4_MOTION = 2048, XCB_EVENT_MASK_BUTTON_5_MOTION = 4096,
# XCB_EVENT_MASK_BUTTON_MOTION = 8192, XCB_EVENT_MASK_KEYMAP_STATE = 16384,
# XCB_EVENT_MASK_EXPOSURE = 32768, XCB_EVENT_MASK_VISIBILITY_CHANGE = 65536,
# XCB_EVENT_MASK_STRUCTURE_NOTIFY = 131072,
# XCB_EVENT_MASK_RESIZE_REDIRECT = 262144,
# XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY = 524288,
# XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT = 1048576,
# XCB_EVENT_MASK_FOCUS_CHANGE = 2097152,
# XCB_EVENT_MASK_PROPERTY_CHANGE = 4194304,
# XCB_EVENT_MASK_COLOR_MAP_CHANGE = 8388608,
# XCB_EVENT_MASK_OWNER_GRAB_BUTTON = 16777216
# xcb_backing_store_t* = enum
# XCB_BACKING_STORE_NOT_USEFUL = 0, XCB_BACKING_STORE_WHEN_MAPPED = 1,
# XCB_BACKING_STORE_ALWAYS = 2
# ## *
# ## @brief xcb_screen_t
# ##
# type
# xcb_screen_t* {.bycopy.} = object
# root*: xcb_window_t
# default_colormap*: xcb_colormap_t
# white_pixel*: uint32
# black_pixel*: uint32
# current_input_masks*: uint32
# width_in_pixels*: uint16
# height_in_pixels*: uint16
# width_in_millimeters*: uint16
# height_in_millimeters*: uint16
# min_installed_maps*: uint16
# max_installed_maps*: uint16
# root_visual*: xcb_visualid_t
# backing_stores*: uint8
# save_unders*: uint8
# root_depth*: uint8
# allowed_depths_len*: uint8
# ## *
# ## @brief xcb_screen_iterator_t
# ##
# type
# xcb_screen_iterator_t* {.bycopy.} = object
# data*: ptr xcb_screen_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_setup_request_t
# ##
# type
# xcb_setup_request_t* {.bycopy.} = object
# byte_order*: uint8
# pad0*: uint8
# protocol_major_version*: uint16
# protocol_minor_version*: uint16
# authorization_protocol_name_len*: uint16
# authorization_protocol_data_len*: uint16
# pad1*: array[2, uint8]
# ## *
# ## @brief xcb_setup_request_iterator_t
# ##
# type
# xcb_setup_request_iterator_t* {.bycopy.} = object
# data*: ptr xcb_setup_request_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_setup_failed_t
# ##
# type
# xcb_setup_failed_t* {.bycopy.} = object
# status*: uint8
# reason_len*: uint8
# protocol_major_version*: uint16
# protocol_minor_version*: uint16
# length*: uint16
# ## *
# ## @brief xcb_setup_failed_iterator_t
# ##
# type
# xcb_setup_failed_iterator_t* {.bycopy.} = object
# data*: ptr xcb_setup_failed_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_setup_authenticate_t
# ##
# type
# xcb_setup_authenticate_t* {.bycopy.} = object
# status*: uint8
# pad0*: array[5, uint8]
# length*: uint16
# ## *
# ## @brief xcb_setup_authenticate_iterator_t
# ##
# type
# xcb_setup_authenticate_iterator_t* {.bycopy.} = object
# data*: ptr xcb_setup_authenticate_t
# rem*: cint
# index*: cint
# xcb_image_order_t* = enum
# XCB_IMAGE_ORDER_LSB_FIRST = 0, XCB_IMAGE_ORDER_MSB_FIRST = 1
# ## *
# ## @brief xcb_setup_t
# ##
# type
# xcb_setup_t* {.bycopy.} = object
# status*: uint8
# pad0*: uint8
# protocol_major_version*: uint16
# protocol_minor_version*: uint16
# length*: uint16
# release_number*: uint32
# resource_id_base*: uint32
# resource_id_mask*: uint32
# motion_buffer_size*: uint32
# vendor_len*: uint16
# maximum_request_length*: uint16
# roots_len*: uint8
# pixmap_formats_len*: uint8
# image_byte_order*: uint8
# bitmap_format_bit_order*: uint8
# bitmap_format_scanline_unit*: uint8
# bitmap_format_scanline_pad*: uint8
# min_keycode*: xcb_keycode_t
# max_keycode*: xcb_keycode_t
# pad1*: array[4, uint8]
# ## *
# ## @brief xcb_setup_iterator_t
# ##
# type
# xcb_setup_iterator_t* {.bycopy.} = object
# data*: ptr xcb_setup_t
# rem*: cint
# index*: cint
# xcb_mod_mask_t* = enum
# XCB_MOD_MASK_SHIFT = 1, XCB_MOD_MASK_LOCK = 2, XCB_MOD_MASK_CONTROL = 4,
# XCB_MOD_MASK_1 = 8, XCB_MOD_MASK_2 = 16, XCB_MOD_MASK_3 = 32, XCB_MOD_MASK_4 = 64,
# XCB_MOD_MASK_5 = 128, XCB_MOD_MASK_ANY = 32768
# xcb_key_but_mask_t* = enum
# XCB_KEY_BUT_MASK_SHIFT = 1, XCB_KEY_BUT_MASK_LOCK = 2,
# XCB_KEY_BUT_MASK_CONTROL = 4, XCB_KEY_BUT_MASK_MOD_1 = 8,
# XCB_KEY_BUT_MASK_MOD_2 = 16, XCB_KEY_BUT_MASK_MOD_3 = 32,
# XCB_KEY_BUT_MASK_MOD_4 = 64, XCB_KEY_BUT_MASK_MOD_5 = 128,
# XCB_KEY_BUT_MASK_BUTTON_1 = 256, XCB_KEY_BUT_MASK_BUTTON_2 = 512,
# XCB_KEY_BUT_MASK_BUTTON_3 = 1024, XCB_KEY_BUT_MASK_BUTTON_4 = 2048,
# XCB_KEY_BUT_MASK_BUTTON_5 = 4096
# xcb_window_enum_t* = enum
# XCB_WINDOW_NONE = 0
# ## * Opcode for xcb_key_press.
# const
# XCB_KEY_PRESS* = 2
# ## *
# ## @brief xcb_key_press_event_t
# ##
# type
# xcb_key_press_event_t* {.bycopy.} = object
# response_type*: uint8
# detail*: xcb_keycode_t
# sequence*: uint16
# time*: xcb_timestamp_t
# root*: xcb_window_t
# event*: xcb_window_t
# child*: xcb_window_t
# root_x*: int16
# root_y*: int16
# event_x*: int16
# event_y*: int16
# state*: uint16
# same_screen*: uint8
# pad0*: uint8
# ## * Opcode for xcb_key_release.
# const
# XCB_KEY_RELEASE* = 3
# type
# xcb_key_release_event_t* = xcb_key_press_event_t
# xcb_button_mask_t* = enum
# XCB_BUTTON_MASK_1 = 256, XCB_BUTTON_MASK_2 = 512, XCB_BUTTON_MASK_3 = 1024,
# XCB_BUTTON_MASK_4 = 2048, XCB_BUTTON_MASK_5 = 4096, XCB_BUTTON_MASK_ANY = 32768
# ## * Opcode for xcb_button_press.
# const
# XCB_BUTTON_PRESS* = 4
# ## *
# ## @brief xcb_button_press_event_t
# ##
# type
# xcb_button_press_event_t* {.bycopy.} = object
# response_type*: uint8
# detail*: xcb_button_t
# sequence*: uint16
# time*: xcb_timestamp_t
# root*: xcb_window_t
# event*: xcb_window_t
# child*: xcb_window_t
# root_x*: int16
# root_y*: int16
# event_x*: int16
# event_y*: int16
# state*: uint16
# same_screen*: uint8
# pad0*: uint8
# ## * Opcode for xcb_button_release.
# const
# XCB_BUTTON_RELEASE* = 5
# type
# xcb_button_release_event_t* = xcb_button_press_event_t
# xcb_motion_t* = enum
# XCB_MOTION_NORMAL = 0, XCB_MOTION_HINT = 1
# ## * Opcode for xcb_motion_notify.
# const
# XCB_MOTION_NOTIFY* = 6
# ## *
# ## @brief xcb_motion_notify_event_t
# ##
# type
# xcb_motion_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# detail*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# root*: xcb_window_t
# event*: xcb_window_t
# child*: xcb_window_t
# root_x*: int16
# root_y*: int16
# event_x*: int16
# event_y*: int16
# state*: uint16
# same_screen*: uint8
# pad0*: uint8
# xcb_notify_detail_t* = enum
# XCB_NOTIFY_DETAIL_ANCESTOR = 0, XCB_NOTIFY_DETAIL_VIRTUAL = 1,
# XCB_NOTIFY_DETAIL_INFERIOR = 2, XCB_NOTIFY_DETAIL_NONLINEAR = 3,
# XCB_NOTIFY_DETAIL_NONLINEAR_VIRTUAL = 4, XCB_NOTIFY_DETAIL_POINTER = 5,
# XCB_NOTIFY_DETAIL_POINTER_ROOT = 6, XCB_NOTIFY_DETAIL_NONE = 7
# xcb_notify_mode_t* = enum
# XCB_NOTIFY_MODE_NORMAL = 0, XCB_NOTIFY_MODE_GRAB = 1, XCB_NOTIFY_MODE_UNGRAB = 2,
# XCB_NOTIFY_MODE_WHILE_GRABBED = 3
# ## * Opcode for xcb_enter_notify.
# const
# XCB_ENTER_NOTIFY* = 7
# ## *
# ## @brief xcb_enter_notify_event_t
# ##
# type
# xcb_enter_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# detail*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# root*: xcb_window_t
# event*: xcb_window_t
# child*: xcb_window_t
# root_x*: int16
# root_y*: int16
# event_x*: int16
# event_y*: int16
# state*: uint16
# mode*: uint8
# same_screen_focus*: uint8
# ## * Opcode for xcb_leave_notify.
# const
# XCB_LEAVE_NOTIFY* = 8
# type
# xcb_leave_notify_event_t* = xcb_enter_notify_event_t
# ## * Opcode for xcb_focus_in.
# const
# XCB_FOCUS_IN* = 9
# ## *
# ## @brief xcb_focus_in_event_t
# ##
# type
# xcb_focus_in_event_t* {.bycopy.} = object
# response_type*: uint8
# detail*: uint8
# sequence*: uint16
# event*: xcb_window_t
# mode*: uint8
# pad0*: array[3, uint8]
# ## * Opcode for xcb_focus_out.
# const
# XCB_FOCUS_OUT* = 10
# type
# xcb_focus_out_event_t* = xcb_focus_in_event_t
# ## * Opcode for xcb_keymap_notify.
# const
# XCB_KEYMAP_NOTIFY* = 11
# ## *
# ## @brief xcb_keymap_notify_event_t
# ##
# type
# xcb_keymap_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# keys*: array[31, uint8]
# ## * Opcode for xcb_expose.
# const
# XCB_EXPOSE* = 12
# ## *
# ## @brief xcb_expose_event_t
# ##
# type
# xcb_expose_event_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# window*: xcb_window_t
# x*: uint16
# y*: uint16
# width*: uint16
# height*: uint16
# count*: uint16
# pad1*: array[2, uint8]
# ## * Opcode for xcb_graphics_exposure.
# const
# XCB_GRAPHICS_EXPOSURE* = 13
# ## *
# ## @brief xcb_graphics_exposure_event_t
# ##
# type
# xcb_graphics_exposure_event_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# drawable*: xcb_drawable_t
# x*: uint16
# y*: uint16
# width*: uint16
# height*: uint16
# minor_opcode*: uint16
# count*: uint16
# major_opcode*: uint8
# pad1*: array[3, uint8]
# ## * Opcode for xcb_no_exposure.
# const
# XCB_NO_EXPOSURE* = 14
# ## *
# ## @brief xcb_no_exposure_event_t
# ##
# type
# xcb_no_exposure_event_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# drawable*: xcb_drawable_t
# minor_opcode*: uint16
# major_opcode*: uint8
# pad1*: uint8
# xcb_visibility_t* = enum
# XCB_VISIBILITY_UNOBSCURED = 0, XCB_VISIBILITY_PARTIALLY_OBSCURED = 1,
# XCB_VISIBILITY_FULLY_OBSCURED = 2
# ## * Opcode for xcb_visibility_notify.
# const
# XCB_VISIBILITY_NOTIFY* = 15
# ## *
# ## @brief xcb_visibility_notify_event_t
# ##
# type
# xcb_visibility_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# window*: xcb_window_t
# state*: uint8
# pad1*: array[3, uint8]
# ## * Opcode for xcb_create_notify.
# const
# XCB_CREATE_NOTIFY* = 16
# ## *
# ## @brief xcb_create_notify_event_t
# ##
# type
# xcb_create_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# parent*: xcb_window_t
# window*: xcb_window_t
# x*: int16
# y*: int16
# width*: uint16
# height*: uint16
# border_width*: uint16
# override_redirect*: uint8
# pad1*: uint8
# ## * Opcode for xcb_destroy_notify.
# const
# XCB_DESTROY_NOTIFY* = 17
# ## *
# ## @brief xcb_destroy_notify_event_t
# ##
# type
# xcb_destroy_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# event*: xcb_window_t
# window*: xcb_window_t
# ## * Opcode for xcb_unmap_notify.
# const
# XCB_UNMAP_NOTIFY* = 18
# ## *
# ## @brief xcb_unmap_notify_event_t
# ##
# type
# xcb_unmap_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# event*: xcb_window_t
# window*: xcb_window_t
# from_configure*: uint8
# pad1*: array[3, uint8]
# ## * Opcode for xcb_map_notify.
# const
# XCB_MAP_NOTIFY* = 19
# ## *
# ## @brief xcb_map_notify_event_t
# ##
# type
# xcb_map_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# event*: xcb_window_t
# window*: xcb_window_t
# override_redirect*: uint8
# pad1*: array[3, uint8]
# ## * Opcode for xcb_map_request.
# const
# XCB_MAP_REQUEST* = 20
# ## *
# ## @brief xcb_map_request_event_t
# ##
# type
# xcb_map_request_event_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# parent*: xcb_window_t
# window*: xcb_window_t
# ## * Opcode for xcb_reparent_notify.
# const
# XCB_REPARENT_NOTIFY* = 21
# ## *
# ## @brief xcb_reparent_notify_event_t
# ##
# type
# xcb_reparent_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# event*: xcb_window_t
# window*: xcb_window_t
# parent*: xcb_window_t
# x*: int16
# y*: int16
# override_redirect*: uint8
# pad1*: array[3, uint8]
# ## * Opcode for xcb_configure_notify.
# const
# XCB_CONFIGURE_NOTIFY* = 22
# ## *
# ## @brief xcb_configure_notify_event_t
# ##
# type
# xcb_configure_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# event*: xcb_window_t
# window*: xcb_window_t
# above_sibling*: xcb_window_t
# x*: int16
# y*: int16
# width*: uint16
# height*: uint16
# border_width*: uint16
# override_redirect*: uint8
# pad1*: uint8
# ## * Opcode for xcb_configure_request.
# const
# XCB_CONFIGURE_REQUEST* = 23
# ## *
# ## @brief xcb_configure_request_event_t
# ##
# type
# xcb_configure_request_event_t* {.bycopy.} = object
# response_type*: uint8
# stack_mode*: uint8
# sequence*: uint16
# parent*: xcb_window_t
# window*: xcb_window_t
# sibling*: xcb_window_t
# x*: int16
# y*: int16
# width*: uint16
# height*: uint16
# border_width*: uint16
# value_mask*: uint16
# ## * Opcode for xcb_gravity_notify.
# const
# XCB_GRAVITY_NOTIFY* = 24
# ## *
# ## @brief xcb_gravity_notify_event_t
# ##
# type
# xcb_gravity_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# event*: xcb_window_t
# window*: xcb_window_t
# x*: int16
# y*: int16
# ## * Opcode for xcb_resize_request.
# const
# XCB_RESIZE_REQUEST* = 25
# ## *
# ## @brief xcb_resize_request_event_t
# ##
# type
# xcb_resize_request_event_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# window*: xcb_window_t
# width*: uint16
# height*: uint16
# xcb_place_t* = enum
# XCB_PLACE_ON_TOP = 0, ## *< The window is now on top of all siblings.
# XCB_PLACE_ON_BOTTOM = 1
# ## * Opcode for xcb_circulate_notify.
# const
# XCB_CIRCULATE_NOTIFY* = 26
# ## *
# ## @brief xcb_circulate_notify_event_t
# ##
# type
# xcb_circulate_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# event*: xcb_window_t
# window*: xcb_window_t
# pad1*: array[4, uint8]
# place*: uint8
# pad2*: array[3, uint8]
# ## * Opcode for xcb_circulate_request.
# const
# XCB_CIRCULATE_REQUEST* = 27
# type
# xcb_circulate_request_event_t* = xcb_circulate_notify_event_t
# xcb_property_t* = enum
# XCB_PROPERTY_NEW_VALUE = 0, XCB_PROPERTY_DELETE = 1
# ## * Opcode for xcb_property_notify.
# const
# XCB_PROPERTY_NOTIFY* = 28
# ## *
# ## @brief xcb_property_notify_event_t
# ##
# type
# xcb_property_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# window*: xcb_window_t
# atom*: xcb_atom_t
# time*: xcb_timestamp_t
# state*: uint8
# pad1*: array[3, uint8]
# ## * Opcode for xcb_selection_clear.
# const
# XCB_SELECTION_CLEAR* = 29
# ## *
# ## @brief xcb_selection_clear_event_t
# ##
# type
# xcb_selection_clear_event_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# owner*: xcb_window_t
# selection*: xcb_atom_t
# xcb_time_t* = enum
# XCB_TIME_CURRENT_TIME = 0
# const
# XCB_ATOM_ANY = XCB_ATOM_NONE
# ## * Opcode for xcb_selection_request.
# const
# XCB_SELECTION_REQUEST* = 30
# ## *
# ## @brief xcb_selection_request_event_t
# ##
# type
# xcb_selection_request_event_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# owner*: xcb_window_t
# requestor*: xcb_window_t
# selection*: xcb_atom_t
# target*: xcb_atom_t
# property*: xcb_atom_t
# ## * Opcode for xcb_selection_notify.
# const
# XCB_SELECTION_NOTIFY* = 31
# ## *
# ## @brief xcb_selection_notify_event_t
# ##
# type
# xcb_selection_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# requestor*: xcb_window_t
# selection*: xcb_atom_t
# target*: xcb_atom_t
# property*: xcb_atom_t
# xcb_colormap_state_t* = enum
# XCB_COLORMAP_STATE_UNINSTALLED = 0, ## *< The colormap was uninstalled.
# XCB_COLORMAP_STATE_INSTALLED = 1
# xcb_colormap_enum_t* = enum
# XCB_COLORMAP_NONE = 0
# ## * Opcode for xcb_colormap_notify.
# const
# XCB_COLORMAP_NOTIFY* = 32
# ## *
# ## @brief xcb_colormap_notify_event_t
# ##
# type
# xcb_colormap_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# window*: xcb_window_t
# colormap*: xcb_colormap_t
# _new*: uint8
# state*: uint8
# pad1*: array[2, uint8]
# ## *
# ## @brief xcb_client_message_data_t
# ##
# type
# xcb_client_message_data_t* {.bycopy.} = object {.union.}
# data8*: array[20, uint8]
# data16*: array[10, uint16]
# data32*: array[5, uint32]
# ## *
# ## @brief xcb_client_message_data_iterator_t
# ##
# type
# xcb_client_message_data_iterator_t* {.bycopy.} = object
# data*: ptr xcb_client_message_data_t
# rem*: cint
# index*: cint
# ## * Opcode for xcb_client_message.
# const
# XCB_CLIENT_MESSAGE* = 33
# ## *
# ## @brief xcb_client_message_event_t
# ##
# type
# xcb_client_message_event_t* {.bycopy.} = object
# response_type*: uint8
# format*: uint8
# sequence*: uint16
# window*: xcb_window_t
# `type`*: xcb_atom_t
# data*: xcb_client_message_data_t
# xcb_mapping_t* = enum
# XCB_MAPPING_MODIFIER = 0, XCB_MAPPING_KEYBOARD = 1, XCB_MAPPING_POINTER = 2
# ## * Opcode for xcb_mapping_notify.
# const
# XCB_MAPPING_NOTIFY* = 34
# ## *
# ## @brief xcb_mapping_notify_event_t
# ##
# type
# xcb_mapping_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# request*: uint8
# first_keycode*: xcb_keycode_t
# count*: uint8
# pad1*: uint8
# ## * Opcode for xcb_ge_generic.
# const
# XCB_GE_GENERIC* = 35
# ## *
# ## @brief xcb_ge_generic_event_t
# ##
# type
# xcb_ge_generic_event_t* {.bycopy.} = object
# response_type*: uint8
# extension*: uint8
# sequence*: uint16
# length*: uint32
# event_type*: uint16
# pad0*: array[22, uint8]
# full_sequence*: uint32
# ## * Opcode for xcb_request.
# const
# XCB_REQUEST* = 1
# ## *
# ## @brief xcb_request_error_t
# ##
# type
# xcb_request_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# bad_value*: uint32
# minor_opcode*: uint16
# major_opcode*: uint8
# pad0*: uint8
# ## * Opcode for xcb_value.
# const
# XCB_VALUE* = 2
# ## *
# ## @brief xcb_value_error_t
# ##
# type
# xcb_value_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# bad_value*: uint32
# minor_opcode*: uint16
# major_opcode*: uint8
# pad0*: uint8
# ## * Opcode for xcb_window.
# const
# XCB_WINDOW* = 3
# type
# xcb_window_error_t* = xcb_value_error_t
# ## * Opcode for xcb_pixmap.
# const
# XCB_PIXMAP* = 4
# type
# xcb_pixmap_error_t* = xcb_value_error_t
# ## * Opcode for xcb_atom.
# const
# XCB_ATOM* = 5
# type
# xcb_atom_error_t* = xcb_value_error_t
# ## * Opcode for xcb_cursor.
# const
# XCB_CURSOR* = 6
# type
# xcb_cursor_error_t* = xcb_value_error_t
# ## * Opcode for xcb_font.
# const
# XCB_FONT* = 7
# type
# xcb_font_error_t* = xcb_value_error_t
# ## * Opcode for xcb_match.
# const
# XCB_MATCH* = 8
# type
# xcb_match_error_t* = xcb_request_error_t
# ## * Opcode for xcb_drawable.
# const
# XCB_DRAWABLE* = 9
# type
# xcb_drawable_error_t* = xcb_value_error_t
# ## * Opcode for xcb_access.
# const
# XCB_ACCESS* = 10
# type
# xcb_access_error_t* = xcb_request_error_t
# ## * Opcode for xcb_alloc.
# const
# XCB_ALLOC* = 11
# type
# xcb_alloc_error_t* = xcb_request_error_t
# ## * Opcode for xcb_colormap.
# const
# XCB_COLORMAP* = 12
# type
# xcb_colormap_error_t* = xcb_value_error_t
# ## * Opcode for xcb_g_context.
# const
# XCB_G_CONTEXT* = 13
# type
# xcb_g_context_error_t* = xcb_value_error_t
# ## * Opcode for xcb_id_choice.
# const
# XCB_ID_CHOICE* = 14
# type
# xcb_id_choice_error_t* = xcb_value_error_t
# ## * Opcode for xcb_name.
# const
# XCB_NAME* = 15
# type
# xcb_name_error_t* = xcb_request_error_t
# ## * Opcode for xcb_length.
# const
# XCB_LENGTH* = 16
# type
# xcb_length_error_t* = xcb_request_error_t
# ## * Opcode for xcb_implementation.
# const
# XCB_IMPLEMENTATION* = 17
# type
# xcb_implementation_error_t* = xcb_request_error_t
# xcb_window_class_t* = enum
# XCB_WINDOW_CLASS_COPY_FROM_PARENT = 0, XCB_WINDOW_CLASS_INPUT_OUTPUT = 1,
# XCB_WINDOW_CLASS_INPUT_ONLY = 2
# xcb_cw_t* = enum
# XCB_CW_BACK_PIXMAP = 1, ## *< Overrides the default background-pixmap. The background pixmap and window must
# ## have the same root and same depth. Any size pixmap can be used, although some
# ## sizes may be faster than others.
# ##
# ## If `XCB_BACK_PIXMAP_NONE` is specified, the window has no defined background.
# ## The server may fill the contents with the previous screen contents or with
# ## contents of its own choosing.
# ##
# ## If `XCB_BACK_PIXMAP_PARENT_RELATIVE` is specified, the parent's background is
# ## used, but the window must have the same depth as the parent (or a Match error
# ## results). The parent's background is tracked, and the current version is
# ## used each time the window background is required.
# XCB_CW_BACK_PIXEL = 2, ## *< Overrides `BackPixmap`. A pixmap of undefined size filled with the specified
# ## background pixel is used for the background. Range-checking is not performed,
# ## the background pixel is truncated to the appropriate number of bits.
# XCB_CW_BORDER_PIXMAP = 4, ## *< Overrides the default border-pixmap. The border pixmap and window must have the
# ## same root and the same depth. Any size pixmap can be used, although some sizes
# ## may be faster than others.
# ##
# ## The special value `XCB_COPY_FROM_PARENT` means the parent's border pixmap is
# ## copied (subsequent changes to the parent's border attribute do not affect the
# ## child), but the window must have the same depth as the parent.
# XCB_CW_BORDER_PIXEL = 8, ## *< Overrides `BorderPixmap`. A pixmap of undefined size filled with the specified
# ## border pixel is used for the border. Range checking is not performed on the
# ## border-pixel value, it is truncated to the appropriate number of bits.
# XCB_CW_BIT_GRAVITY = 16, ## *< Defines which region of the window should be retained if the window is resized.
# XCB_CW_WIN_GRAVITY = 32, ## *< Defines how the window should be repositioned if the parent is resized (see
# ## `ConfigureWindow`).
# XCB_CW_BACKING_STORE = 64, ## *< A backing-store of `WhenMapped` advises the server that maintaining contents of
# ## obscured regions when the window is mapped would be beneficial. A backing-store
# ## of `Always` advises the server that maintaining contents even when the window
# ## is unmapped would be beneficial. In this case, the server may generate an
# ## exposure event when the window is created. A value of `NotUseful` advises the
# ## server that maintaining contents is unnecessary, although a server may still
# ## choose to maintain contents while the window is mapped. Note that if the server
# ## maintains contents, then the server should maintain complete contents not just
# ## the region within the parent boundaries, even if the window is larger than its
# ## parent. While the server maintains contents, exposure events will not normally
# ## be generated, but the server may stop maintaining contents at any time.
# XCB_CW_BACKING_PLANES = 128, ## *< The backing-planes indicates (with bits set to 1) which bit planes of the
# ## window hold dynamic data that must be preserved in backing-stores and during
# ## save-unders.
# XCB_CW_BACKING_PIXEL = 256, ## *< The backing-pixel specifies what value to use in planes not covered by
# ## backing-planes. The server is free to save only the specified bit planes in the
# ## backing-store or save-under and regenerate the remaining planes with the
# ## specified pixel value. Any bits beyond the specified depth of the window in
# ## these values are simply ignored.
# XCB_CW_OVERRIDE_REDIRECT = 512, ## *< The override-redirect specifies whether map and configure requests on this
# ## window should override a SubstructureRedirect on the parent, typically to
# ## inform a window manager not to tamper with the window.
# XCB_CW_SAVE_UNDER = 1024, ## *< If 1, the server is advised that when this window is mapped, saving the
# ## contents of windows it obscures would be beneficial.
# XCB_CW_EVENT_MASK = 2048, ## *< The event-mask defines which events the client is interested in for this window
# ## (or for some event types, inferiors of the window).
# XCB_CW_DONT_PROPAGATE = 4096, ## *< The do-not-propagate-mask defines which events should not be propagated to
# ## ancestor windows when no client has the event type selected in this window.
# XCB_CW_COLORMAP = 8192, ## *< The colormap specifies the colormap that best reflects the true colors of the window. Servers
# ## capable of supporting multiple hardware colormaps may use this information, and window man-
# ## agers may use it for InstallColormap requests. The colormap must have the same visual type
# ## and root as the window (or a Match error results). If CopyFromParent is specified, the parent's
# ## colormap is copied (subsequent changes to the parent's colormap attribute do not affect the child).
# ## However, the window must have the same visual type as the parent (or a Match error results),
# ## and the parent must not have a colormap of None (or a Match error results). For an explanation
# ## of None, see FreeColormap request. The colormap is copied by sharing the colormap object
# ## between the child and the parent, not by making a complete copy of the colormap contents.
# XCB_CW_CURSOR = 16384
# xcb_back_pixmap_t* = enum
# XCB_BACK_PIXMAP_NONE = 0, XCB_BACK_PIXMAP_PARENT_RELATIVE = 1
# xcb_gravity_t* = enum
# XCB_GRAVITY_BIT_FORGET = 0, XCB_GRAVITY_NORTH_WEST = 1, XCB_GRAVITY_NORTH = 2,
# XCB_GRAVITY_NORTH_EAST = 3, XCB_GRAVITY_WEST = 4, XCB_GRAVITY_CENTER = 5,
# XCB_GRAVITY_EAST = 6, XCB_GRAVITY_SOUTH_WEST = 7, XCB_GRAVITY_SOUTH = 8,
# XCB_GRAVITY_SOUTH_EAST = 9, XCB_GRAVITY_STATIC = 10
# const
# XCB_GRAVITY_WIN_UNMAP = XCB_GRAVITY_BIT_FORGET
# ## *
# ## @brief xcb_create_window_value_list_t
# ##
# type
# xcb_create_window_value_list_t* {.bycopy.} = object
# background_pixmap*: xcb_pixmap_t
# background_pixel*: uint32
# border_pixmap*: xcb_pixmap_t
# border_pixel*: uint32
# bit_gravity*: uint32
# win_gravity*: uint32
# backing_store*: uint32
# backing_planes*: uint32
# backing_pixel*: uint32
# override_redirect*: xcb_bool32_t
# save_under*: xcb_bool32_t
# event_mask*: uint32
# do_not_propogate_mask*: uint32
# colormap*: xcb_colormap_t
# cursor*: xcb_cursor_t
# ## * Opcode for xcb_create_window.
# const
# XCB_CREATE_WINDOW* = 1
# ## *
# ## @brief xcb_create_window_request_t
# ##
# type
# xcb_create_window_request_t* {.bycopy.} = object
# major_opcode*: uint8
# depth*: uint8
# length*: uint16
# wid*: xcb_window_t
# parent*: xcb_window_t
# x*: int16
# y*: int16
# width*: uint16
# height*: uint16
# border_width*: uint16
# _class*: uint16
# visual*: xcb_visualid_t
# value_mask*: uint32
# ## *
# ## @brief xcb_change_window_attributes_value_list_t
# ##
# type
# xcb_change_window_attributes_value_list_t* {.bycopy.} = object
# background_pixmap*: xcb_pixmap_t
# background_pixel*: uint32
# border_pixmap*: xcb_pixmap_t
# border_pixel*: uint32
# bit_gravity*: uint32
# win_gravity*: uint32
# backing_store*: uint32
# backing_planes*: uint32
# backing_pixel*: uint32
# override_redirect*: xcb_bool32_t
# save_under*: xcb_bool32_t
# event_mask*: uint32
# do_not_propogate_mask*: uint32
# colormap*: xcb_colormap_t
# cursor*: xcb_cursor_t
# ## * Opcode for xcb_change_window_attributes.
# const
# XCB_CHANGE_WINDOW_ATTRIBUTES* = 2
# ## *
# ## @brief xcb_change_window_attributes_request_t
# ##
# type
# xcb_change_window_attributes_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# window*: xcb_window_t
# value_mask*: uint32
# xcb_map_state_t* = enum
# XCB_MAP_STATE_UNMAPPED = 0, XCB_MAP_STATE_UNVIEWABLE = 1,
# XCB_MAP_STATE_VIEWABLE = 2
# ## *
# ## @brief xcb_get_window_attributes_cookie_t
# ##
# type
# xcb_get_window_attributes_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_get_window_attributes.
# const
# XCB_GET_WINDOW_ATTRIBUTES* = 3
# ## *
# ## @brief xcb_get_window_attributes_request_t
# ##
# type
# xcb_get_window_attributes_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# window*: xcb_window_t
# ## *
# ## @brief xcb_get_window_attributes_reply_t
# ##
# type
# xcb_get_window_attributes_reply_t* {.bycopy.} = object
# response_type*: uint8
# backing_store*: uint8
# sequence*: uint16
# length*: uint32
# visual*: xcb_visualid_t
# _class*: uint16
# bit_gravity*: uint8
# win_gravity*: uint8
# backing_planes*: uint32
# backing_pixel*: uint32
# save_under*: uint8
# map_is_installed*: uint8
# map_state*: uint8
# override_redirect*: uint8
# colormap*: xcb_colormap_t
# all_event_masks*: uint32
# your_event_mask*: uint32
# do_not_propagate_mask*: uint16
# pad0*: array[2, uint8]
# ## * Opcode for xcb_destroy_window.
# const
# XCB_DESTROY_WINDOW* = 4
# ## *
# ## @brief xcb_destroy_window_request_t
# ##
# type
# xcb_destroy_window_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# window*: xcb_window_t
# ## * Opcode for xcb_destroy_subwindows.
# const
# XCB_DESTROY_SUBWINDOWS* = 5
# ## *
# ## @brief xcb_destroy_subwindows_request_t
# ##
# type
# xcb_destroy_subwindows_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# window*: xcb_window_t
# xcb_set_mode_t* = enum
# XCB_SET_MODE_INSERT = 0, XCB_SET_MODE_DELETE = 1
# ## * Opcode for xcb_change_save_set.
# const
# XCB_CHANGE_SAVE_SET* = 6
# ## *
# ## @brief xcb_change_save_set_request_t
# ##
# type
# xcb_change_save_set_request_t* {.bycopy.} = object
# major_opcode*: uint8
# mode*: uint8
# length*: uint16
# window*: xcb_window_t
# ## * Opcode for xcb_reparent_window.
# const
# XCB_REPARENT_WINDOW* = 7
# ## *
# ## @brief xcb_reparent_window_request_t
# ##
# type
# xcb_reparent_window_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# window*: xcb_window_t
# parent*: xcb_window_t
# x*: int16
# y*: int16
# ## * Opcode for xcb_map_window.
# const
# XCB_MAP_WINDOW* = 8
# ## *
# ## @brief xcb_map_window_request_t
# ##
# type
# xcb_map_window_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# window*: xcb_window_t
# ## * Opcode for xcb_map_subwindows.
# const
# XCB_MAP_SUBWINDOWS* = 9
# ## *
# ## @brief xcb_map_subwindows_request_t
# ##
# type
# xcb_map_subwindows_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# window*: xcb_window_t
# ## * Opcode for xcb_unmap_window.
# const
# XCB_UNMAP_WINDOW* = 10
# ## *
# ## @brief xcb_unmap_window_request_t
# ##
# type
# xcb_unmap_window_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# window*: xcb_window_t
# ## * Opcode for xcb_unmap_subwindows.
# const
# XCB_UNMAP_SUBWINDOWS* = 11
# ## *
# ## @brief xcb_unmap_subwindows_request_t
# ##
# type
# xcb_unmap_subwindows_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# window*: xcb_window_t
# xcb_config_window_t* = enum
# XCB_CONFIG_WINDOW_X = 1, XCB_CONFIG_WINDOW_Y = 2, XCB_CONFIG_WINDOW_WIDTH = 4,
# XCB_CONFIG_WINDOW_HEIGHT = 8, XCB_CONFIG_WINDOW_BORDER_WIDTH = 16,
# XCB_CONFIG_WINDOW_SIBLING = 32, XCB_CONFIG_WINDOW_STACK_MODE = 64
# xcb_stack_mode_t* = enum
# XCB_STACK_MODE_ABOVE = 0, XCB_STACK_MODE_BELOW = 1, XCB_STACK_MODE_TOP_IF = 2,
# XCB_STACK_MODE_BOTTOM_IF = 3, XCB_STACK_MODE_OPPOSITE = 4
# ## *
# ## @brief xcb_configure_window_value_list_t
# ##
# type
# xcb_configure_window_value_list_t* {.bycopy.} = object
# x*: int32
# y*: int32
# width*: uint32
# height*: uint32
# border_width*: uint32
# sibling*: xcb_window_t
# stack_mode*: uint32
# ## * Opcode for xcb_configure_window.
# const
# XCB_CONFIGURE_WINDOW* = 12
# ## *
# ## @brief xcb_configure_window_request_t
# ##
# type
# xcb_configure_window_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# window*: xcb_window_t
# value_mask*: uint16
# pad1*: array[2, uint8]
# xcb_circulate_t* = enum
# XCB_CIRCULATE_RAISE_LOWEST = 0, XCB_CIRCULATE_LOWER_HIGHEST = 1
# ## * Opcode for xcb_circulate_window.
# const
# XCB_CIRCULATE_WINDOW* = 13
# ## *
# ## @brief xcb_circulate_window_request_t
# ##
# type
# xcb_circulate_window_request_t* {.bycopy.} = object
# major_opcode*: uint8
# direction*: uint8
# length*: uint16
# window*: xcb_window_t
# ## *
# ## @brief xcb_get_geometry_cookie_t
# ##
# type
# xcb_get_geometry_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_get_geometry.
# const
# XCB_GET_GEOMETRY* = 14
# ## *
# ## @brief xcb_get_geometry_request_t
# ##
# type
# xcb_get_geometry_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# ## *
# ## @brief xcb_get_geometry_reply_t
# ##
# type
# xcb_get_geometry_reply_t* {.bycopy.} = object
# response_type*: uint8
# depth*: uint8
# sequence*: uint16
# length*: uint32
# root*: xcb_window_t
# x*: int16
# y*: int16
# width*: uint16
# height*: uint16
# border_width*: uint16
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_query_tree_cookie_t
# ##
# type
# xcb_query_tree_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_query_tree.
# const
# XCB_QUERY_TREE* = 15
# ## *
# ## @brief xcb_query_tree_request_t
# ##
# type
# xcb_query_tree_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# window*: xcb_window_t
# ## *
# ## @brief xcb_query_tree_reply_t
# ##
# type
# xcb_query_tree_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# root*: xcb_window_t
# parent*: xcb_window_t
# children_len*: uint16
# pad1*: array[14, uint8]
# ## *
# ## @brief xcb_intern_atom_cookie_t
# ##
# type
# xcb_intern_atom_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_intern_atom.
# const
# XCB_INTERN_ATOM* = 16
# ## *
# ## @brief xcb_intern_atom_request_t
# ##
# type
# xcb_intern_atom_request_t* {.bycopy.} = object
# major_opcode*: uint8
# only_if_exists*: uint8
# length*: uint16
# name_len*: uint16
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_intern_atom_reply_t
# ##
# type
# xcb_intern_atom_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# atom*: xcb_atom_t
# ## *
# ## @brief xcb_get_atom_name_cookie_t
# ##
# type
# xcb_get_atom_name_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_get_atom_name.
# const
# XCB_GET_ATOM_NAME* = 17
# ## *
# ## @brief xcb_get_atom_name_request_t
# ##
# type
# xcb_get_atom_name_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# atom*: xcb_atom_t
# ## *
# ## @brief xcb_get_atom_name_reply_t
# ##
# type
# xcb_get_atom_name_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# name_len*: uint16
# pad1*: array[22, uint8]
# xcb_prop_mode_t* = enum
# XCB_PROP_MODE_REPLACE = 0, ## *< Discard the previous property value and store the new data.
# XCB_PROP_MODE_PREPEND = 1, ## *< Insert the new data before the beginning of existing data. The `format` must
# ## match existing property value. If the property is undefined, it is treated as
# ## defined with the correct type and format with zero-length data.
# XCB_PROP_MODE_APPEND = 2
# ## * Opcode for xcb_change_property.
# const
# XCB_CHANGE_PROPERTY* = 18
# ## *
# ## @brief xcb_change_property_request_t
# ##
# type
# xcb_change_property_request_t* {.bycopy.} = object
# major_opcode*: uint8
# mode*: uint8
# length*: uint16
# window*: xcb_window_t
# property*: xcb_atom_t
# `type`*: xcb_atom_t
# format*: uint8
# pad0*: array[3, uint8]
# data_len*: uint32
# ## * Opcode for xcb_delete_property.
# const
# XCB_DELETE_PROPERTY* = 19
# ## *
# ## @brief xcb_delete_property_request_t
# ##
# type
# xcb_delete_property_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# window*: xcb_window_t
# property*: xcb_atom_t
# xcb_get_property_type_t* = enum
# XCB_GET_PROPERTY_TYPE_ANY = 0
# ## *
# ## @brief xcb_get_property_cookie_t
# ##
# type
# xcb_get_property_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_get_property.
# const
# XCB_GET_PROPERTY* = 20
# ## *
# ## @brief xcb_get_property_request_t
# ##
# type
# xcb_get_property_request_t* {.bycopy.} = object
# major_opcode*: uint8
# _delete*: uint8
# length*: uint16
# window*: xcb_window_t
# property*: xcb_atom_t
# `type`*: xcb_atom_t
# long_offset*: uint32
# long_length*: uint32
# ## *
# ## @brief xcb_get_property_reply_t
# ##
# type
# xcb_get_property_reply_t* {.bycopy.} = object
# response_type*: uint8
# format*: uint8
# sequence*: uint16
# length*: uint32
# `type`*: xcb_atom_t
# bytes_after*: uint32
# value_len*: uint32
# pad0*: array[12, uint8]
# ## *
# ## @brief xcb_list_properties_cookie_t
# ##
# type
# xcb_list_properties_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_list_properties.
# const
# XCB_LIST_PROPERTIES* = 21
# ## *
# ## @brief xcb_list_properties_request_t
# ##
# type
# xcb_list_properties_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# window*: xcb_window_t
# ## *
# ## @brief xcb_list_properties_reply_t
# ##
# type
# xcb_list_properties_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# atoms_len*: uint16
# pad1*: array[22, uint8]
# ## * Opcode for xcb_set_selection_owner.
# const
# XCB_SET_SELECTION_OWNER* = 22
# ## *
# ## @brief xcb_set_selection_owner_request_t
# ##
# type
# xcb_set_selection_owner_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# owner*: xcb_window_t
# selection*: xcb_atom_t
# time*: xcb_timestamp_t
# ## *
# ## @brief xcb_get_selection_owner_cookie_t
# ##
# type
# xcb_get_selection_owner_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_get_selection_owner.
# const
# XCB_GET_SELECTION_OWNER* = 23
# ## *
# ## @brief xcb_get_selection_owner_request_t
# ##
# type
# xcb_get_selection_owner_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# selection*: xcb_atom_t
# ## *
# ## @brief xcb_get_selection_owner_reply_t
# ##
# type
# xcb_get_selection_owner_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# owner*: xcb_window_t
# ## * Opcode for xcb_convert_selection.
# const
# XCB_CONVERT_SELECTION* = 24
# ## *
# ## @brief xcb_convert_selection_request_t
# ##
# type
# xcb_convert_selection_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# requestor*: xcb_window_t
# selection*: xcb_atom_t
# target*: xcb_atom_t
# property*: xcb_atom_t
# time*: xcb_timestamp_t
# xcb_send_event_dest_t* = enum
# XCB_SEND_EVENT_DEST_POINTER_WINDOW = 0, XCB_SEND_EVENT_DEST_ITEM_FOCUS = 1
# ## * Opcode for xcb_send_event.
# const
# XCB_SEND_EVENT* = 25
# ## *
# ## @brief xcb_send_event_request_t
# ##
# type
# xcb_send_event_request_t* {.bycopy.} = object
# major_opcode*: uint8
# propagate*: uint8
# length*: uint16
# destination*: xcb_window_t
# event_mask*: uint32
# event*: array[32, char]
# xcb_grab_mode_t* = enum
# XCB_GRAB_MODE_SYNC = 0, ## *< The state of the keyboard appears to freeze: No further keyboard events are
# ## generated by the server until the grabbing client issues a releasing
# ## `AllowEvents` request or until the keyboard grab is released.
# XCB_GRAB_MODE_ASYNC = 1
# xcb_grab_status_t* = enum
# XCB_GRAB_STATUS_SUCCESS = 0, XCB_GRAB_STATUS_ALREADY_GRABBED = 1,
# XCB_GRAB_STATUS_INVALID_TIME = 2, XCB_GRAB_STATUS_NOT_VIEWABLE = 3,
# XCB_GRAB_STATUS_FROZEN = 4
# xcb_cursor_enum_t* = enum
# XCB_CURSOR_NONE = 0
# ## *
# ## @brief xcb_grab_pointer_cookie_t
# ##
# type
# xcb_grab_pointer_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_grab_pointer.
# const
# XCB_GRAB_POINTER* = 26
# ## *
# ## @brief xcb_grab_pointer_request_t
# ##
# type
# xcb_grab_pointer_request_t* {.bycopy.} = object
# major_opcode*: uint8
# owner_events*: uint8
# length*: uint16
# grab_window*: xcb_window_t
# event_mask*: uint16
# pointer_mode*: uint8
# keyboard_mode*: uint8
# confine_to*: xcb_window_t
# cursor*: xcb_cursor_t
# time*: xcb_timestamp_t
# ## *
# ## @brief xcb_grab_pointer_reply_t
# ##
# type
# xcb_grab_pointer_reply_t* {.bycopy.} = object
# response_type*: uint8
# status*: uint8
# sequence*: uint16
# length*: uint32
# ## * Opcode for xcb_ungrab_pointer.
# const
# XCB_UNGRAB_POINTER* = 27
# ## *
# ## @brief xcb_ungrab_pointer_request_t
# ##
# type
# xcb_ungrab_pointer_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# time*: xcb_timestamp_t
# xcb_button_index_t* = enum
# XCB_BUTTON_INDEX_ANY = 0, ## *< Any of the following (or none):
# XCB_BUTTON_INDEX_1 = 1, ## *< The left mouse button.
# XCB_BUTTON_INDEX_2 = 2, ## *< The right mouse button.
# XCB_BUTTON_INDEX_3 = 3, ## *< The middle mouse button.
# XCB_BUTTON_INDEX_4 = 4, ## *< Scroll wheel. TODO: direction?
# XCB_BUTTON_INDEX_5 = 5
# ## * Opcode for xcb_grab_button.
# const
# XCB_GRAB_BUTTON* = 28
# ## *
# ## @brief xcb_grab_button_request_t
# ##
# type
# xcb_grab_button_request_t* {.bycopy.} = object
# major_opcode*: uint8
# owner_events*: uint8
# length*: uint16
# grab_window*: xcb_window_t
# event_mask*: uint16
# pointer_mode*: uint8
# keyboard_mode*: uint8
# confine_to*: xcb_window_t
# cursor*: xcb_cursor_t
# button*: uint8
# pad0*: uint8
# modifiers*: uint16
# ## * Opcode for xcb_ungrab_button.
# const
# XCB_UNGRAB_BUTTON* = 29
# ## *
# ## @brief xcb_ungrab_button_request_t
# ##
# type
# xcb_ungrab_button_request_t* {.bycopy.} = object
# major_opcode*: uint8
# button*: uint8
# length*: uint16
# grab_window*: xcb_window_t
# modifiers*: uint16
# pad0*: array[2, uint8]
# ## * Opcode for xcb_change_active_pointer_grab.
# const
# XCB_CHANGE_ACTIVE_POINTER_GRAB* = 30
# ## *
# ## @brief xcb_change_active_pointer_grab_request_t
# ##
# type
# xcb_change_active_pointer_grab_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# cursor*: xcb_cursor_t
# time*: xcb_timestamp_t
# event_mask*: uint16
# pad1*: array[2, uint8]
# ## *
# ## @brief xcb_grab_keyboard_cookie_t
# ##
# type
# xcb_grab_keyboard_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_grab_keyboard.
# const
# XCB_GRAB_KEYBOARD* = 31
# ## *
# ## @brief xcb_grab_keyboard_request_t
# ##
# type
# xcb_grab_keyboard_request_t* {.bycopy.} = object
# major_opcode*: uint8
# owner_events*: uint8
# length*: uint16
# grab_window*: xcb_window_t
# time*: xcb_timestamp_t
# pointer_mode*: uint8
# keyboard_mode*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_grab_keyboard_reply_t
# ##
# type
# xcb_grab_keyboard_reply_t* {.bycopy.} = object
# response_type*: uint8
# status*: uint8
# sequence*: uint16
# length*: uint32
# ## * Opcode for xcb_ungrab_keyboard.
# const
# XCB_UNGRAB_KEYBOARD* = 32
# ## *
# ## @brief xcb_ungrab_keyboard_request_t
# ##
# type
# xcb_ungrab_keyboard_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# time*: xcb_timestamp_t
# xcb_grab_t* = enum
# XCB_GRAB_ANY = 0
# ## * Opcode for xcb_grab_key.
# const
# XCB_GRAB_KEY* = 33
# ## *
# ## @brief xcb_grab_key_request_t
# ##
# type
# xcb_grab_key_request_t* {.bycopy.} = object
# major_opcode*: uint8
# owner_events*: uint8
# length*: uint16
# grab_window*: xcb_window_t
# modifiers*: uint16
# key*: xcb_keycode_t
# pointer_mode*: uint8
# keyboard_mode*: uint8
# pad0*: array[3, uint8]
# ## * Opcode for xcb_ungrab_key.
# const
# XCB_UNGRAB_KEY* = 34
# ## *
# ## @brief xcb_ungrab_key_request_t
# ##
# type
# xcb_ungrab_key_request_t* {.bycopy.} = object
# major_opcode*: uint8
# key*: xcb_keycode_t
# length*: uint16
# grab_window*: xcb_window_t
# modifiers*: uint16
# pad0*: array[2, uint8]
# xcb_allow_t* = enum
# XCB_ALLOW_ASYNC_POINTER = 0, ## *< For AsyncPointer, if the pointer is frozen by the client, pointer event
# ## processing continues normally. If the pointer is frozen twice by the client on
# ## behalf of two separate grabs, AsyncPointer thaws for both. AsyncPointer has no
# ## effect if the pointer is not frozen by the client, but the pointer need not be
# ## grabbed by the client.
# ##
# ## TODO: rewrite this in more understandable terms.
# XCB_ALLOW_SYNC_POINTER = 1, ## *< For SyncPointer, if the pointer is frozen and actively grabbed by the client,
# ## pointer event processing continues normally until the next ButtonPress or
# ## ButtonRelease event is reported to the client, at which time the pointer again
# ## appears to freeze. However, if the reported event causes the pointer grab to be
# ## released, then the pointer does not freeze. SyncPointer has no effect if the
# ## pointer is not frozen by the client or if the pointer is not grabbed by the
# ## client.
# XCB_ALLOW_REPLAY_POINTER = 2, ## *< For ReplayPointer, if the pointer is actively grabbed by the client and is
# ## frozen as the result of an event having been sent to the client (either from
# ## the activation of a GrabButton or from a previous AllowEvents with mode
# ## SyncPointer but not from a GrabPointer), then the pointer grab is released and
# ## that event is completely reprocessed, this time ignoring any passive grabs at
# ## or above (towards the root) the grab-window of the grab just released. The
# ## request has no effect if the pointer is not grabbed by the client or if the
# ## pointer is not frozen as the result of an event.
# XCB_ALLOW_ASYNC_KEYBOARD = 3, ## *< For AsyncKeyboard, if the keyboard is frozen by the client, keyboard event
# ## processing continues normally. If the keyboard is frozen twice by the client on
# ## behalf of two separate grabs, AsyncKeyboard thaws for both. AsyncKeyboard has
# ## no effect if the keyboard is not frozen by the client, but the keyboard need
# ## not be grabbed by the client.
# XCB_ALLOW_SYNC_KEYBOARD = 4, ## *< For SyncKeyboard, if the keyboard is frozen and actively grabbed by the client,
# ## keyboard event processing continues normally until the next KeyPress or
# ## KeyRelease event is reported to the client, at which time the keyboard again
# ## appears to freeze. However, if the reported event causes the keyboard grab to
# ## be released, then the keyboard does not freeze. SyncKeyboard has no effect if
# ## the keyboard is not frozen by the client or if the keyboard is not grabbed by
# ## the client.
# XCB_ALLOW_REPLAY_KEYBOARD = 5, ## *< For ReplayKeyboard, if the keyboard is actively grabbed by the client and is
# ## frozen as the result of an event having been sent to the client (either from
# ## the activation of a GrabKey or from a previous AllowEvents with mode
# ## SyncKeyboard but not from a GrabKeyboard), then the keyboard grab is released
# ## and that event is completely reprocessed, this time ignoring any passive grabs
# ## at or above (towards the root) the grab-window of the grab just released. The
# ## request has no effect if the keyboard is not grabbed by the client or if the
# ## keyboard is not frozen as the result of an event.
# XCB_ALLOW_ASYNC_BOTH = 6, ## *< For AsyncBoth, if the pointer and the keyboard are frozen by the client, event
# ## processing for both devices continues normally. If a device is frozen twice by
# ## the client on behalf of two separate grabs, AsyncBoth thaws for both. AsyncBoth
# ## has no effect unless both pointer and keyboard are frozen by the client.
# XCB_ALLOW_SYNC_BOTH = 7
# ## * Opcode for xcb_allow_events.
# const
# XCB_ALLOW_EVENTS* = 35
# ## *
# ## @brief xcb_allow_events_request_t
# ##
# type
# xcb_allow_events_request_t* {.bycopy.} = object
# major_opcode*: uint8
# mode*: uint8
# length*: uint16
# time*: xcb_timestamp_t
# ## * Opcode for xcb_grab_server.
# const
# XCB_GRAB_SERVER* = 36
# ## *
# ## @brief xcb_grab_server_request_t
# ##
# type
# xcb_grab_server_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# ## * Opcode for xcb_ungrab_server.
# const
# XCB_UNGRAB_SERVER* = 37
# ## *
# ## @brief xcb_ungrab_server_request_t
# ##
# type
# xcb_ungrab_server_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# ## *
# ## @brief xcb_query_pointer_cookie_t
# ##
# type
# xcb_query_pointer_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_query_pointer.
# const
# XCB_QUERY_POINTER* = 38
# ## *
# ## @brief xcb_query_pointer_request_t
# ##
# type
# xcb_query_pointer_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# window*: xcb_window_t
# ## *
# ## @brief xcb_query_pointer_reply_t
# ##
# type
# xcb_query_pointer_reply_t* {.bycopy.} = object
# response_type*: uint8
# same_screen*: uint8
# sequence*: uint16
# length*: uint32
# root*: xcb_window_t
# child*: xcb_window_t
# root_x*: int16
# root_y*: int16
# win_x*: int16
# win_y*: int16
# mask*: uint16
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_timecoord_t
# ##
# type
# xcb_timecoord_t* {.bycopy.} = object
# time*: xcb_timestamp_t
# x*: int16
# y*: int16
# ## *
# ## @brief xcb_timecoord_iterator_t
# ##
# type
# xcb_timecoord_iterator_t* {.bycopy.} = object
# data*: ptr xcb_timecoord_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_get_motion_events_cookie_t
# ##
# type
# xcb_get_motion_events_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_get_motion_events.
# const
# XCB_GET_MOTION_EVENTS* = 39
# ## *
# ## @brief xcb_get_motion_events_request_t
# ##
# type
# xcb_get_motion_events_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# window*: xcb_window_t
# start*: xcb_timestamp_t
# stop*: xcb_timestamp_t
# ## *
# ## @brief xcb_get_motion_events_reply_t
# ##
# type
# xcb_get_motion_events_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# events_len*: uint32
# pad1*: array[20, uint8]
# ## *
# ## @brief xcb_translate_coordinates_cookie_t
# ##
# type
# xcb_translate_coordinates_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_translate_coordinates.
# const
# XCB_TRANSLATE_COORDINATES* = 40
# ## *
# ## @brief xcb_translate_coordinates_request_t
# ##
# type
# xcb_translate_coordinates_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# src_window*: xcb_window_t
# dst_window*: xcb_window_t
# src_x*: int16
# src_y*: int16
# ## *
# ## @brief xcb_translate_coordinates_reply_t
# ##
# type
# xcb_translate_coordinates_reply_t* {.bycopy.} = object
# response_type*: uint8
# same_screen*: uint8
# sequence*: uint16
# length*: uint32
# child*: xcb_window_t
# dst_x*: int16
# dst_y*: int16
# ## * Opcode for xcb_warp_pointer.
# const
# XCB_WARP_POINTER* = 41
# ## *
# ## @brief xcb_warp_pointer_request_t
# ##
# type
# xcb_warp_pointer_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# src_window*: xcb_window_t
# dst_window*: xcb_window_t
# src_x*: int16
# src_y*: int16
# src_width*: uint16
# src_height*: uint16
# dst_x*: int16
# dst_y*: int16
# xcb_input_focus_t* = enum
# XCB_INPUT_FOCUS_NONE = 0, ## *< The focus reverts to `XCB_NONE`, so no window will have the input focus.
# XCB_INPUT_FOCUS_POINTER_ROOT = 1, ## *< The focus reverts to `XCB_POINTER_ROOT` respectively. When the focus reverts,
# ## FocusIn and FocusOut events are generated, but the last-focus-change time is
# ## not changed.
# XCB_INPUT_FOCUS_PARENT = 2, ## *< The focus reverts to the parent (or closest viewable ancestor) and the new
# ## revert_to value is `XCB_INPUT_FOCUS_NONE`.
# XCB_INPUT_FOCUS_FOLLOW_KEYBOARD = 3
# ## * Opcode for xcb_set_input_focus.
# const
# XCB_SET_INPUT_FOCUS* = 42
# ## *
# ## @brief xcb_set_input_focus_request_t
# ##
# type
# xcb_set_input_focus_request_t* {.bycopy.} = object
# major_opcode*: uint8
# revert_to*: uint8
# length*: uint16
# focus*: xcb_window_t
# time*: xcb_timestamp_t
# ## *
# ## @brief xcb_get_input_focus_cookie_t
# ##
# type
# xcb_get_input_focus_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_get_input_focus.
# const
# XCB_GET_INPUT_FOCUS* = 43
# ## *
# ## @brief xcb_get_input_focus_request_t
# ##
# type
# xcb_get_input_focus_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# ## *
# ## @brief xcb_get_input_focus_reply_t
# ##
# type
# xcb_get_input_focus_reply_t* {.bycopy.} = object
# response_type*: uint8
# revert_to*: uint8
# sequence*: uint16
# length*: uint32
# focus*: xcb_window_t
# ## *
# ## @brief xcb_query_keymap_cookie_t
# ##
# type
# xcb_query_keymap_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_query_keymap.
# const
# XCB_QUERY_KEYMAP* = 44
# ## *
# ## @brief xcb_query_keymap_request_t
# ##
# type
# xcb_query_keymap_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# ## *
# ## @brief xcb_query_keymap_reply_t
# ##
# type
# xcb_query_keymap_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# keys*: array[32, uint8]
# ## * Opcode for xcb_open_font.
# const
# XCB_OPEN_FONT* = 45
# ## *
# ## @brief xcb_open_font_request_t
# ##
# type
# xcb_open_font_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# fid*: xcb_font_t
# name_len*: uint16
# pad1*: array[2, uint8]
# ## * Opcode for xcb_close_font.
# const
# XCB_CLOSE_FONT* = 46
# ## *
# ## @brief xcb_close_font_request_t
# ##
# type
# xcb_close_font_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# font*: xcb_font_t
# xcb_font_draw_t* = enum
# XCB_FONT_DRAW_LEFT_TO_RIGHT = 0, XCB_FONT_DRAW_RIGHT_TO_LEFT = 1
# ## *
# ## @brief xcb_fontprop_t
# ##
# type
# xcb_fontprop_t* {.bycopy.} = object
# name*: xcb_atom_t
# value*: uint32
# ## *
# ## @brief xcb_fontprop_iterator_t
# ##
# type
# xcb_fontprop_iterator_t* {.bycopy.} = object
# data*: ptr xcb_fontprop_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_charinfo_t
# ##
# type
# xcb_charinfo_t* {.bycopy.} = object
# left_side_bearing*: int16
# right_side_bearing*: int16
# character_width*: int16
# ascent*: int16
# descent*: int16
# attributes*: uint16
# ## *
# ## @brief xcb_charinfo_iterator_t
# ##
# type
# xcb_charinfo_iterator_t* {.bycopy.} = object
# data*: ptr xcb_charinfo_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_query_font_cookie_t
# ##
# type
# xcb_query_font_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_query_font.
# const
# XCB_QUERY_FONT* = 47
# ## *
# ## @brief xcb_query_font_request_t
# ##
# type
# xcb_query_font_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# font*: xcb_fontable_t
# ## *
# ## @brief xcb_query_font_reply_t
# ##
# type
# xcb_query_font_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# min_bounds*: xcb_charinfo_t
# pad1*: array[4, uint8]
# max_bounds*: xcb_charinfo_t
# pad2*: array[4, uint8]
# min_char_or_byte2*: uint16
# max_char_or_byte2*: uint16
# default_char*: uint16
# properties_len*: uint16
# draw_direction*: uint8
# min_byte1*: uint8
# max_byte1*: uint8
# all_chars_exist*: uint8
# font_ascent*: int16
# font_descent*: int16
# char_infos_len*: uint32
# ## *
# ## @brief xcb_query_text_extents_cookie_t
# ##
# type
# xcb_query_text_extents_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_query_text_extents.
# const
# XCB_QUERY_TEXT_EXTENTS* = 48
# ## *
# ## @brief xcb_query_text_extents_request_t
# ##
# type
# xcb_query_text_extents_request_t* {.bycopy.} = object
# major_opcode*: uint8
# odd_length*: uint8
# length*: uint16
# font*: xcb_fontable_t
# ## *
# ## @brief xcb_query_text_extents_reply_t
# ##
# type
# xcb_query_text_extents_reply_t* {.bycopy.} = object
# response_type*: uint8
# draw_direction*: uint8
# sequence*: uint16
# length*: uint32
# font_ascent*: int16
# font_descent*: int16
# overall_ascent*: int16
# overall_descent*: int16
# overall_width*: int32
# overall_left*: int32
# overall_right*: int32
# ## *
# ## @brief xcb_str_t
# ##
# type
# xcb_str_t* {.bycopy.} = object
# name_len*: uint8
# ## *
# ## @brief xcb_str_iterator_t
# ##
# type
# xcb_str_iterator_t* {.bycopy.} = object
# data*: ptr xcb_str_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_list_fonts_cookie_t
# ##
# type
# xcb_list_fonts_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_list_fonts.
# const
# XCB_LIST_FONTS* = 49
# ## *
# ## @brief xcb_list_fonts_request_t
# ##
# type
# xcb_list_fonts_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# max_names*: uint16
# pattern_len*: uint16
# ## *
# ## @brief xcb_list_fonts_reply_t
# ##
# type
# xcb_list_fonts_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# names_len*: uint16
# pad1*: array[22, uint8]
# ## *
# ## @brief xcb_list_fonts_with_info_cookie_t
# ##
# type
# xcb_list_fonts_with_info_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_list_fonts_with_info.
# const
# XCB_LIST_FONTS_WITH_INFO* = 50
# ## *
# ## @brief xcb_list_fonts_with_info_request_t
# ##
# type
# xcb_list_fonts_with_info_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# max_names*: uint16
# pattern_len*: uint16
# ## *
# ## @brief xcb_list_fonts_with_info_reply_t
# ##
# type
# xcb_list_fonts_with_info_reply_t* {.bycopy.} = object
# response_type*: uint8
# name_len*: uint8
# sequence*: uint16
# length*: uint32
# min_bounds*: xcb_charinfo_t
# pad0*: array[4, uint8]
# max_bounds*: xcb_charinfo_t
# pad1*: array[4, uint8]
# min_char_or_byte2*: uint16
# max_char_or_byte2*: uint16
# default_char*: uint16
# properties_len*: uint16
# draw_direction*: uint8
# min_byte1*: uint8
# max_byte1*: uint8
# all_chars_exist*: uint8
# font_ascent*: int16
# font_descent*: int16
# replies_hint*: uint32
# ## * Opcode for xcb_set_font_path.
# const
# XCB_SET_FONT_PATH* = 51
# ## *
# ## @brief xcb_set_font_path_request_t
# ##
# type
# xcb_set_font_path_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# font_qty*: uint16
# pad1*: array[2, uint8]
# ## *
# ## @brief xcb_get_font_path_cookie_t
# ##
# type
# xcb_get_font_path_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_get_font_path.
# const
# XCB_GET_FONT_PATH* = 52
# ## *
# ## @brief xcb_get_font_path_request_t
# ##
# type
# xcb_get_font_path_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# ## *
# ## @brief xcb_get_font_path_reply_t
# ##
# type
# xcb_get_font_path_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# path_len*: uint16
# pad1*: array[22, uint8]
# ## * Opcode for xcb_create_pixmap.
# const
# XCB_CREATE_PIXMAP* = 53
# ## *
# ## @brief xcb_create_pixmap_request_t
# ##
# type
# xcb_create_pixmap_request_t* {.bycopy.} = object
# major_opcode*: uint8
# depth*: uint8
# length*: uint16
# pid*: xcb_pixmap_t
# drawable*: xcb_drawable_t
# width*: uint16
# height*: uint16
# ## * Opcode for xcb_free_pixmap.
# const
# XCB_FREE_PIXMAP* = 54
# ## *
# ## @brief xcb_free_pixmap_request_t
# ##
# type
# xcb_free_pixmap_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# pixmap*: xcb_pixmap_t
# xcb_gc_t* = enum
# XCB_GC_FUNCTION = 1, ## *< TODO: Refer to GX
# XCB_GC_PLANE_MASK = 2, ## *< In graphics operations, given a source and destination pixel, the result is
# ## computed bitwise on corresponding bits of the pixels; that is, a Boolean
# ## operation is performed in each bit plane. The plane-mask restricts the
# ## operation to a subset of planes, so the result is:
# ##
# ## ((src FUNC dst) AND plane-mask) OR (dst AND (NOT plane-mask))
# XCB_GC_FOREGROUND = 4, ## *< Foreground colorpixel.
# XCB_GC_BACKGROUND = 8, ## *< Background colorpixel.
# XCB_GC_LINE_WIDTH = 16, ## *< The line-width is measured in pixels and can be greater than or equal to one, a wide line, or the
# ## special value zero, a thin line.
# XCB_GC_LINE_STYLE = 32, ## *< The line-style defines which sections of a line are drawn:
# ## Solid The full path of the line is drawn.
# ## DoubleDash The full path of the line is drawn, but the even dashes are filled differently
# ## than the odd dashes (see fill-style), with Butt cap-style used where even and
# ## odd dashes meet.
# ## OnOffDash Only the even dashes are drawn, and cap-style applies to all internal ends of
# ## the individual dashes (except NotLast is treated as Butt).
# XCB_GC_CAP_STYLE = 64, ## *< The cap-style defines how the endpoints of a path are drawn:
# ## NotLast The result is equivalent to Butt, except that for a line-width of zero the final
# ## endpoint is not drawn.
# ## Butt The result is square at the endpoint (perpendicular to the slope of the line)
# ## with no projection beyond.
# ## Round The result is a circular arc with its diameter equal to the line-width, centered
# ## on the endpoint; it is equivalent to Butt for line-width zero.
# ## Projecting The result is square at the end, but the path continues beyond the endpoint for
# ## a distance equal to half the line-width; it is equivalent to Butt for line-width
# ## zero.
# XCB_GC_JOIN_STYLE = 128, ## *< The join-style defines how corners are drawn for wide lines:
# ## Miter The outer edges of the two lines extend to meet at an angle. However, if the
# ## angle is less than 11 degrees, a Bevel join-style is used instead.
# ## Round The result is a circular arc with a diameter equal to the line-width, centered
# ## on the joinpoint.
# ## Bevel The result is Butt endpoint styles, and then the triangular notch is filled.
# XCB_GC_FILL_STYLE = 256, ## *< The fill-style defines the contents of the source for line, text, and fill requests. For all text and fill
# ## requests (for example, PolyText8, PolyText16, PolyFillRectangle, FillPoly, and PolyFillArc)
# ## as well as for line requests with line-style Solid, (for example, PolyLine, PolySegment,
# ## PolyRectangle, PolyArc) and for the even dashes for line requests with line-style OnOffDash
# ## or DoubleDash:
# ## Solid Foreground
# ## Tiled Tile
# ## OpaqueStippled A tile with the same width and height as stipple but with background
# ## everywhere stipple has a zero and with foreground everywhere stipple
# ## has a one
# ## Stippled Foreground masked by stipple
# ## For the odd dashes for line requests with line-style DoubleDash:
# ## Solid Background
# ## Tiled Same as for even dashes
# ## OpaqueStippled Same as for even dashes
# ## Stippled Background masked by stipple
# XCB_GC_FILL_RULE = 512, ## *<
# XCB_GC_TILE = 1024, ## *< The tile/stipple represents an infinite two-dimensional plane with the tile/stipple replicated in all
# ## dimensions. When that plane is superimposed on the drawable for use in a graphics operation,
# ## the upper-left corner of some instance of the tile/stipple is at the coordinates within the drawable
# ## specified by the tile/stipple origin. The tile/stipple and clip origins are interpreted relative to the
# ## origin of whatever destination drawable is specified in a graphics request.
# ## The tile pixmap must have the same root and depth as the gcontext (or a Match error results).
# ## The stipple pixmap must have depth one and must have the same root as the gcontext (or a
# ## Match error results). For fill-style Stippled (but not fill-style
# ## OpaqueStippled), the stipple pattern is tiled in a single plane and acts as an
# ## additional clip mask to be ANDed with the clip-mask.
# ## Any size pixmap can be used for tiling or stippling, although some sizes may be faster to use than
# ## others.
# XCB_GC_STIPPLE = 2048, ## *< The tile/stipple represents an infinite two-dimensional plane with the tile/stipple replicated in all
# ## dimensions. When that plane is superimposed on the drawable for use in a graphics operation,
# ## the upper-left corner of some instance of the tile/stipple is at the coordinates within the drawable
# ## specified by the tile/stipple origin. The tile/stipple and clip origins are interpreted relative to the
# ## origin of whatever destination drawable is specified in a graphics request.
# ## The tile pixmap must have the same root and depth as the gcontext (or a Match error results).
# ## The stipple pixmap must have depth one and must have the same root as the gcontext (or a
# ## Match error results). For fill-style Stippled (but not fill-style
# ## OpaqueStippled), the stipple pattern is tiled in a single plane and acts as an
# ## additional clip mask to be ANDed with the clip-mask.
# ## Any size pixmap can be used for tiling or stippling, although some sizes may be faster to use than
# ## others.
# XCB_GC_TILE_STIPPLE_ORIGIN_X = 4096, ## *< TODO
# XCB_GC_TILE_STIPPLE_ORIGIN_Y = 8192, ## *< TODO
# XCB_GC_FONT = 16384, ## *< Which font to use for the `ImageText8` and `ImageText16` requests.
# XCB_GC_SUBWINDOW_MODE = 32768, ## *< For ClipByChildren, both source and destination windows are additionally
# ## clipped by all viewable InputOutput children. For IncludeInferiors, neither
# ## source nor destination window is
# ## clipped by inferiors. This will result in including subwindow contents in the source and drawing
# ## through subwindow boundaries of the destination. The use of IncludeInferiors with a source or
# ## destination window of one depth with mapped inferiors of differing depth is not illegal, but the
# ## semantics is undefined by the core protocol.
# XCB_GC_GRAPHICS_EXPOSURES = 65536, ## *< Whether ExposureEvents should be generated (1) or not (0).
# ##
# ## The default is 1.
# XCB_GC_CLIP_ORIGIN_X = 131072, ## *< TODO
# XCB_GC_CLIP_ORIGIN_Y = 262144, ## *< TODO
# XCB_GC_CLIP_MASK = 524288, ## *< The clip-mask restricts writes to the destination drawable. Only pixels where the clip-mask has
# ## bits set to 1 are drawn. Pixels are not drawn outside the area covered by the clip-mask or where
# ## the clip-mask has bits set to 0. The clip-mask affects all graphics requests, but it does not clip
# ## sources. The clip-mask origin is interpreted relative to the origin of whatever destination drawable is specified in a graphics request. If a pixmap is specified as the clip-mask, it must have
# ## depth 1 and have the same root as the gcontext (or a Match error results). If clip-mask is None,
# ## then pixels are always drawn, regardless of the clip origin. The clip-mask can also be set with the
# ## SetClipRectangles request.
# XCB_GC_DASH_OFFSET = 1048576, ## *< TODO
# XCB_GC_DASH_LIST = 2097152, ## *< TODO
# XCB_GC_ARC_MODE = 4194304
# xcb_gx_t* = enum
# XCB_GX_CLEAR = 0, XCB_GX_AND = 1, XCB_GX_AND_REVERSE = 2, XCB_GX_COPY = 3,
# XCB_GX_AND_INVERTED = 4, XCB_GX_NOOP = 5, XCB_GX_XOR = 6, XCB_GX_OR = 7, XCB_GX_NOR = 8,
# XCB_GX_EQUIV = 9, XCB_GX_INVERT = 10, XCB_GX_OR_REVERSE = 11,
# XCB_GX_COPY_INVERTED = 12, XCB_GX_OR_INVERTED = 13, XCB_GX_NAND = 14, XCB_GX_SET = 15
# xcb_line_style_t* = enum
# XCB_LINE_STYLE_SOLID = 0, XCB_LINE_STYLE_ON_OFF_DASH = 1,
# XCB_LINE_STYLE_DOUBLE_DASH = 2
# xcb_cap_style_t* = enum
# XCB_CAP_STYLE_NOT_LAST = 0, XCB_CAP_STYLE_BUTT = 1, XCB_CAP_STYLE_ROUND = 2,
# XCB_CAP_STYLE_PROJECTING = 3
# xcb_join_style_t* = enum
# XCB_JOIN_STYLE_MITER = 0, XCB_JOIN_STYLE_ROUND = 1, XCB_JOIN_STYLE_BEVEL = 2
# xcb_fill_style_t* = enum
# XCB_FILL_STYLE_SOLID = 0, XCB_FILL_STYLE_TILED = 1, XCB_FILL_STYLE_STIPPLED = 2,
# XCB_FILL_STYLE_OPAQUE_STIPPLED = 3
# xcb_fill_rule_t* = enum
# XCB_FILL_RULE_EVEN_ODD = 0, XCB_FILL_RULE_WINDING = 1
# xcb_subwindow_mode_t* = enum
# XCB_SUBWINDOW_MODE_CLIP_BY_CHILDREN = 0,
# XCB_SUBWINDOW_MODE_INCLUDE_INFERIORS = 1
# xcb_arc_mode_t* = enum
# XCB_ARC_MODE_CHORD = 0, XCB_ARC_MODE_PIE_SLICE = 1
# ## *
# ## @brief xcb_create_gc_value_list_t
# ##
# type
# xcb_create_gc_value_list_t* {.bycopy.} = object
# function*: uint32
# plane_mask*: uint32
# foreground*: uint32
# background*: uint32
# line_width*: uint32
# line_style*: uint32
# cap_style*: uint32
# join_style*: uint32
# fill_style*: uint32
# fill_rule*: uint32
# tile*: xcb_pixmap_t
# stipple*: xcb_pixmap_t
# tile_stipple_x_origin*: int32
# tile_stipple_y_origin*: int32
# font*: xcb_font_t
# subwindow_mode*: uint32
# graphics_exposures*: xcb_bool32_t
# clip_x_origin*: int32
# clip_y_origin*: int32
# clip_mask*: xcb_pixmap_t
# dash_offset*: uint32
# dashes*: uint32
# arc_mode*: uint32
# ## * Opcode for xcb_create_gc.
# const
# XCB_CREATE_GC* = 55
# ## *
# ## @brief xcb_create_gc_request_t
# ##
# type
# xcb_create_gc_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# cid*: xcb_gcontext_t
# drawable*: xcb_drawable_t
# value_mask*: uint32
# ## *
# ## @brief xcb_change_gc_value_list_t
# ##
# type
# xcb_change_gc_value_list_t* {.bycopy.} = object
# function*: uint32
# plane_mask*: uint32
# foreground*: uint32
# background*: uint32
# line_width*: uint32
# line_style*: uint32
# cap_style*: uint32
# join_style*: uint32
# fill_style*: uint32
# fill_rule*: uint32
# tile*: xcb_pixmap_t
# stipple*: xcb_pixmap_t
# tile_stipple_x_origin*: int32
# tile_stipple_y_origin*: int32
# font*: xcb_font_t
# subwindow_mode*: uint32
# graphics_exposures*: xcb_bool32_t
# clip_x_origin*: int32
# clip_y_origin*: int32
# clip_mask*: xcb_pixmap_t
# dash_offset*: uint32
# dashes*: uint32
# arc_mode*: uint32
# ## * Opcode for xcb_change_gc.
# const
# XCB_CHANGE_GC* = 56
# ## *
# ## @brief xcb_change_gc_request_t
# ##
# type
# xcb_change_gc_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# gc*: xcb_gcontext_t
# value_mask*: uint32
# ## * Opcode for xcb_copy_gc.
# const
# XCB_COPY_GC* = 57
# ## *
# ## @brief xcb_copy_gc_request_t
# ##
# type
# xcb_copy_gc_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# src_gc*: xcb_gcontext_t
# dst_gc*: xcb_gcontext_t
# value_mask*: uint32
# ## * Opcode for xcb_set_dashes.
# const
# XCB_SET_DASHES* = 58
# ## *
# ## @brief xcb_set_dashes_request_t
# ##
# type
# xcb_set_dashes_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# gc*: xcb_gcontext_t
# dash_offset*: uint16
# dashes_len*: uint16
# xcb_clip_ordering_t* = enum
# XCB_CLIP_ORDERING_UNSORTED = 0, XCB_CLIP_ORDERING_Y_SORTED = 1,
# XCB_CLIP_ORDERING_YX_SORTED = 2, XCB_CLIP_ORDERING_YX_BANDED = 3
# ## * Opcode for xcb_set_clip_rectangles.
# const
# XCB_SET_CLIP_RECTANGLES* = 59
# ## *
# ## @brief xcb_set_clip_rectangles_request_t
# ##
# type
# xcb_set_clip_rectangles_request_t* {.bycopy.} = object
# major_opcode*: uint8
# ordering*: uint8
# length*: uint16
# gc*: xcb_gcontext_t
# clip_x_origin*: int16
# clip_y_origin*: int16
# ## * Opcode for xcb_free_gc.
# const
# XCB_FREE_GC* = 60
# ## *
# ## @brief xcb_free_gc_request_t
# ##
# type
# xcb_free_gc_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# gc*: xcb_gcontext_t
# ## * Opcode for xcb_clear_area.
# const
# XCB_CLEAR_AREA* = 61
# ## *
# ## @brief xcb_clear_area_request_t
# ##
# type
# xcb_clear_area_request_t* {.bycopy.} = object
# major_opcode*: uint8
# exposures*: uint8
# length*: uint16
# window*: xcb_window_t
# x*: int16
# y*: int16
# width*: uint16
# height*: uint16
# ## * Opcode for xcb_copy_area.
# const
# XCB_COPY_AREA* = 62
# ## *
# ## @brief xcb_copy_area_request_t
# ##
# type
# xcb_copy_area_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# src_drawable*: xcb_drawable_t
# dst_drawable*: xcb_drawable_t
# gc*: xcb_gcontext_t
# src_x*: int16
# src_y*: int16
# dst_x*: int16
# dst_y*: int16
# width*: uint16
# height*: uint16
# ## * Opcode for xcb_copy_plane.
# const
# XCB_COPY_PLANE* = 63
# ## *
# ## @brief xcb_copy_plane_request_t
# ##
# type
# xcb_copy_plane_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# src_drawable*: xcb_drawable_t
# dst_drawable*: xcb_drawable_t
# gc*: xcb_gcontext_t
# src_x*: int16
# src_y*: int16
# dst_x*: int16
# dst_y*: int16
# width*: uint16
# height*: uint16
# bit_plane*: uint32
# xcb_coord_mode_t* = enum
# XCB_COORD_MODE_ORIGIN = 0, ## *< Treats all coordinates as relative to the origin.
# XCB_COORD_MODE_PREVIOUS = 1
# ## * Opcode for xcb_poly_point.
# const
# XCB_POLY_POINT* = 64
# ## *
# ## @brief xcb_poly_point_request_t
# ##
# type
# xcb_poly_point_request_t* {.bycopy.} = object
# major_opcode*: uint8
# coordinate_mode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# gc*: xcb_gcontext_t
# ## * Opcode for xcb_poly_line.
# const
# XCB_POLY_LINE* = 65
# ## *
# ## @brief xcb_poly_line_request_t
# ##
# type
# xcb_poly_line_request_t* {.bycopy.} = object
# major_opcode*: uint8
# coordinate_mode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# gc*: xcb_gcontext_t
# ## *
# ## @brief xcb_segment_t
# ##
# type
# xcb_segment_t* {.bycopy.} = object
# x1*: int16
# y1*: int16
# x2*: int16
# y2*: int16
# ## *
# ## @brief xcb_segment_iterator_t
# ##
# type
# xcb_segment_iterator_t* {.bycopy.} = object
# data*: ptr xcb_segment_t
# rem*: cint
# index*: cint
# ## * Opcode for xcb_poly_segment.
# const
# XCB_POLY_SEGMENT* = 66
# ## *
# ## @brief xcb_poly_segment_request_t
# ##
# type
# xcb_poly_segment_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# gc*: xcb_gcontext_t
# ## * Opcode for xcb_poly_rectangle.
# const
# XCB_POLY_RECTANGLE* = 67
# ## *
# ## @brief xcb_poly_rectangle_request_t
# ##
# type
# xcb_poly_rectangle_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# gc*: xcb_gcontext_t
# ## * Opcode for xcb_poly_arc.
# const
# XCB_POLY_ARC* = 68
# ## *
# ## @brief xcb_poly_arc_request_t
# ##
# type
# xcb_poly_arc_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# gc*: xcb_gcontext_t
# xcb_poly_shape_t* = enum
# XCB_POLY_SHAPE_COMPLEX = 0, XCB_POLY_SHAPE_NONCONVEX = 1,
# XCB_POLY_SHAPE_CONVEX = 2
# ## * Opcode for xcb_fill_poly.
# const
# XCB_FILL_POLY* = 69
# ## *
# ## @brief xcb_fill_poly_request_t
# ##
# type
# xcb_fill_poly_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# gc*: xcb_gcontext_t
# shape*: uint8
# coordinate_mode*: uint8
# pad1*: array[2, uint8]
# ## * Opcode for xcb_poly_fill_rectangle.
# const
# XCB_POLY_FILL_RECTANGLE* = 70
# ## *
# ## @brief xcb_poly_fill_rectangle_request_t
# ##
# type
# xcb_poly_fill_rectangle_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# gc*: xcb_gcontext_t
# ## * Opcode for xcb_poly_fill_arc.
# const
# XCB_POLY_FILL_ARC* = 71
# ## *
# ## @brief xcb_poly_fill_arc_request_t
# ##
# type
# xcb_poly_fill_arc_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# gc*: xcb_gcontext_t
# xcb_image_format_t* = enum
# XCB_IMAGE_FORMAT_XY_BITMAP = 0, XCB_IMAGE_FORMAT_XY_PIXMAP = 1,
# XCB_IMAGE_FORMAT_Z_PIXMAP = 2
# ## * Opcode for xcb_put_image.
# const
# XCB_PUT_IMAGE* = 72
# ## *
# ## @brief xcb_put_image_request_t
# ##
# type
# xcb_put_image_request_t* {.bycopy.} = object
# major_opcode*: uint8
# format*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# gc*: xcb_gcontext_t
# width*: uint16
# height*: uint16
# dst_x*: int16
# dst_y*: int16
# left_pad*: uint8
# depth*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_get_image_cookie_t
# ##
# type
# xcb_get_image_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_get_image.
# const
# XCB_GET_IMAGE* = 73
# ## *
# ## @brief xcb_get_image_request_t
# ##
# type
# xcb_get_image_request_t* {.bycopy.} = object
# major_opcode*: uint8
# format*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# x*: int16
# y*: int16
# width*: uint16
# height*: uint16
# plane_mask*: uint32
# ## *
# ## @brief xcb_get_image_reply_t
# ##
# type
# xcb_get_image_reply_t* {.bycopy.} = object
# response_type*: uint8
# depth*: uint8
# sequence*: uint16
# length*: uint32
# visual*: xcb_visualid_t
# pad0*: array[20, uint8]
# ## * Opcode for xcb_poly_text_8.
# const
# XCB_POLY_TEXT_8* = 74
# ## *
# ## @brief xcb_poly_text_8_request_t
# ##
# type
# xcb_poly_text_8_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# gc*: xcb_gcontext_t
# x*: int16
# y*: int16
# ## * Opcode for xcb_poly_text_16.
# const
# XCB_POLY_TEXT_16* = 75
# ## *
# ## @brief xcb_poly_text_16_request_t
# ##
# type
# xcb_poly_text_16_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# gc*: xcb_gcontext_t
# x*: int16
# y*: int16
# ## * Opcode for xcb_image_text_8.
# const
# XCB_IMAGE_TEXT_8* = 76
# ## *
# ## @brief xcb_image_text_8_request_t
# ##
# type
# xcb_image_text_8_request_t* {.bycopy.} = object
# major_opcode*: uint8
# string_len*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# gc*: xcb_gcontext_t
# x*: int16
# y*: int16
# ## * Opcode for xcb_image_text_16.
# const
# XCB_IMAGE_TEXT_16* = 77
# ## *
# ## @brief xcb_image_text_16_request_t
# ##
# type
# xcb_image_text_16_request_t* {.bycopy.} = object
# major_opcode*: uint8
# string_len*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# gc*: xcb_gcontext_t
# x*: int16
# y*: int16
# xcb_colormap_alloc_t* = enum
# XCB_COLORMAP_ALLOC_NONE = 0, XCB_COLORMAP_ALLOC_ALL = 1
# ## * Opcode for xcb_create_colormap.
# const
# XCB_CREATE_COLORMAP* = 78
# ## *
# ## @brief xcb_create_colormap_request_t
# ##
# type
# xcb_create_colormap_request_t* {.bycopy.} = object
# major_opcode*: uint8
# alloc*: uint8
# length*: uint16
# mid*: xcb_colormap_t
# window*: xcb_window_t
# visual*: xcb_visualid_t
# ## * Opcode for xcb_free_colormap.
# const
# XCB_FREE_COLORMAP* = 79
# ## *
# ## @brief xcb_free_colormap_request_t
# ##
# type
# xcb_free_colormap_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# cmap*: xcb_colormap_t
# ## * Opcode for xcb_copy_colormap_and_free.
# const
# XCB_COPY_COLORMAP_AND_FREE* = 80
# ## *
# ## @brief xcb_copy_colormap_and_free_request_t
# ##
# type
# xcb_copy_colormap_and_free_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# mid*: xcb_colormap_t
# src_cmap*: xcb_colormap_t
# ## * Opcode for xcb_install_colormap.
# const
# XCB_INSTALL_COLORMAP* = 81
# ## *
# ## @brief xcb_install_colormap_request_t
# ##
# type
# xcb_install_colormap_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# cmap*: xcb_colormap_t
# ## * Opcode for xcb_uninstall_colormap.
# const
# XCB_UNINSTALL_COLORMAP* = 82
# ## *
# ## @brief xcb_uninstall_colormap_request_t
# ##
# type
# xcb_uninstall_colormap_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# cmap*: xcb_colormap_t
# ## *
# ## @brief xcb_list_installed_colormaps_cookie_t
# ##
# type
# xcb_list_installed_colormaps_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_list_installed_colormaps.
# const
# XCB_LIST_INSTALLED_COLORMAPS* = 83
# ## *
# ## @brief xcb_list_installed_colormaps_request_t
# ##
# type
# xcb_list_installed_colormaps_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# window*: xcb_window_t
# ## *
# ## @brief xcb_list_installed_colormaps_reply_t
# ##
# type
# xcb_list_installed_colormaps_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# cmaps_len*: uint16
# pad1*: array[22, uint8]
# ## *
# ## @brief xcb_alloc_color_cookie_t
# ##
# type
# xcb_alloc_color_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_alloc_color.
# const
# XCB_ALLOC_COLOR* = 84
# ## *
# ## @brief xcb_alloc_color_request_t
# ##
# type
# xcb_alloc_color_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# cmap*: xcb_colormap_t
# red*: uint16
# green*: uint16
# blue*: uint16
# pad1*: array[2, uint8]
# ## *
# ## @brief xcb_alloc_color_reply_t
# ##
# type
# xcb_alloc_color_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# red*: uint16
# green*: uint16
# blue*: uint16
# pad1*: array[2, uint8]
# pixel*: uint32
# ## *
# ## @brief xcb_alloc_named_color_cookie_t
# ##
# type
# xcb_alloc_named_color_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_alloc_named_color.
# const
# XCB_ALLOC_NAMED_COLOR* = 85
# ## *
# ## @brief xcb_alloc_named_color_request_t
# ##
# type
# xcb_alloc_named_color_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# cmap*: xcb_colormap_t
# name_len*: uint16
# pad1*: array[2, uint8]
# ## *
# ## @brief xcb_alloc_named_color_reply_t
# ##
# type
# xcb_alloc_named_color_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# pixel*: uint32
# exact_red*: uint16
# exact_green*: uint16
# exact_blue*: uint16
# visual_red*: uint16
# visual_green*: uint16
# visual_blue*: uint16
# ## *
# ## @brief xcb_alloc_color_cells_cookie_t
# ##
# type
# xcb_alloc_color_cells_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_alloc_color_cells.
# const
# XCB_ALLOC_COLOR_CELLS* = 86
# ## *
# ## @brief xcb_alloc_color_cells_request_t
# ##
# type
# xcb_alloc_color_cells_request_t* {.bycopy.} = object
# major_opcode*: uint8
# contiguous*: uint8
# length*: uint16
# cmap*: xcb_colormap_t
# colors*: uint16
# planes*: uint16
# ## *
# ## @brief xcb_alloc_color_cells_reply_t
# ##
# type
# xcb_alloc_color_cells_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# pixels_len*: uint16
# masks_len*: uint16
# pad1*: array[20, uint8]
# ## *
# ## @brief xcb_alloc_color_planes_cookie_t
# ##
# type
# xcb_alloc_color_planes_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_alloc_color_planes.
# const
# XCB_ALLOC_COLOR_PLANES* = 87
# ## *
# ## @brief xcb_alloc_color_planes_request_t
# ##
# type
# xcb_alloc_color_planes_request_t* {.bycopy.} = object
# major_opcode*: uint8
# contiguous*: uint8
# length*: uint16
# cmap*: xcb_colormap_t
# colors*: uint16
# reds*: uint16
# greens*: uint16
# blues*: uint16
# ## *
# ## @brief xcb_alloc_color_planes_reply_t
# ##
# type
# xcb_alloc_color_planes_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# pixels_len*: uint16
# pad1*: array[2, uint8]
# red_mask*: uint32
# green_mask*: uint32
# blue_mask*: uint32
# pad2*: array[8, uint8]
# ## * Opcode for xcb_free_colors.
# const
# XCB_FREE_COLORS* = 88
# ## *
# ## @brief xcb_free_colors_request_t
# ##
# type
# xcb_free_colors_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# cmap*: xcb_colormap_t
# plane_mask*: uint32
# xcb_color_flag_t* = enum
# XCB_COLOR_FLAG_RED = 1, XCB_COLOR_FLAG_GREEN = 2, XCB_COLOR_FLAG_BLUE = 4
# ## *
# ## @brief xcb_coloritem_t
# ##
# type
# xcb_coloritem_t* {.bycopy.} = object
# pixel*: uint32
# red*: uint16
# green*: uint16
# blue*: uint16
# flags*: uint8
# pad0*: uint8
# ## *
# ## @brief xcb_coloritem_iterator_t
# ##
# type
# xcb_coloritem_iterator_t* {.bycopy.} = object
# data*: ptr xcb_coloritem_t
# rem*: cint
# index*: cint
# ## * Opcode for xcb_store_colors.
# const
# XCB_STORE_COLORS* = 89
# ## *
# ## @brief xcb_store_colors_request_t
# ##
# type
# xcb_store_colors_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# cmap*: xcb_colormap_t
# ## * Opcode for xcb_store_named_color.
# const
# XCB_STORE_NAMED_COLOR* = 90
# ## *
# ## @brief xcb_store_named_color_request_t
# ##
# type
# xcb_store_named_color_request_t* {.bycopy.} = object
# major_opcode*: uint8
# flags*: uint8
# length*: uint16
# cmap*: xcb_colormap_t
# pixel*: uint32
# name_len*: uint16
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_rgb_t
# ##
# type
# xcb_rgb_t* {.bycopy.} = object
# red*: uint16
# green*: uint16
# blue*: uint16
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_rgb_iterator_t
# ##
# type
# xcb_rgb_iterator_t* {.bycopy.} = object
# data*: ptr xcb_rgb_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_query_colors_cookie_t
# ##
# type
# xcb_query_colors_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_query_colors.
# const
# XCB_QUERY_COLORS* = 91
# ## *
# ## @brief xcb_query_colors_request_t
# ##
# type
# xcb_query_colors_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# cmap*: xcb_colormap_t
# ## *
# ## @brief xcb_query_colors_reply_t
# ##
# type
# xcb_query_colors_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# colors_len*: uint16
# pad1*: array[22, uint8]
# ## *
# ## @brief xcb_lookup_color_cookie_t
# ##
# type
# xcb_lookup_color_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_lookup_color.
# const
# XCB_LOOKUP_COLOR* = 92
# ## *
# ## @brief xcb_lookup_color_request_t
# ##
# type
# xcb_lookup_color_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# cmap*: xcb_colormap_t
# name_len*: uint16
# pad1*: array[2, uint8]
# ## *
# ## @brief xcb_lookup_color_reply_t
# ##
# type
# xcb_lookup_color_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# exact_red*: uint16
# exact_green*: uint16
# exact_blue*: uint16
# visual_red*: uint16
# visual_green*: uint16
# visual_blue*: uint16
# xcb_pixmap_enum_t* = enum
# XCB_PIXMAP_NONE = 0
# ## * Opcode for xcb_create_cursor.
# const
# XCB_CREATE_CURSOR* = 93
# ## *
# ## @brief xcb_create_cursor_request_t
# ##
# type
# xcb_create_cursor_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# cid*: xcb_cursor_t
# source*: xcb_pixmap_t
# mask*: xcb_pixmap_t
# fore_red*: uint16
# fore_green*: uint16
# fore_blue*: uint16
# back_red*: uint16
# back_green*: uint16
# back_blue*: uint16
# x*: uint16
# y*: uint16
# xcb_font_enum_t* = enum
# XCB_FONT_NONE = 0
# ## * Opcode for xcb_create_glyph_cursor.
# const
# XCB_CREATE_GLYPH_CURSOR* = 94
# ## *
# ## @brief xcb_create_glyph_cursor_request_t
# ##
# type
# xcb_create_glyph_cursor_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# cid*: xcb_cursor_t
# source_font*: xcb_font_t
# mask_font*: xcb_font_t
# source_char*: uint16
# mask_char*: uint16
# fore_red*: uint16
# fore_green*: uint16
# fore_blue*: uint16
# back_red*: uint16
# back_green*: uint16
# back_blue*: uint16
# ## * Opcode for xcb_free_cursor.
# const
# XCB_FREE_CURSOR* = 95
# ## *
# ## @brief xcb_free_cursor_request_t
# ##
# type
# xcb_free_cursor_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# cursor*: xcb_cursor_t
# ## * Opcode for xcb_recolor_cursor.
# const
# XCB_RECOLOR_CURSOR* = 96
# ## *
# ## @brief xcb_recolor_cursor_request_t
# ##
# type
# xcb_recolor_cursor_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# cursor*: xcb_cursor_t
# fore_red*: uint16
# fore_green*: uint16
# fore_blue*: uint16
# back_red*: uint16
# back_green*: uint16
# back_blue*: uint16
# xcb_query_shape_of_t* = enum
# XCB_QUERY_SHAPE_OF_LARGEST_CURSOR = 0, XCB_QUERY_SHAPE_OF_FASTEST_TILE = 1,
# XCB_QUERY_SHAPE_OF_FASTEST_STIPPLE = 2
# ## *
# ## @brief xcb_query_best_size_cookie_t
# ##
# type
# xcb_query_best_size_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_query_best_size.
# const
# XCB_QUERY_BEST_SIZE* = 97
# ## *
# ## @brief xcb_query_best_size_request_t
# ##
# type
# xcb_query_best_size_request_t* {.bycopy.} = object
# major_opcode*: uint8
# _class*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# width*: uint16
# height*: uint16
# ## *
# ## @brief xcb_query_best_size_reply_t
# ##
# type
# xcb_query_best_size_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# width*: uint16
# height*: uint16
# ## *
# ## @brief xcb_query_extension_cookie_t
# ##
# type
# xcb_query_extension_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_query_extension.
# const
# XCB_QUERY_EXTENSION* = 98
# ## *
# ## @brief xcb_query_extension_request_t
# ##
# type
# xcb_query_extension_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# name_len*: uint16
# pad1*: array[2, uint8]
# ## *
# ## @brief xcb_query_extension_reply_t
# ##
# type
# xcb_query_extension_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# present*: uint8
# major_opcode*: uint8
# first_event*: uint8
# first_error*: uint8
# ## *
# ## @brief xcb_list_extensions_cookie_t
# ##
# type
# xcb_list_extensions_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_list_extensions.
# const
# XCB_LIST_EXTENSIONS* = 99
# ## *
# ## @brief xcb_list_extensions_request_t
# ##
# type
# xcb_list_extensions_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# ## *
# ## @brief xcb_list_extensions_reply_t
# ##
# type
# xcb_list_extensions_reply_t* {.bycopy.} = object
# response_type*: uint8
# names_len*: uint8
# sequence*: uint16
# length*: uint32
# pad0*: array[24, uint8]
# ## * Opcode for xcb_change_keyboard_mapping.
# const
# XCB_CHANGE_KEYBOARD_MAPPING* = 100
# ## *
# ## @brief xcb_change_keyboard_mapping_request_t
# ##
# type
# xcb_change_keyboard_mapping_request_t* {.bycopy.} = object
# major_opcode*: uint8
# keycode_count*: uint8
# length*: uint16
# first_keycode*: xcb_keycode_t
# keysyms_per_keycode*: uint8
# pad0*: array[2, uint8]
# ## *
# ## @brief xcb_get_keyboard_mapping_cookie_t
# ##
# type
# xcb_get_keyboard_mapping_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_get_keyboard_mapping.
# const
# XCB_GET_KEYBOARD_MAPPING* = 101
# ## *
# ## @brief xcb_get_keyboard_mapping_request_t
# ##
# type
# xcb_get_keyboard_mapping_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# first_keycode*: xcb_keycode_t
# count*: uint8
# ## *
# ## @brief xcb_get_keyboard_mapping_reply_t
# ##
# type
# xcb_get_keyboard_mapping_reply_t* {.bycopy.} = object
# response_type*: uint8
# keysyms_per_keycode*: uint8
# sequence*: uint16
# length*: uint32
# pad0*: array[24, uint8]
# xcb_kb_t* = enum
# XCB_KB_KEY_CLICK_PERCENT = 1, XCB_KB_BELL_PERCENT = 2, XCB_KB_BELL_PITCH = 4,
# XCB_KB_BELL_DURATION = 8, XCB_KB_LED = 16, XCB_KB_LED_MODE = 32, XCB_KB_KEY = 64,
# XCB_KB_AUTO_REPEAT_MODE = 128
# xcb_led_mode_t* = enum
# XCB_LED_MODE_OFF = 0, XCB_LED_MODE_ON = 1
# xcb_auto_repeat_mode_t* = enum
# XCB_AUTO_REPEAT_MODE_OFF = 0, XCB_AUTO_REPEAT_MODE_ON = 1,
# XCB_AUTO_REPEAT_MODE_DEFAULT = 2
# ## *
# ## @brief xcb_change_keyboard_control_value_list_t
# ##
# type
# xcb_change_keyboard_control_value_list_t* {.bycopy.} = object
# key_click_percent*: int32
# bell_percent*: int32
# bell_pitch*: int32
# bell_duration*: int32
# led*: uint32
# led_mode*: uint32
# key*: xcb_keycode32_t
# auto_repeat_mode*: uint32
# ## * Opcode for xcb_change_keyboard_control.
# const
# XCB_CHANGE_KEYBOARD_CONTROL* = 102
# ## *
# ## @brief xcb_change_keyboard_control_request_t
# ##
# type
# xcb_change_keyboard_control_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# value_mask*: uint32
# ## *
# ## @brief xcb_get_keyboard_control_cookie_t
# ##
# type
# xcb_get_keyboard_control_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_get_keyboard_control.
# const
# XCB_GET_KEYBOARD_CONTROL* = 103
# ## *
# ## @brief xcb_get_keyboard_control_request_t
# ##
# type
# xcb_get_keyboard_control_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# ## *
# ## @brief xcb_get_keyboard_control_reply_t
# ##
# type
# xcb_get_keyboard_control_reply_t* {.bycopy.} = object
# response_type*: uint8
# global_auto_repeat*: uint8
# sequence*: uint16
# length*: uint32
# led_mask*: uint32
# key_click_percent*: uint8
# bell_percent*: uint8
# bell_pitch*: uint16
# bell_duration*: uint16
# pad0*: array[2, uint8]
# auto_repeats*: array[32, uint8]
# ## * Opcode for xcb_bell.
# const
# XCB_BELL* = 104
# ## *
# ## @brief xcb_bell_request_t
# ##
# type
# xcb_bell_request_t* {.bycopy.} = object
# major_opcode*: uint8
# percent*: int8
# length*: uint16
# ## * Opcode for xcb_change_pointer_control.
# const
# XCB_CHANGE_POINTER_CONTROL* = 105
# ## *
# ## @brief xcb_change_pointer_control_request_t
# ##
# type
# xcb_change_pointer_control_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# acceleration_numerator*: int16
# acceleration_denominator*: int16
# threshold*: int16
# do_acceleration*: uint8
# do_threshold*: uint8
# ## *
# ## @brief xcb_get_pointer_control_cookie_t
# ##
# type
# xcb_get_pointer_control_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_get_pointer_control.
# const
# XCB_GET_POINTER_CONTROL* = 106
# ## *
# ## @brief xcb_get_pointer_control_request_t
# ##
# type
# xcb_get_pointer_control_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# ## *
# ## @brief xcb_get_pointer_control_reply_t
# ##
# type
# xcb_get_pointer_control_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# acceleration_numerator*: uint16
# acceleration_denominator*: uint16
# threshold*: uint16
# pad1*: array[18, uint8]
# xcb_blanking_t* = enum
# XCB_BLANKING_NOT_PREFERRED = 0, XCB_BLANKING_PREFERRED = 1,
# XCB_BLANKING_DEFAULT = 2
# xcb_exposures_t* = enum
# XCB_EXPOSURES_NOT_ALLOWED = 0, XCB_EXPOSURES_ALLOWED = 1,
# XCB_EXPOSURES_DEFAULT = 2
# ## * Opcode for xcb_set_screen_saver.
# const
# XCB_SET_SCREEN_SAVER* = 107
# ## *
# ## @brief xcb_set_screen_saver_request_t
# ##
# type
# xcb_set_screen_saver_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# timeout*: int16
# interval*: int16
# prefer_blanking*: uint8
# allow_exposures*: uint8
# ## *
# ## @brief xcb_get_screen_saver_cookie_t
# ##
# type
# xcb_get_screen_saver_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_get_screen_saver.
# const
# XCB_GET_SCREEN_SAVER* = 108
# ## *
# ## @brief xcb_get_screen_saver_request_t
# ##
# type
# xcb_get_screen_saver_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# ## *
# ## @brief xcb_get_screen_saver_reply_t
# ##
# type
# xcb_get_screen_saver_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# timeout*: uint16
# interval*: uint16
# prefer_blanking*: uint8
# allow_exposures*: uint8
# pad1*: array[18, uint8]
# xcb_host_mode_t* = enum
# XCB_HOST_MODE_INSERT = 0, XCB_HOST_MODE_DELETE = 1
# xcb_family_t* = enum
# XCB_FAMILY_INTERNET = 0, XCB_FAMILY_DECNET = 1, XCB_FAMILY_CHAOS = 2,
# XCB_FAMILY_SERVER_INTERPRETED = 5, XCB_FAMILY_INTERNET_6 = 6
# ## * Opcode for xcb_change_hosts.
# const
# XCB_CHANGE_HOSTS* = 109
# ## *
# ## @brief xcb_change_hosts_request_t
# ##
# type
# xcb_change_hosts_request_t* {.bycopy.} = object
# major_opcode*: uint8
# mode*: uint8
# length*: uint16
# family*: uint8
# pad0*: uint8
# address_len*: uint16
# ## *
# ## @brief xcb_host_t
# ##
# type
# xcb_host_t* {.bycopy.} = object
# family*: uint8
# pad0*: uint8
# address_len*: uint16
# ## *
# ## @brief xcb_host_iterator_t
# ##
# type
# xcb_host_iterator_t* {.bycopy.} = object
# data*: ptr xcb_host_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_list_hosts_cookie_t
# ##
# type
# xcb_list_hosts_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_list_hosts.
# const
# XCB_LIST_HOSTS* = 110
# ## *
# ## @brief xcb_list_hosts_request_t
# ##
# type
# xcb_list_hosts_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# ## *
# ## @brief xcb_list_hosts_reply_t
# ##
# type
# xcb_list_hosts_reply_t* {.bycopy.} = object
# response_type*: uint8
# mode*: uint8
# sequence*: uint16
# length*: uint32
# hosts_len*: uint16
# pad0*: array[22, uint8]
# xcb_access_control_t* = enum
# XCB_ACCESS_CONTROL_DISABLE = 0, XCB_ACCESS_CONTROL_ENABLE = 1
# ## * Opcode for xcb_set_access_control.
# const
# XCB_SET_ACCESS_CONTROL* = 111
# ## *
# ## @brief xcb_set_access_control_request_t
# ##
# type
# xcb_set_access_control_request_t* {.bycopy.} = object
# major_opcode*: uint8
# mode*: uint8
# length*: uint16
# xcb_close_down_t* = enum
# XCB_CLOSE_DOWN_DESTROY_ALL = 0, XCB_CLOSE_DOWN_RETAIN_PERMANENT = 1,
# XCB_CLOSE_DOWN_RETAIN_TEMPORARY = 2
# ## * Opcode for xcb_set_close_down_mode.
# const
# XCB_SET_CLOSE_DOWN_MODE* = 112
# ## *
# ## @brief xcb_set_close_down_mode_request_t
# ##
# type
# xcb_set_close_down_mode_request_t* {.bycopy.} = object
# major_opcode*: uint8
# mode*: uint8
# length*: uint16
# xcb_kill_t* = enum
# XCB_KILL_ALL_TEMPORARY = 0
# ## * Opcode for xcb_kill_client.
# const
# XCB_KILL_CLIENT* = 113
# ## *
# ## @brief xcb_kill_client_request_t
# ##
# type
# xcb_kill_client_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# resource*: uint32
# ## * Opcode for xcb_rotate_properties.
# const
# XCB_ROTATE_PROPERTIES* = 114
# ## *
# ## @brief xcb_rotate_properties_request_t
# ##
# type
# xcb_rotate_properties_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# window*: xcb_window_t
# atoms_len*: uint16
# delta*: int16
# xcb_screen_saver_t* = enum
# XCB_SCREEN_SAVER_RESET = 0, XCB_SCREEN_SAVER_ACTIVE = 1
# ## * Opcode for xcb_force_screen_saver.
# const
# XCB_FORCE_SCREEN_SAVER* = 115
# ## *
# ## @brief xcb_force_screen_saver_request_t
# ##
# type
# xcb_force_screen_saver_request_t* {.bycopy.} = object
# major_opcode*: uint8
# mode*: uint8
# length*: uint16
# xcb_mapping_status_t* = enum
# XCB_MAPPING_STATUS_SUCCESS = 0, XCB_MAPPING_STATUS_BUSY = 1,
# XCB_MAPPING_STATUS_FAILURE = 2
# ## *
# ## @brief xcb_set_pointer_mapping_cookie_t
# ##
# type
# xcb_set_pointer_mapping_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_set_pointer_mapping.
# const
# XCB_SET_POINTER_MAPPING* = 116
# ## *
# ## @brief xcb_set_pointer_mapping_request_t
# ##
# type
# xcb_set_pointer_mapping_request_t* {.bycopy.} = object
# major_opcode*: uint8
# map_len*: uint8
# length*: uint16
# ## *
# ## @brief xcb_set_pointer_mapping_reply_t
# ##
# type
# xcb_set_pointer_mapping_reply_t* {.bycopy.} = object
# response_type*: uint8
# status*: uint8
# sequence*: uint16
# length*: uint32
# ## *
# ## @brief xcb_get_pointer_mapping_cookie_t
# ##
# type
# xcb_get_pointer_mapping_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_get_pointer_mapping.
# const
# XCB_GET_POINTER_MAPPING* = 117
# ## *
# ## @brief xcb_get_pointer_mapping_request_t
# ##
# type
# xcb_get_pointer_mapping_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# ## *
# ## @brief xcb_get_pointer_mapping_reply_t
# ##
# type
# xcb_get_pointer_mapping_reply_t* {.bycopy.} = object
# response_type*: uint8
# map_len*: uint8
# sequence*: uint16
# length*: uint32
# pad0*: array[24, uint8]
# xcb_map_index_t* = enum
# XCB_MAP_INDEX_SHIFT = 0, XCB_MAP_INDEX_LOCK = 1, XCB_MAP_INDEX_CONTROL = 2,
# XCB_MAP_INDEX_1 = 3, XCB_MAP_INDEX_2 = 4, XCB_MAP_INDEX_3 = 5, XCB_MAP_INDEX_4 = 6,
# XCB_MAP_INDEX_5 = 7
# ## *
# ## @brief xcb_set_modifier_mapping_cookie_t
# ##
# type
# xcb_set_modifier_mapping_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_set_modifier_mapping.
# const
# XCB_SET_MODIFIER_MAPPING* = 118
# ## *
# ## @brief xcb_set_modifier_mapping_request_t
# ##
# type
# xcb_set_modifier_mapping_request_t* {.bycopy.} = object
# major_opcode*: uint8
# keycodes_per_modifier*: uint8
# length*: uint16
# ## *
# ## @brief xcb_set_modifier_mapping_reply_t
# ##
# type
# xcb_set_modifier_mapping_reply_t* {.bycopy.} = object
# response_type*: uint8
# status*: uint8
# sequence*: uint16
# length*: uint32
# ## *
# ## @brief xcb_get_modifier_mapping_cookie_t
# ##
# type
# xcb_get_modifier_mapping_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_get_modifier_mapping.
# const
# XCB_GET_MODIFIER_MAPPING* = 119
# ## *
# ## @brief xcb_get_modifier_mapping_request_t
# ##
# type
# xcb_get_modifier_mapping_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# ## *
# ## @brief xcb_get_modifier_mapping_reply_t
# ##
# type
# xcb_get_modifier_mapping_reply_t* {.bycopy.} = object
# response_type*: uint8
# keycodes_per_modifier*: uint8
# sequence*: uint16
# length*: uint32
# pad0*: array[24, uint8]
# ## * Opcode for xcb_no_operation.
# const
# XCB_NO_OPERATION* = 127
# ## *
# ## @brief xcb_no_operation_request_t
# ##
# type
# xcb_no_operation_request_t* {.bycopy.} = object
# major_opcode*: uint8
# pad0*: uint8
# length*: uint16
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_char2b_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_char2b_t)
# ##
# proc xcb_char2b_next*(i: ptr xcb_char2b_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_char2b_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_char2b_end*(i: xcb_char2b_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_window_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_window_t)
# ##
# proc xcb_window_next*(i: ptr xcb_window_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_window_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_window_end*(i: xcb_window_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_pixmap_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_pixmap_t)
# ##
# proc xcb_pixmap_next*(i: ptr xcb_pixmap_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_pixmap_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_pixmap_end*(i: xcb_pixmap_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_cursor_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_cursor_t)
# ##
# proc xcb_cursor_next*(i: ptr xcb_cursor_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_cursor_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_cursor_end*(i: xcb_cursor_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_font_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_font_t)
# ##
# proc xcb_font_next*(i: ptr xcb_font_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_font_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_font_end*(i: xcb_font_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_gcontext_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_gcontext_t)
# ##
# proc xcb_gcontext_next*(i: ptr xcb_gcontext_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_gcontext_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_gcontext_end*(i: xcb_gcontext_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_colormap_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_colormap_t)
# ##
# proc xcb_colormap_next*(i: ptr xcb_colormap_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_colormap_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_colormap_end*(i: xcb_colormap_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_atom_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_atom_t)
# ##
# proc xcb_atom_next*(i: ptr xcb_atom_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_atom_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_atom_end*(i: xcb_atom_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_drawable_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_drawable_t)
# ##
# proc xcb_drawable_next*(i: ptr xcb_drawable_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_drawable_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_drawable_end*(i: xcb_drawable_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_fontable_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_fontable_t)
# ##
# proc xcb_fontable_next*(i: ptr xcb_fontable_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_fontable_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_fontable_end*(i: xcb_fontable_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_bool32_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_bool32_t)
# ##
# proc xcb_bool32_next*(i: ptr xcb_bool32_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_bool32_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_bool32_end*(i: xcb_bool32_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_visualid_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_visualid_t)
# ##
# proc xcb_visualid_next*(i: ptr xcb_visualid_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_visualid_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_visualid_end*(i: xcb_visualid_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_timestamp_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_timestamp_t)
# ##
# proc xcb_timestamp_next*(i: ptr xcb_timestamp_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_timestamp_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_timestamp_end*(i: xcb_timestamp_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_keysym_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_keysym_t)
# ##
# proc xcb_keysym_next*(i: ptr xcb_keysym_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_keysym_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_keysym_end*(i: xcb_keysym_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_keycode_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_keycode_t)
# ##
# proc xcb_keycode_next*(i: ptr xcb_keycode_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_keycode_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_keycode_end*(i: xcb_keycode_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_keycode32_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_keycode32_t)
# ##
# proc xcb_keycode32_next*(i: ptr xcb_keycode32_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_keycode32_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_keycode32_end*(i: xcb_keycode32_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_button_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_button_t)
# ##
# proc xcb_button_next*(i: ptr xcb_button_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_button_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_button_end*(i: xcb_button_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_point_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_point_t)
# ##
# proc xcb_point_next*(i: ptr xcb_point_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_point_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_point_end*(i: xcb_point_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_rectangle_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_rectangle_t)
# ##
# proc xcb_rectangle_next*(i: ptr xcb_rectangle_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_rectangle_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_rectangle_end*(i: xcb_rectangle_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_arc_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_arc_t)
# ##
# proc xcb_arc_next*(i: ptr xcb_arc_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_arc_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_arc_end*(i: xcb_arc_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_format_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_format_t)
# ##
# proc xcb_format_next*(i: ptr xcb_format_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_format_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_format_end*(i: xcb_format_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_visualtype_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_visualtype_t)
# ##
# proc xcb_visualtype_next*(i: ptr xcb_visualtype_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_visualtype_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_visualtype_end*(i: xcb_visualtype_iterator_t): xcb_generic_iterator_t
# proc xcb_depth_sizeof*(_buffer: pointer): cint
# proc xcb_depth_visuals*(R: ptr xcb_depth_t): ptr xcb_visualtype_t
# proc xcb_depth_visuals_length*(R: ptr xcb_depth_t): cint
# proc xcb_depth_visuals_iterator*(R: ptr xcb_depth_t): xcb_visualtype_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_depth_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_depth_t)
# ##
# proc xcb_depth_next*(i: ptr xcb_depth_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_depth_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_depth_end*(i: xcb_depth_iterator_t): xcb_generic_iterator_t
# proc xcb_screen_sizeof*(_buffer: pointer): cint
# proc xcb_screen_allowed_depths_length*(R: ptr xcb_screen_t): cint
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_screen_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_screen_t)
# ##
# proc xcb_screen_next*(i: ptr xcb_screen_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_screen_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_screen_end*(i: xcb_screen_iterator_t): xcb_generic_iterator_t
# proc xcb_setup_request_sizeof*(_buffer: pointer): cint
# proc xcb_setup_request_authorization_protocol_name*(R: ptr xcb_setup_request_t): cstring
# proc xcb_setup_request_authorization_protocol_name_length*(
# R: ptr xcb_setup_request_t): cint
# proc xcb_setup_request_authorization_protocol_name_end*(
# R: ptr xcb_setup_request_t): xcb_generic_iterator_t
# proc xcb_setup_request_authorization_protocol_data*(R: ptr xcb_setup_request_t): cstring
# proc xcb_setup_request_authorization_protocol_data_length*(
# R: ptr xcb_setup_request_t): cint
# proc xcb_setup_request_authorization_protocol_data_end*(
# R: ptr xcb_setup_request_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_setup_request_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_setup_request_t)
# ##
# proc xcb_setup_request_next*(i: ptr xcb_setup_request_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_setup_request_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_setup_request_end*(i: xcb_setup_request_iterator_t): xcb_generic_iterator_t
# proc xcb_setup_failed_sizeof*(_buffer: pointer): cint
# proc xcb_setup_failed_reason*(R: ptr xcb_setup_failed_t): cstring
# proc xcb_setup_failed_reason_length*(R: ptr xcb_setup_failed_t): cint
# proc xcb_setup_failed_reason_end*(R: ptr xcb_setup_failed_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_setup_failed_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_setup_failed_t)
# ##
# proc xcb_setup_failed_next*(i: ptr xcb_setup_failed_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_setup_failed_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_setup_failed_end*(i: xcb_setup_failed_iterator_t): xcb_generic_iterator_t
# proc xcb_setup_authenticate_sizeof*(_buffer: pointer): cint
# proc xcb_setup_authenticate_reason*(R: ptr xcb_setup_authenticate_t): cstring
# proc xcb_setup_authenticate_reason_length*(R: ptr xcb_setup_authenticate_t): cint
# proc xcb_setup_authenticate_reason_end*(R: ptr xcb_setup_authenticate_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_setup_authenticate_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_setup_authenticate_t)
# ##
# proc xcb_setup_authenticate_next*(i: ptr xcb_setup_authenticate_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_setup_authenticate_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_setup_authenticate_end*(i: xcb_setup_authenticate_iterator_t): xcb_generic_iterator_t
# proc xcb_setup_sizeof*(_buffer: pointer): cint
# proc xcb_setup_vendor*(R: ptr xcb_setup_t): cstring
# proc xcb_setup_vendor_length*(R: ptr xcb_setup_t): cint
# proc xcb_setup_vendor_end*(R: ptr xcb_setup_t): xcb_generic_iterator_t
# proc xcb_setup_pixmap_formats*(R: ptr xcb_setup_t): ptr xcb_format_t
# proc xcb_setup_pixmap_formats_length*(R: ptr xcb_setup_t): cint
# proc xcb_setup_pixmap_formats_iterator*(R: ptr xcb_setup_t): xcb_format_iterator_t
# proc xcb_setup_roots_length*(R: ptr xcb_setup_t): cint
# proc xcb_setup_roots_iterator*(R: ptr xcb_setup_t): xcb_screen_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_setup_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_setup_t)
# ##
# proc xcb_setup_next*(i: ptr xcb_setup_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_setup_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_setup_end*(i: xcb_setup_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_client_message_data_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_client_message_data_t)
# ##
# proc xcb_client_message_data_next*(i: ptr xcb_client_message_data_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_client_message_data_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_client_message_data_end*(i: xcb_client_message_data_iterator_t): xcb_generic_iterator_t
# proc xcb_create_window_value_list_serialize*(_buffer: ptr pointer;
# value_mask: uint32; _aux: ptr xcb_create_window_value_list_t): cint
# proc xcb_create_window_value_list_unpack*(_buffer: pointer; value_mask: uint32;
# _aux: ptr xcb_create_window_value_list_t): cint
# proc xcb_create_window_value_list_sizeof*(_buffer: pointer; value_mask: uint32): cint
# proc xcb_create_window_sizeof*(_buffer: pointer): cint
# ## *
# ## @brief Creates a window
# ##
# ## @param c The connection
# ## @param depth Specifies the new window's depth (TODO: what unit?).
# ## \n
# ## The special value `XCB_COPY_FROM_PARENT` means the depth is taken from the
# ## \a parent window.
# ## @param wid The ID with which you will refer to the new window, created by
# ## `xcb_generate_id`.
# ## @param parent The parent window of the new window.
# ## @param x The X coordinate of the new window.
# ## @param y The Y coordinate of the new window.
# ## @param width The width of the new window.
# ## @param height The height of the new window.
# ## @param border_width TODO:
# ## \n
# ## Must be zero if the `class` is `InputOnly` or a `xcb_match_error_t` occurs.
# ## @param _class A bitmask of #xcb_window_class_t values.
# ## @param _class \n
# ## @param visual Specifies the id for the new window's visual.
# ## \n
# ## The special value `XCB_COPY_FROM_PARENT` means the visual is taken from the
# ## \a parent window.
# ## @param value_mask A bitmask of #xcb_cw_t values.
# ## @return A cookie
# ##
# ## Creates an unmapped window as child of the specified \a parent window. A
# ## CreateNotify event will be generated. The new window is placed on top in the
# ## stacking order with respect to siblings.
# ##
# ## The coordinate system has the X axis horizontal and the Y axis vertical with
# ## the origin [0, 0] at the upper-left corner. Coordinates are integral, in terms
# ## of pixels, and coincide with pixel centers. Each window and pixmap has its own
# ## coordinate system. For a window, the origin is inside the border at the inside,
# ## upper-left corner.
# ##
# ## The created window is not yet displayed (mapped), call `xcb_map_window` to
# ## display it.
# ##
# ## The created window will initially use the same cursor as its parent.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_create_window_checked*(c: ptr xcb_connection_t; depth: uint8;
# wid: xcb_window_t; parent: xcb_window_t; x: int16;
# y: int16; width: uint16; height: uint16;
# border_width: uint16; _class: uint16;
# visual: xcb_visualid_t; value_mask: uint32;
# value_list: pointer): xcb_void_cookie_t
# ## *
# ## @brief Creates a window
# ##
# ## @param c The connection
# ## @param depth Specifies the new window's depth (TODO: what unit?).
# ## \n
# ## The special value `XCB_COPY_FROM_PARENT` means the depth is taken from the
# ## \a parent window.
# ## @param wid The ID with which you will refer to the new window, created by
# ## `xcb_generate_id`.
# ## @param parent The parent window of the new window.
# ## @param x The X coordinate of the new window.
# ## @param y The Y coordinate of the new window.
# ## @param width The width of the new window.
# ## @param height The height of the new window.
# ## @param border_width TODO:
# ## \n
# ## Must be zero if the `class` is `InputOnly` or a `xcb_match_error_t` occurs.
# ## @param _class A bitmask of #xcb_window_class_t values.
# ## @param _class \n
# ## @param visual Specifies the id for the new window's visual.
# ## \n
# ## The special value `XCB_COPY_FROM_PARENT` means the visual is taken from the
# ## \a parent window.
# ## @param value_mask A bitmask of #xcb_cw_t values.
# ## @return A cookie
# ##
# ## Creates an unmapped window as child of the specified \a parent window. A
# ## CreateNotify event will be generated. The new window is placed on top in the
# ## stacking order with respect to siblings.
# ##
# ## The coordinate system has the X axis horizontal and the Y axis vertical with
# ## the origin [0, 0] at the upper-left corner. Coordinates are integral, in terms
# ## of pixels, and coincide with pixel centers. Each window and pixmap has its own
# ## coordinate system. For a window, the origin is inside the border at the inside,
# ## upper-left corner.
# ##
# ## The created window is not yet displayed (mapped), call `xcb_map_window` to
# ## display it.
# ##
# ## The created window will initially use the same cursor as its parent.
# ##
# ##
# proc xcb_create_window*(c: ptr xcb_connection_t; depth: uint8; wid: xcb_window_t;
# parent: xcb_window_t; x: int16; y: int16; width: uint16;
# height: uint16; border_width: uint16; _class: uint16;
# visual: xcb_visualid_t; value_mask: uint32;
# value_list: pointer): xcb_void_cookie_t
# ## *
# ## @brief Creates a window
# ##
# ## @param c The connection
# ## @param depth Specifies the new window's depth (TODO: what unit?).
# ## \n
# ## The special value `XCB_COPY_FROM_PARENT` means the depth is taken from the
# ## \a parent window.
# ## @param wid The ID with which you will refer to the new window, created by
# ## `xcb_generate_id`.
# ## @param parent The parent window of the new window.
# ## @param x The X coordinate of the new window.
# ## @param y The Y coordinate of the new window.
# ## @param width The width of the new window.
# ## @param height The height of the new window.
# ## @param border_width TODO:
# ## \n
# ## Must be zero if the `class` is `InputOnly` or a `xcb_match_error_t` occurs.
# ## @param _class A bitmask of #xcb_window_class_t values.
# ## @param _class \n
# ## @param visual Specifies the id for the new window's visual.
# ## \n
# ## The special value `XCB_COPY_FROM_PARENT` means the visual is taken from the
# ## \a parent window.
# ## @param value_mask A bitmask of #xcb_cw_t values.
# ## @return A cookie
# ##
# ## Creates an unmapped window as child of the specified \a parent window. A
# ## CreateNotify event will be generated. The new window is placed on top in the
# ## stacking order with respect to siblings.
# ##
# ## The coordinate system has the X axis horizontal and the Y axis vertical with
# ## the origin [0, 0] at the upper-left corner. Coordinates are integral, in terms
# ## of pixels, and coincide with pixel centers. Each window and pixmap has its own
# ## coordinate system. For a window, the origin is inside the border at the inside,
# ## upper-left corner.
# ##
# ## The created window is not yet displayed (mapped), call `xcb_map_window` to
# ## display it.
# ##
# ## The created window will initially use the same cursor as its parent.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_create_window_aux_checked*(c: ptr xcb_connection_t; depth: uint8;
# wid: xcb_window_t; parent: xcb_window_t;
# x: int16; y: int16; width: uint16;
# height: uint16; border_width: uint16;
# _class: uint16; visual: xcb_visualid_t;
# value_mask: uint32; value_list: ptr xcb_create_window_value_list_t): xcb_void_cookie_t
# ## *
# ## @brief Creates a window
# ##
# ## @param c The connection
# ## @param depth Specifies the new window's depth (TODO: what unit?).
# ## \n
# ## The special value `XCB_COPY_FROM_PARENT` means the depth is taken from the
# ## \a parent window.
# ## @param wid The ID with which you will refer to the new window, created by
# ## `xcb_generate_id`.
# ## @param parent The parent window of the new window.
# ## @param x The X coordinate of the new window.
# ## @param y The Y coordinate of the new window.
# ## @param width The width of the new window.
# ## @param height The height of the new window.
# ## @param border_width TODO:
# ## \n
# ## Must be zero if the `class` is `InputOnly` or a `xcb_match_error_t` occurs.
# ## @param _class A bitmask of #xcb_window_class_t values.
# ## @param _class \n
# ## @param visual Specifies the id for the new window's visual.
# ## \n
# ## The special value `XCB_COPY_FROM_PARENT` means the visual is taken from the
# ## \a parent window.
# ## @param value_mask A bitmask of #xcb_cw_t values.
# ## @return A cookie
# ##
# ## Creates an unmapped window as child of the specified \a parent window. A
# ## CreateNotify event will be generated. The new window is placed on top in the
# ## stacking order with respect to siblings.
# ##
# ## The coordinate system has the X axis horizontal and the Y axis vertical with
# ## the origin [0, 0] at the upper-left corner. Coordinates are integral, in terms
# ## of pixels, and coincide with pixel centers. Each window and pixmap has its own
# ## coordinate system. For a window, the origin is inside the border at the inside,
# ## upper-left corner.
# ##
# ## The created window is not yet displayed (mapped), call `xcb_map_window` to
# ## display it.
# ##
# ## The created window will initially use the same cursor as its parent.
# ##
# ##
# proc xcb_create_window_aux*(c: ptr xcb_connection_t; depth: uint8;
# wid: xcb_window_t; parent: xcb_window_t; x: int16;
# y: int16; width: uint16; height: uint16;
# border_width: uint16; _class: uint16;
# visual: xcb_visualid_t; value_mask: uint32;
# value_list: ptr xcb_create_window_value_list_t): xcb_void_cookie_t
# proc xcb_create_window_value_list*(R: ptr xcb_create_window_request_t): pointer
# proc xcb_change_window_attributes_value_list_serialize*(_buffer: ptr pointer;
# value_mask: uint32; _aux: ptr xcb_change_window_attributes_value_list_t): cint
# proc xcb_change_window_attributes_value_list_unpack*(_buffer: pointer;
# value_mask: uint32; _aux: ptr xcb_change_window_attributes_value_list_t): cint
# proc xcb_change_window_attributes_value_list_sizeof*(_buffer: pointer;
# value_mask: uint32): cint
# proc xcb_change_window_attributes_sizeof*(_buffer: pointer): cint
# ## *
# ## @brief change window attributes
# ##
# ## @param c The connection
# ## @param window The window to change.
# ## @param value_mask A bitmask of #xcb_cw_t values.
# ## @param value_mask \n
# ## @param value_list Values for each of the attributes specified in the bitmask \a value_mask. The
# ## order has to correspond to the order of possible \a value_mask bits. See the
# ## example.
# ## @return A cookie
# ##
# ## Changes the attributes specified by \a value_mask for the specified \a window.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_change_window_attributes_aux_checked*(c: ptr xcb_connection_t;
# window: xcb_window_t; value_mask: uint32;
# value_list: ptr xcb_change_window_attributes_value_list_t): xcb_void_cookie_t
# ## *
# ## @brief change window attributes
# ##
# ## @param c The connection
# ## @param window The window to change.
# ## @param value_mask A bitmask of #xcb_cw_t values.
# ## @param value_mask \n
# ## @param value_list Values for each of the attributes specified in the bitmask \a value_mask. The
# ## order has to correspond to the order of possible \a value_mask bits. See the
# ## example.
# ## @return A cookie
# ##
# ## Changes the attributes specified by \a value_mask for the specified \a window.
# ##
# ##
# proc xcb_change_window_attributes_aux*(c: ptr xcb_connection_t;
# window: xcb_window_t; value_mask: uint32;
# value_list: ptr xcb_change_window_attributes_value_list_t): xcb_void_cookie_t
# proc xcb_change_window_attributes_value_list*(
# R: ptr xcb_change_window_attributes_request_t): pointer
# ## *
# ## @brief Gets window attributes
# ##
# ## @param c The connection
# ## @param window The window to get the attributes from.
# ## @return A cookie
# ##
# ## Gets the current attributes for the specified \a window.
# ##
# ##
# proc xcb_get_window_attributes*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_get_window_attributes_cookie_t
# ## *
# ## @brief Gets window attributes
# ##
# ## @param c The connection
# ## @param window The window to get the attributes from.
# ## @return A cookie
# ##
# ## Gets the current attributes for the specified \a window.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_get_window_attributes_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t): xcb_get_window_attributes_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_get_window_attributes_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_get_window_attributes_reply*(c: ptr xcb_connection_t; cookie: xcb_get_window_attributes_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_get_window_attributes_reply_t
# ## *
# ## @brief Destroys a window
# ##
# ## @param c The connection
# ## @param window The window to destroy.
# ## @return A cookie
# ##
# ## Destroys the specified window and all of its subwindows. A DestroyNotify event
# ## is generated for each destroyed window (a DestroyNotify event is first generated
# ## for any given window's inferiors). If the window was mapped, it will be
# ## automatically unmapped before destroying.
# ##
# ## Calling DestroyWindow on the root window will do nothing.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_destroy_window_checked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t
# ## *
# ## @brief Destroys a window
# ##
# ## @param c The connection
# ## @param window The window to destroy.
# ## @return A cookie
# ##
# ## Destroys the specified window and all of its subwindows. A DestroyNotify event
# ## is generated for each destroyed window (a DestroyNotify event is first generated
# ## for any given window's inferiors). If the window was mapped, it will be
# ## automatically unmapped before destroying.
# ##
# ## Calling DestroyWindow on the root window will do nothing.
# ##
# ##
# proc xcb_destroy_window*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_destroy_subwindows_checked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_destroy_subwindows*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t
# ## *
# ## @brief Changes a client's save set
# ##
# ## @param c The connection
# ## @param mode A bitmask of #xcb_set_mode_t values.
# ## @param mode Insert to add the specified window to the save set or Delete to delete it from the save set.
# ## @param window The window to add or delete to/from your save set.
# ## @return A cookie
# ##
# ## TODO: explain what the save set is for.
# ##
# ## This function either adds or removes the specified window to the client's (your
# ## application's) save set.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_change_save_set_checked*(c: ptr xcb_connection_t; mode: uint8;
# window: xcb_window_t): xcb_void_cookie_t
# ## *
# ## @brief Changes a client's save set
# ##
# ## @param c The connection
# ## @param mode A bitmask of #xcb_set_mode_t values.
# ## @param mode Insert to add the specified window to the save set or Delete to delete it from the save set.
# ## @param window The window to add or delete to/from your save set.
# ## @return A cookie
# ##
# ## TODO: explain what the save set is for.
# ##
# ## This function either adds or removes the specified window to the client's (your
# ## application's) save set.
# ##
# ##
# proc xcb_change_save_set*(c: ptr xcb_connection_t; mode: uint8; window: xcb_window_t): xcb_void_cookie_t
# ## *
# ## @brief Reparents a window
# ##
# ## @param c The connection
# ## @param window The window to reparent.
# ## @param parent The new parent of the window.
# ## @param x The X position of the window within its new parent.
# ## @param y The Y position of the window within its new parent.
# ## @return A cookie
# ##
# ## Makes the specified window a child of the specified parent window. If the
# ## window is mapped, it will automatically be unmapped before reparenting and
# ## re-mapped after reparenting. The window is placed in the stacking order on top
# ## with respect to sibling windows.
# ##
# ## After reparenting, a ReparentNotify event is generated.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_reparent_window_checked*(c: ptr xcb_connection_t; window: xcb_window_t;
# parent: xcb_window_t; x: int16; y: int16): xcb_void_cookie_t
# ## *
# ## @brief Reparents a window
# ##
# ## @param c The connection
# ## @param window The window to reparent.
# ## @param parent The new parent of the window.
# ## @param x The X position of the window within its new parent.
# ## @param y The Y position of the window within its new parent.
# ## @return A cookie
# ##
# ## Makes the specified window a child of the specified parent window. If the
# ## window is mapped, it will automatically be unmapped before reparenting and
# ## re-mapped after reparenting. The window is placed in the stacking order on top
# ## with respect to sibling windows.
# ##
# ## After reparenting, a ReparentNotify event is generated.
# ##
# ##
# proc xcb_reparent_window*(c: ptr xcb_connection_t; window: xcb_window_t;
# parent: xcb_window_t; x: int16; y: int16): xcb_void_cookie_t
# ## *
# ## @brief Makes a window visible
# ##
# ## @param c The connection
# ## @param window The window to make visible.
# ## @return A cookie
# ##
# ## Maps the specified window. This means making the window visible (as long as its
# ## parent is visible).
# ##
# ## This MapWindow request will be translated to a MapRequest request if a window
# ## manager is running. The window manager then decides to either map the window or
# ## not. Set the override-redirect window attribute to true if you want to bypass
# ## this mechanism.
# ##
# ## If the window manager decides to map the window (or if no window manager is
# ## running), a MapNotify event is generated.
# ##
# ## If the window becomes viewable and no earlier contents for it are remembered,
# ## the X server tiles the window with its background. If the window's background
# ## is undefined, the existing screen contents are not altered, and the X server
# ## generates zero or more Expose events.
# ##
# ## If the window type is InputOutput, an Expose event will be generated when the
# ## window becomes visible. The normal response to an Expose event should be to
# ## repaint the window.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_map_window_checked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t
# ## *
# ## @brief Makes a window visible
# ##
# ## @param c The connection
# ## @param window The window to make visible.
# ## @return A cookie
# ##
# ## Maps the specified window. This means making the window visible (as long as its
# ## parent is visible).
# ##
# ## This MapWindow request will be translated to a MapRequest request if a window
# ## manager is running. The window manager then decides to either map the window or
# ## not. Set the override-redirect window attribute to true if you want to bypass
# ## this mechanism.
# ##
# ## If the window manager decides to map the window (or if no window manager is
# ## running), a MapNotify event is generated.
# ##
# ## If the window becomes viewable and no earlier contents for it are remembered,
# ## the X server tiles the window with its background. If the window's background
# ## is undefined, the existing screen contents are not altered, and the X server
# ## generates zero or more Expose events.
# ##
# ## If the window type is InputOutput, an Expose event will be generated when the
# ## window becomes visible. The normal response to an Expose event should be to
# ## repaint the window.
# ##
# ##
# proc xcb_map_window*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_map_subwindows_checked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_map_subwindows*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t
# ## *
# ## @brief Makes a window invisible
# ##
# ## @param c The connection
# ## @param window The window to make invisible.
# ## @return A cookie
# ##
# ## Unmaps the specified window. This means making the window invisible (and all
# ## its child windows).
# ##
# ## Unmapping a window leads to the `UnmapNotify` event being generated. Also,
# ## `Expose` events are generated for formerly obscured windows.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_unmap_window_checked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t
# ## *
# ## @brief Makes a window invisible
# ##
# ## @param c The connection
# ## @param window The window to make invisible.
# ## @return A cookie
# ##
# ## Unmaps the specified window. This means making the window invisible (and all
# ## its child windows).
# ##
# ## Unmapping a window leads to the `UnmapNotify` event being generated. Also,
# ## `Expose` events are generated for formerly obscured windows.
# ##
# ##
# proc xcb_unmap_window*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_unmap_subwindows_checked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_unmap_subwindows*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t
# proc xcb_configure_window_value_list_serialize*(_buffer: ptr pointer;
# value_mask: uint16; _aux: ptr xcb_configure_window_value_list_t): cint
# proc xcb_configure_window_value_list_unpack*(_buffer: pointer;
# value_mask: uint16; _aux: ptr xcb_configure_window_value_list_t): cint
# proc xcb_configure_window_value_list_sizeof*(_buffer: pointer; value_mask: uint16): cint
# proc xcb_configure_window_sizeof*(_buffer: pointer): cint
# ## *
# ## @brief Configures window attributes
# ##
# ## @param c The connection
# ## @param window The window to configure.
# ## @param value_mask Bitmask of attributes to change.
# ## @param value_list New values, corresponding to the attributes in value_mask. The order has to
# ## correspond to the order of possible \a value_mask bits. See the example.
# ## @return A cookie
# ##
# ## Configures a window's size, position, border width and stacking order.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_configure_window_checked*(c: ptr xcb_connection_t; window: xcb_window_t;
# value_mask: uint16; value_list: pointer): xcb_void_cookie_t
# ## *
# ## @brief Configures window attributes
# ##
# ## @param c The connection
# ## @param window The window to configure.
# ## @param value_mask Bitmask of attributes to change.
# ## @param value_list New values, corresponding to the attributes in value_mask. The order has to
# ## correspond to the order of possible \a value_mask bits. See the example.
# ## @return A cookie
# ##
# ## Configures a window's size, position, border width and stacking order.
# ##
# ##
# proc xcb_configure_window_aux_checked*(c: ptr xcb_connection_t;
# window: xcb_window_t; value_mask: uint16;
# value_list: ptr xcb_configure_window_value_list_t): xcb_void_cookie_t
# ## *
# ## @brief Configures window attributes
# ##
# ## @param c The connection
# ## @param window The window to configure.
# ## @param value_mask Bitmask of attributes to change.
# ## @param value_list New values, corresponding to the attributes in value_mask. The order has to
# ## correspond to the order of possible \a value_mask bits. See the example.
# ## @return A cookie
# ##
# ## Configures a window's size, position, border width and stacking order.
# ##
# ##
# proc xcb_configure_window_aux*(c: ptr xcb_connection_t; window: xcb_window_t;
# value_mask: uint16;
# value_list: ptr xcb_configure_window_value_list_t): xcb_void_cookie_t
# proc xcb_configure_window_value_list*(R: ptr xcb_configure_window_request_t): pointer
# ## *
# ## @brief Change window stacking order
# ##
# ## @param c The connection
# ## @param direction A bitmask of #xcb_circulate_t values.
# ## @param direction \n
# ## @param window The window to raise/lower (depending on \a direction).
# ## @return A cookie
# ##
# ## If \a direction is `XCB_CIRCULATE_RAISE_LOWEST`, the lowest mapped child (if
# ## any) will be raised to the top of the stack.
# ##
# ## If \a direction is `XCB_CIRCULATE_LOWER_HIGHEST`, the highest mapped child will
# ## be lowered to the bottom of the stack.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_circulate_window_checked*(c: ptr xcb_connection_t; direction: uint8;
# window: xcb_window_t): xcb_void_cookie_t
# ## *
# ## @brief Change window stacking order
# ##
# ## @param c The connection
# ## @param direction A bitmask of #xcb_circulate_t values.
# ## @param direction \n
# ## @param window The window to raise/lower (depending on \a direction).
# ## @return A cookie
# ##
# ## If \a direction is `XCB_CIRCULATE_RAISE_LOWEST`, the lowest mapped child (if
# ## any) will be raised to the top of the stack.
# ##
# ## If \a direction is `XCB_CIRCULATE_LOWER_HIGHEST`, the highest mapped child will
# ## be lowered to the bottom of the stack.
# ##
# ##
# proc xcb_circulate_window*(c: ptr xcb_connection_t; direction: uint8;
# window: xcb_window_t): xcb_void_cookie_t
# ## *
# ## @brief Get current window geometry
# ##
# ## @param c The connection
# ## @param drawable The drawable (`Window` or `Pixmap`) of which the geometry will be received.
# ## @return A cookie
# ##
# ## Gets the current geometry of the specified drawable (either `Window` or `Pixmap`).
# ##
# ##
# proc xcb_query_tree_sizeof*(_buffer: pointer): cint
# ## *
# ## @brief query the window tree
# ##
# ## @param c The connection
# ## @param window The \a window to query.
# ## @return A cookie
# ##
# ## Gets the root window ID, parent window ID and list of children windows for the
# ## specified \a window. The children are listed in bottom-to-top stacking order.
# ##
# ##
# proc xcb_query_tree*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_query_tree_cookie_t
# ## *
# ## @brief query the window tree
# ##
# ## @param c The connection
# ## @param window The \a window to query.
# ## @return A cookie
# ##
# ## Gets the root window ID, parent window ID and list of children windows for the
# ## specified \a window. The children are listed in bottom-to-top stacking order.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_query_tree_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_query_tree_cookie_t
# proc xcb_query_tree_children*(R: ptr xcb_query_tree_reply_t): ptr xcb_window_t
# proc xcb_query_tree_children_length*(R: ptr xcb_query_tree_reply_t): cint
# proc xcb_query_tree_children_end*(R: ptr xcb_query_tree_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_query_tree_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_query_tree_reply*(c: ptr xcb_connection_t; cookie: xcb_query_tree_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_query_tree_reply_t
# proc xcb_intern_atom_sizeof*(_buffer: pointer): cint
# ## *
# ## @brief Get atom identifier by name
# ##
# ## @param c The connection
# ## @param only_if_exists Return a valid atom id only if the atom already exists.
# ## @param name_len The length of the following \a name.
# ## @param name The name of the atom.
# ## @return A cookie
# ##
# ## Retrieves the identifier (xcb_atom_t TODO) for the atom with the specified
# ## name. Atoms are used in protocols like EWMH, for example to store window titles
# ## (`_NET_WM_NAME` atom) as property of a window.
# ##
# ## If \a only_if_exists is 0, the atom will be created if it does not already exist.
# ## If \a only_if_exists is 1, `XCB_ATOM_NONE` will be returned if the atom does
# ## not yet exist.
# ##
# ##
# proc xcb_intern_atom*(c: ptr xcb_connection_t; only_if_exists: uint8;
# name_len: uint16; name: cstring): xcb_intern_atom_cookie_t
# ## *
# ## @brief Get atom identifier by name
# ##
# ## @param c The connection
# ## @param only_if_exists Return a valid atom id only if the atom already exists.
# ## @param name_len The length of the following \a name.
# ## @param name The name of the atom.
# ## @return A cookie
# ##
# ## Retrieves the identifier (xcb_atom_t TODO) for the atom with the specified
# ## name. Atoms are used in protocols like EWMH, for example to store window titles
# ## (`_NET_WM_NAME` atom) as property of a window.
# ##
# ## If \a only_if_exists is 0, the atom will be created if it does not already exist.
# ## If \a only_if_exists is 1, `XCB_ATOM_NONE` will be returned if the atom does
# ## not yet exist.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_intern_atom_unchecked*(c: ptr xcb_connection_t; only_if_exists: uint8;
# name_len: uint16; name: cstring): xcb_intern_atom_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_intern_atom_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_intern_atom_reply*(c: ptr xcb_connection_t; cookie: xcb_intern_atom_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_intern_atom_reply_t
# proc xcb_get_atom_name_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_get_atom_name_unchecked*(c: ptr xcb_connection_t; atom: xcb_atom_t): xcb_get_atom_name_cookie_t
# proc xcb_get_atom_name_name_length*(R: ptr xcb_get_atom_name_reply_t): cint
# proc xcb_get_atom_name_name_end*(R: ptr xcb_get_atom_name_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_get_atom_name_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_change_property_sizeof*(_buffer: pointer): cint
# ## *
# ## @brief Changes a window property
# ##
# ## @param c The connection
# ## @param mode A bitmask of #xcb_prop_mode_t values.
# ## @param mode \n
# ## @param window The window whose property you want to change.
# ## @param property The property you want to change (an atom).
# ## @param type The type of the property you want to change (an atom).
# ## @param format Specifies whether the data should be viewed as a list of 8-bit, 16-bit or
# ## 32-bit quantities. Possible values are 8, 16 and 32. This information allows
# ## the X server to correctly perform byte-swap operations as necessary.
# ## @param data_len Specifies the number of elements (see \a format).
# ## @param data The property data.
# ## @return A cookie
# ##
# ## Sets or updates a property on the specified \a window. Properties are for
# ## example the window title (`WM_NAME`) or its minimum size (`WM_NORMAL_HINTS`).
# ## Protocols such as EWMH also use properties - for example EWMH defines the
# ## window title, encoded as UTF-8 string, in the `_NET_WM_NAME` property.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_change_property_checked*(c: ptr xcb_connection_t; mode: uint8;
# window: xcb_window_t; property: xcb_atom_t;
# `type`: xcb_atom_t; format: uint8;
# data_len: uint32; data: pointer): xcb_void_cookie_t
# ## *
# ## @brief Changes a window property
# ##
# ## @param c The connection
# ## @param mode A bitmask of #xcb_prop_mode_t values.
# ## @param mode \n
# ## @param window The window whose property you want to change.
# ## @param property The property you want to change (an atom).
# ## @param type The type of the property you want to change (an atom).
# ## @param format Specifies whether the data should be viewed as a list of 8-bit, 16-bit or
# ## 32-bit quantities. Possible values are 8, 16 and 32. This information allows
# ## the X server to correctly perform byte-swap operations as necessary.
# ## @param data_len Specifies the number of elements (see \a format).
# ## @param data The property data.
# ## @return A cookie
# ##
# ## Sets or updates a property on the specified \a window. Properties are for
# ## example the window title (`WM_NAME`) or its minimum size (`WM_NORMAL_HINTS`).
# ## Protocols such as EWMH also use properties - for example EWMH defines the
# ## window title, encoded as UTF-8 string, in the `_NET_WM_NAME` property.
# ##
# ##
# proc xcb_change_property*(c: ptr xcb_connection_t; mode: uint8;
# window: xcb_window_t; property: xcb_atom_t;
# `type`: xcb_atom_t; format: uint8; data_len: uint32;
# data: pointer): xcb_void_cookie_t
# proc xcb_change_property_data*(R: ptr xcb_change_property_request_t): pointer
# proc xcb_change_property_data_length*(R: ptr xcb_change_property_request_t): cint
# proc xcb_change_property_data_end*(R: ptr xcb_change_property_request_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_delete_property_checked*(c: ptr xcb_connection_t; window: xcb_window_t;
# property: xcb_atom_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_delete_property*(c: ptr xcb_connection_t; window: xcb_window_t;
# property: xcb_atom_t): xcb_void_cookie_t
# proc xcb_get_property_sizeof*(_buffer: pointer): cint
# ## *
# ## @brief Gets a window property
# ##
# ## @param c The connection
# ## @param _delete Whether the property should actually be deleted. For deleting a property, the
# ## specified \a type has to match the actual property type.
# ## @param window The window whose property you want to get.
# ## @param property The property you want to get (an atom).
# ## @param type The type of the property you want to get (an atom).
# ## @param long_offset Specifies the offset (in 32-bit multiples) in the specified property where the
# ## data is to be retrieved.
# ## @param long_length Specifies how many 32-bit multiples of data should be retrieved (e.g. if you
# ## set \a long_length to 4, you will receive 16 bytes of data).
# ## @return A cookie
# ##
# ## Gets the specified \a property from the specified \a window. Properties are for
# ## example the window title (`WM_NAME`) or its minimum size (`WM_NORMAL_HINTS`).
# ## Protocols such as EWMH also use properties - for example EWMH defines the
# ## window title, encoded as UTF-8 string, in the `_NET_WM_NAME` property.
# ##
# ## TODO: talk about \a type
# ##
# ## TODO: talk about `delete`
# ##
# ## TODO: talk about the offset/length thing. what's a valid use case?
# ##
# ##
# proc xcb_get_property_value_end*(R: ptr xcb_get_property_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_get_property_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_list_properties_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_list_properties_cookie_t
# proc xcb_list_properties_atoms_end*(R: ptr xcb_list_properties_reply_t): xcb_generic_iterator_t
# proc xcb_set_selection_owner_checked*(c: ptr xcb_connection_t; owner: xcb_window_t;
# selection: xcb_atom_t; time: xcb_timestamp_t): xcb_void_cookie_t
# ## *
# ## @brief Sets the owner of a selection
# ##
# ## @param c The connection
# ## @param owner The new owner of the selection.
# ## \n
# ## The special value `XCB_NONE` means that the selection will have no owner.
# ## @param selection The selection.
# ## @param time Timestamp to avoid race conditions when running X over the network.
# ## \n
# ## The selection will not be changed if \a time is earlier than the current
# ## last-change time of the \a selection or is later than the current X server time.
# ## Otherwise, the last-change time is set to the specified time.
# ## \n
# ## The special value `XCB_CURRENT_TIME` will be replaced with the current server
# ## time.
# ## @return A cookie
# ##
# ## Makes `window` the owner of the selection \a selection and updates the
# ## last-change time of the specified selection.
# ##
# ## TODO: briefly explain what a selection is.
# ##
# ##
# proc xcb_set_selection_owner*(c: ptr xcb_connection_t; owner: xcb_window_t;
# selection: xcb_atom_t; time: xcb_timestamp_t): xcb_void_cookie_t
# ## *
# ## @brief Gets the owner of a selection
# ##
# ## @param c The connection
# ## @param selection The selection.
# ## @return A cookie
# ##
# ## Gets the owner of the specified selection.
# ##
# ## TODO: briefly explain what a selection is.
# ##
# ##
# proc xcb_get_selection_owner*(c: ptr xcb_connection_t; selection: xcb_atom_t): xcb_get_selection_owner_cookie_t
# ## *
# ## @brief Gets the owner of a selection
# ##
# ## @param c The connection
# ## @param selection The selection.
# ## @return A cookie
# ##
# ## Gets the owner of the specified selection.
# ##
# ## TODO: briefly explain what a selection is.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_get_selection_owner_unchecked*(c: ptr xcb_connection_t;
# selection: xcb_atom_t): xcb_get_selection_owner_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_get_selection_owner_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_get_selection_owner_reply*(c: ptr xcb_connection_t; cookie: xcb_get_selection_owner_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_get_selection_owner_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_convert_selection_checked*(c: ptr xcb_connection_t;
# requestor: xcb_window_t; selection: xcb_atom_t;
# target: xcb_atom_t; property: xcb_atom_t;
# time: xcb_timestamp_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_convert_selection*(c: ptr xcb_connection_t; requestor: xcb_window_t;
# selection: xcb_atom_t; target: xcb_atom_t;
# property: xcb_atom_t; time: xcb_timestamp_t): xcb_void_cookie_t
# ## *
# ## @brief send an event
# ##
# ## @param c The connection
# ## @param propagate If \a propagate is true and no clients have selected any event on \a destination,
# ## the destination is replaced with the closest ancestor of \a destination for
# ## which some client has selected a type in \a event_mask and for which no
# ## intervening window has that type in its do-not-propagate-mask. If no such
# ## window exists or if the window is an ancestor of the focus window and
# ## `InputFocus` was originally specified as the destination, the event is not sent
# ## to any clients. Otherwise, the event is reported to every client selecting on
# ## the final destination any of the types specified in \a event_mask.
# ## @param destination The window to send this event to. Every client which selects any event within
# ## \a event_mask on \a destination will get the event.
# ## \n
# ## The special value `XCB_SEND_EVENT_DEST_POINTER_WINDOW` refers to the window
# ## that contains the mouse pointer.
# ## \n
# ## The special value `XCB_SEND_EVENT_DEST_ITEM_FOCUS` refers to the window which
# ## has the keyboard focus.
# ## @param event_mask Event_mask for determining which clients should receive the specified event.
# ## See \a destination and \a propagate.
# ## @param event The event to send to the specified \a destination.
# ## @return A cookie
# ##
# ## Identifies the \a destination window, determines which clients should receive
# ## the specified event and ignores any active grabs.
# ##
# ## The \a event must be one of the core events or an event defined by an extension,
# ## so that the X server can correctly byte-swap the contents as necessary. The
# ## contents of \a event are otherwise unaltered and unchecked except for the
# ## `send_event` field which is forced to 'true'.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_send_event_checked*(c: ptr xcb_connection_t; propagate: uint8;
# destination: xcb_window_t; event_mask: uint32;
# event: cstring): xcb_void_cookie_t
# ## *
# ## @brief send an event
# ##
# ## @param c The connection
# ## @param propagate If \a propagate is true and no clients have selected any event on \a destination,
# ## the destination is replaced with the closest ancestor of \a destination for
# ## which some client has selected a type in \a event_mask and for which no
# ## intervening window has that type in its do-not-propagate-mask. If no such
# ## window exists or if the window is an ancestor of the focus window and
# ## `InputFocus` was originally specified as the destination, the event is not sent
# ## to any clients. Otherwise, the event is reported to every client selecting on
# ## the final destination any of the types specified in \a event_mask.
# ## @param destination The window to send this event to. Every client which selects any event within
# ## \a event_mask on \a destination will get the event.
# ## \n
# ## The special value `XCB_SEND_EVENT_DEST_POINTER_WINDOW` refers to the window
# ## that contains the mouse pointer.
# ## \n
# ## The special value `XCB_SEND_EVENT_DEST_ITEM_FOCUS` refers to the window which
# ## has the keyboard focus.
# ## @param event_mask Event_mask for determining which clients should receive the specified event.
# ## See \a destination and \a propagate.
# ## @param event The event to send to the specified \a destination.
# ## @return A cookie
# ##
# ## Identifies the \a destination window, determines which clients should receive
# ## the specified event and ignores any active grabs.
# ##
# ## The \a event must be one of the core events or an event defined by an extension,
# ## so that the X server can correctly byte-swap the contents as necessary. The
# ## contents of \a event are otherwise unaltered and unchecked except for the
# ## `send_event` field which is forced to 'true'.
# ##
# ##
# proc xcb_send_event*(c: ptr xcb_connection_t; propagate: uint8;
# destination: xcb_window_t; event_mask: uint32; event: cstring): xcb_void_cookie_t
# ## *
# ## @brief Grab the pointer
# ##
# ## @param c The connection
# ## @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not
# ## reported to the \a grab_window.
# ## @param grab_window Specifies the window on which the pointer should be grabbed.
# ## @param event_mask Specifies which pointer events are reported to the client.
# ## \n
# ## TODO: which values?
# ## @param pointer_mode A bitmask of #xcb_grab_mode_t values.
# ## @param pointer_mode \n
# ## @param keyboard_mode A bitmask of #xcb_grab_mode_t values.
# ## @param keyboard_mode \n
# ## @param confine_to Specifies the window to confine the pointer in (the user will not be able to
# ## move the pointer out of that window).
# ## \n
# ## The special value `XCB_NONE` means don't confine the pointer.
# ## @param cursor Specifies the cursor that should be displayed or `XCB_NONE` to not change the
# ## cursor.
# ## @param time The time argument allows you to avoid certain circumstances that come up if
# ## applications take a long time to respond or if there are long network delays.
# ## Consider a situation where you have two applications, both of which normally
# ## grab the pointer when clicked on. If both applications specify the timestamp
# ## from the event, the second application may wake up faster and successfully grab
# ## the pointer before the first application. The first application then will get
# ## an indication that the other application grabbed the pointer before its request
# ## was processed.
# ## \n
# ## The special value `XCB_CURRENT_TIME` will be replaced with the current server
# ## time.
# ## @return A cookie
# ##
# ## Actively grabs control of the pointer. Further pointer events are reported only to the grabbing client. Overrides any active pointer grab by this client.
# ##
# ##
# ## *
# ## @brief Grab the pointer
# ##
# ## @param c The connection
# ## @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not
# ## reported to the \a grab_window.
# ## @param grab_window Specifies the window on which the pointer should be grabbed.
# ## @param event_mask Specifies which pointer events are reported to the client.
# ## \n
# ## TODO: which values?
# ## @param pointer_mode A bitmask of #xcb_grab_mode_t values.
# ## @param pointer_mode \n
# ## @param keyboard_mode A bitmask of #xcb_grab_mode_t values.
# ## @param keyboard_mode \n
# ## @param confine_to Specifies the window to confine the pointer in (the user will not be able to
# ## move the pointer out of that window).
# ## \n
# ## The special value `XCB_NONE` means don't confine the pointer.
# ## @param cursor Specifies the cursor that should be displayed or `XCB_NONE` to not change the
# ## cursor.
# ## @param time The time argument allows you to avoid certain circumstances that come up if
# ## applications take a long time to respond or if there are long network delays.
# ## Consider a situation where you have two applications, both of which normally
# ## grab the pointer when clicked on. If both applications specify the timestamp
# ## from the event, the second application may wake up faster and successfully grab
# ## the pointer before the first application. The first application then will get
# ## an indication that the other application grabbed the pointer before its request
# ## was processed.
# ## \n
# ## The special value `XCB_CURRENT_TIME` will be replaced with the current server
# ## time.
# ## @return A cookie
# ##
# ## Actively grabs control of the pointer. Further pointer events are reported only to the grabbing client. Overrides any active pointer grab by this client.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_grab_pointer_unchecked*(c: ptr xcb_connection_t; owner_events: uint8;
# grab_window: xcb_window_t; event_mask: uint16;
# pointer_mode: uint8; keyboard_mode: uint8;
# confine_to: xcb_window_t; cursor: xcb_cursor_t;
# time: xcb_timestamp_t): xcb_grab_pointer_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_grab_pointer_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_grab_pointer_reply*(c: ptr xcb_connection_t; cookie: xcb_grab_pointer_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_grab_pointer_reply_t
# ## *
# ## @brief release the pointer
# ##
# ## @param c The connection
# ## @param time Timestamp to avoid race conditions when running X over the network.
# ## \n
# ## The pointer will not be released if \a time is earlier than the
# ## last-pointer-grab time or later than the current X server time.
# ## @return A cookie
# ##
# ## Releases the pointer and any queued events if you actively grabbed the pointer
# ## before using `xcb_grab_pointer`, `xcb_grab_button` or within a normal button
# ## press.
# ##
# ## EnterNotify and LeaveNotify events are generated.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_ungrab_pointer_checked*(c: ptr xcb_connection_t; time: xcb_timestamp_t): xcb_void_cookie_t
# ## *
# ## @brief release the pointer
# ##
# ## @param c The connection
# ## @param time Timestamp to avoid race conditions when running X over the network.
# ## \n
# ## The pointer will not be released if \a time is earlier than the
# ## last-pointer-grab time or later than the current X server time.
# ## @return A cookie
# ##
# ## Releases the pointer and any queued events if you actively grabbed the pointer
# ## before using `xcb_grab_pointer`, `xcb_grab_button` or within a normal button
# ## press.
# ##
# ## EnterNotify and LeaveNotify events are generated.
# ##
# ##
# proc xcb_ungrab_pointer*(c: ptr xcb_connection_t; time: xcb_timestamp_t): xcb_void_cookie_t
# ## *
# ## @brief Grab pointer button(s)
# ##
# ## @param c The connection
# ## @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not
# ## reported to the \a grab_window.
# ## @param grab_window Specifies the window on which the pointer should be grabbed.
# ## @param event_mask Specifies which pointer events are reported to the client.
# ## \n
# ## TODO: which values?
# ## @param pointer_mode A bitmask of #xcb_grab_mode_t values.
# ## @param pointer_mode \n
# ## @param keyboard_mode A bitmask of #xcb_grab_mode_t values.
# ## @param keyboard_mode \n
# ## @param confine_to Specifies the window to confine the pointer in (the user will not be able to
# ## move the pointer out of that window).
# ## \n
# ## The special value `XCB_NONE` means don't confine the pointer.
# ## @param cursor Specifies the cursor that should be displayed or `XCB_NONE` to not change the
# ## cursor.
# ## @param button A bitmask of #xcb_button_index_t values.
# ## @param button \n
# ## @param modifiers The modifiers to grab.
# ## \n
# ## Using the special value `XCB_MOD_MASK_ANY` means grab the pointer with all
# ## possible modifier combinations.
# ## @return A cookie
# ##
# ## This request establishes a passive grab. The pointer is actively grabbed as
# ## described in GrabPointer, the last-pointer-grab time is set to the time at
# ## which the button was pressed (as transmitted in the ButtonPress event), and the
# ## ButtonPress event is reported if all of the following conditions are true:
# ##
# ## The pointer is not grabbed and the specified button is logically pressed when
# ## the specified modifier keys are logically down, and no other buttons or
# ## modifier keys are logically down.
# ##
# ## The grab-window contains the pointer.
# ##
# ## The confine-to window (if any) is viewable.
# ##
# ## A passive grab on the same button/key combination does not exist on any
# ## ancestor of grab-window.
# ##
# ## The interpretation of the remaining arguments is the same as for GrabPointer.
# ## The active grab is terminated automatically when the logical state of the
# ## pointer has all buttons released, independent of the logical state of modifier
# ## keys. Note that the logical state of a device (as seen by means of the
# ## protocol) may lag the physical state if device event processing is frozen. This
# ## request overrides all previous passive grabs by the same client on the same
# ## button/key combinations on the same window. A modifier of AnyModifier is
# ## equivalent to issuing the request for all possible modifier combinations
# ## (including the combination of no modifiers). It is not required that all
# ## specified modifiers have currently assigned keycodes. A button of AnyButton is
# ## equivalent to issuing the request for all possible buttons. Otherwise, it is
# ## not required that the button specified currently be assigned to a physical
# ## button.
# ##
# ## An Access error is generated if some other client has already issued a
# ## GrabButton request with the same button/key combination on the same window.
# ## When using AnyModifier or AnyButton, the request fails completely (no grabs are
# ## established), and an Access error is generated if there is a conflicting grab
# ## for any combination. The request has no effect on an active grab.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_grab_button_checked*(c: ptr xcb_connection_t; owner_events: uint8;
# grab_window: xcb_window_t; event_mask: uint16;
# pointer_mode: uint8; keyboard_mode: uint8;
# confine_to: xcb_window_t; cursor: xcb_cursor_t;
# button: uint8; modifiers: uint16): xcb_void_cookie_t
# ## *
# ## @brief Grab pointer button(s)
# ##
# ## @param c The connection
# ## @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not
# ## reported to the \a grab_window.
# ## @param grab_window Specifies the window on which the pointer should be grabbed.
# ## @param event_mask Specifies which pointer events are reported to the client.
# ## \n
# ## TODO: which values?
# ## @param pointer_mode A bitmask of #xcb_grab_mode_t values.
# ## @param pointer_mode \n
# ## @param keyboard_mode A bitmask of #xcb_grab_mode_t values.
# ## @param keyboard_mode \n
# ## @param confine_to Specifies the window to confine the pointer in (the user will not be able to
# ## move the pointer out of that window).
# ## \n
# ## The special value `XCB_NONE` means don't confine the pointer.
# ## @param cursor Specifies the cursor that should be displayed or `XCB_NONE` to not change the
# ## cursor.
# ## @param button A bitmask of #xcb_button_index_t values.
# ## @param button \n
# ## @param modifiers The modifiers to grab.
# ## \n
# ## Using the special value `XCB_MOD_MASK_ANY` means grab the pointer with all
# ## possible modifier combinations.
# ## @return A cookie
# ##
# ## This request establishes a passive grab. The pointer is actively grabbed as
# ## described in GrabPointer, the last-pointer-grab time is set to the time at
# ## which the button was pressed (as transmitted in the ButtonPress event), and the
# ## ButtonPress event is reported if all of the following conditions are true:
# ##
# ## The pointer is not grabbed and the specified button is logically pressed when
# ## the specified modifier keys are logically down, and no other buttons or
# ## modifier keys are logically down.
# ##
# ## The grab-window contains the pointer.
# ##
# ## The confine-to window (if any) is viewable.
# ##
# ## A passive grab on the same button/key combination does not exist on any
# ## ancestor of grab-window.
# ##
# ## The interpretation of the remaining arguments is the same as for GrabPointer.
# ## The active grab is terminated automatically when the logical state of the
# ## pointer has all buttons released, independent of the logical state of modifier
# ## keys. Note that the logical state of a device (as seen by means of the
# ## protocol) may lag the physical state if device event processing is frozen. This
# ## request overrides all previous passive grabs by the same client on the same
# ## button/key combinations on the same window. A modifier of AnyModifier is
# ## equivalent to issuing the request for all possible modifier combinations
# ## (including the combination of no modifiers). It is not required that all
# ## specified modifiers have currently assigned keycodes. A button of AnyButton is
# ## equivalent to issuing the request for all possible buttons. Otherwise, it is
# ## not required that the button specified currently be assigned to a physical
# ## button.
# ##
# ## An Access error is generated if some other client has already issued a
# ## GrabButton request with the same button/key combination on the same window.
# ## When using AnyModifier or AnyButton, the request fails completely (no grabs are
# ## established), and an Access error is generated if there is a conflicting grab
# ## for any combination. The request has no effect on an active grab.
# ##
# ##
# proc xcb_grab_button*(c: ptr xcb_connection_t; owner_events: uint8;
# grab_window: xcb_window_t; event_mask: uint16;
# pointer_mode: uint8; keyboard_mode: uint8;
# confine_to: xcb_window_t; cursor: xcb_cursor_t;
# button: uint8; modifiers: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_ungrab_button_checked*(c: ptr xcb_connection_t; button: uint8;
# grab_window: xcb_window_t; modifiers: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_ungrab_button*(c: ptr xcb_connection_t; button: uint8;
# grab_window: xcb_window_t; modifiers: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_change_active_pointer_grab_checked*(c: ptr xcb_connection_t;
# cursor: xcb_cursor_t; time: xcb_timestamp_t; event_mask: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_change_active_pointer_grab*(c: ptr xcb_connection_t; cursor: xcb_cursor_t;
# time: xcb_timestamp_t; event_mask: uint16): xcb_void_cookie_t
# ## *
# ## @brief Grab the keyboard
# ##
# ## @param c The connection
# ## @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not
# ## reported to the \a grab_window.
# ## @param grab_window Specifies the window on which the pointer should be grabbed.
# ## @param time Timestamp to avoid race conditions when running X over the network.
# ## \n
# ## The special value `XCB_CURRENT_TIME` will be replaced with the current server
# ## time.
# ## @param pointer_mode A bitmask of #xcb_grab_mode_t values.
# ## @param pointer_mode \n
# ## @param keyboard_mode A bitmask of #xcb_grab_mode_t values.
# ## @param keyboard_mode \n
# ## @return A cookie
# ##
# ## Actively grabs control of the keyboard and generates FocusIn and FocusOut
# ## events. Further key events are reported only to the grabbing client.
# ##
# ## Any active keyboard grab by this client is overridden. If the keyboard is
# ## actively grabbed by some other client, `AlreadyGrabbed` is returned. If
# ## \a grab_window is not viewable, `GrabNotViewable` is returned. If the keyboard
# ## is frozen by an active grab of another client, `GrabFrozen` is returned. If the
# ## specified \a time is earlier than the last-keyboard-grab time or later than the
# ## current X server time, `GrabInvalidTime` is returned. Otherwise, the
# ## last-keyboard-grab time is set to the specified time.
# ##
# ##
# proc xcb_grab_keyboard*(c: ptr xcb_connection_t; owner_events: uint8;
# grab_window: xcb_window_t; time: xcb_timestamp_t;
# pointer_mode: uint8; keyboard_mode: uint8): xcb_grab_keyboard_cookie_t
# ## *
# ## @brief Grab the keyboard
# ##
# ## @param c The connection
# ## @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not
# ## reported to the \a grab_window.
# ## @param grab_window Specifies the window on which the pointer should be grabbed.
# ## @param time Timestamp to avoid race conditions when running X over the network.
# ## \n
# ## The special value `XCB_CURRENT_TIME` will be replaced with the current server
# ## time.
# ## @param pointer_mode A bitmask of #xcb_grab_mode_t values.
# ## @param pointer_mode \n
# ## @param keyboard_mode A bitmask of #xcb_grab_mode_t values.
# ## @param keyboard_mode \n
# ## @return A cookie
# ##
# ## Actively grabs control of the keyboard and generates FocusIn and FocusOut
# ## events. Further key events are reported only to the grabbing client.
# ##
# ## Any active keyboard grab by this client is overridden. If the keyboard is
# ## actively grabbed by some other client, `AlreadyGrabbed` is returned. If
# ## \a grab_window is not viewable, `GrabNotViewable` is returned. If the keyboard
# ## is frozen by an active grab of another client, `GrabFrozen` is returned. If the
# ## specified \a time is earlier than the last-keyboard-grab time or later than the
# ## current X server time, `GrabInvalidTime` is returned. Otherwise, the
# ## last-keyboard-grab time is set to the specified time.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_grab_keyboard_unchecked*(c: ptr xcb_connection_t; owner_events: uint8;
# grab_window: xcb_window_t; time: xcb_timestamp_t;
# pointer_mode: uint8; keyboard_mode: uint8): xcb_grab_keyboard_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_grab_keyboard_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_grab_keyboard_reply*(c: ptr xcb_connection_t; cookie: xcb_grab_keyboard_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_grab_keyboard_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_ungrab_keyboard_checked*(c: ptr xcb_connection_t; time: xcb_timestamp_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_ungrab_keyboard*(c: ptr xcb_connection_t; time: xcb_timestamp_t): xcb_void_cookie_t
# ## *
# ## @brief Grab keyboard key(s)
# ##
# ## @param c The connection
# ## @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not
# ## reported to the \a grab_window.
# ## @param grab_window Specifies the window on which the pointer should be grabbed.
# ## @param modifiers The modifiers to grab.
# ## \n
# ## Using the special value `XCB_MOD_MASK_ANY` means grab the pointer with all
# ## possible modifier combinations.
# ## @param key The keycode of the key to grab.
# ## \n
# ## The special value `XCB_GRAB_ANY` means grab any key.
# ## @param pointer_mode A bitmask of #xcb_grab_mode_t values.
# ## @param pointer_mode \n
# ## @param keyboard_mode A bitmask of #xcb_grab_mode_t values.
# ## @param keyboard_mode \n
# ## @return A cookie
# ##
# ## Establishes a passive grab on the keyboard. In the future, the keyboard is
# ## actively grabbed (as for `GrabKeyboard`), the last-keyboard-grab time is set to
# ## the time at which the key was pressed (as transmitted in the KeyPress event),
# ## and the KeyPress event is reported if all of the following conditions are true:
# ##
# ## The keyboard is not grabbed and the specified key (which can itself be a
# ## modifier key) is logically pressed when the specified modifier keys are
# ## logically down, and no other modifier keys are logically down.
# ##
# ## Either the grab_window is an ancestor of (or is) the focus window, or the
# ## grab_window is a descendant of the focus window and contains the pointer.
# ##
# ## A passive grab on the same key combination does not exist on any ancestor of
# ## grab_window.
# ##
# ## The interpretation of the remaining arguments is as for XGrabKeyboard. The active grab is terminated
# ## automatically when the logical state of the keyboard has the specified key released (independent of the
# ## logical state of the modifier keys), at which point a KeyRelease event is reported to the grabbing window.
# ##
# ## Note that the logical state of a device (as seen by client applications) may lag the physical state if
# ## device event processing is frozen.
# ##
# ## A modifiers argument of AnyModifier is equivalent to issuing the request for all possible modifier combinations (including the combination of no modifiers). It is not required that all modifiers specified
# ## have currently assigned KeyCodes. A keycode argument of AnyKey is equivalent to issuing the request for
# ## all possible KeyCodes. Otherwise, the specified keycode must be in the range specified by min_keycode
# ## and max_keycode in the connection setup, or a BadValue error results.
# ##
# ## If some other client has issued a XGrabKey with the same key combination on the same window, a BadAccess
# ## error results. When using AnyModifier or AnyKey, the request fails completely, and a BadAccess error
# ## results (no grabs are established) if there is a conflicting grab for any combination.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_grab_key_checked*(c: ptr xcb_connection_t; owner_events: uint8;
# grab_window: xcb_window_t; modifiers: uint16;
# key: xcb_keycode_t; pointer_mode: uint8;
# keyboard_mode: uint8): xcb_void_cookie_t
# ## *
# ## @brief Grab keyboard key(s)
# ##
# ## @param c The connection
# ## @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not
# ## reported to the \a grab_window.
# ## @param grab_window Specifies the window on which the pointer should be grabbed.
# ## @param modifiers The modifiers to grab.
# ## \n
# ## Using the special value `XCB_MOD_MASK_ANY` means grab the pointer with all
# ## possible modifier combinations.
# ## @param key The keycode of the key to grab.
# ## \n
# ## The special value `XCB_GRAB_ANY` means grab any key.
# ## @param pointer_mode A bitmask of #xcb_grab_mode_t values.
# ## @param pointer_mode \n
# ## @param keyboard_mode A bitmask of #xcb_grab_mode_t values.
# ## @param keyboard_mode \n
# ## @return A cookie
# ##
# ## Establishes a passive grab on the keyboard. In the future, the keyboard is
# ## actively grabbed (as for `GrabKeyboard`), the last-keyboard-grab time is set to
# ## the time at which the key was pressed (as transmitted in the KeyPress event),
# ## and the KeyPress event is reported if all of the following conditions are true:
# ##
# ## The keyboard is not grabbed and the specified key (which can itself be a
# ## modifier key) is logically pressed when the specified modifier keys are
# ## logically down, and no other modifier keys are logically down.
# ##
# ## Either the grab_window is an ancestor of (or is) the focus window, or the
# ## grab_window is a descendant of the focus window and contains the pointer.
# ##
# ## A passive grab on the same key combination does not exist on any ancestor of
# ## grab_window.
# ##
# ## The interpretation of the remaining arguments is as for XGrabKeyboard. The active grab is terminated
# ## automatically when the logical state of the keyboard has the specified key released (independent of the
# ## logical state of the modifier keys), at which point a KeyRelease event is reported to the grabbing window.
# ##
# ## Note that the logical state of a device (as seen by client applications) may lag the physical state if
# ## device event processing is frozen.
# ##
# ## A modifiers argument of AnyModifier is equivalent to issuing the request for all possible modifier combinations (including the combination of no modifiers). It is not required that all modifiers specified
# ## have currently assigned KeyCodes. A keycode argument of AnyKey is equivalent to issuing the request for
# ## all possible KeyCodes. Otherwise, the specified keycode must be in the range specified by min_keycode
# ## and max_keycode in the connection setup, or a BadValue error results.
# ##
# ## If some other client has issued a XGrabKey with the same key combination on the same window, a BadAccess
# ## error results. When using AnyModifier or AnyKey, the request fails completely, and a BadAccess error
# ## results (no grabs are established) if there is a conflicting grab for any combination.
# ##
# ##
# proc xcb_grab_key*(c: ptr xcb_connection_t; owner_events: uint8;
# grab_window: xcb_window_t; modifiers: uint16;
# key: xcb_keycode_t; pointer_mode: uint8; keyboard_mode: uint8): xcb_void_cookie_t
# ## *
# ## @brief release a key combination
# ##
# ## @param c The connection
# ## @param key The keycode of the specified key combination.
# ## \n
# ## Using the special value `XCB_GRAB_ANY` means releasing all possible key codes.
# ## @param grab_window The window on which the grabbed key combination will be released.
# ## @param modifiers The modifiers of the specified key combination.
# ## \n
# ## Using the special value `XCB_MOD_MASK_ANY` means releasing the key combination
# ## with every possible modifier combination.
# ## @return A cookie
# ##
# ## Releases the key combination on \a grab_window if you grabbed it using
# ## `xcb_grab_key` before.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_ungrab_key_checked*(c: ptr xcb_connection_t; key: xcb_keycode_t;
# grab_window: xcb_window_t; modifiers: uint16): xcb_void_cookie_t
# ## *
# ## @brief release a key combination
# ##
# ## @param c The connection
# ## @param key The keycode of the specified key combination.
# ## \n
# ## Using the special value `XCB_GRAB_ANY` means releasing all possible key codes.
# ## @param grab_window The window on which the grabbed key combination will be released.
# ## @param modifiers The modifiers of the specified key combination.
# ## \n
# ## Using the special value `XCB_MOD_MASK_ANY` means releasing the key combination
# ## with every possible modifier combination.
# ## @return A cookie
# ##
# ## Releases the key combination on \a grab_window if you grabbed it using
# ## `xcb_grab_key` before.
# ##
# ##
# proc xcb_ungrab_key*(c: ptr xcb_connection_t; key: xcb_keycode_t;
# grab_window: xcb_window_t; modifiers: uint16): xcb_void_cookie_t
# ## *
# ## @brief release queued events
# ##
# ## @param c The connection
# ## @param mode A bitmask of #xcb_allow_t values.
# ## @param mode \n
# ## @param time Timestamp to avoid race conditions when running X over the network.
# ## \n
# ## The special value `XCB_CURRENT_TIME` will be replaced with the current server
# ## time.
# ## @return A cookie
# ##
# ## Releases queued events if the client has caused a device (pointer/keyboard) to
# ## freeze due to grabbing it actively. This request has no effect if \a time is
# ## earlier than the last-grab time of the most recent active grab for this client
# ## or if \a time is later than the current X server time.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_allow_events_checked*(c: ptr xcb_connection_t; mode: uint8;
# time: xcb_timestamp_t): xcb_void_cookie_t
# ## *
# ## @brief release queued events
# ##
# ## @param c The connection
# ## @param mode A bitmask of #xcb_allow_t values.
# ## @param mode \n
# ## @param time Timestamp to avoid race conditions when running X over the network.
# ## \n
# ## The special value `XCB_CURRENT_TIME` will be replaced with the current server
# ## time.
# ## @return A cookie
# ##
# ## Releases queued events if the client has caused a device (pointer/keyboard) to
# ## freeze due to grabbing it actively. This request has no effect if \a time is
# ## earlier than the last-grab time of the most recent active grab for this client
# ## or if \a time is later than the current X server time.
# ##
# ##
# proc xcb_allow_events*(c: ptr xcb_connection_t; mode: uint8; time: xcb_timestamp_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_grab_server_checked*(c: ptr xcb_connection_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_grab_server*(c: ptr xcb_connection_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_ungrab_server_checked*(c: ptr xcb_connection_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_ungrab_server*(c: ptr xcb_connection_t): xcb_void_cookie_t
# ## *
# ## @brief get pointer coordinates
# ##
# ## @param c The connection
# ## @param window A window to check if the pointer is on the same screen as \a window (see the
# ## `same_screen` field in the reply).
# ## @return A cookie
# ##
# ## Gets the root window the pointer is logically on and the pointer coordinates
# ## relative to the root window's origin.
# ##
# proc xcb_timecoord_next*(i: ptr xcb_timecoord_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_timecoord_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_timecoord_end*(i: xcb_timecoord_iterator_t): xcb_generic_iterator_t
# proc xcb_get_motion_events_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_get_motion_events*(c: ptr xcb_connection_t; window: xcb_window_t;
# start: xcb_timestamp_t; stop: xcb_timestamp_t): xcb_get_motion_events_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_get_motion_events_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t;
# start: xcb_timestamp_t; stop: xcb_timestamp_t): xcb_get_motion_events_cookie_t
# proc xcb_get_motion_events_events*(R: ptr xcb_get_motion_events_reply_t): ptr xcb_timecoord_t
# proc xcb_get_motion_events_events_length*(R: ptr xcb_get_motion_events_reply_t): cint
# proc xcb_get_motion_events_events_iterator*(R: ptr xcb_get_motion_events_reply_t): xcb_timecoord_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_get_motion_events_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_get_motion_events_reply*(c: ptr xcb_connection_t; cookie: xcb_get_motion_events_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_get_motion_events_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_translate_coordinates*(c: ptr xcb_connection_t; src_window: xcb_window_t;
# dst_window: xcb_window_t; src_x: int16;
# src_y: int16): xcb_translate_coordinates_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_translate_coordinates_unchecked*(c: ptr xcb_connection_t;
# src_window: xcb_window_t; dst_window: xcb_window_t; src_x: int16; src_y: int16): xcb_translate_coordinates_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_translate_coordinates_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_translate_coordinates_reply*(c: ptr xcb_connection_t; cookie: xcb_translate_coordinates_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_translate_coordinates_reply_t
# ## *
# ## @brief move mouse pointer
# ##
# ## @param c The connection
# ## @param src_window If \a src_window is not `XCB_NONE` (TODO), the move will only take place if the
# ## pointer is inside \a src_window and within the rectangle specified by (\a src_x,
# ## \a src_y, \a src_width, \a src_height). The rectangle coordinates are relative to
# ## \a src_window.
# ## @param dst_window If \a dst_window is not `XCB_NONE` (TODO), the pointer will be moved to the
# ## offsets (\a dst_x, \a dst_y) relative to \a dst_window. If \a dst_window is
# ## `XCB_NONE` (TODO), the pointer will be moved by the offsets (\a dst_x, \a dst_y)
# ## relative to the current position of the pointer.
# ## @return A cookie
# ##
# ## Moves the mouse pointer to the specified position.
# ##
# ## If \a src_window is not `XCB_NONE` (TODO), the move will only take place if the
# ## pointer is inside \a src_window and within the rectangle specified by (\a src_x,
# ## \a src_y, \a src_width, \a src_height). The rectangle coordinates are relative to
# ## \a src_window.
# ##
# ## If \a dst_window is not `XCB_NONE` (TODO), the pointer will be moved to the
# ## offsets (\a dst_x, \a dst_y) relative to \a dst_window. If \a dst_window is
# ## `XCB_NONE` (TODO), the pointer will be moved by the offsets (\a dst_x, \a dst_y)
# ## relative to the current position of the pointer.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_warp_pointer_checked*(c: ptr xcb_connection_t; src_window: xcb_window_t;
# dst_window: xcb_window_t; src_x: int16;
# src_y: int16; src_width: uint16;
# src_height: uint16; dst_x: int16; dst_y: int16): xcb_void_cookie_t
# ## *
# ## @brief move mouse pointer
# ##
# ## @param c The connection
# ## @param src_window If \a src_window is not `XCB_NONE` (TODO), the move will only take place if the
# ## pointer is inside \a src_window and within the rectangle specified by (\a src_x,
# ## \a src_y, \a src_width, \a src_height). The rectangle coordinates are relative to
# ## \a src_window.
# ## @param dst_window If \a dst_window is not `XCB_NONE` (TODO), the pointer will be moved to the
# ## offsets (\a dst_x, \a dst_y) relative to \a dst_window. If \a dst_window is
# ## `XCB_NONE` (TODO), the pointer will be moved by the offsets (\a dst_x, \a dst_y)
# ## relative to the current position of the pointer.
# ## @return A cookie
# ##
# ## Moves the mouse pointer to the specified position.
# ##
# ## If \a src_window is not `XCB_NONE` (TODO), the move will only take place if the
# ## pointer is inside \a src_window and within the rectangle specified by (\a src_x,
# ## \a src_y, \a src_width, \a src_height). The rectangle coordinates are relative to
# ## \a src_window.
# ##
# ## If \a dst_window is not `XCB_NONE` (TODO), the pointer will be moved to the
# ## offsets (\a dst_x, \a dst_y) relative to \a dst_window. If \a dst_window is
# ## `XCB_NONE` (TODO), the pointer will be moved by the offsets (\a dst_x, \a dst_y)
# ## relative to the current position of the pointer.
# ##
# ##
# proc xcb_warp_pointer*(c: ptr xcb_connection_t; src_window: xcb_window_t;
# dst_window: xcb_window_t; src_x: int16; src_y: int16;
# src_width: uint16; src_height: uint16; dst_x: int16;
# dst_y: int16): xcb_void_cookie_t
# ## *
# ## @brief Sets input focus
# ##
# ## @param c The connection
# ## @param revert_to A bitmask of #xcb_input_focus_t values.
# ## @param revert_to Specifies what happens when the \a focus window becomes unviewable (if \a focus
# ## is neither `XCB_NONE` nor `XCB_POINTER_ROOT`).
# ## @param focus The window to focus. All keyboard events will be reported to this window. The
# ## window must be viewable (TODO), or a `xcb_match_error_t` occurs (TODO).
# ## \n
# ## If \a focus is `XCB_NONE` (TODO), all keyboard events are
# ## discarded until a new focus window is set.
# ## \n
# ## If \a focus is `XCB_POINTER_ROOT` (TODO), focus is on the root window of the
# ## screen on which the pointer is on currently.
# ## @param time Timestamp to avoid race conditions when running X over the network.
# ## \n
# ## The special value `XCB_CURRENT_TIME` will be replaced with the current server
# ## time.
# ## @return A cookie
# ##
# ## Changes the input focus and the last-focus-change time. If the specified \a time
# ## is earlier than the current last-focus-change time, the request is ignored (to
# ## avoid race conditions when running X over the network).
# ##
# ## A FocusIn and FocusOut event is generated when focus is changed.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_set_input_focus_checked*(c: ptr xcb_connection_t; revert_to: uint8;
# focus: xcb_window_t; time: xcb_timestamp_t): xcb_void_cookie_t
# ## *
# ## @brief Sets input focus
# ##
# ## @param c The connection
# ## @param revert_to A bitmask of #xcb_input_focus_t values.
# ## @param revert_to Specifies what happens when the \a focus window becomes unviewable (if \a focus
# ## is neither `XCB_NONE` nor `XCB_POINTER_ROOT`).
# ## @param focus The window to focus. All keyboard events will be reported to this window. The
# ## window must be viewable (TODO), or a `xcb_match_error_t` occurs (TODO).
# ## \n
# ## If \a focus is `XCB_NONE` (TODO), all keyboard events are
# ## discarded until a new focus window is set.
# ## \n
# ## If \a focus is `XCB_POINTER_ROOT` (TODO), focus is on the root window of the
# ## screen on which the pointer is on currently.
# ## @param time Timestamp to avoid race conditions when running X over the network.
# ## \n
# ## The special value `XCB_CURRENT_TIME` will be replaced with the current server
# ## time.
# ## @return A cookie
# ##
# ## Changes the input focus and the last-focus-change time. If the specified \a time
# ## is earlier than the current last-focus-change time, the request is ignored (to
# ## avoid race conditions when running X over the network).
# ##
# ## A FocusIn and FocusOut event is generated when focus is changed.
# ##
# ##
# proc xcb_set_input_focus*(c: ptr xcb_connection_t; revert_to: uint8;
# focus: xcb_window_t; time: xcb_timestamp_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_get_input_focus*(c: ptr xcb_connection_t): xcb_get_input_focus_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_get_input_focus_unchecked*(c: ptr xcb_connection_t): xcb_get_input_focus_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_get_input_focus_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_get_input_focus_reply*(c: ptr xcb_connection_t; cookie: xcb_get_input_focus_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_get_input_focus_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_query_keymap*(c: ptr xcb_connection_t): xcb_query_keymap_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_query_keymap_unchecked*(c: ptr xcb_connection_t): xcb_query_keymap_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_query_keymap_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_query_keymap_reply*(c: ptr xcb_connection_t; cookie: xcb_query_keymap_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_query_keymap_reply_t
# proc xcb_open_font_sizeof*(_buffer: pointer): cint
# ## *
# ## @brief opens a font
# ##
# ## @param c The connection
# ## @param fid The ID with which you will refer to the font, created by `xcb_generate_id`.
# ## @param name_len Length (in bytes) of \a name.
# ## @param name A pattern describing an X core font.
# ## @return A cookie
# ##
# ## Opens any X core font matching the given \a name (for example "-misc-fixed-*").
# ##
# ## Note that X core fonts are deprecated (but still supported) in favor of
# ## client-side rendering using Xft.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_open_font_checked*(c: ptr xcb_connection_t; fid: xcb_font_t;
# name_len: uint16; name: cstring): xcb_void_cookie_t
# ## *
# ## @brief opens a font
# ##
# ## @param c The connection
# ## @param fid The ID with which you will refer to the font, created by `xcb_generate_id`.
# ## @param name_len Length (in bytes) of \a name.
# ## @param name A pattern describing an X core font.
# ## @return A cookie
# ##
# ## Opens any X core font matching the given \a name (for example "-misc-fixed-*").
# ##
# ## Note that X core fonts are deprecated (but still supported) in favor of
# ## client-side rendering using Xft.
# ##
# ##
# proc xcb_open_font*(c: ptr xcb_connection_t; fid: xcb_font_t; name_len: uint16;
# name: cstring): xcb_void_cookie_t
# proc xcb_open_font_name*(R: ptr xcb_open_font_request_t): cstring
# proc xcb_open_font_name_length*(R: ptr xcb_open_font_request_t): cint
# proc xcb_open_font_name_end*(R: ptr xcb_open_font_request_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_close_font_checked*(c: ptr xcb_connection_t; font: xcb_font_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_close_font*(c: ptr xcb_connection_t; font: xcb_font_t): xcb_void_cookie_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_fontprop_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_fontprop_t)
# ##
# proc xcb_fontprop_next*(i: ptr xcb_fontprop_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_fontprop_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_fontprop_end*(i: xcb_fontprop_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_charinfo_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_charinfo_t)
# ##
# proc xcb_charinfo_next*(i: ptr xcb_charinfo_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_charinfo_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_charinfo_end*(i: xcb_charinfo_iterator_t): xcb_generic_iterator_t
# proc xcb_query_font_sizeof*(_buffer: pointer): cint
# ## *
# ## @brief query font metrics
# ##
# ## @param c The connection
# ## @param font The fontable (Font or Graphics Context) to query.
# ## @return A cookie
# ##
# ## Queries information associated with the font.
# ##
# ##
# proc xcb_query_font*(c: ptr xcb_connection_t; font: xcb_fontable_t): xcb_query_font_cookie_t
# ## *
# ## @brief query font metrics
# ##
# ## @param c The connection
# ## @param font The fontable (Font or Graphics Context) to query.
# ## @return A cookie
# ##
# ## Queries information associated with the font.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_query_font_unchecked*(c: ptr xcb_connection_t; font: xcb_fontable_t): xcb_query_font_cookie_t
# proc xcb_query_font_properties*(R: ptr xcb_query_font_reply_t): ptr xcb_fontprop_t
# proc xcb_query_font_properties_length*(R: ptr xcb_query_font_reply_t): cint
# proc xcb_query_font_properties_iterator*(R: ptr xcb_query_font_reply_t): xcb_fontprop_iterator_t
# proc xcb_query_font_char_infos*(R: ptr xcb_query_font_reply_t): ptr xcb_charinfo_t
# proc xcb_query_font_char_infos_length*(R: ptr xcb_query_font_reply_t): cint
# proc xcb_query_font_char_infos_iterator*(R: ptr xcb_query_font_reply_t): xcb_charinfo_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_query_font_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_query_font_reply*(c: ptr xcb_connection_t; cookie: xcb_query_font_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_query_font_reply_t
# proc xcb_query_text_extents_sizeof*(_buffer: pointer; string_len: uint32): cint
# ## *
# ## @brief get text extents
# ##
# ## @param c The connection
# ## @param font The \a font to calculate text extents in. You can also pass a graphics context.
# ## @param string_len The number of characters in \a string.
# ## @param string The text to get text extents for.
# ## @return A cookie
# ##
# ## Query text extents from the X11 server. This request returns the bounding box
# ## of the specified 16-bit character string in the specified \a font or the font
# ## contained in the specified graphics context.
# ##
# ## `font_ascent` is set to the maximum of the ascent metrics of all characters in
# ## the string. `font_descent` is set to the maximum of the descent metrics.
# ## `overall_width` is set to the sum of the character-width metrics of all
# ## characters in the string. For each character in the string, let W be the sum of
# ## the character-width metrics of all characters preceding it in the string. Let L
# ## be the left-side-bearing metric of the character plus W. Let R be the
# ## right-side-bearing metric of the character plus W. The lbearing member is set
# ## to the minimum L of all characters in the string. The rbearing member is set to
# ## the maximum R.
# ##
# ## For fonts defined with linear indexing rather than 2-byte matrix indexing, each
# ## `xcb_char2b_t` structure is interpreted as a 16-bit number with byte1 as the
# ## most significant byte. If the font has no defined default character, undefined
# ## characters in the string are taken to have all zero metrics.
# ##
# ## Characters with all zero metrics are ignored. If the font has no defined
# ## default_char, the undefined characters in the string are also ignored.
# ##
# ##
# proc xcb_query_text_extents*(c: ptr xcb_connection_t; font: xcb_fontable_t;
# string_len: uint32; string: ptr xcb_char2b_t): xcb_query_text_extents_cookie_t
# ## *
# ## @brief get text extents
# ##
# ## @param c The connection
# ## @param font The \a font to calculate text extents in. You can also pass a graphics context.
# ## @param string_len The number of characters in \a string.
# ## @param string The text to get text extents for.
# ## @return A cookie
# ##
# ## Query text extents from the X11 server. This request returns the bounding box
# ## of the specified 16-bit character string in the specified \a font or the font
# ## contained in the specified graphics context.
# ##
# ## `font_ascent` is set to the maximum of the ascent metrics of all characters in
# ## the string. `font_descent` is set to the maximum of the descent metrics.
# ## `overall_width` is set to the sum of the character-width metrics of all
# ## characters in the string. For each character in the string, let W be the sum of
# ## the character-width metrics of all characters preceding it in the string. Let L
# ## be the left-side-bearing metric of the character plus W. Let R be the
# ## right-side-bearing metric of the character plus W. The lbearing member is set
# ## to the minimum L of all characters in the string. The rbearing member is set to
# ## the maximum R.
# ##
# ## For fonts defined with linear indexing rather than 2-byte matrix indexing, each
# ## `xcb_char2b_t` structure is interpreted as a 16-bit number with byte1 as the
# ## most significant byte. If the font has no defined default character, undefined
# ## characters in the string are taken to have all zero metrics.
# ##
# ## Characters with all zero metrics are ignored. If the font has no defined
# ## default_char, the undefined characters in the string are also ignored.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_query_text_extents_unchecked*(c: ptr xcb_connection_t;
# font: xcb_fontable_t; string_len: uint32;
# string: ptr xcb_char2b_t): xcb_query_text_extents_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_query_text_extents_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_query_text_extents_reply*(c: ptr xcb_connection_t; cookie: xcb_query_text_extents_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_query_text_extents_reply_t
# proc xcb_str_sizeof*(_buffer: pointer): cint
# proc xcb_str_name*(R: ptr xcb_str_t): cstring
# proc xcb_str_name_length*(R: ptr xcb_str_t): cint
# proc xcb_str_name_end*(R: ptr xcb_str_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_str_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_str_t)
# ##
# proc xcb_str_next*(i: ptr xcb_str_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_str_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_str_end*(i: xcb_str_iterator_t): xcb_generic_iterator_t
# proc xcb_list_fonts_sizeof*(_buffer: pointer): cint
# ## *
# ## @brief get matching font names
# ##
# ## @param c The connection
# ## @param max_names The maximum number of fonts to be returned.
# ## @param pattern_len The length (in bytes) of \a pattern.
# ## @param pattern A font pattern, for example "-misc-fixed-*".
# ## \n
# ## The asterisk (*) is a wildcard for any number of characters. The question mark
# ## (?) is a wildcard for a single character. Use of uppercase or lowercase does
# ## not matter.
# ## @return A cookie
# ##
# ## Gets a list of available font names which match the given \a pattern.
# ##
# ##
# proc xcb_list_fonts*(c: ptr xcb_connection_t; max_names: uint16;
# pattern_len: uint16; pattern: cstring): xcb_list_fonts_cookie_t
# ## *
# ## @brief get matching font names
# ##
# ## @param c The connection
# ## @param max_names The maximum number of fonts to be returned.
# ## @param pattern_len The length (in bytes) of \a pattern.
# ## @param pattern A font pattern, for example "-misc-fixed-*".
# ## \n
# ## The asterisk (*) is a wildcard for any number of characters. The question mark
# ## (?) is a wildcard for a single character. Use of uppercase or lowercase does
# ## not matter.
# ## @return A cookie
# ##
# ## Gets a list of available font names which match the given \a pattern.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_list_fonts_unchecked*(c: ptr xcb_connection_t; max_names: uint16;
# pattern_len: uint16; pattern: cstring): xcb_list_fonts_cookie_t
# proc xcb_list_fonts_names_length*(R: ptr xcb_list_fonts_reply_t): cint
# proc xcb_list_fonts_names_iterator*(R: ptr xcb_list_fonts_reply_t): xcb_str_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_list_fonts_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_list_fonts_reply*(c: ptr xcb_connection_t; cookie: xcb_list_fonts_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_list_fonts_reply_t
# proc xcb_list_fonts_with_info_sizeof*(_buffer: pointer): cint
# ## *
# ## @brief get matching font names and information
# ##
# ## @param c The connection
# ## @param max_names The maximum number of fonts to be returned.
# ## @param pattern_len The length (in bytes) of \a pattern.
# ## @param pattern A font pattern, for example "-misc-fixed-*".
# ## \n
# ## The asterisk (*) is a wildcard for any number of characters. The question mark
# ## (?) is a wildcard for a single character. Use of uppercase or lowercase does
# ## not matter.
# ## @return A cookie
# ##
# ## Gets a list of available font names which match the given \a pattern.
# ##
# ##
# proc xcb_list_fonts_with_info*(c: ptr xcb_connection_t; max_names: uint16;
# pattern_len: uint16; pattern: cstring): xcb_list_fonts_with_info_cookie_t
# ## *
# ## @brief get matching font names and information
# ##
# ## @param c The connection
# ## @param max_names The maximum number of fonts to be returned.
# ## @param pattern_len The length (in bytes) of \a pattern.
# ## @param pattern A font pattern, for example "-misc-fixed-*".
# ## \n
# ## The asterisk (*) is a wildcard for any number of characters. The question mark
# ## (?) is a wildcard for a single character. Use of uppercase or lowercase does
# ## not matter.
# ## @return A cookie
# ##
# ## Gets a list of available font names which match the given \a pattern.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_list_fonts_with_info_unchecked*(c: ptr xcb_connection_t;
# max_names: uint16;
# pattern_len: uint16; pattern: cstring): xcb_list_fonts_with_info_cookie_t
# proc xcb_list_fonts_with_info_properties*(R: ptr xcb_list_fonts_with_info_reply_t): ptr xcb_fontprop_t
# proc xcb_list_fonts_with_info_properties_length*(
# R: ptr xcb_list_fonts_with_info_reply_t): cint
# proc xcb_list_fonts_with_info_properties_iterator*(
# R: ptr xcb_list_fonts_with_info_reply_t): xcb_fontprop_iterator_t
# proc xcb_list_fonts_with_info_name*(R: ptr xcb_list_fonts_with_info_reply_t): cstring
# proc xcb_list_fonts_with_info_name_length*(
# R: ptr xcb_list_fonts_with_info_reply_t): cint
# proc xcb_list_fonts_with_info_name_end*(R: ptr xcb_list_fonts_with_info_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_list_fonts_with_info_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_list_fonts_with_info_reply*(c: ptr xcb_connection_t; cookie: xcb_list_fonts_with_info_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_list_fonts_with_info_reply_t
# proc xcb_set_font_path_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_set_font_path_checked*(c: ptr xcb_connection_t; font_qty: uint16;
# font: ptr xcb_str_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_set_font_path*(c: ptr xcb_connection_t; font_qty: uint16;
# font: ptr xcb_str_t): xcb_void_cookie_t
# proc xcb_set_font_path_font_length*(R: ptr xcb_set_font_path_request_t): cint
# proc xcb_set_font_path_font_iterator*(R: ptr xcb_set_font_path_request_t): xcb_str_iterator_t
# proc xcb_get_font_path_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_get_font_path*(c: ptr xcb_connection_t): xcb_get_font_path_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_get_font_path_unchecked*(c: ptr xcb_connection_t): xcb_get_font_path_cookie_t
# proc xcb_get_font_path_path_length*(R: ptr xcb_get_font_path_reply_t): cint
# proc xcb_get_font_path_path_iterator*(R: ptr xcb_get_font_path_reply_t): xcb_str_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_get_font_path_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_get_font_path_reply*(c: ptr xcb_connection_t; cookie: xcb_get_font_path_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_get_font_path_reply_t
# ## *
# ## @brief Creates a pixmap
# ##
# ## @param c The connection
# ## @param depth TODO
# ## @param pid The ID with which you will refer to the new pixmap, created by
# ## `xcb_generate_id`.
# ## @param drawable Drawable to get the screen from.
# ## @param width The width of the new pixmap.
# ## @param height The height of the new pixmap.
# ## @return A cookie
# ##
# ## Creates a pixmap. The pixmap can only be used on the same screen as \a drawable
# ## is on and only with drawables of the same \a depth.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_create_pixmap_checked*(c: ptr xcb_connection_t; depth: uint8;
# pid: xcb_pixmap_t; drawable: xcb_drawable_t;
# width: uint16; height: uint16): xcb_void_cookie_t
# ## *
# ## @brief Creates a pixmap
# ##
# ## @param c The connection
# ## @param depth TODO
# ## @param pid The ID with which you will refer to the new pixmap, created by
# ## `xcb_generate_id`.
# ## @param drawable Drawable to get the screen from.
# ## @param width The width of the new pixmap.
# ## @param height The height of the new pixmap.
# ## @return A cookie
# ##
# ## Creates a pixmap. The pixmap can only be used on the same screen as \a drawable
# ## is on and only with drawables of the same \a depth.
# ##
# ##
# proc xcb_create_pixmap*(c: ptr xcb_connection_t; depth: uint8; pid: xcb_pixmap_t;
# drawable: xcb_drawable_t; width: uint16; height: uint16): xcb_void_cookie_t
# ## *
# ## @brief Destroys a pixmap
# ##
# ## @param c The connection
# ## @param pixmap The pixmap to destroy.
# ## @return A cookie
# ##
# ## Deletes the association between the pixmap ID and the pixmap. The pixmap
# ## storage will be freed when there are no more references to it.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_free_pixmap_checked*(c: ptr xcb_connection_t; pixmap: xcb_pixmap_t): xcb_void_cookie_t
# ## *
# ## @brief Destroys a pixmap
# ##
# ## @param c The connection
# ## @param pixmap The pixmap to destroy.
# ## @return A cookie
# ##
# ## Deletes the association between the pixmap ID and the pixmap. The pixmap
# ## storage will be freed when there are no more references to it.
# ##
# ##
# proc xcb_free_pixmap*(c: ptr xcb_connection_t; pixmap: xcb_pixmap_t): xcb_void_cookie_t
# proc xcb_create_gc_value_list_serialize*(_buffer: ptr pointer; value_mask: uint32;
# _aux: ptr xcb_create_gc_value_list_t): cint
# proc xcb_create_gc_value_list_unpack*(_buffer: pointer; value_mask: uint32;
# _aux: ptr xcb_create_gc_value_list_t): cint
# proc xcb_create_gc_value_list_sizeof*(_buffer: pointer; value_mask: uint32): cint
# proc xcb_create_gc_sizeof*(_buffer: pointer): cint
# ## *
# ## @brief Creates a graphics context
# ##
# ## @param c The connection
# ## @param cid The ID with which you will refer to the graphics context, created by
# ## `xcb_generate_id`.
# ## @param drawable Drawable to get the root/depth from.
# ## @return A cookie
# ##
# ## Creates a graphics context. The graphics context can be used with any drawable
# ## that has the same root and depth as the specified drawable.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_create_gc_checked*(c: ptr xcb_connection_t; cid: xcb_gcontext_t;
# drawable: xcb_drawable_t; value_mask: uint32;
# value_list: pointer): xcb_void_cookie_t
# ## *
# ## @brief Creates a graphics context
# ##
# ## @param c The connection
# ## @param cid The ID with which you will refer to the graphics context, created by
# ## `xcb_generate_id`.
# ## @param drawable Drawable to get the root/depth from.
# ## @return A cookie
# ##
# ## Creates a graphics context. The graphics context can be used with any drawable
# ## that has the same root and depth as the specified drawable.
# ##
# ##
# proc xcb_create_gc*(c: ptr xcb_connection_t; cid: xcb_gcontext_t;
# drawable: xcb_drawable_t; value_mask: uint32;
# value_list: pointer): xcb_void_cookie_t {.importc, cdecl.}
# ## *
# ## @brief Creates a graphics context
# ##
# ## @param c The connection
# ## @param cid The ID with which you will refer to the graphics context, created by
# ## `xcb_generate_id`.
# ## @param drawable Drawable to get the root/depth from.
# ## @return A cookie
# ##
# ## Creates a graphics context. The graphics context can be used with any drawable
# ## that has the same root and depth as the specified drawable.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_create_gc_aux_checked*(c: ptr xcb_connection_t; cid: xcb_gcontext_t;
# drawable: xcb_drawable_t; value_mask: uint32;
# value_list: ptr xcb_create_gc_value_list_t): xcb_void_cookie_t
# ## *
# ## @brief Creates a graphics context
# ##
# ## @param c The connection
# ## @param cid The ID with which you will refer to the graphics context, created by
# ## `xcb_generate_id`.
# ## @param drawable Drawable to get the root/depth from.
# ## @return A cookie
# ##
# ## Creates a graphics context. The graphics context can be used with any drawable
# ## that has the same root and depth as the specified drawable.
# ##
# ##
# proc xcb_create_gc_aux*(c: ptr xcb_connection_t; cid: xcb_gcontext_t;
# drawable: xcb_drawable_t; value_mask: uint32;
# value_list: ptr xcb_create_gc_value_list_t): xcb_void_cookie_t
# proc xcb_create_gc_value_list*(R: ptr xcb_create_gc_request_t): pointer
# proc xcb_change_gc_value_list_serialize*(_buffer: ptr pointer; value_mask: uint32;
# _aux: ptr xcb_change_gc_value_list_t): cint
# proc xcb_change_gc_value_list_unpack*(_buffer: pointer; value_mask: uint32;
# _aux: ptr xcb_change_gc_value_list_t): cint
# proc xcb_change_gc_value_list_sizeof*(_buffer: pointer; value_mask: uint32): cint
# proc xcb_change_gc_sizeof*(_buffer: pointer): cint
# ## *
# ## @brief change graphics context components
# ##
# ## @param c The connection
# ## @param gc The graphics context to change.
# ## @param value_mask A bitmask of #xcb_gc_t values.
# ## @param value_mask \n
# ## @param value_list Values for each of the components specified in the bitmask \a value_mask. The
# ## order has to correspond to the order of possible \a value_mask bits. See the
# ## example.
# ## @return A cookie
# ##
# ## Changes the components specified by \a value_mask for the specified graphics context.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_change_gc_checked*(c: ptr xcb_connection_t; gc: xcb_gcontext_t;
# value_mask: uint32; value_list: pointer): xcb_void_cookie_t
# ## *
# ## @brief change graphics context components
# ##
# ## @param c The connection
# ## @param gc The graphics context to change.
# ## @param value_mask A bitmask of #xcb_gc_t values.
# ## @param value_mask \n
# ## @param value_list Values for each of the components specified in the bitmask \a value_mask. The
# ## order has to correspond to the order of possible \a value_mask bits. See the
# ## example.
# ## @return A cookie
# ##
# ## Changes the components specified by \a value_mask for the specified graphics context.
# ##
# ##
# proc xcb_change_gc*(c: ptr xcb_connection_t; gc: xcb_gcontext_t; value_mask: uint32;
# value_list: pointer): xcb_void_cookie_t
# ## *
# ## @brief change graphics context components
# ##
# ## @param c The connection
# ## @param gc The graphics context to change.
# ## @param value_mask A bitmask of #xcb_gc_t values.
# ## @param value_mask \n
# ## @param value_list Values for each of the components specified in the bitmask \a value_mask. The
# ## order has to correspond to the order of possible \a value_mask bits. See the
# ## example.
# ## @return A cookie
# ##
# ## Changes the components specified by \a value_mask for the specified graphics context.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_change_gc_aux_checked*(c: ptr xcb_connection_t; gc: xcb_gcontext_t;
# value_mask: uint32;
# value_list: ptr xcb_change_gc_value_list_t): xcb_void_cookie_t
# ## *
# ## @brief change graphics context components
# ##
# ## @param c The connection
# ## @param gc The graphics context to change.
# ## @param value_mask A bitmask of #xcb_gc_t values.
# ## @param value_mask \n
# ## @param value_list Values for each of the components specified in the bitmask \a value_mask. The
# ## order has to correspond to the order of possible \a value_mask bits. See the
# ## example.
# ## @return A cookie
# ##
# ## Changes the components specified by \a value_mask for the specified graphics context.
# ##
# ##
# proc xcb_change_gc_aux*(c: ptr xcb_connection_t; gc: xcb_gcontext_t;
# value_mask: uint32;
# value_list: ptr xcb_change_gc_value_list_t): xcb_void_cookie_t
# proc xcb_change_gc_value_list*(R: ptr xcb_change_gc_request_t): pointer
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_copy_gc_checked*(c: ptr xcb_connection_t; src_gc: xcb_gcontext_t;
# dst_gc: xcb_gcontext_t; value_mask: uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_copy_gc*(c: ptr xcb_connection_t; src_gc: xcb_gcontext_t;
# dst_gc: xcb_gcontext_t; value_mask: uint32): xcb_void_cookie_t
# proc xcb_set_dashes_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_set_dashes_checked*(c: ptr xcb_connection_t; gc: xcb_gcontext_t;
# dash_offset: uint16; dashes_len: uint16;
# dashes: ptr uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_set_dashes*(c: ptr xcb_connection_t; gc: xcb_gcontext_t;
# dash_offset: uint16; dashes_len: uint16; dashes: ptr uint8): xcb_void_cookie_t
# proc xcb_set_dashes_dashes*(R: ptr xcb_set_dashes_request_t): ptr uint8
# proc xcb_set_dashes_dashes_length*(R: ptr xcb_set_dashes_request_t): cint
# proc xcb_set_dashes_dashes_end*(R: ptr xcb_set_dashes_request_t): xcb_generic_iterator_t
# proc xcb_set_clip_rectangles_sizeof*(_buffer: pointer; rectangles_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_set_clip_rectangles_checked*(c: ptr xcb_connection_t; ordering: uint8;
# gc: xcb_gcontext_t; clip_x_origin: int16;
# clip_y_origin: int16;
# rectangles_len: uint32;
# rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_set_clip_rectangles*(c: ptr xcb_connection_t; ordering: uint8;
# gc: xcb_gcontext_t; clip_x_origin: int16;
# clip_y_origin: int16; rectangles_len: uint32;
# rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t
# proc xcb_set_clip_rectangles_rectangles*(R: ptr xcb_set_clip_rectangles_request_t): ptr xcb_rectangle_t
# proc xcb_set_clip_rectangles_rectangles_length*(
# R: ptr xcb_set_clip_rectangles_request_t): cint
# proc xcb_set_clip_rectangles_rectangles_iterator*(
# R: ptr xcb_set_clip_rectangles_request_t): xcb_rectangle_iterator_t
# ## *
# ## @brief Destroys a graphics context
# ##
# ## @param c The connection
# ## @param gc The graphics context to destroy.
# ## @return A cookie
# ##
# ## Destroys the specified \a gc and all associated storage.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_free_gc_checked*(c: ptr xcb_connection_t; gc: xcb_gcontext_t): xcb_void_cookie_t
# ## *
# ## @brief Destroys a graphics context
# ##
# ## @param c The connection
# ## @param gc The graphics context to destroy.
# ## @return A cookie
# ##
# ## Destroys the specified \a gc and all associated storage.
# ##
# ##
# proc xcb_free_gc*(c: ptr xcb_connection_t; gc: xcb_gcontext_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_clear_area_checked*(c: ptr xcb_connection_t; exposures: uint8;
# window: xcb_window_t; x: int16; y: int16;
# width: uint16; height: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_clear_area*(c: ptr xcb_connection_t; exposures: uint8;
# window: xcb_window_t; x: int16; y: int16; width: uint16;
# height: uint16): xcb_void_cookie_t
# ## *
# ## @brief copy areas
# ##
# ## @param c The connection
# ## @param src_drawable The source drawable (Window or Pixmap).
# ## @param dst_drawable The destination drawable (Window or Pixmap).
# ## @param gc The graphics context to use.
# ## @param src_x The source X coordinate.
# ## @param src_y The source Y coordinate.
# ## @param dst_x The destination X coordinate.
# ## @param dst_y The destination Y coordinate.
# ## @param width The width of the area to copy (in pixels).
# ## @param height The height of the area to copy (in pixels).
# ## @return A cookie
# ##
# ## Copies the specified rectangle from \a src_drawable to \a dst_drawable.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_copy_area_checked*(c: ptr xcb_connection_t; src_drawable: xcb_drawable_t;
# dst_drawable: xcb_drawable_t; gc: xcb_gcontext_t;
# src_x: int16; src_y: int16; dst_x: int16;
# dst_y: int16; width: uint16; height: uint16): xcb_void_cookie_t
# ## *
# ## @brief copy areas
# ##
# ## @param c The connection
# ## @param src_drawable The source drawable (Window or Pixmap).
# ## @param dst_drawable The destination drawable (Window or Pixmap).
# ## @param gc The graphics context to use.
# ## @param src_x The source X coordinate.
# ## @param src_y The source Y coordinate.
# ## @param dst_x The destination X coordinate.
# ## @param dst_y The destination Y coordinate.
# ## @param width The width of the area to copy (in pixels).
# ## @param height The height of the area to copy (in pixels).
# ## @return A cookie
# ##
# ## Copies the specified rectangle from \a src_drawable to \a dst_drawable.
# ##
# ##
# proc xcb_copy_area*(c: ptr xcb_connection_t; src_drawable: xcb_drawable_t;
# dst_drawable: xcb_drawable_t; gc: xcb_gcontext_t; src_x: int16;
# src_y: int16; dst_x: int16; dst_y: int16; width: uint16;
# height: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_copy_plane_checked*(c: ptr xcb_connection_t; src_drawable: xcb_drawable_t;
# dst_drawable: xcb_drawable_t; gc: xcb_gcontext_t;
# src_x: int16; src_y: int16; dst_x: int16;
# dst_y: int16; width: uint16; height: uint16;
# bit_plane: uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_copy_plane*(c: ptr xcb_connection_t; src_drawable: xcb_drawable_t;
# dst_drawable: xcb_drawable_t; gc: xcb_gcontext_t;
# src_x: int16; src_y: int16; dst_x: int16; dst_y: int16;
# width: uint16; height: uint16; bit_plane: uint32): xcb_void_cookie_t
# proc xcb_poly_point_sizeof*(_buffer: pointer; points_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_poly_point_checked*(c: ptr xcb_connection_t; coordinate_mode: uint8;
# drawable: xcb_drawable_t; gc: xcb_gcontext_t;
# points_len: uint32; points: ptr xcb_point_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_poly_point*(c: ptr xcb_connection_t; coordinate_mode: uint8;
# drawable: xcb_drawable_t; gc: xcb_gcontext_t;
# points_len: uint32; points: ptr xcb_point_t): xcb_void_cookie_t
# proc xcb_poly_point_points*(R: ptr xcb_poly_point_request_t): ptr xcb_point_t
# proc xcb_poly_point_points_length*(R: ptr xcb_poly_point_request_t): cint
# proc xcb_poly_point_points_iterator*(R: ptr xcb_poly_point_request_t): xcb_point_iterator_t
# proc xcb_poly_line_sizeof*(_buffer: pointer; points_len: uint32): cint
# ## *
# ## @brief draw lines
# ##
# ## @param c The connection
# ## @param coordinate_mode A bitmask of #xcb_coord_mode_t values.
# ## @param coordinate_mode \n
# ## @param drawable The drawable to draw the line(s) on.
# ## @param gc The graphics context to use.
# ## @param points_len The number of `xcb_point_t` structures in \a points.
# ## @param points An array of points.
# ## @return A cookie
# ##
# ## Draws \a points_len-1 lines between each pair of points (point[i], point[i+1])
# ## in the \a points array. The lines are drawn in the order listed in the array.
# ## They join correctly at all intermediate points, and if the first and last
# ## points coincide, the first and last lines also join correctly. For any given
# ## line, a pixel is not drawn more than once. If thin (zero line-width) lines
# ## intersect, the intersecting pixels are drawn multiple times. If wide lines
# ## intersect, the intersecting pixels are drawn only once, as though the entire
# ## request were a single, filled shape.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_poly_line_checked*(c: ptr xcb_connection_t; coordinate_mode: uint8;
# drawable: xcb_drawable_t; gc: xcb_gcontext_t;
# points_len: uint32; points: ptr xcb_point_t): xcb_void_cookie_t
# ## *
# ## @brief draw lines
# ##
# ## @param c The connection
# ## @param coordinate_mode A bitmask of #xcb_coord_mode_t values.
# ## @param coordinate_mode \n
# ## @param drawable The drawable to draw the line(s) on.
# ## @param gc The graphics context to use.
# ## @param points_len The number of `xcb_point_t` structures in \a points.
# ## @param points An array of points.
# ## @return A cookie
# ##
# ## Draws \a points_len-1 lines between each pair of points (point[i], point[i+1])
# ## in the \a points array. The lines are drawn in the order listed in the array.
# ## They join correctly at all intermediate points, and if the first and last
# ## points coincide, the first and last lines also join correctly. For any given
# ## line, a pixel is not drawn more than once. If thin (zero line-width) lines
# ## intersect, the intersecting pixels are drawn multiple times. If wide lines
# ## intersect, the intersecting pixels are drawn only once, as though the entire
# ## request were a single, filled shape.
# ##
# ##
# proc xcb_poly_line*(c: ptr xcb_connection_t; coordinate_mode: uint8;
# drawable: xcb_drawable_t; gc: xcb_gcontext_t;
# points_len: uint32; points: ptr xcb_point_t): xcb_void_cookie_t
# proc xcb_poly_line_points*(R: ptr xcb_poly_line_request_t): ptr xcb_point_t
# proc xcb_poly_line_points_length*(R: ptr xcb_poly_line_request_t): cint
# proc xcb_poly_line_points_iterator*(R: ptr xcb_poly_line_request_t): xcb_point_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_segment_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_segment_t)
# ##
# proc xcb_segment_next*(i: ptr xcb_segment_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_segment_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_segment_end*(i: xcb_segment_iterator_t): xcb_generic_iterator_t
# proc xcb_poly_segment_sizeof*(_buffer: pointer; segments_len: uint32): cint
# ## *
# ## @brief draw lines
# ##
# ## @param c The connection
# ## @param drawable A drawable (Window or Pixmap) to draw on.
# ## @param gc The graphics context to use.
# ## \n
# ## TODO: document which attributes of a gc are used
# ## @param segments_len The number of `xcb_segment_t` structures in \a segments.
# ## @param segments An array of `xcb_segment_t` structures.
# ## @return A cookie
# ##
# ## Draws multiple, unconnected lines. For each segment, a line is drawn between
# ## (x1, y1) and (x2, y2). The lines are drawn in the order listed in the array of
# ## `xcb_segment_t` structures and does not perform joining at coincident
# ## endpoints. For any given line, a pixel is not drawn more than once. If lines
# ## intersect, the intersecting pixels are drawn multiple times.
# ##
# ## TODO: include the xcb_segment_t data structure
# ##
# ## TODO: an example
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_poly_segment_checked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# gc: xcb_gcontext_t; segments_len: uint32;
# segments: ptr xcb_segment_t): xcb_void_cookie_t
# ## *
# ## @brief draw lines
# ##
# ## @param c The connection
# ## @param drawable A drawable (Window or Pixmap) to draw on.
# ## @param gc The graphics context to use.
# ## \n
# ## TODO: document which attributes of a gc are used
# ## @param segments_len The number of `xcb_segment_t` structures in \a segments.
# ## @param segments An array of `xcb_segment_t` structures.
# ## @return A cookie
# ##
# ## Draws multiple, unconnected lines. For each segment, a line is drawn between
# ## (x1, y1) and (x2, y2). The lines are drawn in the order listed in the array of
# ## `xcb_segment_t` structures and does not perform joining at coincident
# ## endpoints. For any given line, a pixel is not drawn more than once. If lines
# ## intersect, the intersecting pixels are drawn multiple times.
# ##
# ## TODO: include the xcb_segment_t data structure
# ##
# ## TODO: an example
# ##
# ##
# proc xcb_poly_segment*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# gc: xcb_gcontext_t; segments_len: uint32;
# segments: ptr xcb_segment_t): xcb_void_cookie_t
# proc xcb_poly_segment_segments*(R: ptr xcb_poly_segment_request_t): ptr xcb_segment_t
# proc xcb_poly_segment_segments_length*(R: ptr xcb_poly_segment_request_t): cint
# proc xcb_poly_segment_segments_iterator*(R: ptr xcb_poly_segment_request_t): xcb_segment_iterator_t
# proc xcb_poly_rectangle_sizeof*(_buffer: pointer; rectangles_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_poly_rectangle_checked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# gc: xcb_gcontext_t; rectangles_len: uint32;
# rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_poly_rectangle*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# gc: xcb_gcontext_t; rectangles_len: uint32;
# rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t
# proc xcb_poly_rectangle_rectangles*(R: ptr xcb_poly_rectangle_request_t): ptr xcb_rectangle_t
# proc xcb_poly_rectangle_rectangles_length*(R: ptr xcb_poly_rectangle_request_t): cint
# proc xcb_poly_rectangle_rectangles_iterator*(R: ptr xcb_poly_rectangle_request_t): xcb_rectangle_iterator_t
# proc xcb_poly_arc_sizeof*(_buffer: pointer; arcs_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_poly_arc_checked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# gc: xcb_gcontext_t; arcs_len: uint32;
# arcs: ptr xcb_arc_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_poly_arc*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# gc: xcb_gcontext_t; arcs_len: uint32; arcs: ptr xcb_arc_t): xcb_void_cookie_t
# proc xcb_poly_arc_arcs*(R: ptr xcb_poly_arc_request_t): ptr xcb_arc_t
# proc xcb_poly_arc_arcs_length*(R: ptr xcb_poly_arc_request_t): cint
# proc xcb_poly_arc_arcs_iterator*(R: ptr xcb_poly_arc_request_t): xcb_arc_iterator_t
# proc xcb_fill_poly_sizeof*(_buffer: pointer; points_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_fill_poly_checked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# gc: xcb_gcontext_t; shape: uint8;
# coordinate_mode: uint8; points_len: uint32;
# points: ptr xcb_point_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_fill_poly*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# gc: xcb_gcontext_t; shape: uint8; coordinate_mode: uint8;
# points_len: uint32; points: ptr xcb_point_t): xcb_void_cookie_t
# proc xcb_fill_poly_points*(R: ptr xcb_fill_poly_request_t): ptr xcb_point_t
# proc xcb_fill_poly_points_length*(R: ptr xcb_fill_poly_request_t): cint
# proc xcb_fill_poly_points_iterator*(R: ptr xcb_fill_poly_request_t): xcb_point_iterator_t
# proc xcb_poly_fill_rectangle_sizeof*(_buffer: pointer; rectangles_len: uint32): cint
# ## *
# ## @brief Fills rectangles
# ##
# ## @param c The connection
# ## @param drawable The drawable (Window or Pixmap) to draw on.
# ## @param gc The graphics context to use.
# ## \n
# ## The following graphics context components are used: function, plane-mask,
# ## fill-style, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.
# ## \n
# ## The following graphics context mode-dependent components are used:
# ## foreground, background, tile, stipple, tile-stipple-x-origin, and
# ## tile-stipple-y-origin.
# ## @param rectangles_len The number of `xcb_rectangle_t` structures in \a rectangles.
# ## @param rectangles The rectangles to fill.
# ## @return A cookie
# ##
# ## Fills the specified rectangle(s) in the order listed in the array. For any
# ## given rectangle, each pixel is not drawn more than once. If rectangles
# ## intersect, the intersecting pixels are drawn multiple times.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_poly_fill_rectangle_checked*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t; gc: xcb_gcontext_t;
# rectangles_len: uint32;
# rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t
# ## *
# ## @brief Fills rectangles
# ##
# ## @param c The connection
# ## @param drawable The drawable (Window or Pixmap) to draw on.
# ## @param gc The graphics context to use.
# ## \n
# ## The following graphics context components are used: function, plane-mask,
# ## fill-style, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.
# ## \n
# ## The following graphics context mode-dependent components are used:
# ## foreground, background, tile, stipple, tile-stipple-x-origin, and
# ## tile-stipple-y-origin.
# ## @param rectangles_len The number of `xcb_rectangle_t` structures in \a rectangles.
# ## @param rectangles The rectangles to fill.
# ## @return A cookie
# ##
# ## Fills the specified rectangle(s) in the order listed in the array. For any
# ## given rectangle, each pixel is not drawn more than once. If rectangles
# ## intersect, the intersecting pixels are drawn multiple times.
# ##
# ##
# proc xcb_poly_fill_rectangle*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# gc: xcb_gcontext_t; rectangles_len: uint32;
# rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t
# proc xcb_poly_fill_rectangle_rectangles*(R: ptr xcb_poly_fill_rectangle_request_t): ptr xcb_rectangle_t
# proc xcb_poly_fill_rectangle_rectangles_length*(
# R: ptr xcb_poly_fill_rectangle_request_t): cint
# proc xcb_poly_fill_rectangle_rectangles_iterator*(
# R: ptr xcb_poly_fill_rectangle_request_t): xcb_rectangle_iterator_t
# proc xcb_poly_fill_arc_sizeof*(_buffer: pointer; arcs_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_poly_fill_arc_checked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# gc: xcb_gcontext_t; arcs_len: uint32;
# arcs: ptr xcb_arc_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_poly_fill_arc*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# gc: xcb_gcontext_t; arcs_len: uint32; arcs: ptr xcb_arc_t): xcb_void_cookie_t
# proc xcb_poly_fill_arc_arcs*(R: ptr xcb_poly_fill_arc_request_t): ptr xcb_arc_t
# proc xcb_poly_fill_arc_arcs_length*(R: ptr xcb_poly_fill_arc_request_t): cint
# proc xcb_poly_fill_arc_arcs_iterator*(R: ptr xcb_poly_fill_arc_request_t): xcb_arc_iterator_t
# proc xcb_put_image_sizeof*(_buffer: pointer; data_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_put_image_checked*(c: ptr xcb_connection_t; format: uint8;
# drawable: xcb_drawable_t; gc: xcb_gcontext_t;
# width: uint16; height: uint16; dst_x: int16;
# dst_y: int16; left_pad: uint8; depth: uint8;
# data_len: uint32; data: ptr uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_put_image*(c: ptr xcb_connection_t; format: uint8;
# drawable: xcb_drawable_t; gc: xcb_gcontext_t; width: uint16;
# height: uint16; dst_x: int16; dst_y: int16;
# left_pad: uint8; depth: uint8; data_len: uint32;
# data: ptr uint8): xcb_void_cookie_t
# proc xcb_put_image_data*(R: ptr xcb_put_image_request_t): ptr uint8
# proc xcb_put_image_data_length*(R: ptr xcb_put_image_request_t): cint
# proc xcb_put_image_data_end*(R: ptr xcb_put_image_request_t): xcb_generic_iterator_t
# proc xcb_get_image_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_get_image*(c: ptr xcb_connection_t; format: uint8;
# drawable: xcb_drawable_t; x: int16; y: int16; width: uint16;
# height: uint16; plane_mask: uint32): xcb_get_image_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_get_image_unchecked*(c: ptr xcb_connection_t; format: uint8;
# drawable: xcb_drawable_t; x: int16; y: int16;
# width: uint16; height: uint16; plane_mask: uint32): xcb_get_image_cookie_t
# proc xcb_get_image_data*(R: ptr xcb_get_image_reply_t): ptr uint8
# proc xcb_get_image_data_length*(R: ptr xcb_get_image_reply_t): cint
# proc xcb_get_image_data_end*(R: ptr xcb_get_image_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_get_image_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_get_image_reply*(c: ptr xcb_connection_t; cookie: xcb_get_image_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_get_image_reply_t
# proc xcb_poly_text_8_sizeof*(_buffer: pointer; items_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_poly_text_8_checked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# gc: xcb_gcontext_t; x: int16; y: int16;
# items_len: uint32; items: ptr uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_poly_text_8*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# gc: xcb_gcontext_t; x: int16; y: int16; items_len: uint32;
# items: ptr uint8): xcb_void_cookie_t
# proc xcb_poly_text_8_items*(R: ptr xcb_poly_text_8_request_t): ptr uint8
# proc xcb_poly_text_8_items_length*(R: ptr xcb_poly_text_8_request_t): cint
# proc xcb_poly_text_8_items_end*(R: ptr xcb_poly_text_8_request_t): xcb_generic_iterator_t
# proc xcb_poly_text_16_sizeof*(_buffer: pointer; items_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_poly_text_16_checked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# gc: xcb_gcontext_t; x: int16; y: int16;
# items_len: uint32; items: ptr uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_poly_text_16*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# gc: xcb_gcontext_t; x: int16; y: int16; items_len: uint32;
# items: ptr uint8): xcb_void_cookie_t
# proc xcb_poly_text_16_items*(R: ptr xcb_poly_text_16_request_t): ptr uint8
# proc xcb_poly_text_16_items_length*(R: ptr xcb_poly_text_16_request_t): cint
# proc xcb_poly_text_16_items_end*(R: ptr xcb_poly_text_16_request_t): xcb_generic_iterator_t
# proc xcb_image_text_8_sizeof*(_buffer: pointer): cint
# ## *
# ## @brief Draws text
# ##
# ## @param c The connection
# ## @param string_len The length of the \a string. Note that this parameter limited by 255 due to
# ## using 8 bits!
# ## @param drawable The drawable (Window or Pixmap) to draw text on.
# ## @param gc The graphics context to use.
# ## \n
# ## The following graphics context components are used: plane-mask, foreground,
# ## background, font, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.
# ## @param x The x coordinate of the first character, relative to the origin of \a drawable.
# ## @param y The y coordinate of the first character, relative to the origin of \a drawable.
# ## @param string The string to draw. Only the first 255 characters are relevant due to the data
# ## type of \a string_len.
# ## @return A cookie
# ##
# ## Fills the destination rectangle with the background pixel from \a gc, then
# ## paints the text with the foreground pixel from \a gc. The upper-left corner of
# ## the filled rectangle is at [x, y - font-ascent]. The width is overall-width,
# ## the height is font-ascent + font-descent. The overall-width, font-ascent and
# ## font-descent are as returned by `xcb_query_text_extents` (TODO).
# ##
# ## Note that using X core fonts is deprecated (but still supported) in favor of
# ## client-side rendering using Xft.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_image_text_8_checked*(c: ptr xcb_connection_t; string_len: uint8;
# drawable: xcb_drawable_t; gc: xcb_gcontext_t;
# x: int16; y: int16; string: cstring): xcb_void_cookie_t
# ## *
# ## @brief Draws text
# ##
# ## @param c The connection
# ## @param string_len The length of the \a string. Note that this parameter limited by 255 due to
# ## using 8 bits!
# ## @param drawable The drawable (Window or Pixmap) to draw text on.
# ## @param gc The graphics context to use.
# ## \n
# ## The following graphics context components are used: plane-mask, foreground,
# ## background, font, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.
# ## @param x The x coordinate of the first character, relative to the origin of \a drawable.
# ## @param y The y coordinate of the first character, relative to the origin of \a drawable.
# ## @param string The string to draw. Only the first 255 characters are relevant due to the data
# ## type of \a string_len.
# ## @return A cookie
# ##
# ## Fills the destination rectangle with the background pixel from \a gc, then
# ## paints the text with the foreground pixel from \a gc. The upper-left corner of
# ## the filled rectangle is at [x, y - font-ascent]. The width is overall-width,
# ## the height is font-ascent + font-descent. The overall-width, font-ascent and
# ## font-descent are as returned by `xcb_query_text_extents` (TODO).
# ##
# ## Note that using X core fonts is deprecated (but still supported) in favor of
# ## client-side rendering using Xft.
# ##
# ##
# proc xcb_image_text_8*(c: ptr xcb_connection_t; string_len: uint8;
# drawable: xcb_drawable_t; gc: xcb_gcontext_t; x: int16;
# y: int16; string: cstring): xcb_void_cookie_t
# proc xcb_image_text_8_string*(R: ptr xcb_image_text_8_request_t): cstring
# proc xcb_image_text_8_string_length*(R: ptr xcb_image_text_8_request_t): cint
# proc xcb_image_text_8_string_end*(R: ptr xcb_image_text_8_request_t): xcb_generic_iterator_t
# proc xcb_image_text_16_sizeof*(_buffer: pointer): cint
# ## *
# ## @brief Draws text
# ##
# ## @param c The connection
# ## @param string_len The length of the \a string in characters. Note that this parameter limited by
# ## 255 due to using 8 bits!
# ## @param drawable The drawable (Window or Pixmap) to draw text on.
# ## @param gc The graphics context to use.
# ## \n
# ## The following graphics context components are used: plane-mask, foreground,
# ## background, font, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.
# ## @param x The x coordinate of the first character, relative to the origin of \a drawable.
# ## @param y The y coordinate of the first character, relative to the origin of \a drawable.
# ## @param string The string to draw. Only the first 255 characters are relevant due to the data
# ## type of \a string_len. Every character uses 2 bytes (hence the 16 in this
# ## request's name).
# ## @return A cookie
# ##
# ## Fills the destination rectangle with the background pixel from \a gc, then
# ## paints the text with the foreground pixel from \a gc. The upper-left corner of
# ## the filled rectangle is at [x, y - font-ascent]. The width is overall-width,
# ## the height is font-ascent + font-descent. The overall-width, font-ascent and
# ## font-descent are as returned by `xcb_query_text_extents` (TODO).
# ##
# ## Note that using X core fonts is deprecated (but still supported) in favor of
# ## client-side rendering using Xft.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_image_text_16_checked*(c: ptr xcb_connection_t; string_len: uint8;
# drawable: xcb_drawable_t; gc: xcb_gcontext_t;
# x: int16; y: int16; string: ptr xcb_char2b_t): xcb_void_cookie_t
# ## *
# ## @brief Draws text
# ##
# ## @param c The connection
# ## @param string_len The length of the \a string in characters. Note that this parameter limited by
# ## 255 due to using 8 bits!
# ## @param drawable The drawable (Window or Pixmap) to draw text on.
# ## @param gc The graphics context to use.
# ## \n
# ## The following graphics context components are used: plane-mask, foreground,
# ## background, font, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.
# ## @param x The x coordinate of the first character, relative to the origin of \a drawable.
# ## @param y The y coordinate of the first character, relative to the origin of \a drawable.
# ## @param string The string to draw. Only the first 255 characters are relevant due to the data
# ## type of \a string_len. Every character uses 2 bytes (hence the 16 in this
# ## request's name).
# ## @return A cookie
# ##
# ## Fills the destination rectangle with the background pixel from \a gc, then
# ## paints the text with the foreground pixel from \a gc. The upper-left corner of
# ## the filled rectangle is at [x, y - font-ascent]. The width is overall-width,
# ## the height is font-ascent + font-descent. The overall-width, font-ascent and
# ## font-descent are as returned by `xcb_query_text_extents` (TODO).
# ##
# ## Note that using X core fonts is deprecated (but still supported) in favor of
# ## client-side rendering using Xft.
# ##
# ##
# proc xcb_image_text_16*(c: ptr xcb_connection_t; string_len: uint8;
# drawable: xcb_drawable_t; gc: xcb_gcontext_t; x: int16;
# y: int16; string: ptr xcb_char2b_t): xcb_void_cookie_t
# proc xcb_image_text_16_string*(R: ptr xcb_image_text_16_request_t): ptr xcb_char2b_t
# proc xcb_image_text_16_string_length*(R: ptr xcb_image_text_16_request_t): cint
# proc xcb_image_text_16_string_iterator*(R: ptr xcb_image_text_16_request_t): xcb_char2b_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_create_colormap_checked*(c: ptr xcb_connection_t; alloc: uint8;
# mid: xcb_colormap_t; window: xcb_window_t;
# visual: xcb_visualid_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_create_colormap*(c: ptr xcb_connection_t; alloc: uint8;
# mid: xcb_colormap_t; window: xcb_window_t;
# visual: xcb_visualid_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_free_colormap_checked*(c: ptr xcb_connection_t; cmap: xcb_colormap_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_free_colormap*(c: ptr xcb_connection_t; cmap: xcb_colormap_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_copy_colormap_and_free_checked*(c: ptr xcb_connection_t;
# mid: xcb_colormap_t;
# src_cmap: xcb_colormap_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_copy_colormap_and_free*(c: ptr xcb_connection_t; mid: xcb_colormap_t;
# src_cmap: xcb_colormap_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_install_colormap_checked*(c: ptr xcb_connection_t; cmap: xcb_colormap_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_install_colormap*(c: ptr xcb_connection_t; cmap: xcb_colormap_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_uninstall_colormap_checked*(c: ptr xcb_connection_t; cmap: xcb_colormap_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_uninstall_colormap*(c: ptr xcb_connection_t; cmap: xcb_colormap_t): xcb_void_cookie_t
# proc xcb_list_installed_colormaps_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_list_installed_colormaps*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_list_installed_colormaps_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_list_installed_colormaps_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t): xcb_list_installed_colormaps_cookie_t
# proc xcb_list_installed_colormaps_cmaps*(R: ptr xcb_list_installed_colormaps_reply_t): ptr xcb_colormap_t
# proc xcb_list_installed_colormaps_cmaps_length*(
# R: ptr xcb_list_installed_colormaps_reply_t): cint
# proc xcb_list_installed_colormaps_cmaps_end*(
# R: ptr xcb_list_installed_colormaps_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_list_installed_colormaps_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_list_installed_colormaps_reply*(c: ptr xcb_connection_t; cookie: xcb_list_installed_colormaps_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_list_installed_colormaps_reply_t
# ## *
# ## @brief Allocate a color
# ##
# ## @param c The connection
# ## @param cmap TODO
# ## @param red The red value of your color.
# ## @param green The green value of your color.
# ## @param blue The blue value of your color.
# ## @return A cookie
# ##
# ## Allocates a read-only colormap entry corresponding to the closest RGB value
# ## supported by the hardware. If you are using TrueColor, you can take a shortcut
# ## and directly calculate the color pixel value to avoid the round trip. But, for
# ## example, on 16-bit color setups (VNC), you can easily get the closest supported
# ## RGB value to the RGB value you are specifying.
# ##
# ##
# proc xcb_alloc_color*(c: ptr xcb_connection_t; cmap: xcb_colormap_t; red: uint16;
# green: uint16; blue: uint16): xcb_alloc_color_cookie_t
# ## *
# ## @brief Allocate a color
# ##
# ## @param c The connection
# ## @param cmap TODO
# ## @param red The red value of your color.
# ## @param green The green value of your color.
# ## @param blue The blue value of your color.
# ## @return A cookie
# ##
# ## Allocates a read-only colormap entry corresponding to the closest RGB value
# ## supported by the hardware. If you are using TrueColor, you can take a shortcut
# ## and directly calculate the color pixel value to avoid the round trip. But, for
# ## example, on 16-bit color setups (VNC), you can easily get the closest supported
# ## RGB value to the RGB value you are specifying.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_alloc_color_unchecked*(c: ptr xcb_connection_t; cmap: xcb_colormap_t;
# red: uint16; green: uint16; blue: uint16): xcb_alloc_color_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_alloc_color_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_alloc_color_reply*(c: ptr xcb_connection_t; cookie: xcb_alloc_color_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_alloc_color_reply_t
# proc xcb_alloc_named_color_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_alloc_named_color*(c: ptr xcb_connection_t; cmap: xcb_colormap_t;
# name_len: uint16; name: cstring): xcb_alloc_named_color_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_alloc_named_color_unchecked*(c: ptr xcb_connection_t; cmap: xcb_colormap_t;
# name_len: uint16; name: cstring): xcb_alloc_named_color_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_alloc_named_color_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_alloc_named_color_reply*(c: ptr xcb_connection_t; cookie: xcb_alloc_named_color_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_alloc_named_color_reply_t
# proc xcb_alloc_color_cells_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_alloc_color_cells*(c: ptr xcb_connection_t; contiguous: uint8;
# cmap: xcb_colormap_t; colors: uint16; planes: uint16): xcb_alloc_color_cells_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_alloc_color_cells_unchecked*(c: ptr xcb_connection_t; contiguous: uint8;
# cmap: xcb_colormap_t; colors: uint16;
# planes: uint16): xcb_alloc_color_cells_cookie_t
# proc xcb_alloc_color_cells_pixels*(R: ptr xcb_alloc_color_cells_reply_t): ptr uint32
# proc xcb_alloc_color_cells_pixels_length*(R: ptr xcb_alloc_color_cells_reply_t): cint
# proc xcb_alloc_color_cells_pixels_end*(R: ptr xcb_alloc_color_cells_reply_t): xcb_generic_iterator_t
# proc xcb_alloc_color_cells_masks*(R: ptr xcb_alloc_color_cells_reply_t): ptr uint32
# proc xcb_alloc_color_cells_masks_length*(R: ptr xcb_alloc_color_cells_reply_t): cint
# proc xcb_alloc_color_cells_masks_end*(R: ptr xcb_alloc_color_cells_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_alloc_color_cells_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_alloc_color_cells_reply*(c: ptr xcb_connection_t; cookie: xcb_alloc_color_cells_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_alloc_color_cells_reply_t
# proc xcb_alloc_color_planes_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_alloc_color_planes*(c: ptr xcb_connection_t; contiguous: uint8;
# cmap: xcb_colormap_t; colors: uint16; reds: uint16;
# greens: uint16; blues: uint16): xcb_alloc_color_planes_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_alloc_color_planes_unchecked*(c: ptr xcb_connection_t; contiguous: uint8;
# cmap: xcb_colormap_t; colors: uint16;
# reds: uint16; greens: uint16;
# blues: uint16): xcb_alloc_color_planes_cookie_t
# proc xcb_alloc_color_planes_pixels*(R: ptr xcb_alloc_color_planes_reply_t): ptr uint32
# proc xcb_alloc_color_planes_pixels_length*(R: ptr xcb_alloc_color_planes_reply_t): cint
# proc xcb_alloc_color_planes_pixels_end*(R: ptr xcb_alloc_color_planes_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_alloc_color_planes_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_alloc_color_planes_reply*(c: ptr xcb_connection_t; cookie: xcb_alloc_color_planes_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_alloc_color_planes_reply_t
# proc xcb_free_colors_sizeof*(_buffer: pointer; pixels_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_free_colors_checked*(c: ptr xcb_connection_t; cmap: xcb_colormap_t;
# plane_mask: uint32; pixels_len: uint32;
# pixels: ptr uint32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_free_colors*(c: ptr xcb_connection_t; cmap: xcb_colormap_t;
# plane_mask: uint32; pixels_len: uint32;
# pixels: ptr uint32): xcb_void_cookie_t
# proc xcb_free_colors_pixels*(R: ptr xcb_free_colors_request_t): ptr uint32
# proc xcb_free_colors_pixels_length*(R: ptr xcb_free_colors_request_t): cint
# proc xcb_free_colors_pixels_end*(R: ptr xcb_free_colors_request_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_coloritem_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_coloritem_t)
# ##
# proc xcb_coloritem_next*(i: ptr xcb_coloritem_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_coloritem_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_coloritem_end*(i: xcb_coloritem_iterator_t): xcb_generic_iterator_t
# proc xcb_store_colors_sizeof*(_buffer: pointer; items_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_store_colors_checked*(c: ptr xcb_connection_t; cmap: xcb_colormap_t;
# items_len: uint32; items: ptr xcb_coloritem_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_store_colors*(c: ptr xcb_connection_t; cmap: xcb_colormap_t;
# items_len: uint32; items: ptr xcb_coloritem_t): xcb_void_cookie_t
# proc xcb_store_colors_items*(R: ptr xcb_store_colors_request_t): ptr xcb_coloritem_t
# proc xcb_store_colors_items_length*(R: ptr xcb_store_colors_request_t): cint
# proc xcb_store_colors_items_iterator*(R: ptr xcb_store_colors_request_t): xcb_coloritem_iterator_t
# proc xcb_store_named_color_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_store_named_color_checked*(c: ptr xcb_connection_t; flags: uint8;
# cmap: xcb_colormap_t; pixel: uint32;
# name_len: uint16; name: cstring): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_store_named_color*(c: ptr xcb_connection_t; flags: uint8;
# cmap: xcb_colormap_t; pixel: uint32;
# name_len: uint16; name: cstring): xcb_void_cookie_t
# proc xcb_store_named_color_name*(R: ptr xcb_store_named_color_request_t): cstring
# proc xcb_store_named_color_name_length*(R: ptr xcb_store_named_color_request_t): cint
# proc xcb_store_named_color_name_end*(R: ptr xcb_store_named_color_request_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_rgb_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_rgb_t)
# ##
# proc xcb_rgb_next*(i: ptr xcb_rgb_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_rgb_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_rgb_end*(i: xcb_rgb_iterator_t): xcb_generic_iterator_t
# proc xcb_query_colors_sizeof*(_buffer: pointer; pixels_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_query_colors*(c: ptr xcb_connection_t; cmap: xcb_colormap_t;
# pixels_len: uint32; pixels: ptr uint32): xcb_query_colors_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_query_colors_unchecked*(c: ptr xcb_connection_t; cmap: xcb_colormap_t;
# pixels_len: uint32; pixels: ptr uint32): xcb_query_colors_cookie_t
# proc xcb_query_colors_colors*(R: ptr xcb_query_colors_reply_t): ptr xcb_rgb_t
# proc xcb_query_colors_colors_length*(R: ptr xcb_query_colors_reply_t): cint
# proc xcb_query_colors_colors_iterator*(R: ptr xcb_query_colors_reply_t): xcb_rgb_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_query_colors_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_query_colors_reply*(c: ptr xcb_connection_t; cookie: xcb_query_colors_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_query_colors_reply_t
# proc xcb_lookup_color_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_lookup_color*(c: ptr xcb_connection_t; cmap: xcb_colormap_t;
# name_len: uint16; name: cstring): xcb_lookup_color_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_lookup_color_unchecked*(c: ptr xcb_connection_t; cmap: xcb_colormap_t;
# name_len: uint16; name: cstring): xcb_lookup_color_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_lookup_color_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_lookup_color_reply*(c: ptr xcb_connection_t; cookie: xcb_lookup_color_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_lookup_color_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_create_cursor_checked*(c: ptr xcb_connection_t; cid: xcb_cursor_t;
# source: xcb_pixmap_t; mask: xcb_pixmap_t;
# fore_red: uint16; fore_green: uint16;
# fore_blue: uint16; back_red: uint16;
# back_green: uint16; back_blue: uint16;
# x: uint16; y: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_create_cursor*(c: ptr xcb_connection_t; cid: xcb_cursor_t;
# source: xcb_pixmap_t; mask: xcb_pixmap_t; fore_red: uint16;
# fore_green: uint16; fore_blue: uint16;
# back_red: uint16; back_green: uint16;
# back_blue: uint16; x: uint16; y: uint16): xcb_void_cookie_t
# ## *
# ## @brief create cursor
# ##
# ## @param c The connection
# ## @param cid The ID with which you will refer to the cursor, created by `xcb_generate_id`.
# ## @param source_font In which font to look for the cursor glyph.
# ## @param mask_font In which font to look for the mask glyph.
# ## @param source_char The glyph of \a source_font to use.
# ## @param mask_char The glyph of \a mask_font to use as a mask: Pixels which are set to 1 define
# ## which source pixels are displayed. All pixels which are set to 0 are not
# ## displayed.
# ## @param fore_red The red value of the foreground color.
# ## @param fore_green The green value of the foreground color.
# ## @param fore_blue The blue value of the foreground color.
# ## @param back_red The red value of the background color.
# ## @param back_green The green value of the background color.
# ## @param back_blue The blue value of the background color.
# ## @return A cookie
# ##
# ## Creates a cursor from a font glyph. X provides a set of standard cursor shapes
# ## in a special font named cursor. Applications are encouraged to use this
# ## interface for their cursors because the font can be customized for the
# ## individual display type.
# ##
# ## All pixels which are set to 1 in the source will use the foreground color (as
# ## specified by \a fore_red, \a fore_green and \a fore_blue). All pixels set to 0
# ## will use the background color (as specified by \a back_red, \a back_green and
# ## \a back_blue).
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_create_glyph_cursor_checked*(c: ptr xcb_connection_t; cid: xcb_cursor_t;
# source_font: xcb_font_t;
# mask_font: xcb_font_t; source_char: uint16;
# mask_char: uint16; fore_red: uint16;
# fore_green: uint16; fore_blue: uint16;
# back_red: uint16; back_green: uint16;
# back_blue: uint16): xcb_void_cookie_t
# ## *
# ## @brief create cursor
# ##
# ## @param c The connection
# ## @param cid The ID with which you will refer to the cursor, created by `xcb_generate_id`.
# ## @param source_font In which font to look for the cursor glyph.
# ## @param mask_font In which font to look for the mask glyph.
# ## @param source_char The glyph of \a source_font to use.
# ## @param mask_char The glyph of \a mask_font to use as a mask: Pixels which are set to 1 define
# ## which source pixels are displayed. All pixels which are set to 0 are not
# ## displayed.
# ## @param fore_red The red value of the foreground color.
# ## @param fore_green The green value of the foreground color.
# ## @param fore_blue The blue value of the foreground color.
# ## @param back_red The red value of the background color.
# ## @param back_green The green value of the background color.
# ## @param back_blue The blue value of the background color.
# ## @return A cookie
# ##
# ## Creates a cursor from a font glyph. X provides a set of standard cursor shapes
# ## in a special font named cursor. Applications are encouraged to use this
# ## interface for their cursors because the font can be customized for the
# ## individual display type.
# ##
# ## All pixels which are set to 1 in the source will use the foreground color (as
# ## specified by \a fore_red, \a fore_green and \a fore_blue). All pixels set to 0
# ## will use the background color (as specified by \a back_red, \a back_green and
# ## \a back_blue).
# ##
# ##
# proc xcb_create_glyph_cursor*(c: ptr xcb_connection_t; cid: xcb_cursor_t;
# source_font: xcb_font_t; mask_font: xcb_font_t;
# source_char: uint16; mask_char: uint16;
# fore_red: uint16; fore_green: uint16;
# fore_blue: uint16; back_red: uint16;
# back_green: uint16; back_blue: uint16): xcb_void_cookie_t
# ## *
# ## @brief Deletes a cursor
# ##
# ## @param c The connection
# ## @param cursor The cursor to destroy.
# ## @return A cookie
# ##
# ## Deletes the association between the cursor resource ID and the specified
# ## cursor. The cursor is freed when no other resource references it.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_free_cursor_checked*(c: ptr xcb_connection_t; cursor: xcb_cursor_t): xcb_void_cookie_t
# ## *
# ## @brief Deletes a cursor
# ##
# ## @param c The connection
# ## @param cursor The cursor to destroy.
# ## @return A cookie
# ##
# ## Deletes the association between the cursor resource ID and the specified
# ## cursor. The cursor is freed when no other resource references it.
# ##
# ##
# proc xcb_free_cursor*(c: ptr xcb_connection_t; cursor: xcb_cursor_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_recolor_cursor_checked*(c: ptr xcb_connection_t; cursor: xcb_cursor_t;
# fore_red: uint16; fore_green: uint16;
# fore_blue: uint16; back_red: uint16;
# back_green: uint16; back_blue: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_recolor_cursor*(c: ptr xcb_connection_t; cursor: xcb_cursor_t;
# fore_red: uint16; fore_green: uint16;
# fore_blue: uint16; back_red: uint16;
# back_green: uint16; back_blue: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_query_best_size*(c: ptr xcb_connection_t; _class: uint8;
# drawable: xcb_drawable_t; width: uint16; height: uint16): xcb_query_best_size_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_query_best_size_unchecked*(c: ptr xcb_connection_t; _class: uint8;
# drawable: xcb_drawable_t; width: uint16;
# height: uint16): xcb_query_best_size_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_query_best_size_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_query_best_size_reply*(c: ptr xcb_connection_t; cookie: xcb_query_best_size_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_query_best_size_reply_t
# proc xcb_query_extension_sizeof*(_buffer: pointer): cint
# ## *
# ## @brief check if extension is present
# ##
# ## @param c The connection
# ## @param name_len The length of \a name in bytes.
# ## @param name The name of the extension to query, for example "RANDR". This is case
# ## sensitive!
# ## @return A cookie
# ##
# ## Determines if the specified extension is present on this X11 server.
# ##
# ## Every extension has a unique `major_opcode` to identify requests, the minor
# ## opcodes and request formats are extension-specific. If the extension provides
# ## events and errors, the `first_event` and `first_error` fields in the reply are
# ## set accordingly.
# ##
# ## There should rarely be a need to use this request directly, XCB provides the
# ## `xcb_get_extension_data` function instead.
# ##
# ##
# proc xcb_query_extension*(c: ptr xcb_connection_t; name_len: uint16; name: cstring): xcb_query_extension_cookie_t
# ## *
# ## @brief check if extension is present
# ##
# ## @param c The connection
# ## @param name_len The length of \a name in bytes.
# ## @param name The name of the extension to query, for example "RANDR". This is case
# ## sensitive!
# ## @return A cookie
# ##
# ## Determines if the specified extension is present on this X11 server.
# ##
# ## Every extension has a unique `major_opcode` to identify requests, the minor
# ## opcodes and request formats are extension-specific. If the extension provides
# ## events and errors, the `first_event` and `first_error` fields in the reply are
# ## set accordingly.
# ##
# ## There should rarely be a need to use this request directly, XCB provides the
# ## `xcb_get_extension_data` function instead.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_query_extension_unchecked*(c: ptr xcb_connection_t; name_len: uint16;
# name: cstring): xcb_query_extension_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_query_extension_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_query_extension_reply*(c: ptr xcb_connection_t; cookie: xcb_query_extension_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_query_extension_reply_t
# proc xcb_list_extensions_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_list_extensions*(c: ptr xcb_connection_t): xcb_list_extensions_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_list_extensions_unchecked*(c: ptr xcb_connection_t): xcb_list_extensions_cookie_t
# proc xcb_list_extensions_names_length*(R: ptr xcb_list_extensions_reply_t): cint
# proc xcb_list_extensions_names_iterator*(R: ptr xcb_list_extensions_reply_t): xcb_str_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_list_extensions_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_list_extensions_reply*(c: ptr xcb_connection_t; cookie: xcb_list_extensions_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_list_extensions_reply_t
# proc xcb_change_keyboard_mapping_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_change_keyboard_mapping_checked*(c: ptr xcb_connection_t;
# keycode_count: uint8; first_keycode: xcb_keycode_t;
# keysyms_per_keycode: uint8; keysyms: ptr xcb_keysym_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_change_keyboard_mapping*(c: ptr xcb_connection_t; keycode_count: uint8;
# first_keycode: xcb_keycode_t;
# keysyms_per_keycode: uint8;
# keysyms: ptr xcb_keysym_t): xcb_void_cookie_t
# proc xcb_change_keyboard_mapping_keysyms*(
# R: ptr xcb_change_keyboard_mapping_request_t): ptr xcb_keysym_t
# proc xcb_change_keyboard_mapping_keysyms_length*(
# R: ptr xcb_change_keyboard_mapping_request_t): cint
# proc xcb_change_keyboard_mapping_keysyms_end*(
# R: ptr xcb_change_keyboard_mapping_request_t): xcb_generic_iterator_t
# proc xcb_get_keyboard_mapping_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_get_keyboard_mapping_unchecked*(c: ptr xcb_connection_t;
# first_keycode: xcb_keycode_t;
# count: uint8): xcb_get_keyboard_mapping_cookie_t
# proc xcb_get_keyboard_mapping_keysyms*(R: ptr xcb_get_keyboard_mapping_reply_t): ptr xcb_keysym_t
# proc xcb_get_keyboard_mapping_keysyms_length*(
# R: ptr xcb_get_keyboard_mapping_reply_t): cint
# proc xcb_get_keyboard_mapping_keysyms_end*(
# R: ptr xcb_get_keyboard_mapping_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_get_keyboard_mapping_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_change_keyboard_control_value_list_serialize*(_buffer: ptr pointer;
# value_mask: uint32; _aux: ptr xcb_change_keyboard_control_value_list_t): cint
# proc xcb_change_keyboard_control_value_list_unpack*(_buffer: pointer;
# value_mask: uint32; _aux: ptr xcb_change_keyboard_control_value_list_t): cint
# proc xcb_change_keyboard_control_value_list_sizeof*(_buffer: pointer;
# value_mask: uint32): cint
# proc xcb_change_keyboard_control_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_change_keyboard_control_checked*(c: ptr xcb_connection_t;
# value_mask: uint32; value_list: pointer): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_change_keyboard_control*(c: ptr xcb_connection_t; value_mask: uint32;
# value_list: pointer): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_change_keyboard_control_aux_checked*(c: ptr xcb_connection_t;
# value_mask: uint32; value_list: ptr xcb_change_keyboard_control_value_list_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_change_keyboard_control_aux*(c: ptr xcb_connection_t; value_mask: uint32;
# value_list: ptr xcb_change_keyboard_control_value_list_t): xcb_void_cookie_t
# proc xcb_change_keyboard_control_value_list*(
# R: ptr xcb_change_keyboard_control_request_t): pointer
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_get_keyboard_control*(c: ptr xcb_connection_t): xcb_get_keyboard_control_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_get_keyboard_control_unchecked*(c: ptr xcb_connection_t): xcb_get_keyboard_control_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_get_keyboard_control_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_get_keyboard_control_reply*(c: ptr xcb_connection_t; cookie: xcb_get_keyboard_control_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_get_keyboard_control_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_bell_checked*(c: ptr xcb_connection_t; percent: int8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_bell*(c: ptr xcb_connection_t; percent: int8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_change_pointer_control_checked*(c: ptr xcb_connection_t;
# acceleration_numerator: int16;
# acceleration_denominator: int16;
# threshold: int16;
# do_acceleration: uint8;
# do_threshold: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_change_pointer_control*(c: ptr xcb_connection_t;
# acceleration_numerator: int16;
# acceleration_denominator: int16;
# threshold: int16; do_acceleration: uint8;
# do_threshold: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_get_pointer_control*(c: ptr xcb_connection_t): xcb_get_pointer_control_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_get_pointer_control_unchecked*(c: ptr xcb_connection_t): xcb_get_pointer_control_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_get_pointer_control_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_get_pointer_control_reply*(c: ptr xcb_connection_t; cookie: xcb_get_pointer_control_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_get_pointer_control_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_set_screen_saver_checked*(c: ptr xcb_connection_t; timeout: int16;
# interval: int16; prefer_blanking: uint8;
# allow_exposures: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_set_screen_saver*(c: ptr xcb_connection_t; timeout: int16;
# interval: int16; prefer_blanking: uint8;
# allow_exposures: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_get_screen_saver*(c: ptr xcb_connection_t): xcb_get_screen_saver_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_get_screen_saver_unchecked*(c: ptr xcb_connection_t): xcb_get_screen_saver_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_get_screen_saver_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_get_screen_saver_reply*(c: ptr xcb_connection_t; cookie: xcb_get_screen_saver_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_get_screen_saver_reply_t
# proc xcb_change_hosts_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_change_hosts_checked*(c: ptr xcb_connection_t; mode: uint8;
# family: uint8; address_len: uint16;
# address: ptr uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_change_hosts*(c: ptr xcb_connection_t; mode: uint8; family: uint8;
# address_len: uint16; address: ptr uint8): xcb_void_cookie_t
# proc xcb_change_hosts_address*(R: ptr xcb_change_hosts_request_t): ptr uint8
# proc xcb_change_hosts_address_length*(R: ptr xcb_change_hosts_request_t): cint
# proc xcb_change_hosts_address_end*(R: ptr xcb_change_hosts_request_t): xcb_generic_iterator_t
# proc xcb_host_sizeof*(_buffer: pointer): cint
# proc xcb_host_address*(R: ptr xcb_host_t): ptr uint8
# proc xcb_host_address_length*(R: ptr xcb_host_t): cint
# proc xcb_host_address_end*(R: ptr xcb_host_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_host_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_host_t)
# ##
# proc xcb_host_next*(i: ptr xcb_host_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_host_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_host_end*(i: xcb_host_iterator_t): xcb_generic_iterator_t
# proc xcb_list_hosts_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_list_hosts*(c: ptr xcb_connection_t): xcb_list_hosts_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_list_hosts_unchecked*(c: ptr xcb_connection_t): xcb_list_hosts_cookie_t
# proc xcb_list_hosts_hosts_length*(R: ptr xcb_list_hosts_reply_t): cint
# proc xcb_list_hosts_hosts_iterator*(R: ptr xcb_list_hosts_reply_t): xcb_host_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_list_hosts_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_list_hosts_reply*(c: ptr xcb_connection_t; cookie: xcb_list_hosts_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_list_hosts_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_set_access_control_checked*(c: ptr xcb_connection_t; mode: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_set_access_control*(c: ptr xcb_connection_t; mode: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_set_close_down_mode_checked*(c: ptr xcb_connection_t; mode: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_set_close_down_mode*(c: ptr xcb_connection_t; mode: uint8): xcb_void_cookie_t
# ## *
# ## @brief kills a client
# ##
# ## @param c The connection
# ## @param resource Any resource belonging to the client (for example a Window), used to identify
# ## the client connection.
# ## \n
# ## The special value of `XCB_KILL_ALL_TEMPORARY`, the resources of all clients
# ## that have terminated in `RetainTemporary` (TODO) are destroyed.
# ## @return A cookie
# ##
# ## Forces a close down of the client that created the specified \a resource.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_kill_client_checked*(c: ptr xcb_connection_t; resource: uint32): xcb_void_cookie_t
# ## *
# ## @brief kills a client
# ##
# ## @param c The connection
# ## @param resource Any resource belonging to the client (for example a Window), used to identify
# ## the client connection.
# ## \n
# ## The special value of `XCB_KILL_ALL_TEMPORARY`, the resources of all clients
# ## that have terminated in `RetainTemporary` (TODO) are destroyed.
# ## @return A cookie
# ##
# ## Forces a close down of the client that created the specified \a resource.
# ##
# ##
# proc xcb_kill_client*(c: ptr xcb_connection_t; resource: uint32): xcb_void_cookie_t
# proc xcb_rotate_properties_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_rotate_properties_checked*(c: ptr xcb_connection_t; window: xcb_window_t;
# atoms_len: uint16; delta: int16;
# atoms: ptr xcb_atom_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_rotate_properties*(c: ptr xcb_connection_t; window: xcb_window_t;
# atoms_len: uint16; delta: int16;
# atoms: ptr xcb_atom_t): xcb_void_cookie_t
# proc xcb_rotate_properties_atoms*(R: ptr xcb_rotate_properties_request_t): ptr xcb_atom_t
# proc xcb_rotate_properties_atoms_length*(R: ptr xcb_rotate_properties_request_t): cint
# proc xcb_rotate_properties_atoms_end*(R: ptr xcb_rotate_properties_request_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_force_screen_saver_checked*(c: ptr xcb_connection_t; mode: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_force_screen_saver*(c: ptr xcb_connection_t; mode: uint8): xcb_void_cookie_t
# proc xcb_set_pointer_mapping_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_set_pointer_mapping*(c: ptr xcb_connection_t; map_len: uint8;
# map: ptr uint8): xcb_set_pointer_mapping_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_set_pointer_mapping_unchecked*(c: ptr xcb_connection_t; map_len: uint8;
# map: ptr uint8): xcb_set_pointer_mapping_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_set_pointer_mapping_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_set_pointer_mapping_reply*(c: ptr xcb_connection_t; cookie: xcb_set_pointer_mapping_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_set_pointer_mapping_reply_t
# proc xcb_get_pointer_mapping_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_get_pointer_mapping*(c: ptr xcb_connection_t): xcb_get_pointer_mapping_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_get_pointer_mapping_unchecked*(c: ptr xcb_connection_t): xcb_get_pointer_mapping_cookie_t
# proc xcb_get_pointer_mapping_map*(R: ptr xcb_get_pointer_mapping_reply_t): ptr uint8
# proc xcb_get_pointer_mapping_map_length*(R: ptr xcb_get_pointer_mapping_reply_t): cint
# proc xcb_get_pointer_mapping_map_end*(R: ptr xcb_get_pointer_mapping_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_get_pointer_mapping_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_get_pointer_mapping_reply*(c: ptr xcb_connection_t; cookie: xcb_get_pointer_mapping_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_get_pointer_mapping_reply_t
# proc xcb_set_modifier_mapping_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_set_modifier_mapping*(c: ptr xcb_connection_t;
# keycodes_per_modifier: uint8;
# keycodes: ptr xcb_keycode_t): xcb_set_modifier_mapping_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_set_modifier_mapping_unchecked*(c: ptr xcb_connection_t;
# keycodes_per_modifier: uint8;
# keycodes: ptr xcb_keycode_t): xcb_set_modifier_mapping_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_set_modifier_mapping_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_set_modifier_mapping_reply*(c: ptr xcb_connection_t; cookie: xcb_set_modifier_mapping_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_set_modifier_mapping_reply_t
# proc xcb_get_modifier_mapping_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_get_modifier_mapping*(c: ptr xcb_connection_t): xcb_get_modifier_mapping_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_get_modifier_mapping_unchecked*(c: ptr xcb_connection_t): xcb_get_modifier_mapping_cookie_t
# proc xcb_get_modifier_mapping_keycodes*(R: ptr xcb_get_modifier_mapping_reply_t): ptr xcb_keycode_t
# proc xcb_get_modifier_mapping_keycodes_length*(
# R: ptr xcb_get_modifier_mapping_reply_t): cint
# proc xcb_get_modifier_mapping_keycodes_end*(
# R: ptr xcb_get_modifier_mapping_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_get_modifier_mapping_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_get_modifier_mapping_reply*(c: ptr xcb_connection_t; cookie: xcb_get_modifier_mapping_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_get_modifier_mapping_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_no_operation_checked*(c: ptr xcb_connection_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_no_operation*(c: ptr xcb_connection_t): xcb_void_cookie_t
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from xselinux.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB_SELinux_API XCB SELinux API
# ## @brief SELinux XCB Protocol Implementation.
# ## @{
# ##
# import
# xcb, xproto
# const
# XCB_SELINUX_MAJOR_VERSION* = 1
# XCB_SELINUX_MINOR_VERSION* = 0
# var xcb_selinux_id*: xcb_extension_t
# ## *
# ## @brief xcb_selinux_query_version_cookie_t
# ##
# type
# xcb_selinux_query_version_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_selinux_query_version.
# const
# XCB_SELINUX_QUERY_VERSION* = 0
# ## *
# ## @brief xcb_selinux_query_version_request_t
# ##
# type
# xcb_selinux_query_version_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# client_major*: uint8
# client_minor*: uint8
# ## *
# ## @brief xcb_selinux_query_version_reply_t
# ##
# type
# xcb_selinux_query_version_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# server_major*: uint16
# server_minor*: uint16
# ## * Opcode for xcb_selinux_set_device_create_context.
# const
# XCB_SELINUX_SET_DEVICE_CREATE_CONTEXT* = 1
# ## *
# ## @brief xcb_selinux_set_device_create_context_request_t
# ##
# type
# xcb_selinux_set_device_create_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context_len*: uint32
# ## *
# ## @brief xcb_selinux_get_device_create_context_cookie_t
# ##
# type
# xcb_selinux_get_device_create_context_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_selinux_get_device_create_context.
# const
# XCB_SELINUX_GET_DEVICE_CREATE_CONTEXT* = 2
# ## *
# ## @brief xcb_selinux_get_device_create_context_request_t
# ##
# type
# xcb_selinux_get_device_create_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_selinux_get_device_create_context_reply_t
# ##
# type
# xcb_selinux_get_device_create_context_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# context_len*: uint32
# pad1*: array[20, uint8]
# ## * Opcode for xcb_selinux_set_device_context.
# const
# XCB_SELINUX_SET_DEVICE_CONTEXT* = 3
# ## *
# ## @brief xcb_selinux_set_device_context_request_t
# ##
# type
# xcb_selinux_set_device_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# device*: uint32
# context_len*: uint32
# ## *
# ## @brief xcb_selinux_get_device_context_cookie_t
# ##
# type
# xcb_selinux_get_device_context_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_selinux_get_device_context.
# const
# XCB_SELINUX_GET_DEVICE_CONTEXT* = 4
# ## *
# ## @brief xcb_selinux_get_device_context_request_t
# ##
# type
# xcb_selinux_get_device_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# device*: uint32
# ## *
# ## @brief xcb_selinux_get_device_context_reply_t
# ##
# type
# xcb_selinux_get_device_context_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# context_len*: uint32
# pad1*: array[20, uint8]
# ## * Opcode for xcb_selinux_set_window_create_context.
# const
# XCB_SELINUX_SET_WINDOW_CREATE_CONTEXT* = 5
# ## *
# ## @brief xcb_selinux_set_window_create_context_request_t
# ##
# type
# xcb_selinux_set_window_create_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context_len*: uint32
# ## *
# ## @brief xcb_selinux_get_window_create_context_cookie_t
# ##
# type
# xcb_selinux_get_window_create_context_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_selinux_get_window_create_context.
# const
# XCB_SELINUX_GET_WINDOW_CREATE_CONTEXT* = 6
# ## *
# ## @brief xcb_selinux_get_window_create_context_request_t
# ##
# type
# xcb_selinux_get_window_create_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_selinux_get_window_create_context_reply_t
# ##
# type
# xcb_selinux_get_window_create_context_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# context_len*: uint32
# pad1*: array[20, uint8]
# ## *
# ## @brief xcb_selinux_get_window_context_cookie_t
# ##
# type
# xcb_selinux_get_window_context_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_selinux_get_window_context.
# const
# XCB_SELINUX_GET_WINDOW_CONTEXT* = 7
# ## *
# ## @brief xcb_selinux_get_window_context_request_t
# ##
# type
# xcb_selinux_get_window_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# ## *
# ## @brief xcb_selinux_get_window_context_reply_t
# ##
# type
# xcb_selinux_get_window_context_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# context_len*: uint32
# pad1*: array[20, uint8]
# ## *
# ## @brief xcb_selinux_list_item_t
# ##
# type
# xcb_selinux_list_item_t* {.bycopy.} = object
# name*: xcb_atom_t
# object_context_len*: uint32
# data_context_len*: uint32
# ## *
# ## @brief xcb_selinux_list_item_iterator_t
# ##
# type
# xcb_selinux_list_item_iterator_t* {.bycopy.} = object
# data*: ptr xcb_selinux_list_item_t
# rem*: cint
# index*: cint
# ## * Opcode for xcb_selinux_set_property_create_context.
# const
# XCB_SELINUX_SET_PROPERTY_CREATE_CONTEXT* = 8
# ## *
# ## @brief xcb_selinux_set_property_create_context_request_t
# ##
# type
# xcb_selinux_set_property_create_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context_len*: uint32
# ## *
# ## @brief xcb_selinux_get_property_create_context_cookie_t
# ##
# type
# xcb_selinux_get_property_create_context_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_selinux_get_property_create_context.
# const
# XCB_SELINUX_GET_PROPERTY_CREATE_CONTEXT* = 9
# ## *
# ## @brief xcb_selinux_get_property_create_context_request_t
# ##
# type
# xcb_selinux_get_property_create_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_selinux_get_property_create_context_reply_t
# ##
# type
# xcb_selinux_get_property_create_context_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# context_len*: uint32
# pad1*: array[20, uint8]
# ## * Opcode for xcb_selinux_set_property_use_context.
# const
# XCB_SELINUX_SET_PROPERTY_USE_CONTEXT* = 10
# ## *
# ## @brief xcb_selinux_set_property_use_context_request_t
# ##
# type
# xcb_selinux_set_property_use_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context_len*: uint32
# ## *
# ## @brief xcb_selinux_get_property_use_context_cookie_t
# ##
# type
# xcb_selinux_get_property_use_context_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_selinux_get_property_use_context.
# const
# XCB_SELINUX_GET_PROPERTY_USE_CONTEXT* = 11
# ## *
# ## @brief xcb_selinux_get_property_use_context_request_t
# ##
# type
# xcb_selinux_get_property_use_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_selinux_get_property_use_context_reply_t
# ##
# type
# xcb_selinux_get_property_use_context_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# context_len*: uint32
# pad1*: array[20, uint8]
# ## *
# ## @brief xcb_selinux_get_property_context_cookie_t
# ##
# type
# xcb_selinux_get_property_context_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_selinux_get_property_context.
# const
# XCB_SELINUX_GET_PROPERTY_CONTEXT* = 12
# ## *
# ## @brief xcb_selinux_get_property_context_request_t
# ##
# type
# xcb_selinux_get_property_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# property*: xcb_atom_t
# ## *
# ## @brief xcb_selinux_get_property_context_reply_t
# ##
# type
# xcb_selinux_get_property_context_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# context_len*: uint32
# pad1*: array[20, uint8]
# ## *
# ## @brief xcb_selinux_get_property_data_context_cookie_t
# ##
# type
# xcb_selinux_get_property_data_context_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_selinux_get_property_data_context.
# const
# XCB_SELINUX_GET_PROPERTY_DATA_CONTEXT* = 13
# ## *
# ## @brief xcb_selinux_get_property_data_context_request_t
# ##
# type
# xcb_selinux_get_property_data_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# property*: xcb_atom_t
# ## *
# ## @brief xcb_selinux_get_property_data_context_reply_t
# ##
# type
# xcb_selinux_get_property_data_context_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# context_len*: uint32
# pad1*: array[20, uint8]
# ## *
# ## @brief xcb_selinux_list_properties_cookie_t
# ##
# type
# xcb_selinux_list_properties_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_selinux_list_properties.
# const
# XCB_SELINUX_LIST_PROPERTIES* = 14
# ## *
# ## @brief xcb_selinux_list_properties_request_t
# ##
# type
# xcb_selinux_list_properties_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# ## *
# ## @brief xcb_selinux_list_properties_reply_t
# ##
# type
# xcb_selinux_list_properties_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# properties_len*: uint32
# pad1*: array[20, uint8]
# ## * Opcode for xcb_selinux_set_selection_create_context.
# const
# XCB_SELINUX_SET_SELECTION_CREATE_CONTEXT* = 15
# ## *
# ## @brief xcb_selinux_set_selection_create_context_request_t
# ##
# type
# xcb_selinux_set_selection_create_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context_len*: uint32
# ## *
# ## @brief xcb_selinux_get_selection_create_context_cookie_t
# ##
# type
# xcb_selinux_get_selection_create_context_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_selinux_get_selection_create_context.
# const
# XCB_SELINUX_GET_SELECTION_CREATE_CONTEXT* = 16
# ## *
# ## @brief xcb_selinux_get_selection_create_context_request_t
# ##
# type
# xcb_selinux_get_selection_create_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_selinux_get_selection_create_context_reply_t
# ##
# type
# xcb_selinux_get_selection_create_context_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# context_len*: uint32
# pad1*: array[20, uint8]
# ## * Opcode for xcb_selinux_set_selection_use_context.
# const
# XCB_SELINUX_SET_SELECTION_USE_CONTEXT* = 17
# ## *
# ## @brief xcb_selinux_set_selection_use_context_request_t
# ##
# type
# xcb_selinux_set_selection_use_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context_len*: uint32
# ## *
# ## @brief xcb_selinux_get_selection_use_context_cookie_t
# ##
# type
# xcb_selinux_get_selection_use_context_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_selinux_get_selection_use_context.
# const
# XCB_SELINUX_GET_SELECTION_USE_CONTEXT* = 18
# ## *
# ## @brief xcb_selinux_get_selection_use_context_request_t
# ##
# type
# xcb_selinux_get_selection_use_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_selinux_get_selection_use_context_reply_t
# ##
# type
# xcb_selinux_get_selection_use_context_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# context_len*: uint32
# pad1*: array[20, uint8]
# ## *
# ## @brief xcb_selinux_get_selection_context_cookie_t
# ##
# type
# xcb_selinux_get_selection_context_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_selinux_get_selection_context.
# const
# XCB_SELINUX_GET_SELECTION_CONTEXT* = 19
# ## *
# ## @brief xcb_selinux_get_selection_context_request_t
# ##
# type
# xcb_selinux_get_selection_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# selection*: xcb_atom_t
# ## *
# ## @brief xcb_selinux_get_selection_context_reply_t
# ##
# type
# xcb_selinux_get_selection_context_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# context_len*: uint32
# pad1*: array[20, uint8]
# ## *
# ## @brief xcb_selinux_get_selection_data_context_cookie_t
# ##
# type
# xcb_selinux_get_selection_data_context_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_selinux_get_selection_data_context.
# const
# XCB_SELINUX_GET_SELECTION_DATA_CONTEXT* = 20
# ## *
# ## @brief xcb_selinux_get_selection_data_context_request_t
# ##
# type
# xcb_selinux_get_selection_data_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# selection*: xcb_atom_t
# ## *
# ## @brief xcb_selinux_get_selection_data_context_reply_t
# ##
# type
# xcb_selinux_get_selection_data_context_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# context_len*: uint32
# pad1*: array[20, uint8]
# ## *
# ## @brief xcb_selinux_list_selections_cookie_t
# ##
# type
# xcb_selinux_list_selections_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_selinux_list_selections.
# const
# XCB_SELINUX_LIST_SELECTIONS* = 21
# ## *
# ## @brief xcb_selinux_list_selections_request_t
# ##
# type
# xcb_selinux_list_selections_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_selinux_list_selections_reply_t
# ##
# type
# xcb_selinux_list_selections_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# selections_len*: uint32
# pad1*: array[20, uint8]
# ## *
# ## @brief xcb_selinux_get_client_context_cookie_t
# ##
# type
# xcb_selinux_get_client_context_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_selinux_get_client_context.
# const
# XCB_SELINUX_GET_CLIENT_CONTEXT* = 22
# ## *
# ## @brief xcb_selinux_get_client_context_request_t
# ##
# type
# xcb_selinux_get_client_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# resource*: uint32
# ## *
# ## @brief xcb_selinux_get_client_context_reply_t
# ##
# type
# xcb_selinux_get_client_context_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# context_len*: uint32
# pad1*: array[20, uint8]
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_selinux_query_version*(c: ptr xcb_connection_t; client_major: uint8;
# client_minor: uint8): xcb_selinux_query_version_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_selinux_query_version_unchecked*(c: ptr xcb_connection_t;
# client_major: uint8; client_minor: uint8): xcb_selinux_query_version_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_selinux_query_version_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_selinux_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_query_version_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_query_version_reply_t
# proc xcb_selinux_set_device_create_context_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_selinux_set_device_create_context_checked*(c: ptr xcb_connection_t;
# context_len: uint32; context: cstring): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_selinux_set_device_create_context*(c: ptr xcb_connection_t;
# context_len: uint32; context: cstring): xcb_void_cookie_t
# proc xcb_selinux_set_device_create_context_context*(
# R: ptr xcb_selinux_set_device_create_context_request_t): cstring
# proc xcb_selinux_set_device_create_context_context_length*(
# R: ptr xcb_selinux_set_device_create_context_request_t): cint
# proc xcb_selinux_set_device_create_context_context_end*(
# R: ptr xcb_selinux_set_device_create_context_request_t): xcb_generic_iterator_t
# proc xcb_selinux_get_device_create_context_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_selinux_get_device_create_context*(c: ptr xcb_connection_t): xcb_selinux_get_device_create_context_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_selinux_get_device_create_context_unchecked*(c: ptr xcb_connection_t): xcb_selinux_get_device_create_context_cookie_t
# proc xcb_selinux_get_device_create_context_context*(
# R: ptr xcb_selinux_get_device_create_context_reply_t): cstring
# proc xcb_selinux_get_device_create_context_context_length*(
# R: ptr xcb_selinux_get_device_create_context_reply_t): cint
# proc xcb_selinux_get_device_create_context_context_end*(
# R: ptr xcb_selinux_get_device_create_context_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_selinux_get_device_create_context_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_selinux_get_device_create_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_device_create_context_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_device_create_context_reply_t
# proc xcb_selinux_set_device_context_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_selinux_set_device_context_checked*(c: ptr xcb_connection_t;
# device: uint32; context_len: uint32; context: cstring): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_selinux_set_device_context*(c: ptr xcb_connection_t; device: uint32;
# context_len: uint32; context: cstring): xcb_void_cookie_t
# proc xcb_selinux_set_device_context_context*(
# R: ptr xcb_selinux_set_device_context_request_t): cstring
# proc xcb_selinux_set_device_context_context_length*(
# R: ptr xcb_selinux_set_device_context_request_t): cint
# proc xcb_selinux_set_device_context_context_end*(
# R: ptr xcb_selinux_set_device_context_request_t): xcb_generic_iterator_t
# proc xcb_selinux_get_device_context_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_selinux_get_device_context*(c: ptr xcb_connection_t; device: uint32): xcb_selinux_get_device_context_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_selinux_get_device_context_unchecked*(c: ptr xcb_connection_t;
# device: uint32): xcb_selinux_get_device_context_cookie_t
# proc xcb_selinux_get_device_context_context*(
# R: ptr xcb_selinux_get_device_context_reply_t): cstring
# proc xcb_selinux_get_device_context_context_length*(
# R: ptr xcb_selinux_get_device_context_reply_t): cint
# proc xcb_selinux_get_device_context_context_end*(
# R: ptr xcb_selinux_get_device_context_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_selinux_get_device_context_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_selinux_get_device_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_device_context_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_device_context_reply_t
# proc xcb_selinux_set_window_create_context_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_selinux_set_window_create_context_checked*(c: ptr xcb_connection_t;
# context_len: uint32; context: cstring): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_selinux_set_window_create_context*(c: ptr xcb_connection_t;
# context_len: uint32; context: cstring): xcb_void_cookie_t
# proc xcb_selinux_set_window_create_context_context*(
# R: ptr xcb_selinux_set_window_create_context_request_t): cstring
# proc xcb_selinux_set_window_create_context_context_length*(
# R: ptr xcb_selinux_set_window_create_context_request_t): cint
# proc xcb_selinux_set_window_create_context_context_end*(
# R: ptr xcb_selinux_set_window_create_context_request_t): xcb_generic_iterator_t
# proc xcb_selinux_get_window_create_context_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_selinux_get_window_create_context*(c: ptr xcb_connection_t): xcb_selinux_get_window_create_context_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_selinux_get_window_create_context_unchecked*(c: ptr xcb_connection_t): xcb_selinux_get_window_create_context_cookie_t
# proc xcb_selinux_get_window_create_context_context*(
# R: ptr xcb_selinux_get_window_create_context_reply_t): cstring
# proc xcb_selinux_get_window_create_context_context_length*(
# R: ptr xcb_selinux_get_window_create_context_reply_t): cint
# proc xcb_selinux_get_window_create_context_context_end*(
# R: ptr xcb_selinux_get_window_create_context_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_selinux_get_window_create_context_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_selinux_get_window_create_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_window_create_context_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_window_create_context_reply_t
# proc xcb_selinux_get_window_context_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_selinux_get_window_context*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_selinux_get_window_context_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_selinux_get_window_context_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t): xcb_selinux_get_window_context_cookie_t
# proc xcb_selinux_get_window_context_context*(
# R: ptr xcb_selinux_get_window_context_reply_t): cstring
# proc xcb_selinux_get_window_context_context_length*(
# R: ptr xcb_selinux_get_window_context_reply_t): cint
# proc xcb_selinux_get_window_context_context_end*(
# R: ptr xcb_selinux_get_window_context_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_selinux_get_window_context_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_selinux_get_window_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_window_context_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_window_context_reply_t
# proc xcb_selinux_list_item_sizeof*(_buffer: pointer): cint
# proc xcb_selinux_list_item_object_context*(R: ptr xcb_selinux_list_item_t): cstring
# proc xcb_selinux_list_item_object_context_length*(R: ptr xcb_selinux_list_item_t): cint
# proc xcb_selinux_list_item_object_context_end*(R: ptr xcb_selinux_list_item_t): xcb_generic_iterator_t
# proc xcb_selinux_list_item_data_context*(R: ptr xcb_selinux_list_item_t): cstring
# proc xcb_selinux_list_item_data_context_length*(R: ptr xcb_selinux_list_item_t): cint
# proc xcb_selinux_list_item_data_context_end*(R: ptr xcb_selinux_list_item_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_selinux_list_item_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_selinux_list_item_t)
# ##
# proc xcb_selinux_list_item_next*(i: ptr xcb_selinux_list_item_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_selinux_list_item_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_selinux_list_item_end*(i: xcb_selinux_list_item_iterator_t): xcb_generic_iterator_t
# proc xcb_selinux_set_property_create_context_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_selinux_set_property_create_context_checked*(c: ptr xcb_connection_t;
# context_len: uint32; context: cstring): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_selinux_set_property_create_context*(c: ptr xcb_connection_t;
# context_len: uint32; context: cstring): xcb_void_cookie_t
# proc xcb_selinux_set_property_create_context_context*(
# R: ptr xcb_selinux_set_property_create_context_request_t): cstring
# proc xcb_selinux_set_property_create_context_context_length*(
# R: ptr xcb_selinux_set_property_create_context_request_t): cint
# proc xcb_selinux_set_property_create_context_context_end*(
# R: ptr xcb_selinux_set_property_create_context_request_t): xcb_generic_iterator_t
# proc xcb_selinux_get_property_create_context_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_selinux_get_property_create_context*(c: ptr xcb_connection_t): xcb_selinux_get_property_create_context_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_selinux_get_property_create_context_unchecked*(c: ptr xcb_connection_t): xcb_selinux_get_property_create_context_cookie_t
# proc xcb_selinux_get_property_create_context_context*(
# R: ptr xcb_selinux_get_property_create_context_reply_t): cstring
# proc xcb_selinux_get_property_create_context_context_length*(
# R: ptr xcb_selinux_get_property_create_context_reply_t): cint
# proc xcb_selinux_get_property_create_context_context_end*(
# R: ptr xcb_selinux_get_property_create_context_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_selinux_get_property_create_context_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_selinux_get_property_create_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_property_create_context_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_property_create_context_reply_t
# proc xcb_selinux_set_property_use_context_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_selinux_set_property_use_context_checked*(c: ptr xcb_connection_t;
# context_len: uint32; context: cstring): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_selinux_set_property_use_context*(c: ptr xcb_connection_t;
# context_len: uint32; context: cstring): xcb_void_cookie_t
# proc xcb_selinux_set_property_use_context_context*(
# R: ptr xcb_selinux_set_property_use_context_request_t): cstring
# proc xcb_selinux_set_property_use_context_context_length*(
# R: ptr xcb_selinux_set_property_use_context_request_t): cint
# proc xcb_selinux_set_property_use_context_context_end*(
# R: ptr xcb_selinux_set_property_use_context_request_t): xcb_generic_iterator_t
# proc xcb_selinux_get_property_use_context_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_selinux_get_property_use_context*(c: ptr xcb_connection_t): xcb_selinux_get_property_use_context_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_selinux_get_property_use_context_unchecked*(c: ptr xcb_connection_t): xcb_selinux_get_property_use_context_cookie_t
# proc xcb_selinux_get_property_use_context_context*(
# R: ptr xcb_selinux_get_property_use_context_reply_t): cstring
# proc xcb_selinux_get_property_use_context_context_length*(
# R: ptr xcb_selinux_get_property_use_context_reply_t): cint
# proc xcb_selinux_get_property_use_context_context_end*(
# R: ptr xcb_selinux_get_property_use_context_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_selinux_get_property_use_context_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_selinux_get_property_use_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_property_use_context_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_property_use_context_reply_t
# proc xcb_selinux_get_property_context_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_selinux_get_property_context*(c: ptr xcb_connection_t;
# window: xcb_window_t; property: xcb_atom_t): xcb_selinux_get_property_context_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_selinux_get_property_context_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t; property: xcb_atom_t): xcb_selinux_get_property_context_cookie_t
# proc xcb_selinux_get_property_context_context*(
# R: ptr xcb_selinux_get_property_context_reply_t): cstring
# proc xcb_selinux_get_property_context_context_length*(
# R: ptr xcb_selinux_get_property_context_reply_t): cint
# proc xcb_selinux_get_property_context_context_end*(
# R: ptr xcb_selinux_get_property_context_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_selinux_get_property_context_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_selinux_get_property_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_property_context_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_property_context_reply_t
# proc xcb_selinux_get_property_data_context_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_selinux_get_property_data_context*(c: ptr xcb_connection_t;
# window: xcb_window_t; property: xcb_atom_t): xcb_selinux_get_property_data_context_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_selinux_get_property_data_context_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t; property: xcb_atom_t): xcb_selinux_get_property_data_context_cookie_t
# proc xcb_selinux_get_property_data_context_context*(
# R: ptr xcb_selinux_get_property_data_context_reply_t): cstring
# proc xcb_selinux_get_property_data_context_context_length*(
# R: ptr xcb_selinux_get_property_data_context_reply_t): cint
# proc xcb_selinux_get_property_data_context_context_end*(
# R: ptr xcb_selinux_get_property_data_context_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_selinux_get_property_data_context_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_selinux_get_property_data_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_property_data_context_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_property_data_context_reply_t
# proc xcb_selinux_list_properties_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_selinux_list_properties*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_selinux_list_properties_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_selinux_list_properties_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t): xcb_selinux_list_properties_cookie_t
# proc xcb_selinux_list_properties_properties_length*(
# R: ptr xcb_selinux_list_properties_reply_t): cint
# proc xcb_selinux_list_properties_properties_iterator*(
# R: ptr xcb_selinux_list_properties_reply_t): xcb_selinux_list_item_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_selinux_list_properties_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_selinux_list_properties_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_list_properties_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_list_properties_reply_t
# proc xcb_selinux_set_selection_create_context_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_selinux_set_selection_create_context_checked*(c: ptr xcb_connection_t;
# context_len: uint32; context: cstring): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_selinux_set_selection_create_context*(c: ptr xcb_connection_t;
# context_len: uint32; context: cstring): xcb_void_cookie_t
# proc xcb_selinux_set_selection_create_context_context*(
# R: ptr xcb_selinux_set_selection_create_context_request_t): cstring
# proc xcb_selinux_set_selection_create_context_context_length*(
# R: ptr xcb_selinux_set_selection_create_context_request_t): cint
# proc xcb_selinux_set_selection_create_context_context_end*(
# R: ptr xcb_selinux_set_selection_create_context_request_t): xcb_generic_iterator_t
# proc xcb_selinux_get_selection_create_context_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_selinux_get_selection_create_context*(c: ptr xcb_connection_t): xcb_selinux_get_selection_create_context_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_selinux_get_selection_create_context_unchecked*(c: ptr xcb_connection_t): xcb_selinux_get_selection_create_context_cookie_t
# proc xcb_selinux_get_selection_create_context_context*(
# R: ptr xcb_selinux_get_selection_create_context_reply_t): cstring
# proc xcb_selinux_get_selection_create_context_context_length*(
# R: ptr xcb_selinux_get_selection_create_context_reply_t): cint
# proc xcb_selinux_get_selection_create_context_context_end*(
# R: ptr xcb_selinux_get_selection_create_context_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_selinux_get_selection_create_context_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_selinux_get_selection_create_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_selection_create_context_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_selection_create_context_reply_t
# proc xcb_selinux_set_selection_use_context_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_selinux_set_selection_use_context_checked*(c: ptr xcb_connection_t;
# context_len: uint32; context: cstring): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_selinux_set_selection_use_context*(c: ptr xcb_connection_t;
# context_len: uint32; context: cstring): xcb_void_cookie_t
# proc xcb_selinux_set_selection_use_context_context*(
# R: ptr xcb_selinux_set_selection_use_context_request_t): cstring
# proc xcb_selinux_set_selection_use_context_context_length*(
# R: ptr xcb_selinux_set_selection_use_context_request_t): cint
# proc xcb_selinux_set_selection_use_context_context_end*(
# R: ptr xcb_selinux_set_selection_use_context_request_t): xcb_generic_iterator_t
# proc xcb_selinux_get_selection_use_context_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_selinux_get_selection_use_context*(c: ptr xcb_connection_t): xcb_selinux_get_selection_use_context_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_selinux_get_selection_use_context_unchecked*(c: ptr xcb_connection_t): xcb_selinux_get_selection_use_context_cookie_t
# proc xcb_selinux_get_selection_use_context_context*(
# R: ptr xcb_selinux_get_selection_use_context_reply_t): cstring
# proc xcb_selinux_get_selection_use_context_context_length*(
# R: ptr xcb_selinux_get_selection_use_context_reply_t): cint
# proc xcb_selinux_get_selection_use_context_context_end*(
# R: ptr xcb_selinux_get_selection_use_context_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_selinux_get_selection_use_context_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_selinux_get_selection_use_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_selection_use_context_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_selection_use_context_reply_t
# proc xcb_selinux_get_selection_context_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_selinux_get_selection_context*(c: ptr xcb_connection_t;
# selection: xcb_atom_t): xcb_selinux_get_selection_context_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_selinux_get_selection_context_unchecked*(c: ptr xcb_connection_t;
# selection: xcb_atom_t): xcb_selinux_get_selection_context_cookie_t
# proc xcb_selinux_get_selection_context_context*(
# R: ptr xcb_selinux_get_selection_context_reply_t): cstring
# proc xcb_selinux_get_selection_context_context_length*(
# R: ptr xcb_selinux_get_selection_context_reply_t): cint
# proc xcb_selinux_get_selection_context_context_end*(
# R: ptr xcb_selinux_get_selection_context_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_selinux_get_selection_context_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_selinux_get_selection_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_selection_context_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_selection_context_reply_t
# proc xcb_selinux_get_selection_data_context_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_selinux_get_selection_data_context*(c: ptr xcb_connection_t;
# selection: xcb_atom_t): xcb_selinux_get_selection_data_context_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_selinux_get_selection_data_context_unchecked*(c: ptr xcb_connection_t;
# selection: xcb_atom_t): xcb_selinux_get_selection_data_context_cookie_t
# proc xcb_selinux_get_selection_data_context_context*(
# R: ptr xcb_selinux_get_selection_data_context_reply_t): cstring
# proc xcb_selinux_get_selection_data_context_context_length*(
# R: ptr xcb_selinux_get_selection_data_context_reply_t): cint
# proc xcb_selinux_get_selection_data_context_context_end*(
# R: ptr xcb_selinux_get_selection_data_context_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_selinux_get_selection_data_context_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_selinux_get_selection_data_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_selection_data_context_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_selection_data_context_reply_t
# proc xcb_selinux_list_selections_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_selinux_list_selections*(c: ptr xcb_connection_t): xcb_selinux_list_selections_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_selinux_list_selections_unchecked*(c: ptr xcb_connection_t): xcb_selinux_list_selections_cookie_t
# proc xcb_selinux_list_selections_selections_length*(
# R: ptr xcb_selinux_list_selections_reply_t): cint
# proc xcb_selinux_list_selections_selections_iterator*(
# R: ptr xcb_selinux_list_selections_reply_t): xcb_selinux_list_item_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_selinux_list_selections_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_selinux_list_selections_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_list_selections_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_list_selections_reply_t
# proc xcb_selinux_get_client_context_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_selinux_get_client_context*(c: ptr xcb_connection_t; resource: uint32): xcb_selinux_get_client_context_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_selinux_get_client_context_unchecked*(c: ptr xcb_connection_t;
# resource: uint32): xcb_selinux_get_client_context_cookie_t
# proc xcb_selinux_get_client_context_context*(
# R: ptr xcb_selinux_get_client_context_reply_t): cstring
# proc xcb_selinux_get_client_context_context_length*(
# R: ptr xcb_selinux_get_client_context_reply_t): cint
# proc xcb_selinux_get_client_context_context_end*(
# R: ptr xcb_selinux_get_client_context_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_selinux_get_client_context_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_selinux_get_client_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_client_context_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_client_context_reply_t
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from xtest.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB_Test_API XCB Test API
# ## @brief Test XCB Protocol Implementation.
# ## @{
# ##
# import
# xcb, xproto
# const
# XCB_TEST_MAJOR_VERSION* = 2
# XCB_TEST_MINOR_VERSION* = 2
# var xcb_test_id*: xcb_extension_t
# ## *
# ## @brief xcb_test_get_version_cookie_t
# ##
# type
# xcb_test_get_version_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_test_get_version.
# const
# XCB_TEST_GET_VERSION* = 0
# ## *
# ## @brief xcb_test_get_version_request_t
# ##
# type
# xcb_test_get_version_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# major_version*: uint8
# pad0*: uint8
# minor_version*: uint16
# ## *
# ## @brief xcb_test_get_version_reply_t
# ##
# type
# xcb_test_get_version_reply_t* {.bycopy.} = object
# response_type*: uint8
# major_version*: uint8
# sequence*: uint16
# length*: uint32
# minor_version*: uint16
# xcb_test_cursor_t* = enum
# XCB_TEST_CURSOR_NONE = 0, XCB_TEST_CURSOR_CURRENT = 1
# ## *
# ## @brief xcb_test_compare_cursor_cookie_t
# ##
# type
# xcb_test_compare_cursor_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_test_compare_cursor.
# const
# XCB_TEST_COMPARE_CURSOR* = 1
# ## *
# ## @brief xcb_test_compare_cursor_request_t
# ##
# type
# xcb_test_compare_cursor_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# cursor*: xcb_cursor_t
# ## *
# ## @brief xcb_test_compare_cursor_reply_t
# ##
# type
# xcb_test_compare_cursor_reply_t* {.bycopy.} = object
# response_type*: uint8
# same*: uint8
# sequence*: uint16
# length*: uint32
# ## * Opcode for xcb_test_fake_input.
# const
# XCB_TEST_FAKE_INPUT* = 2
# ## *
# ## @brief xcb_test_fake_input_request_t
# ##
# type
# xcb_test_fake_input_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# `type`*: uint8
# detail*: uint8
# pad0*: array[2, uint8]
# time*: uint32
# root*: xcb_window_t
# pad1*: array[8, uint8]
# rootX*: int16
# rootY*: int16
# pad2*: array[7, uint8]
# deviceid*: uint8
# ## * Opcode for xcb_test_grab_control.
# const
# XCB_TEST_GRAB_CONTROL* = 3
# ## *
# ## @brief xcb_test_grab_control_request_t
# ##
# type
# xcb_test_grab_control_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# impervious*: uint8
# pad0*: array[3, uint8]
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_test_get_version*(c: ptr xcb_connection_t; major_version: uint8;
# minor_version: uint16): xcb_test_get_version_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_test_get_version_unchecked*(c: ptr xcb_connection_t;
# major_version: uint8;
# minor_version: uint16): xcb_test_get_version_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_test_get_version_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_test_get_version_reply*(c: ptr xcb_connection_t; cookie: xcb_test_get_version_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_test_get_version_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_test_compare_cursor*(c: ptr xcb_connection_t; window: xcb_window_t;
# cursor: xcb_cursor_t): xcb_test_compare_cursor_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_test_compare_cursor_unchecked*(c: ptr xcb_connection_t;
# window: xcb_window_t; cursor: xcb_cursor_t): xcb_test_compare_cursor_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_test_compare_cursor_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_test_compare_cursor_reply*(c: ptr xcb_connection_t; cookie: xcb_test_compare_cursor_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_test_compare_cursor_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_test_fake_input_checked*(c: ptr xcb_connection_t; `type`: uint8;
# detail: uint8; time: uint32;
# root: xcb_window_t; rootX: int16; rootY: int16;
# deviceid: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_test_fake_input*(c: ptr xcb_connection_t; `type`: uint8; detail: uint8;
# time: uint32; root: xcb_window_t; rootX: int16;
# rootY: int16; deviceid: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_test_grab_control_checked*(c: ptr xcb_connection_t; impervious: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_test_grab_control*(c: ptr xcb_connection_t; impervious: uint8): xcb_void_cookie_t
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from xv.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB_Xv_API XCB Xv API
# ## @brief Xv XCB Protocol Implementation.
# ## @{
# ##
# import
# xcb, xproto, shm
# const
# XCB_XV_MAJOR_VERSION* = 2
# XCB_XV_MINOR_VERSION* = 2
# var xcb_xv_id*: xcb_extension_t
# type
# xcb_xv_port_t* = uint32
# ## *
# ## @brief xcb_xv_port_iterator_t
# ##
# type
# xcb_xv_port_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xv_port_t
# rem*: cint
# index*: cint
# xcb_xv_encoding_t* = uint32
# ## *
# ## @brief xcb_xv_encoding_iterator_t
# ##
# type
# xcb_xv_encoding_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xv_encoding_t
# rem*: cint
# index*: cint
# xcb_xv_type_t* = enum
# XCB_XV_TYPE_INPUT_MASK = 1, XCB_XV_TYPE_OUTPUT_MASK = 2,
# XCB_XV_TYPE_VIDEO_MASK = 4, XCB_XV_TYPE_STILL_MASK = 8,
# XCB_XV_TYPE_IMAGE_MASK = 16
# xcb_xv_image_format_info_type_t* = enum
# XCB_XV_IMAGE_FORMAT_INFO_TYPE_RGB = 0, XCB_XV_IMAGE_FORMAT_INFO_TYPE_YUV = 1
# xcb_xv_image_format_info_format_t* = enum
# XCB_XV_IMAGE_FORMAT_INFO_FORMAT_PACKED = 0,
# XCB_XV_IMAGE_FORMAT_INFO_FORMAT_PLANAR = 1
# xcb_xv_attribute_flag_t* = enum
# XCB_XV_ATTRIBUTE_FLAG_GETTABLE = 1, XCB_XV_ATTRIBUTE_FLAG_SETTABLE = 2
# xcb_xv_video_notify_reason_t* = enum
# XCB_XV_VIDEO_NOTIFY_REASON_STARTED = 0, XCB_XV_VIDEO_NOTIFY_REASON_STOPPED = 1,
# XCB_XV_VIDEO_NOTIFY_REASON_BUSY = 2, XCB_XV_VIDEO_NOTIFY_REASON_PREEMPTED = 3,
# XCB_XV_VIDEO_NOTIFY_REASON_HARD_ERROR = 4
# xcb_xv_scanline_order_t* = enum
# XCB_XV_SCANLINE_ORDER_TOP_TO_BOTTOM = 0,
# XCB_XV_SCANLINE_ORDER_BOTTOM_TO_TOP = 1
# xcb_xv_grab_port_status_t* = enum
# XCB_XV_GRAB_PORT_STATUS_SUCCESS = 0, XCB_XV_GRAB_PORT_STATUS_BAD_EXTENSION = 1,
# XCB_XV_GRAB_PORT_STATUS_ALREADY_GRABBED = 2,
# XCB_XV_GRAB_PORT_STATUS_INVALID_TIME = 3,
# XCB_XV_GRAB_PORT_STATUS_BAD_REPLY = 4, XCB_XV_GRAB_PORT_STATUS_BAD_ALLOC = 5
# ## *
# ## @brief xcb_xv_rational_t
# ##
# type
# xcb_xv_rational_t* {.bycopy.} = object
# numerator*: int32
# denominator*: int32
# ## *
# ## @brief xcb_xv_rational_iterator_t
# ##
# type
# xcb_xv_rational_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xv_rational_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xv_format_t
# ##
# type
# xcb_xv_format_t* {.bycopy.} = object
# visual*: xcb_visualid_t
# depth*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_xv_format_iterator_t
# ##
# type
# xcb_xv_format_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xv_format_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xv_adaptor_info_t
# ##
# type
# xcb_xv_adaptor_info_t* {.bycopy.} = object
# base_id*: xcb_xv_port_t
# name_size*: uint16
# num_ports*: uint16
# num_formats*: uint16
# `type`*: uint8
# pad0*: uint8
# ## *
# ## @brief xcb_xv_adaptor_info_iterator_t
# ##
# type
# xcb_xv_adaptor_info_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xv_adaptor_info_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xv_encoding_info_t
# ##
# type
# xcb_xv_encoding_info_t* {.bycopy.} = object
# encoding*: xcb_xv_encoding_t
# name_size*: uint16
# width*: uint16
# height*: uint16
# pad0*: array[2, uint8]
# rate*: xcb_xv_rational_t
# ## *
# ## @brief xcb_xv_encoding_info_iterator_t
# ##
# type
# xcb_xv_encoding_info_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xv_encoding_info_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xv_image_t
# ##
# type
# xcb_xv_image_t* {.bycopy.} = object
# id*: uint32
# width*: uint16
# height*: uint16
# data_size*: uint32
# num_planes*: uint32
# ## *
# ## @brief xcb_xv_image_iterator_t
# ##
# type
# xcb_xv_image_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xv_image_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xv_attribute_info_t
# ##
# type
# xcb_xv_attribute_info_t* {.bycopy.} = object
# flags*: uint32
# min*: int32
# max*: int32
# size*: uint32
# ## *
# ## @brief xcb_xv_attribute_info_iterator_t
# ##
# type
# xcb_xv_attribute_info_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xv_attribute_info_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xv_image_format_info_t
# ##
# type
# xcb_xv_image_format_info_t* {.bycopy.} = object
# id*: uint32
# `type`*: uint8
# byte_order*: uint8
# pad0*: array[2, uint8]
# guid*: array[16, uint8]
# bpp*: uint8
# num_planes*: uint8
# pad1*: array[2, uint8]
# depth*: uint8
# pad2*: array[3, uint8]
# red_mask*: uint32
# green_mask*: uint32
# blue_mask*: uint32
# format*: uint8
# pad3*: array[3, uint8]
# y_sample_bits*: uint32
# u_sample_bits*: uint32
# v_sample_bits*: uint32
# vhorz_y_period*: uint32
# vhorz_u_period*: uint32
# vhorz_v_period*: uint32
# vvert_y_period*: uint32
# vvert_u_period*: uint32
# vvert_v_period*: uint32
# vcomp_order*: array[32, uint8]
# vscanline_order*: uint8
# pad4*: array[11, uint8]
# ## *
# ## @brief xcb_xv_image_format_info_iterator_t
# ##
# type
# xcb_xv_image_format_info_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xv_image_format_info_t
# rem*: cint
# index*: cint
# ## * Opcode for xcb_xv_bad_port.
# const
# XCB_XV_BAD_PORT* = 0
# ## *
# ## @brief xcb_xv_bad_port_error_t
# ##
# type
# xcb_xv_bad_port_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# ## * Opcode for xcb_xv_bad_encoding.
# const
# XCB_XV_BAD_ENCODING* = 1
# ## *
# ## @brief xcb_xv_bad_encoding_error_t
# ##
# type
# xcb_xv_bad_encoding_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# ## * Opcode for xcb_xv_bad_control.
# const
# XCB_XV_BAD_CONTROL* = 2
# ## *
# ## @brief xcb_xv_bad_control_error_t
# ##
# type
# xcb_xv_bad_control_error_t* {.bycopy.} = object
# response_type*: uint8
# error_code*: uint8
# sequence*: uint16
# ## * Opcode for xcb_xv_video_notify.
# const
# XCB_XV_VIDEO_NOTIFY* = 0
# ## *
# ## @brief xcb_xv_video_notify_event_t
# ##
# type
# xcb_xv_video_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# reason*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# drawable*: xcb_drawable_t
# port*: xcb_xv_port_t
# ## * Opcode for xcb_xv_port_notify.
# const
# XCB_XV_PORT_NOTIFY* = 1
# ## *
# ## @brief xcb_xv_port_notify_event_t
# ##
# type
# xcb_xv_port_notify_event_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# time*: xcb_timestamp_t
# port*: xcb_xv_port_t
# attribute*: xcb_atom_t
# value*: int32
# ## *
# ## @brief xcb_xv_query_extension_cookie_t
# ##
# type
# xcb_xv_query_extension_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xv_query_extension.
# const
# XCB_XV_QUERY_EXTENSION* = 0
# ## *
# ## @brief xcb_xv_query_extension_request_t
# ##
# type
# xcb_xv_query_extension_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_xv_query_extension_reply_t
# ##
# type
# xcb_xv_query_extension_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# major*: uint16
# minor*: uint16
# ## *
# ## @brief xcb_xv_query_adaptors_cookie_t
# ##
# type
# xcb_xv_query_adaptors_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xv_query_adaptors.
# const
# XCB_XV_QUERY_ADAPTORS* = 1
# ## *
# ## @brief xcb_xv_query_adaptors_request_t
# ##
# type
# xcb_xv_query_adaptors_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# window*: xcb_window_t
# ## *
# ## @brief xcb_xv_query_adaptors_reply_t
# ##
# type
# xcb_xv_query_adaptors_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# num_adaptors*: uint16
# pad1*: array[22, uint8]
# ## *
# ## @brief xcb_xv_query_encodings_cookie_t
# ##
# type
# xcb_xv_query_encodings_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xv_query_encodings.
# const
# XCB_XV_QUERY_ENCODINGS* = 2
# ## *
# ## @brief xcb_xv_query_encodings_request_t
# ##
# type
# xcb_xv_query_encodings_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# port*: xcb_xv_port_t
# ## *
# ## @brief xcb_xv_query_encodings_reply_t
# ##
# type
# xcb_xv_query_encodings_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# num_encodings*: uint16
# pad1*: array[22, uint8]
# ## *
# ## @brief xcb_xv_grab_port_cookie_t
# ##
# type
# xcb_xv_grab_port_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xv_grab_port.
# const
# XCB_XV_GRAB_PORT* = 3
# ## *
# ## @brief xcb_xv_grab_port_request_t
# ##
# type
# xcb_xv_grab_port_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# port*: xcb_xv_port_t
# time*: xcb_timestamp_t
# ## *
# ## @brief xcb_xv_grab_port_reply_t
# ##
# type
# xcb_xv_grab_port_reply_t* {.bycopy.} = object
# response_type*: uint8
# result*: uint8
# sequence*: uint16
# length*: uint32
# ## * Opcode for xcb_xv_ungrab_port.
# const
# XCB_XV_UNGRAB_PORT* = 4
# ## *
# ## @brief xcb_xv_ungrab_port_request_t
# ##
# type
# xcb_xv_ungrab_port_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# port*: xcb_xv_port_t
# time*: xcb_timestamp_t
# ## * Opcode for xcb_xv_put_video.
# const
# XCB_XV_PUT_VIDEO* = 5
# ## *
# ## @brief xcb_xv_put_video_request_t
# ##
# type
# xcb_xv_put_video_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# port*: xcb_xv_port_t
# drawable*: xcb_drawable_t
# gc*: xcb_gcontext_t
# vid_x*: int16
# vid_y*: int16
# vid_w*: uint16
# vid_h*: uint16
# drw_x*: int16
# drw_y*: int16
# drw_w*: uint16
# drw_h*: uint16
# ## * Opcode for xcb_xv_put_still.
# const
# XCB_XV_PUT_STILL* = 6
# ## *
# ## @brief xcb_xv_put_still_request_t
# ##
# type
# xcb_xv_put_still_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# port*: xcb_xv_port_t
# drawable*: xcb_drawable_t
# gc*: xcb_gcontext_t
# vid_x*: int16
# vid_y*: int16
# vid_w*: uint16
# vid_h*: uint16
# drw_x*: int16
# drw_y*: int16
# drw_w*: uint16
# drw_h*: uint16
# ## * Opcode for xcb_xv_get_video.
# const
# XCB_XV_GET_VIDEO* = 7
# ## *
# ## @brief xcb_xv_get_video_request_t
# ##
# type
# xcb_xv_get_video_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# port*: xcb_xv_port_t
# drawable*: xcb_drawable_t
# gc*: xcb_gcontext_t
# vid_x*: int16
# vid_y*: int16
# vid_w*: uint16
# vid_h*: uint16
# drw_x*: int16
# drw_y*: int16
# drw_w*: uint16
# drw_h*: uint16
# ## * Opcode for xcb_xv_get_still.
# const
# XCB_XV_GET_STILL* = 8
# ## *
# ## @brief xcb_xv_get_still_request_t
# ##
# type
# xcb_xv_get_still_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# port*: xcb_xv_port_t
# drawable*: xcb_drawable_t
# gc*: xcb_gcontext_t
# vid_x*: int16
# vid_y*: int16
# vid_w*: uint16
# vid_h*: uint16
# drw_x*: int16
# drw_y*: int16
# drw_w*: uint16
# drw_h*: uint16
# ## * Opcode for xcb_xv_stop_video.
# const
# XCB_XV_STOP_VIDEO* = 9
# ## *
# ## @brief xcb_xv_stop_video_request_t
# ##
# type
# xcb_xv_stop_video_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# port*: xcb_xv_port_t
# drawable*: xcb_drawable_t
# ## * Opcode for xcb_xv_select_video_notify.
# const
# XCB_XV_SELECT_VIDEO_NOTIFY* = 10
# ## *
# ## @brief xcb_xv_select_video_notify_request_t
# ##
# type
# xcb_xv_select_video_notify_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# drawable*: xcb_drawable_t
# onoff*: uint8
# pad0*: array[3, uint8]
# ## * Opcode for xcb_xv_select_port_notify.
# const
# XCB_XV_SELECT_PORT_NOTIFY* = 11
# ## *
# ## @brief xcb_xv_select_port_notify_request_t
# ##
# type
# xcb_xv_select_port_notify_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# port*: xcb_xv_port_t
# onoff*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_xv_query_best_size_cookie_t
# ##
# type
# xcb_xv_query_best_size_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xv_query_best_size.
# const
# XCB_XV_QUERY_BEST_SIZE* = 12
# ## *
# ## @brief xcb_xv_query_best_size_request_t
# ##
# type
# xcb_xv_query_best_size_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# port*: xcb_xv_port_t
# vid_w*: uint16
# vid_h*: uint16
# drw_w*: uint16
# drw_h*: uint16
# motion*: uint8
# pad0*: array[3, uint8]
# ## *
# ## @brief xcb_xv_query_best_size_reply_t
# ##
# type
# xcb_xv_query_best_size_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# actual_width*: uint16
# actual_height*: uint16
# ## * Opcode for xcb_xv_set_port_attribute.
# const
# XCB_XV_SET_PORT_ATTRIBUTE* = 13
# ## *
# ## @brief xcb_xv_set_port_attribute_request_t
# ##
# type
# xcb_xv_set_port_attribute_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# port*: xcb_xv_port_t
# attribute*: xcb_atom_t
# value*: int32
# ## *
# ## @brief xcb_xv_get_port_attribute_cookie_t
# ##
# type
# xcb_xv_get_port_attribute_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xv_get_port_attribute.
# const
# XCB_XV_GET_PORT_ATTRIBUTE* = 14
# ## *
# ## @brief xcb_xv_get_port_attribute_request_t
# ##
# type
# xcb_xv_get_port_attribute_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# port*: xcb_xv_port_t
# attribute*: xcb_atom_t
# ## *
# ## @brief xcb_xv_get_port_attribute_reply_t
# ##
# type
# xcb_xv_get_port_attribute_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# value*: int32
# ## *
# ## @brief xcb_xv_query_port_attributes_cookie_t
# ##
# type
# xcb_xv_query_port_attributes_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xv_query_port_attributes.
# const
# XCB_XV_QUERY_PORT_ATTRIBUTES* = 15
# ## *
# ## @brief xcb_xv_query_port_attributes_request_t
# ##
# type
# xcb_xv_query_port_attributes_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# port*: xcb_xv_port_t
# ## *
# ## @brief xcb_xv_query_port_attributes_reply_t
# ##
# type
# xcb_xv_query_port_attributes_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# num_attributes*: uint32
# text_size*: uint32
# pad1*: array[16, uint8]
# ## *
# ## @brief xcb_xv_list_image_formats_cookie_t
# ##
# type
# xcb_xv_list_image_formats_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xv_list_image_formats.
# const
# XCB_XV_LIST_IMAGE_FORMATS* = 16
# ## *
# ## @brief xcb_xv_list_image_formats_request_t
# ##
# type
# xcb_xv_list_image_formats_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# port*: xcb_xv_port_t
# ## *
# ## @brief xcb_xv_list_image_formats_reply_t
# ##
# type
# xcb_xv_list_image_formats_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# num_formats*: uint32
# pad1*: array[20, uint8]
# ## *
# ## @brief xcb_xv_query_image_attributes_cookie_t
# ##
# type
# xcb_xv_query_image_attributes_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xv_query_image_attributes.
# const
# XCB_XV_QUERY_IMAGE_ATTRIBUTES* = 17
# ## *
# ## @brief xcb_xv_query_image_attributes_request_t
# ##
# type
# xcb_xv_query_image_attributes_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# port*: xcb_xv_port_t
# id*: uint32
# width*: uint16
# height*: uint16
# ## *
# ## @brief xcb_xv_query_image_attributes_reply_t
# ##
# type
# xcb_xv_query_image_attributes_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# num_planes*: uint32
# data_size*: uint32
# width*: uint16
# height*: uint16
# pad1*: array[12, uint8]
# ## * Opcode for xcb_xv_put_image.
# const
# XCB_XV_PUT_IMAGE* = 18
# ## *
# ## @brief xcb_xv_put_image_request_t
# ##
# type
# xcb_xv_put_image_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# port*: xcb_xv_port_t
# drawable*: xcb_drawable_t
# gc*: xcb_gcontext_t
# id*: uint32
# src_x*: int16
# src_y*: int16
# src_w*: uint16
# src_h*: uint16
# drw_x*: int16
# drw_y*: int16
# drw_w*: uint16
# drw_h*: uint16
# width*: uint16
# height*: uint16
# ## * Opcode for xcb_xv_shm_put_image.
# const
# XCB_XV_SHM_PUT_IMAGE* = 19
# ## *
# ## @brief xcb_xv_shm_put_image_request_t
# ##
# type
# xcb_xv_shm_put_image_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# port*: xcb_xv_port_t
# drawable*: xcb_drawable_t
# gc*: xcb_gcontext_t
# shmseg*: xcb_shm_seg_t
# id*: uint32
# offset*: uint32
# src_x*: int16
# src_y*: int16
# src_w*: uint16
# src_h*: uint16
# drw_x*: int16
# drw_y*: int16
# drw_w*: uint16
# drw_h*: uint16
# width*: uint16
# height*: uint16
# send_event*: uint8
# pad0*: array[3, uint8]
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xv_port_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xv_port_t)
# ##
# proc xcb_xv_port_next*(i: ptr xcb_xv_port_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xv_port_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xv_port_end*(i: xcb_xv_port_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xv_encoding_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xv_encoding_t)
# ##
# proc xcb_xv_encoding_next*(i: ptr xcb_xv_encoding_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xv_encoding_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xv_encoding_end*(i: xcb_xv_encoding_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xv_rational_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xv_rational_t)
# ##
# proc xcb_xv_rational_next*(i: ptr xcb_xv_rational_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xv_rational_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xv_rational_end*(i: xcb_xv_rational_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xv_format_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xv_format_t)
# ##
# proc xcb_xv_format_next*(i: ptr xcb_xv_format_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xv_format_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xv_format_end*(i: xcb_xv_format_iterator_t): xcb_generic_iterator_t
# proc xcb_xv_adaptor_info_sizeof*(_buffer: pointer): cint
# proc xcb_xv_adaptor_info_name*(R: ptr xcb_xv_adaptor_info_t): cstring
# proc xcb_xv_adaptor_info_name_length*(R: ptr xcb_xv_adaptor_info_t): cint
# proc xcb_xv_adaptor_info_name_end*(R: ptr xcb_xv_adaptor_info_t): xcb_generic_iterator_t
# proc xcb_xv_adaptor_info_formats*(R: ptr xcb_xv_adaptor_info_t): ptr xcb_xv_format_t
# proc xcb_xv_adaptor_info_formats_length*(R: ptr xcb_xv_adaptor_info_t): cint
# proc xcb_xv_adaptor_info_formats_iterator*(R: ptr xcb_xv_adaptor_info_t): xcb_xv_format_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xv_adaptor_info_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xv_adaptor_info_t)
# ##
# proc xcb_xv_adaptor_info_next*(i: ptr xcb_xv_adaptor_info_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xv_adaptor_info_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xv_adaptor_info_end*(i: xcb_xv_adaptor_info_iterator_t): xcb_generic_iterator_t
# proc xcb_xv_encoding_info_sizeof*(_buffer: pointer): cint
# proc xcb_xv_encoding_info_name*(R: ptr xcb_xv_encoding_info_t): cstring
# proc xcb_xv_encoding_info_name_length*(R: ptr xcb_xv_encoding_info_t): cint
# proc xcb_xv_encoding_info_name_end*(R: ptr xcb_xv_encoding_info_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xv_encoding_info_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xv_encoding_info_t)
# ##
# proc xcb_xv_encoding_info_next*(i: ptr xcb_xv_encoding_info_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xv_encoding_info_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xv_encoding_info_end*(i: xcb_xv_encoding_info_iterator_t): xcb_generic_iterator_t
# proc xcb_xv_image_sizeof*(_buffer: pointer): cint
# proc xcb_xv_image_pitches*(R: ptr xcb_xv_image_t): ptr uint32
# proc xcb_xv_image_pitches_length*(R: ptr xcb_xv_image_t): cint
# proc xcb_xv_image_pitches_end*(R: ptr xcb_xv_image_t): xcb_generic_iterator_t
# proc xcb_xv_image_offsets*(R: ptr xcb_xv_image_t): ptr uint32
# proc xcb_xv_image_offsets_length*(R: ptr xcb_xv_image_t): cint
# proc xcb_xv_image_offsets_end*(R: ptr xcb_xv_image_t): xcb_generic_iterator_t
# proc xcb_xv_image_data*(R: ptr xcb_xv_image_t): ptr uint8
# proc xcb_xv_image_data_length*(R: ptr xcb_xv_image_t): cint
# proc xcb_xv_image_data_end*(R: ptr xcb_xv_image_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xv_image_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xv_image_t)
# ##
# proc xcb_xv_image_next*(i: ptr xcb_xv_image_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xv_image_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xv_image_end*(i: xcb_xv_image_iterator_t): xcb_generic_iterator_t
# proc xcb_xv_attribute_info_sizeof*(_buffer: pointer): cint
# proc xcb_xv_attribute_info_name*(R: ptr xcb_xv_attribute_info_t): cstring
# proc xcb_xv_attribute_info_name_length*(R: ptr xcb_xv_attribute_info_t): cint
# proc xcb_xv_attribute_info_name_end*(R: ptr xcb_xv_attribute_info_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xv_attribute_info_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xv_attribute_info_t)
# ##
# proc xcb_xv_attribute_info_next*(i: ptr xcb_xv_attribute_info_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xv_attribute_info_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xv_attribute_info_end*(i: xcb_xv_attribute_info_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xv_image_format_info_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xv_image_format_info_t)
# ##
# proc xcb_xv_image_format_info_next*(i: ptr xcb_xv_image_format_info_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xv_image_format_info_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xv_image_format_info_end*(i: xcb_xv_image_format_info_iterator_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xv_query_extension*(c: ptr xcb_connection_t): xcb_xv_query_extension_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xv_query_extension_unchecked*(c: ptr xcb_connection_t): xcb_xv_query_extension_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xv_query_extension_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xv_query_extension_reply*(c: ptr xcb_connection_t; cookie: xcb_xv_query_extension_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xv_query_extension_reply_t
# proc xcb_xv_query_adaptors_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xv_query_adaptors*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_xv_query_adaptors_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xv_query_adaptors_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_xv_query_adaptors_cookie_t
# proc xcb_xv_query_adaptors_info_length*(R: ptr xcb_xv_query_adaptors_reply_t): cint
# proc xcb_xv_query_adaptors_info_iterator*(R: ptr xcb_xv_query_adaptors_reply_t): xcb_xv_adaptor_info_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xv_query_adaptors_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xv_query_adaptors_reply*(c: ptr xcb_connection_t; cookie: xcb_xv_query_adaptors_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xv_query_adaptors_reply_t
# proc xcb_xv_query_encodings_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xv_query_encodings*(c: ptr xcb_connection_t; port: xcb_xv_port_t): xcb_xv_query_encodings_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xv_query_encodings_unchecked*(c: ptr xcb_connection_t; port: xcb_xv_port_t): xcb_xv_query_encodings_cookie_t
# proc xcb_xv_query_encodings_info_length*(R: ptr xcb_xv_query_encodings_reply_t): cint
# proc xcb_xv_query_encodings_info_iterator*(R: ptr xcb_xv_query_encodings_reply_t): xcb_xv_encoding_info_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xv_query_encodings_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xv_query_encodings_reply*(c: ptr xcb_connection_t; cookie: xcb_xv_query_encodings_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xv_query_encodings_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xv_grab_port*(c: ptr xcb_connection_t; port: xcb_xv_port_t;
# time: xcb_timestamp_t): xcb_xv_grab_port_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xv_grab_port_unchecked*(c: ptr xcb_connection_t; port: xcb_xv_port_t;
# time: xcb_timestamp_t): xcb_xv_grab_port_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xv_grab_port_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xv_grab_port_reply*(c: ptr xcb_connection_t; cookie: xcb_xv_grab_port_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xv_grab_port_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xv_ungrab_port_checked*(c: ptr xcb_connection_t; port: xcb_xv_port_t;
# time: xcb_timestamp_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xv_ungrab_port*(c: ptr xcb_connection_t; port: xcb_xv_port_t;
# time: xcb_timestamp_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xv_put_video_checked*(c: ptr xcb_connection_t; port: xcb_xv_port_t;
# drawable: xcb_drawable_t; gc: xcb_gcontext_t;
# vid_x: int16; vid_y: int16; vid_w: uint16;
# vid_h: uint16; drw_x: int16; drw_y: int16;
# drw_w: uint16; drw_h: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xv_put_video*(c: ptr xcb_connection_t; port: xcb_xv_port_t;
# drawable: xcb_drawable_t; gc: xcb_gcontext_t; vid_x: int16;
# vid_y: int16; vid_w: uint16; vid_h: uint16;
# drw_x: int16; drw_y: int16; drw_w: uint16; drw_h: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xv_put_still_checked*(c: ptr xcb_connection_t; port: xcb_xv_port_t;
# drawable: xcb_drawable_t; gc: xcb_gcontext_t;
# vid_x: int16; vid_y: int16; vid_w: uint16;
# vid_h: uint16; drw_x: int16; drw_y: int16;
# drw_w: uint16; drw_h: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xv_put_still*(c: ptr xcb_connection_t; port: xcb_xv_port_t;
# drawable: xcb_drawable_t; gc: xcb_gcontext_t; vid_x: int16;
# vid_y: int16; vid_w: uint16; vid_h: uint16;
# drw_x: int16; drw_y: int16; drw_w: uint16; drw_h: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xv_get_video_checked*(c: ptr xcb_connection_t; port: xcb_xv_port_t;
# drawable: xcb_drawable_t; gc: xcb_gcontext_t;
# vid_x: int16; vid_y: int16; vid_w: uint16;
# vid_h: uint16; drw_x: int16; drw_y: int16;
# drw_w: uint16; drw_h: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xv_get_video*(c: ptr xcb_connection_t; port: xcb_xv_port_t;
# drawable: xcb_drawable_t; gc: xcb_gcontext_t; vid_x: int16;
# vid_y: int16; vid_w: uint16; vid_h: uint16;
# drw_x: int16; drw_y: int16; drw_w: uint16; drw_h: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xv_get_still_checked*(c: ptr xcb_connection_t; port: xcb_xv_port_t;
# drawable: xcb_drawable_t; gc: xcb_gcontext_t;
# vid_x: int16; vid_y: int16; vid_w: uint16;
# vid_h: uint16; drw_x: int16; drw_y: int16;
# drw_w: uint16; drw_h: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xv_get_still*(c: ptr xcb_connection_t; port: xcb_xv_port_t;
# drawable: xcb_drawable_t; gc: xcb_gcontext_t; vid_x: int16;
# vid_y: int16; vid_w: uint16; vid_h: uint16;
# drw_x: int16; drw_y: int16; drw_w: uint16; drw_h: uint16): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xv_stop_video_checked*(c: ptr xcb_connection_t; port: xcb_xv_port_t;
# drawable: xcb_drawable_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xv_stop_video*(c: ptr xcb_connection_t; port: xcb_xv_port_t;
# drawable: xcb_drawable_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xv_select_video_notify_checked*(c: ptr xcb_connection_t;
# drawable: xcb_drawable_t; onoff: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xv_select_video_notify*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;
# onoff: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xv_select_port_notify_checked*(c: ptr xcb_connection_t;
# port: xcb_xv_port_t; onoff: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xv_select_port_notify*(c: ptr xcb_connection_t; port: xcb_xv_port_t;
# onoff: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xv_query_best_size*(c: ptr xcb_connection_t; port: xcb_xv_port_t;
# vid_w: uint16; vid_h: uint16; drw_w: uint16;
# drw_h: uint16; motion: uint8): xcb_xv_query_best_size_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xv_query_best_size_unchecked*(c: ptr xcb_connection_t; port: xcb_xv_port_t;
# vid_w: uint16; vid_h: uint16;
# drw_w: uint16; drw_h: uint16;
# motion: uint8): xcb_xv_query_best_size_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xv_query_best_size_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xv_query_best_size_reply*(c: ptr xcb_connection_t; cookie: xcb_xv_query_best_size_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xv_query_best_size_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xv_set_port_attribute_checked*(c: ptr xcb_connection_t;
# port: xcb_xv_port_t; attribute: xcb_atom_t;
# value: int32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xv_set_port_attribute*(c: ptr xcb_connection_t; port: xcb_xv_port_t;
# attribute: xcb_atom_t; value: int32): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xv_get_port_attribute*(c: ptr xcb_connection_t; port: xcb_xv_port_t;
# attribute: xcb_atom_t): xcb_xv_get_port_attribute_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xv_get_port_attribute_unchecked*(c: ptr xcb_connection_t;
# port: xcb_xv_port_t; attribute: xcb_atom_t): xcb_xv_get_port_attribute_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xv_get_port_attribute_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xv_get_port_attribute_reply*(c: ptr xcb_connection_t; cookie: xcb_xv_get_port_attribute_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xv_get_port_attribute_reply_t
# proc xcb_xv_query_port_attributes_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xv_query_port_attributes*(c: ptr xcb_connection_t; port: xcb_xv_port_t): xcb_xv_query_port_attributes_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xv_query_port_attributes_unchecked*(c: ptr xcb_connection_t;
# port: xcb_xv_port_t): xcb_xv_query_port_attributes_cookie_t
# proc xcb_xv_query_port_attributes_attributes_length*(
# R: ptr xcb_xv_query_port_attributes_reply_t): cint
# proc xcb_xv_query_port_attributes_attributes_iterator*(
# R: ptr xcb_xv_query_port_attributes_reply_t): xcb_xv_attribute_info_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xv_query_port_attributes_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xv_query_port_attributes_reply*(c: ptr xcb_connection_t; cookie: xcb_xv_query_port_attributes_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xv_query_port_attributes_reply_t
# proc xcb_xv_list_image_formats_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xv_list_image_formats*(c: ptr xcb_connection_t; port: xcb_xv_port_t): xcb_xv_list_image_formats_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xv_list_image_formats_unchecked*(c: ptr xcb_connection_t;
# port: xcb_xv_port_t): xcb_xv_list_image_formats_cookie_t
# proc xcb_xv_list_image_formats_format*(R: ptr xcb_xv_list_image_formats_reply_t): ptr xcb_xv_image_format_info_t
# proc xcb_xv_list_image_formats_format_length*(
# R: ptr xcb_xv_list_image_formats_reply_t): cint
# proc xcb_xv_list_image_formats_format_iterator*(
# R: ptr xcb_xv_list_image_formats_reply_t): xcb_xv_image_format_info_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xv_list_image_formats_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xv_list_image_formats_reply*(c: ptr xcb_connection_t; cookie: xcb_xv_list_image_formats_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xv_list_image_formats_reply_t
# proc xcb_xv_query_image_attributes_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xv_query_image_attributes*(c: ptr xcb_connection_t; port: xcb_xv_port_t;
# id: uint32; width: uint16; height: uint16): xcb_xv_query_image_attributes_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xv_query_image_attributes_unchecked*(c: ptr xcb_connection_t;
# port: xcb_xv_port_t; id: uint32; width: uint16; height: uint16): xcb_xv_query_image_attributes_cookie_t
# proc xcb_xv_query_image_attributes_pitches*(
# R: ptr xcb_xv_query_image_attributes_reply_t): ptr uint32
# proc xcb_xv_query_image_attributes_pitches_length*(
# R: ptr xcb_xv_query_image_attributes_reply_t): cint
# proc xcb_xv_query_image_attributes_pitches_end*(
# R: ptr xcb_xv_query_image_attributes_reply_t): xcb_generic_iterator_t
# proc xcb_xv_query_image_attributes_offsets*(
# R: ptr xcb_xv_query_image_attributes_reply_t): ptr uint32
# proc xcb_xv_query_image_attributes_offsets_length*(
# R: ptr xcb_xv_query_image_attributes_reply_t): cint
# proc xcb_xv_query_image_attributes_offsets_end*(
# R: ptr xcb_xv_query_image_attributes_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xv_query_image_attributes_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xv_query_image_attributes_reply*(c: ptr xcb_connection_t; cookie: xcb_xv_query_image_attributes_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xv_query_image_attributes_reply_t
# proc xcb_xv_put_image_sizeof*(_buffer: pointer; data_len: uint32): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xv_put_image_checked*(c: ptr xcb_connection_t; port: xcb_xv_port_t;
# drawable: xcb_drawable_t; gc: xcb_gcontext_t;
# id: uint32; src_x: int16; src_y: int16;
# src_w: uint16; src_h: uint16; drw_x: int16;
# drw_y: int16; drw_w: uint16; drw_h: uint16;
# width: uint16; height: uint16; data_len: uint32;
# data: ptr uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xv_put_image*(c: ptr xcb_connection_t; port: xcb_xv_port_t;
# drawable: xcb_drawable_t; gc: xcb_gcontext_t; id: uint32;
# src_x: int16; src_y: int16; src_w: uint16;
# src_h: uint16; drw_x: int16; drw_y: int16;
# drw_w: uint16; drw_h: uint16; width: uint16;
# height: uint16; data_len: uint32; data: ptr uint8): xcb_void_cookie_t
# proc xcb_xv_put_image_data*(R: ptr xcb_xv_put_image_request_t): ptr uint8
# proc xcb_xv_put_image_data_length*(R: ptr xcb_xv_put_image_request_t): cint
# proc xcb_xv_put_image_data_end*(R: ptr xcb_xv_put_image_request_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xv_shm_put_image_checked*(c: ptr xcb_connection_t; port: xcb_xv_port_t;
# drawable: xcb_drawable_t; gc: xcb_gcontext_t;
# shmseg: xcb_shm_seg_t; id: uint32;
# offset: uint32; src_x: int16; src_y: int16;
# src_w: uint16; src_h: uint16; drw_x: int16;
# drw_y: int16; drw_w: uint16; drw_h: uint16;
# width: uint16; height: uint16;
# send_event: uint8): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xv_shm_put_image*(c: ptr xcb_connection_t; port: xcb_xv_port_t;
# drawable: xcb_drawable_t; gc: xcb_gcontext_t;
# shmseg: xcb_shm_seg_t; id: uint32; offset: uint32;
# src_x: int16; src_y: int16; src_w: uint16;
# src_h: uint16; drw_x: int16; drw_y: int16;
# drw_w: uint16; drw_h: uint16; width: uint16;
# height: uint16; send_event: uint8): xcb_void_cookie_t
# ## *
# ## @}
# ##
# ##
# ## This file generated automatically from xvmc.xml by c_client.py.
# ## Edit at your peril.
# ##
# ## *
# ## @defgroup XCB_XvMC_API XCB XvMC API
# ## @brief XvMC XCB Protocol Implementation.
# ## @{
# ##
# import
# xcb, xv
# const
# XCB_XVMC_MAJOR_VERSION* = 1
# XCB_XVMC_MINOR_VERSION* = 1
# var xcb_xvmc_id*: xcb_extension_t
# type
# xcb_xvmc_context_t* = uint32
# ## *
# ## @brief xcb_xvmc_context_iterator_t
# ##
# type
# xcb_xvmc_context_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xvmc_context_t
# rem*: cint
# index*: cint
# xcb_xvmc_surface_t* = uint32
# ## *
# ## @brief xcb_xvmc_surface_iterator_t
# ##
# type
# xcb_xvmc_surface_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xvmc_surface_t
# rem*: cint
# index*: cint
# xcb_xvmc_subpicture_t* = uint32
# ## *
# ## @brief xcb_xvmc_subpicture_iterator_t
# ##
# type
# xcb_xvmc_subpicture_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xvmc_subpicture_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xvmc_surface_info_t
# ##
# type
# xcb_xvmc_surface_info_t* {.bycopy.} = object
# id*: xcb_xvmc_surface_t
# chroma_format*: uint16
# pad0*: uint16
# max_width*: uint16
# max_height*: uint16
# subpicture_max_width*: uint16
# subpicture_max_height*: uint16
# mc_type*: uint32
# flags*: uint32
# ## *
# ## @brief xcb_xvmc_surface_info_iterator_t
# ##
# type
# xcb_xvmc_surface_info_iterator_t* {.bycopy.} = object
# data*: ptr xcb_xvmc_surface_info_t
# rem*: cint
# index*: cint
# ## *
# ## @brief xcb_xvmc_query_version_cookie_t
# ##
# type
# xcb_xvmc_query_version_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xvmc_query_version.
# const
# XCB_XVMC_QUERY_VERSION* = 0
# ## *
# ## @brief xcb_xvmc_query_version_request_t
# ##
# type
# xcb_xvmc_query_version_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# ## *
# ## @brief xcb_xvmc_query_version_reply_t
# ##
# type
# xcb_xvmc_query_version_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# major*: uint32
# minor*: uint32
# ## *
# ## @brief xcb_xvmc_list_surface_types_cookie_t
# ##
# type
# xcb_xvmc_list_surface_types_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xvmc_list_surface_types.
# const
# XCB_XVMC_LIST_SURFACE_TYPES* = 1
# ## *
# ## @brief xcb_xvmc_list_surface_types_request_t
# ##
# type
# xcb_xvmc_list_surface_types_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# port_id*: xcb_xv_port_t
# ## *
# ## @brief xcb_xvmc_list_surface_types_reply_t
# ##
# type
# xcb_xvmc_list_surface_types_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# num*: uint32
# pad1*: array[20, uint8]
# ## *
# ## @brief xcb_xvmc_create_context_cookie_t
# ##
# type
# xcb_xvmc_create_context_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xvmc_create_context.
# const
# XCB_XVMC_CREATE_CONTEXT* = 2
# ## *
# ## @brief xcb_xvmc_create_context_request_t
# ##
# type
# xcb_xvmc_create_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context_id*: xcb_xvmc_context_t
# port_id*: xcb_xv_port_t
# surface_id*: xcb_xvmc_surface_t
# width*: uint16
# height*: uint16
# flags*: uint32
# ## *
# ## @brief xcb_xvmc_create_context_reply_t
# ##
# type
# xcb_xvmc_create_context_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# width_actual*: uint16
# height_actual*: uint16
# flags_return*: uint32
# pad1*: array[20, uint8]
# ## * Opcode for xcb_xvmc_destroy_context.
# const
# XCB_XVMC_DESTROY_CONTEXT* = 3
# ## *
# ## @brief xcb_xvmc_destroy_context_request_t
# ##
# type
# xcb_xvmc_destroy_context_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# context_id*: xcb_xvmc_context_t
# ## *
# ## @brief xcb_xvmc_create_surface_cookie_t
# ##
# type
# xcb_xvmc_create_surface_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xvmc_create_surface.
# const
# XCB_XVMC_CREATE_SURFACE* = 4
# ## *
# ## @brief xcb_xvmc_create_surface_request_t
# ##
# type
# xcb_xvmc_create_surface_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# surface_id*: xcb_xvmc_surface_t
# context_id*: xcb_xvmc_context_t
# ## *
# ## @brief xcb_xvmc_create_surface_reply_t
# ##
# type
# xcb_xvmc_create_surface_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# pad1*: array[24, uint8]
# ## * Opcode for xcb_xvmc_destroy_surface.
# const
# XCB_XVMC_DESTROY_SURFACE* = 5
# ## *
# ## @brief xcb_xvmc_destroy_surface_request_t
# ##
# type
# xcb_xvmc_destroy_surface_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# surface_id*: xcb_xvmc_surface_t
# ## *
# ## @brief xcb_xvmc_create_subpicture_cookie_t
# ##
# type
# xcb_xvmc_create_subpicture_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xvmc_create_subpicture.
# const
# XCB_XVMC_CREATE_SUBPICTURE* = 6
# ## *
# ## @brief xcb_xvmc_create_subpicture_request_t
# ##
# type
# xcb_xvmc_create_subpicture_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# subpicture_id*: xcb_xvmc_subpicture_t
# context*: xcb_xvmc_context_t
# xvimage_id*: uint32
# width*: uint16
# height*: uint16
# ## *
# ## @brief xcb_xvmc_create_subpicture_reply_t
# ##
# type
# xcb_xvmc_create_subpicture_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# width_actual*: uint16
# height_actual*: uint16
# num_palette_entries*: uint16
# entry_bytes*: uint16
# component_order*: array[4, uint8]
# pad1*: array[12, uint8]
# ## * Opcode for xcb_xvmc_destroy_subpicture.
# const
# XCB_XVMC_DESTROY_SUBPICTURE* = 7
# ## *
# ## @brief xcb_xvmc_destroy_subpicture_request_t
# ##
# type
# xcb_xvmc_destroy_subpicture_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# subpicture_id*: xcb_xvmc_subpicture_t
# ## *
# ## @brief xcb_xvmc_list_subpicture_types_cookie_t
# ##
# type
# xcb_xvmc_list_subpicture_types_cookie_t* {.bycopy.} = object
# sequence*: uint8
# ## * Opcode for xcb_xvmc_list_subpicture_types.
# const
# XCB_XVMC_LIST_SUBPICTURE_TYPES* = 8
# ## *
# ## @brief xcb_xvmc_list_subpicture_types_request_t
# ##
# type
# xcb_xvmc_list_subpicture_types_request_t* {.bycopy.} = object
# major_opcode*: uint8
# minor_opcode*: uint8
# length*: uint16
# port_id*: xcb_xv_port_t
# surface_id*: xcb_xvmc_surface_t
# ## *
# ## @brief xcb_xvmc_list_subpicture_types_reply_t
# ##
# type
# xcb_xvmc_list_subpicture_types_reply_t* {.bycopy.} = object
# response_type*: uint8
# pad0*: uint8
# sequence*: uint16
# length*: uint32
# num*: uint32
# pad1*: array[20, uint8]
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xvmc_context_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xvmc_context_t)
# ##
# proc xcb_xvmc_context_next*(i: ptr xcb_xvmc_context_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xvmc_context_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xvmc_context_end*(i: xcb_xvmc_context_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xvmc_surface_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xvmc_surface_t)
# ##
# proc xcb_xvmc_surface_next*(i: ptr xcb_xvmc_surface_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xvmc_surface_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xvmc_surface_end*(i: xcb_xvmc_surface_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xvmc_subpicture_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xvmc_subpicture_t)
# ##
# proc xcb_xvmc_subpicture_next*(i: ptr xcb_xvmc_subpicture_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xvmc_subpicture_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xvmc_subpicture_end*(i: xcb_xvmc_subpicture_iterator_t): xcb_generic_iterator_t
# ## *
# ## Get the next element of the iterator
# ## @param i Pointer to a xcb_xvmc_surface_info_iterator_t
# ##
# ## Get the next element in the iterator. The member rem is
# ## decreased by one. The member data points to the next
# ## element. The member index is increased by sizeof(xcb_xvmc_surface_info_t)
# ##
# proc xcb_xvmc_surface_info_next*(i: ptr xcb_xvmc_surface_info_iterator_t)
# ## *
# ## Return the iterator pointing to the last element
# ## @param i An xcb_xvmc_surface_info_iterator_t
# ## @return The iterator pointing to the last element
# ##
# ## Set the current element in the iterator to the last element.
# ## The member rem is set to 0. The member data points to the
# ## last element.
# ##
# proc xcb_xvmc_surface_info_end*(i: xcb_xvmc_surface_info_iterator_t): xcb_generic_iterator_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xvmc_query_version*(c: ptr xcb_connection_t): xcb_xvmc_query_version_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xvmc_query_version_unchecked*(c: ptr xcb_connection_t): xcb_xvmc_query_version_cookie_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xvmc_query_version_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xvmc_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_xvmc_query_version_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xvmc_query_version_reply_t
# proc xcb_xvmc_list_surface_types_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xvmc_list_surface_types*(c: ptr xcb_connection_t; port_id: xcb_xv_port_t): xcb_xvmc_list_surface_types_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xvmc_list_surface_types_unchecked*(c: ptr xcb_connection_t;
# port_id: xcb_xv_port_t): xcb_xvmc_list_surface_types_cookie_t
# proc xcb_xvmc_list_surface_types_surfaces*(
# R: ptr xcb_xvmc_list_surface_types_reply_t): ptr xcb_xvmc_surface_info_t
# proc xcb_xvmc_list_surface_types_surfaces_length*(
# R: ptr xcb_xvmc_list_surface_types_reply_t): cint
# proc xcb_xvmc_list_surface_types_surfaces_iterator*(
# R: ptr xcb_xvmc_list_surface_types_reply_t): xcb_xvmc_surface_info_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xvmc_list_surface_types_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xvmc_list_surface_types_reply*(c: ptr xcb_connection_t; cookie: xcb_xvmc_list_surface_types_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xvmc_list_surface_types_reply_t
# proc xcb_xvmc_create_context_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xvmc_create_context*(c: ptr xcb_connection_t;
# context_id: xcb_xvmc_context_t;
# port_id: xcb_xv_port_t;
# surface_id: xcb_xvmc_surface_t; width: uint16;
# height: uint16; flags: uint32): xcb_xvmc_create_context_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xvmc_create_context_unchecked*(c: ptr xcb_connection_t;
# context_id: xcb_xvmc_context_t;
# port_id: xcb_xv_port_t;
# surface_id: xcb_xvmc_surface_t;
# width: uint16; height: uint16;
# flags: uint32): xcb_xvmc_create_context_cookie_t
# proc xcb_xvmc_create_context_priv_data*(R: ptr xcb_xvmc_create_context_reply_t): ptr uint32
# proc xcb_xvmc_create_context_priv_data_length*(
# R: ptr xcb_xvmc_create_context_reply_t): cint
# proc xcb_xvmc_create_context_priv_data_end*(
# R: ptr xcb_xvmc_create_context_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xvmc_create_context_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xvmc_create_context_reply*(c: ptr xcb_connection_t; cookie: xcb_xvmc_create_context_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xvmc_create_context_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xvmc_destroy_context_checked*(c: ptr xcb_connection_t;
# context_id: xcb_xvmc_context_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xvmc_destroy_context*(c: ptr xcb_connection_t;
# context_id: xcb_xvmc_context_t): xcb_void_cookie_t
# proc xcb_xvmc_create_surface_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xvmc_create_surface*(c: ptr xcb_connection_t;
# surface_id: xcb_xvmc_surface_t;
# context_id: xcb_xvmc_context_t): xcb_xvmc_create_surface_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xvmc_create_surface_unchecked*(c: ptr xcb_connection_t;
# surface_id: xcb_xvmc_surface_t;
# context_id: xcb_xvmc_context_t): xcb_xvmc_create_surface_cookie_t
# proc xcb_xvmc_create_surface_priv_data*(R: ptr xcb_xvmc_create_surface_reply_t): ptr uint32
# proc xcb_xvmc_create_surface_priv_data_length*(
# R: ptr xcb_xvmc_create_surface_reply_t): cint
# proc xcb_xvmc_create_surface_priv_data_end*(
# R: ptr xcb_xvmc_create_surface_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xvmc_create_surface_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xvmc_create_surface_reply*(c: ptr xcb_connection_t; cookie: xcb_xvmc_create_surface_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xvmc_create_surface_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xvmc_destroy_surface_checked*(c: ptr xcb_connection_t;
# surface_id: xcb_xvmc_surface_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xvmc_destroy_surface*(c: ptr xcb_connection_t;
# surface_id: xcb_xvmc_surface_t): xcb_void_cookie_t
# proc xcb_xvmc_create_subpicture_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xvmc_create_subpicture*(c: ptr xcb_connection_t;
# subpicture_id: xcb_xvmc_subpicture_t;
# context: xcb_xvmc_context_t; xvimage_id: uint32;
# width: uint16; height: uint16): xcb_xvmc_create_subpicture_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xvmc_create_subpicture_unchecked*(c: ptr xcb_connection_t;
# subpicture_id: xcb_xvmc_subpicture_t; context: xcb_xvmc_context_t;
# xvimage_id: uint32; width: uint16; height: uint16): xcb_xvmc_create_subpicture_cookie_t
# proc xcb_xvmc_create_subpicture_priv_data*(
# R: ptr xcb_xvmc_create_subpicture_reply_t): ptr uint32
# proc xcb_xvmc_create_subpicture_priv_data_length*(
# R: ptr xcb_xvmc_create_subpicture_reply_t): cint
# proc xcb_xvmc_create_subpicture_priv_data_end*(
# R: ptr xcb_xvmc_create_subpicture_reply_t): xcb_generic_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xvmc_create_subpicture_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xvmc_create_subpicture_reply*(c: ptr xcb_connection_t; cookie: xcb_xvmc_create_subpicture_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xvmc_create_subpicture_reply_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will not cause
# ## a reply to be generated. Any returned error will be
# ## saved for handling by xcb_request_check().
# ##
# proc xcb_xvmc_destroy_subpicture_checked*(c: ptr xcb_connection_t;
# subpicture_id: xcb_xvmc_subpicture_t): xcb_void_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xvmc_destroy_subpicture*(c: ptr xcb_connection_t;
# subpicture_id: xcb_xvmc_subpicture_t): xcb_void_cookie_t
# proc xcb_xvmc_list_subpicture_types_sizeof*(_buffer: pointer): cint
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ##
# proc xcb_xvmc_list_subpicture_types*(c: ptr xcb_connection_t;
# port_id: xcb_xv_port_t;
# surface_id: xcb_xvmc_surface_t): xcb_xvmc_list_subpicture_types_cookie_t
# ## *
# ##
# ## @param c The connection
# ## @return A cookie
# ##
# ## Delivers a request to the X server.
# ##
# ## This form can be used only if the request will cause
# ## a reply to be generated. Any returned error will be
# ## placed in the event queue.
# ##
# proc xcb_xvmc_list_subpicture_types_unchecked*(c: ptr xcb_connection_t;
# port_id: xcb_xv_port_t; surface_id: xcb_xvmc_surface_t): xcb_xvmc_list_subpicture_types_cookie_t
# proc xcb_xvmc_list_subpicture_types_types*(
# R: ptr xcb_xvmc_list_subpicture_types_reply_t): ptr xcb_xv_image_format_info_t
# proc xcb_xvmc_list_subpicture_types_types_length*(
# R: ptr xcb_xvmc_list_subpicture_types_reply_t): cint
# proc xcb_xvmc_list_subpicture_types_types_iterator*(
# R: ptr xcb_xvmc_list_subpicture_types_reply_t): xcb_xv_image_format_info_iterator_t
# ## *
# ## Return the reply
# ## @param c The connection
# ## @param cookie The cookie
# ## @param e The xcb_generic_error_t supplied
# ##
# ## Returns the reply of the request asked by
# ##
# ## The parameter @p e supplied to this function must be NULL if
# ## xcb_xvmc_list_subpicture_types_unchecked(). is used.
# ## Otherwise, it stores the error if any.
# ##
# ## The returned value must be freed by the caller using free().
# ##
# proc xcb_xvmc_list_subpicture_types_reply*(c: ptr xcb_connection_t; cookie: xcb_xvmc_list_subpicture_types_cookie_t; ## *<
# e: ptr ptr xcb_generic_error_t): ptr xcb_xvmc_list_subpicture_types_reply_t
# ## *
# ## @}
# ##