]> git.sur5r.net Git - i3/i3/blob - include/render.h
Merge branch 'release-4.16.1'
[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 /**
16  * This is used to keep a state to pass around when rendering a con in render_con().
17  *
18  */
19 typedef struct render_params {
20     /* A copy of the coordinates of the container which is being rendered. */
21     int x;
22     int y;
23
24     /* The computed height for decorations. */
25     int deco_height;
26     /* Container rect, subtract container border. This is the actually usable space
27      * inside this container for clients. */
28     Rect rect;
29     /* The number of children of the container which is being rendered. */
30     int children;
31     /* A precalculated list of sizes of each child. */
32     int *sizes;
33 } render_params;
34
35 /**
36  * "Renders" the given container (and its children), meaning that all rects are
37  * updated correctly. Note that this function does not call any xcb_*
38  * functions, so the changes are completely done in memory only (and
39  * side-effect free). As soon as you call x_push_changes(), the changes will be
40  * updated in X11.
41  *
42  */
43 void render_con(Con *con, bool render_fullscreen);
44
45 /**
46  * Returns the height for the decorations
47  *
48  */
49 int render_deco_height(void);