i3
tree.h
Go to the documentation of this file.
1 /*
2  * vim:ts=4:sw=4:expandtab
3  *
4  * i3 - an improved dynamic tiling window manager
5  * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
6  *
7  * tree.c: Everything that primarily modifies the layout tree data structure.
8  *
9  */
10 #ifndef _TREE_H
11 #define _TREE_H
12 
13 extern Con *croot;
14 /* TODO: i am not sure yet how much access to the focused container should
15  * be permitted to source files */
16 extern Con *focused;
17 TAILQ_HEAD(all_cons_head, Con);
18 extern struct all_cons_head all_cons;
19 
26 void tree_init(xcb_get_geometry_reply_t *geometry);
27 
32 Con *tree_open_con(Con *con, i3Window *window);
33 
39 void tree_split(Con *con, orientation_t orientation);
40 
45 void level_up(void);
46 
51 void level_down(void);
52 
58 void tree_render(void);
59 
64 void tree_close_con(kill_window_t kill_window);
65 
71 void tree_next(char way, orientation_t orientation);
72 
86 bool tree_close(Con *con, kill_window_t kill_window, bool dont_kill_parent, bool force_set_focus);
87 
92 bool tree_restore(const char *path, xcb_get_geometry_reply_t *geometry);
93 
107 void tree_flatten(Con *child);
108 
109 #endif