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 * 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