4 * i3 - an improved dynamic tiling window manager
6 * (c) 2009 Michael Stapelberg and contributors
8 * See file LICENSE for license information.
20 #define CUR_TABLE (c_ws->table)
21 #define CUR_CELL (CUR_TABLE[current_col][current_row])
23 extern Workspace *c_ws;
24 extern Workspace workspaces[10];
25 extern int current_col;
26 extern int current_row;
28 /** Initialize table */
31 /** Add one row to the table */
32 void expand_table_rows(Workspace *workspace);
34 /** Adds one row at the head of the table */
35 void expand_table_rows_at_head(Workspace *workspace);
37 /** Add one column to the table */
38 void expand_table_cols(Workspace *workspace);
41 * Inserts one column at the table’s head
44 void expand_table_cols_at_head(Workspace *workspace);
47 * Performs simple bounds checking for the given column/row
50 bool cell_exists(int col, int row);
53 * Shrinks the table by "compacting" it, that is, removing completely empty
57 void cleanup_table(xcb_connection_t *conn, Workspace *workspace);
60 * Fixes col/rowspan (makes sure there are no overlapping windows)
63 void fix_colrowspan(xcb_connection_t *conn, Workspace *workspace);
66 * Prints the table’s contents in human-readable form for debugging
69 void dump_table(xcb_connection_t *conn, Workspace *workspace);