]> git.sur5r.net Git - i3/i3/blob - include/render.h
Merge pull request #2507 from stapelberg/autotools
[i3/i3] / include / render.h
1 /*
2  * vim:ts=4:sw=4:expandtab
3  *
4  * i3 - an improved dynamic tiling window manager
5  * © 2009 Michael Stapelberg and contributors (see also: LICENSE)
6  *
7  * render.c: Renders (determines position/sizes) the layout tree, updating the
8  *           various rects. Needs to be pushed to X11 (see x.c) to be visible.
9  *
10  */
11 #pragma once
12
13 #include <config.h>
14
15 /* This is used to keep a state to pass around when rendering a con in render_con(). */
16 typedef struct render_params {
17     /* A copy of the coordinates of the container which is being rendered. */
18     int x;
19     int y;
20
21     /* The computed height for decorations. */
22     int deco_height;
23     /* Container rect, subtract container border. This is the actually usable space
24      * inside this container for clients. */
25     Rect rect;
26     /* The number of children of the container which is being rendered. */
27     int children;
28     /* A precalculated list of sizes of each child. */
29     int *sizes;
30 } render_params;
31
32 /**
33  * "Renders" the given container (and its children), meaning that all rects are
34  * updated correctly. Note that this function does not call any xcb_*
35  * functions, so the changes are completely done in memory only (and
36  * side-effect free). As soon as you call x_push_changes(), the changes will be
37  * updated in X11.
38  *
39  */
40 void render_con(Con *con, bool render_fullscreen);
41
42 /*
43  * Returns the height for the decorations
44  */
45 int render_deco_height(void);