include/xcb.h File Reference

#include "data.h"
#include "xcursor.h"
#include "atoms.xmacro"
Include dependency graph for xcb.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define _NET_WM_STATE_REMOVE   0
#define _NET_WM_STATE_ADD   1
#define _NET_WM_STATE_TOGGLE   2
#define XCB_CURSOR_LEFT_PTR   68
 This is the equivalent of XC_left_ptr.
#define XCB_CURSOR_SB_H_DOUBLE_ARROW   108
#define XCB_CURSOR_SB_V_DOUBLE_ARROW   116
#define XCB_NUM_LOCK   0xff7f
#define CHILD_EVENT_MASK
 The XCB_CW_EVENT_MASK for the child (= real window).
#define FRAME_EVENT_MASK
 The XCB_CW_EVENT_MASK for its frame.
#define xmacro(atom)   xcb_atom_t A_ ## atom;

Functions

i3Font load_font (const char *pattern, bool fallback)
 Loads a font for usage, also getting its height.
uint32_t get_colorpixel (char *hex)
 Returns the colorpixel to use for the given hex color (think of HTML).
xcb_window_t create_window (xcb_connection_t *conn, Rect r, uint16_t window_class, enum xcursor_cursor_t cursor, bool map, uint32_t mask, uint32_t *values)
 Convenience wrapper around xcb_create_window which takes care of depth, generating an ID and checking for errors.
void xcb_change_gc_single (xcb_connection_t *conn, xcb_gcontext_t gc, uint32_t mask, uint32_t value)
 Changes a single value in the graphic context (so one doesn’t have to define an array of values).
void xcb_draw_line (xcb_connection_t *conn, xcb_drawable_t drawable, xcb_gcontext_t gc, uint32_t colorpixel, uint32_t x, uint32_t y, uint32_t to_x, uint32_t to_y)
 Draws a line from x,y to to_x,to_y using the given color.
void xcb_draw_rect (xcb_connection_t *conn, xcb_drawable_t drawable, xcb_gcontext_t gc, uint32_t colorpixel, uint32_t x, uint32_t y, uint32_t width, uint32_t height)
 Draws a rectangle from x,y with width,height using the given color.
void fake_configure_notify (xcb_connection_t *conn, Rect r, xcb_window_t window)
 Generates a configure_notify event and sends it to the given window Applications need this to think they’ve configured themselves correctly.
void fake_absolute_configure_notify (Con *con)
 Generates a configure_notify_event with absolute coordinates (relative to the X root window, not to the client’s frame) for the given client.
void send_take_focus (xcb_window_t window)
 Sends the WM_TAKE_FOCUS ClientMessage to the given window.
void xcb_get_numlock_mask (xcb_connection_t *conn)
 Finds out which modifier mask is the one for numlock, as the user may change this.
void xcb_raise_window (xcb_connection_t *conn, xcb_window_t window)
 Raises the given window (typically client->frame) above all other windows.
int predict_text_width (char *text, int length)
 Calculate the width of the given text (16-bit characters, UCS) with given real length (amount of glyphs) using the given font.
void xcb_set_window_rect (xcb_connection_t *conn, xcb_window_t window, Rect r)
 Configures the given window to have the size/position specified by given rect.
bool xcb_reply_contains_atom (xcb_get_property_reply_t *prop, xcb_atom_t atom)

Variables

unsigned int xcb_numlock_mask

Define Documentation

#define _NET_WM_STATE_ADD   1

Definition at line 18 of file xcb.h.

Referenced by handle_client_message().

#define _NET_WM_STATE_REMOVE   0

Definition at line 17 of file xcb.h.

Referenced by handle_client_message().

#define _NET_WM_STATE_TOGGLE   2

Definition at line 19 of file xcb.h.

Referenced by handle_client_message().

#define CHILD_EVENT_MASK
Value:
(XCB_EVENT_MASK_PROPERTY_CHANGE | \
                          XCB_EVENT_MASK_STRUCTURE_NOTIFY | \
                          XCB_EVENT_MASK_FOCUS_CHANGE)

The XCB_CW_EVENT_MASK for the child (= real window).

Definition at line 34 of file xcb.h.

Referenced by manage_window(), x_push_changes(), and x_push_node().

#define FRAME_EVENT_MASK
Value:
(XCB_EVENT_MASK_BUTTON_PRESS |          /* …mouse is pressed/released */ \
                          XCB_EVENT_MASK_BUTTON_RELEASE | \
                          XCB_EVENT_MASK_POINTER_MOTION |        /* …mouse is moved */ \
                          XCB_EVENT_MASK_EXPOSURE |              /* …our window needs to be redrawn */ \
                          XCB_EVENT_MASK_STRUCTURE_NOTIFY |      /* …the frame gets destroyed */ \
                          XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT | /* …the application tries to resize itself */ \
                          XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY |   /* …subwindows get notifies */ \
                          XCB_EVENT_MASK_ENTER_WINDOW)

The XCB_CW_EVENT_MASK for its frame.

Definition at line 39 of file xcb.h.

Referenced by x_con_init(), x_push_changes(), and x_push_node().

#define XCB_CURSOR_LEFT_PTR   68

This is the equivalent of XC_left_ptr.

I’m not sure why xcb doesn’t have a constant for that.

Definition at line 23 of file xcb.h.

#define XCB_CURSOR_SB_H_DOUBLE_ARROW   108

Definition at line 24 of file xcb.h.

#define XCB_CURSOR_SB_V_DOUBLE_ARROW   116

Definition at line 25 of file xcb.h.

#define XCB_NUM_LOCK   0xff7f

