i3
include/con.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  * con.c: Functions which deal with containers directly (creating containers,
00008  *        searching containers, getting specific properties from containers,
00009  *        …).
00010  *
00011  */
00012 #ifndef _CON_H
00013 #define _CON_H
00014 
00021 Con *con_new(Con *parent, i3Window *window);
00022 
00028 void con_focus(Con *con);
00029 
00034 bool con_is_leaf(Con *con);
00035 
00041 bool con_accepts_window(Con *con);
00042 
00048 Con *con_get_output(Con *con);
00049 
00054 Con *con_get_workspace(Con *con);
00055 
00061 Con *con_parent_with_orientation(Con *con, orientation_t orientation);
00062 
00067 Con *con_get_fullscreen_con(Con *con, int fullscreen_mode);
00068 
00073 bool con_is_floating(Con *con);
00074 
00080 Con *con_inside_floating(Con *con);
00081 
00086 bool con_inside_focused(Con *con);
00087 
00093 Con *con_by_window_id(xcb_window_t window);
00094 
00100 Con *con_by_frame_id(xcb_window_t frame);
00101 
00107 Con *con_for_window(Con *con, i3Window *window, Match **store_match);
00108 
00113 int con_num_children(Con *con);
00114 
00125 void con_attach(Con *con, Con *parent, bool ignore_focus);
00126 
00131 void con_detach(Con *con);
00132 
00139 void con_fix_percent(Con *con);
00140 
00146 void con_toggle_fullscreen(Con *con, int fullscreen_mode);
00147 
00165 void con_move_to_workspace(Con *con, Con *workspace, bool fix_coordinates, bool dont_warp);
00166 
00173 int con_orientation(Con *con);
00174 
00181 Con *con_next_focused(Con *con);
00182 
00188 Con *con_get_next(Con *con, char way, orientation_t orientation);
00189 
00196 Con *con_descend_focused(Con *con);
00197 
00206 Con *con_descend_tiling_focused(Con *con);
00207 
00208 /*
00209  * Returns the leftmost, rightmost, etc. container in sub-tree. For example, if
00210  * direction is D_LEFT, then we return the rightmost container and if direction
00211  * is D_RIGHT, we return the leftmost container.  This is because if we are
00212  * moving D_LEFT, and thus want the rightmost container.
00213  */
00214 Con *con_descend_direction(Con *con, direction_t direction);
00215 
00222 Rect con_border_style_rect(Con *con);
00223 
00234 int con_border_style(Con *con);
00235 
00241 void con_set_border_style(Con *con, int border_style);
00242 
00249 void con_set_layout(Con *con, int layout);
00250 
00256 Rect con_minimum_size(Con *con);
00257 
00258 #endif