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 #pragma once
11 
12 extern Con *croot;
13 /* TODO: i am not sure yet how much access to the focused container should
14  * be permitted to source files */
15 extern Con *focused;
16 TAILQ_HEAD(all_cons_head, Con);
17 extern struct all_cons_head all_cons;
18 
25 void tree_init(xcb_get_geometry_reply_t *geometry);
26 
31 Con *tree_open_con(Con *con, i3Window *window);
32 
38 void tree_split(Con *con, orientation_t orientation);
39 
44 bool level_up(void);
45 
50 bool level_down(void);
51 
57 void tree_render(void);
58 
63 void tree_close_con(kill_window_t kill_window);
64 
70 void tree_next(char way, orientation_t orientation);
71 
85 bool tree_close(Con *con, kill_window_t kill_window, bool dont_kill_parent, bool force_set_focus);
86 
91 bool tree_restore(const char *path, xcb_get_geometry_reply_t *geometry);
92 
106 void tree_flatten(Con *child);
TAILQ_HEAD(all_cons_head, Con)
Con * focused
Definition: tree.c:15
void tree_init(xcb_get_geometry_reply_t *geometry)
Initializes the tree by creating the root node, adding all RandR outputs to the tree (that means rand...
Definition: tree.c:115
void tree_close_con(kill_window_t kill_window)
Closes the current container using tree_close().
Definition: tree.c:359
A 'Window' is a type which contains an xcb_window_t and all the related information (hints like _NET_...
Definition: data.h:332
Con * croot
Definition: tree.c:14
void tree_flatten(Con *child)
tree_flatten() removes pairs of redundant split containers, e.g.
Definition: tree.c:694
Con * tree_open_con(Con *con, i3Window *window)
Opens an empty container in the current container.
Definition: tree.c:134
void tree_render(void)
Renders the tree, that is rendering all outputs using render_con() and pushing the changes to X11 usi...
Definition: tree.c:507
A 'Con' represents everything from the X11 root window down to a single X11 window.
Definition: data.h:479
bool level_up(void)
Moves focus one level up.
Definition: tree.c:444
orientation_t
Definition: data.h:55
bool level_down(void)
Moves focus one level down.
Definition: tree.c:467
bool tree_restore(const char *path, xcb_get_geometry_reply_t *geometry)
Loads tree from ~/.i3/_restart.json (used for in-place restarts).
Definition: tree.c:68
bool tree_close(Con *con, kill_window_t kill_window, bool dont_kill_parent, bool force_set_focus)
Closes the given container including all children.
Definition: tree.c:190
void tree_split(Con *con, orientation_t orientation)
Splits (horizontally or vertically) the given container by creating a new container which contains th...
Definition: tree.c:388
struct all_cons_head all_cons
Definition: tree.c:17
void tree_next(char way, orientation_t orientation)
Changes focus in the given way (next/previous) and given orientation (horizontal/vertical).
Definition: tree.c:677
kill_window_t
parameter to specify whether tree_close() and x_window_kill() should kill only this specific window o...
Definition: data.h:60