2 * This file defines all data structures used by i3
8 * Defines a position in the table
17 * We need to save the height of a font because it is required for each drawing of
18 * text but relatively hard to get. As soon as a new font needs to be loaded, a
19 * Font-entry will be filled for later use.
28 * A client is X11-speak for a window.
31 typedef struct Client {
32 /* TODO: this is NOT final */
33 Cell old_position; /* if you set a client to floating and set it back to managed,
34 it does remember its old position and *tries* to get back there */
38 xcb_gcontext_t titlegc;
42 /* The following entry provides the necessary list pointers to use Client with LIST_* macros */
43 LIST_ENTRY(Client) clients;
47 * A container is either in default or stacking mode. It sits inside the table.
50 typedef struct Container {
51 /* Ensure MODE_DEFAULT maps to 0 because we use calloc for initialization later */
54 enum { MODE_DEFAULT = 0, MODE_STACK = 1 } mode;
55 LIST_HEAD(client_head, Client) clients;