Definition at line 28 of file xcb.h.

Referenced by xcb_get_numlock_mask().

#define xmacro ( atom   )     xcb_atom_t A_ ## atom;

Definition at line 48 of file xcb.h.


Function Documentation

xcb_window_t create_window ( xcb_connection_t *  conn,
Rect  r,
uint16_t  window_class,
enum xcursor_cursor_t  cursor,
bool  map,
uint32_t  mask,
uint32_t *  values 
)

Convenience wrapper around xcb_create_window which takes care of depth, generating an ID and checking for errors.

Definition at line 95 of file xcb.c.

References Rect::height, Font::id, load_font(), root, Rect::width, Rect::x, xcursor_get_cursor(), xcursor_get_xcb_cursor(), xcursor_supported, and Rect::y.

Referenced by resize_graphical_handler(), and x_con_init().

Here is the call graph for this function:

void fake_absolute_configure_notify ( Con con  ) 

Generates a configure_notify_event with absolute coordinates (relative to the X root window, not to the client’s frame) for the given client.

Definition at line 202 of file xcb.c.

References conn, DLOG, fake_configure_notify(), Rect::height, Window::id, Con::rect, Rect::width, Con::window, Con::window_rect, Rect::x, and Rect::y.

Referenced by handle_configure_request(), and x_push_node().

Here is the call graph for this function:

void fake_configure_notify ( xcb_connection_t *  conn,
Rect  r,
xcb_window_t  window 
)

Generates a configure_notify event and sends it to the given window Applications need this to think they’ve configured themselves correctly.

The truth is, however, that we will manage them.

Definition at line 171 of file xcb.c.

References Rect::height, scalloc(), Rect::width, Rect::x, and Rect::y.

Referenced by fake_absolute_configure_notify(), and handle_configure_request().

Here is the call graph for this function:

uint32_t get_colorpixel ( char *  hex  ) 

Returns the colorpixel to use for the given hex color (think of HTML).

The hex_color has to start with #, for example FF00FF.

NOTE that get_colorpixel() does _NOT_ check the given color code for validity. This has to be done by the caller.

Definition at line 79 of file xcb.c.

Referenced by load_configuration(), sig_draw_window(), and yyparse().

i3Font load_font ( const char *  pattern,
bool  fallback 
)

Loads a font for usage, also getting its height.

If fallback is true, i3 loads 'fixed' or '-misc-*' if the font cannot be found instead of exiting.

Referenced by create_window(), load_configuration(), main(), and yyparse().

int predict_text_width ( char *  text,
int  length 
)

Calculate the width of the given text (16-bit characters, UCS) with given real length (amount of glyphs) using the given font.

Definition at line 308 of file xcb.c.

References config, conn, ELOG, Config::font, and Font::id.

Referenced by handle_signal(), and load_configuration().

void send_take_focus ( xcb_window_t  window  ) 

Sends the WM_TAKE_FOCUS ClientMessage to the given window.

Definition at line 221 of file xcb.c.

References conn, DLOG, and scalloc().

Referenced by x_push_changes().

Here is the call graph for this function:

void xcb_change_gc_single ( xcb_connection_t *  conn,
xcb_gcontext_t  gc,
uint32_t  mask,
uint32_t  value 
)

Changes a single value in the graphic context (so one doesn’t have to define an array of values).

Definition at line 139 of file xcb.c.

Referenced by handle_signal(), sig_draw_window(), x_draw_decoration(), xcb_draw_line(), and xcb_draw_rect().

void xcb_draw_line ( xcb_connection_t *  conn,
xcb_drawable_t  drawable,
xcb_gcontext_t  gc,
uint32_t  colorpixel,
uint32_t  x,
uint32_t  y,
uint32_t  to_x,
uint32_t  to_y 
)

Draws a line from x,y to to_x,to_y using the given color.

Definition at line 147 of file xcb.c.

References xcb_change_gc_single().

Here is the call graph for this function:

void xcb_draw_rect ( xcb_connection_t *  conn,
xcb_drawable_t  drawable,
xcb_gcontext_t  gc,
uint32_t  colorpixel,
uint32_t  x,
uint32_t  y,
uint32_t  width,
uint32_t  height 
)

Draws a rectangle from x,y with width,height using the given color.

Definition at line 158 of file xcb.c.

References con_state::rect, and xcb_change_gc_single().

Here is the call graph for this function:

void xcb_get_numlock_mask ( xcb_connection_t *  conn  ) 

Finds out which modifier mask is the one for numlock, as the user may change this.

Definition at line 244 of file xcb.c.

References keysyms, XCB_NUM_LOCK, and xcb_numlock_mask.

Referenced by handle_mapping_notify(), main(), and xkb_got_event().

void xcb_raise_window ( xcb_connection_t *  conn,
xcb_window_t  window 
)

Raises the given window (typically client->frame) above all other windows.

Definition at line 298 of file xcb.c.

bool xcb_reply_contains_atom ( xcb_get_property_reply_t *  prop,
xcb_atom_t  atom 
)

Definition at line 349 of file xcb.c.

Referenced by manage_window().

void xcb_set_window_rect ( xcb_connection_t *  conn,
xcb_window_t  window,
Rect  r 
)

Configures the given window to have the size/position specified by given rect.

Definition at line 333 of file xcb.c.

References add_ignore_event(), and Rect::x.

Referenced by restore_geometry(), and x_push_node().

Here is the call graph for this function:


Variable Documentation

unsigned int xcb_numlock_mask

Generated on 6 Aug 2011 for i3 by  doxygen 1.6.1