i3
|
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(void); 00046 00051 void level_down(void); 00052 00058 void tree_render(void); 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