API
XCB.ConnectionXCB.ConnectionXCB.ConnectionErrorXCB.FlushErrorXCB.GraphicsContextXCB.HandleXCB.RequestErrorXCB.SetupXCB.XCBWindowXCB.XCBWindowXCB.XCBWindowXCB.checkXCB.check_flushXCB.check_requestXCB.response_type_xcbXCB.state_xcbXCB.@checkXCB.@flush
XCB.Connection — TypeConnection to the X server.
mutable struct Connection <: XCB.Handleh::Ptr{Nothing}: Opaque handle to the connection, used for API calls.
XCB.Connection — MethodInitialize a connection to the X server.
Connection(; display) -> Connection
XCB.ConnectionError — TypeThe X Server reported a connection error.
struct ConnectionError <: Exceptionmsg::Anycode::Any
XCB.FlushError — TypeError when flushing a connection to the X Server.
struct FlushError <: Exceptioncode::Any
XCB.GraphicsContext — TypeGraphics context attached to a window. Used to register drawing commands on the window surface.
mutable struct GraphicsContextconn::Connectionid::UInt32
XCB.Handle — TypeStructures which contain a handle (opaque pointer) as primary data. Those structures are usually defined as mutable so that a finalizer can be registered. Any Handle structure is automatically converted to its handle data on ccalls, through unsafe_convert.
abstract type HandleXCB.RequestError — TypeA request to the X Server returned with an error.
struct RequestError <: Exceptionmsg::Any
XCB.Setup — TypeConnection setup handle and data.
struct Setup <: XCB.Handleh::Ptr{xcb_setup_t}: Handle to the setup, used for API calls.
value::xcb_setup_t: Setup value, obtained when dereferencing its handle.
XCB.XCBWindow — TypeWindow type used with the XCB API.
mutable struct XCBWindow <: AbstractWindowconn::Connectionid::UInt32screen::xcb_screen_tframe_extents::Union{Nothing, NTuple{4, Int64}}gc::Union{Nothing, GraphicsContext}position::Tuple{Int64, Int64}extent::Tuple{Int64, Int64}ignore_next_moves::Int64atoms::Dict{Symbol, UInt32}
XCB.XCBWindow — MethodCreate a new window on the provided screen.
XCBWindow(
conn,
screen::xcb_screen_t;
depth,
offset,
width,
height,
border_width,
class,
window_title,
icon_title,
map,
attributes,
values,
with_decorations
) -> XCBWindow
XCB.XCBWindow — MethodCreate a new window on the current screen.
XCBWindow(conn::Connection; kwargs...) -> XCBWindow
XCB.check — MethodCheck that the connection to the X server was successful. Throws a ConnectionError if the connection failed.
check(connection::Connection) -> Connection
XCB.check_flush — MethodCheck that the flush was successful, throwing a FlushError if the code is negative.
check_flush(code)
XCB.check_request — MethodCheck that the request was successfully handled by the server, throwing a RequestError if the request failed.
The severity level can be set via level with one of the two following values:
- `:warn`: logs a warning with `@warn` (default).
- `:error`: raise a `RequestError`.check_request(conn, request; level)
XCB.response_type_xcb — MethodTranslate an action into its corresponding XCB value.
response_type_xcb(event::Event) -> Int64
XCB.state_xcb — MethodTranslate mouse or modifier state into the corresponding XCB value.
state_xcb(event::Event) -> Any
XCB.@check — MacroCheck the value returned by the function call request with check_request.
The severity level (:error or :warn) can be supplied as first argument. By default, the severity level is :warn.
Wraps request with check_request. The Connection argument is taken as the first argument of the function call expression request. The request is transformed to be checkable, through the functions xcb*checked (or xcb* if there exists a xcb*_unchecked version). If no checkable substitute is found, an ArgumentError is raised.
TODO: @macroexpand example
XCB.@flush — MacroFlush a connection attached to a request expr.
The connection is taken to be the first argument of expr. expr can be a call to XCB.@check.
Examples
julia> @macroexpand @flush xcb_unmap_window(window.conn, window.id)
quote
xcb_unmap_window(window.conn, window.id)
(flush)(window.conn)
end