API

XCB.ConnectionType

Connection to the X server.

mutable struct Connection <: XCB.Handle
  • h::Ptr{Nothing}: Opaque handle to the connection, used for API calls.
source
XCB.ConnectionMethod

Initialize a connection to the X server.

Connection(; display) -> Connection
source
XCB.ConnectionErrorType

The X Server reported a connection error.

struct ConnectionError <: Exception
  • msg::Any

  • code::Any

source
XCB.FlushErrorType

Error when flushing a connection to the X Server.

struct FlushError <: Exception
  • code::Any
source
XCB.GraphicsContextType

Graphics context attached to a window. Used to register drawing commands on the window surface.

mutable struct GraphicsContext
  • conn::Connection

  • id::UInt32

source
XCB.HandleType

Structures 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 Handle
source
XCB.RequestErrorType

A request to the X Server returned with an error.

struct RequestError <: Exception
  • msg::Any
source
XCB.SetupType

Connection setup handle and data.

struct Setup <: XCB.Handle
  • h::Ptr{xcb_setup_t}: Handle to the setup, used for API calls.
  • value::xcb_setup_t: Setup value, obtained when dereferencing its handle.
source
XCB.XCBWindowType

Window type used with the XCB API.

mutable struct XCBWindow <: AbstractWindow
  • conn::Connection

  • id::UInt32

  • screen::xcb_screen_t

  • delete_request::UInt32

  • gc::Union{Nothing, GraphicsContext}

source
XCB.XCBWindowMethod

Create a new window on the provided screen.

XCBWindow(
    conn,
    screen::xcb_screen_t;
    depth,
    x,
    y,
    width,
    height,
    border_width,
    class,
    window_title,
    icon_title,
    map,
    attributes,
    values,
    with_decorations
) -> XCBWindow
source
XCB.XCBWindowMethod

Create a new window on the current screen.

XCBWindow(conn::Connection; kwargs...) -> XCBWindow
source
XCB.checkMethod

Check that the connection to the X server was successful. Throws a ConnectionError if the connection failed.

check(connection::Connection) -> Connection
source
XCB.check_requestMethod

Check 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)
source
XCB.state_xcbMethod

Translate mouse or modifier state into the corresponding XCB value.

state_xcb(event::Event) -> Any
source
XCB.@checkMacro

Check 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

source
XCB.@flushMacro

Flush 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
source