i3
include/tree.h
Go to the documentation of this file.
00001 /*
00002  * vim:ts=4:sw=4:expandtab
00003  *
00004  * i3 - an improved dynamic tiling window manager
00005  * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
00006  *
00007  * tree.c: Everything that primarily modifies the layout tree data structure.
00008  *
00009  */
00010 #ifndef _TREE_H
00011 #define _TREE_H
00012 
00013 extern Con *croot;
00014 /* TODO: i am not sure yet how much access to the focused container should
00015  * be permitted to source files */
00016 extern Con *focused;
00017 TAILQ_HEAD(all_cons_head, Con);
00018 extern struct all_cons_head all_cons;
00019 
00026 void tree_init(xcb_get_geometry_reply_t *geometry);
00027 
00032 Con *tree_open_con(Con *con, i3Window *window);
00033 
00039 void tree_split(Con *con, orientation_t orientation);
00040 
00045 void level_up();
00046 
00051 void level_down();
00052 
00058 void tree_render();
00059 
00064 void tree_close_con(kill_window_t kill_window);
00065 
00071 void tree_next(char way, orientation_t orientation);
00072 
00086 bool tree_close(Con *con, kill_window_t kill_window, bool dont_kill_parent, bool force_set_focus);
00087 
00092 bool tree_restore(const char *path, xcb_get_geometry_reply_t *geometry);
00093 
00107 void tree_flatten(Con *child);
00108 
00109 #endif