/* * vim:ts=8:expandtab * * i3 - an improved dynamic tiling window manager * * (c) 2009 Michael Stapelberg and contributors * * See file LICENSE for license information. * */ #include #include #include "data.h" #ifndef _TABLE_H #define _TABLE_H #define CUR_TABLE (c_ws->table) #define CUR_CELL (CUR_TABLE[current_col][current_row]) extern Workspace *c_ws; extern Workspace workspaces[10]; extern int current_col; extern int current_row; /** Initialize table */ void init_table(); /** Add one row to the table */ void expand_table_rows(Workspace *workspace); /** Adds one row at the head of the table */ void expand_table_rows_at_head(Workspace *workspace); /** Add one column to the table */ void expand_table_cols(Workspace *workspace); /** * Inserts one column at the table’s head * */ void expand_table_cols_at_head(Workspace *workspace); /** * Performs simple bounds checking for the given column/row * */ bool cell_exists(int col, int row); /** * Shrinks the table by "compacting" it, that is, removing completely empty * rows/columns * */ void cleanup_table(xcb_connection_t *conn, Workspace *workspace); /** * Fixes col/rowspan (makes sure there are no overlapping windows) * */ void fix_colrowspan(xcb_connection_t *conn, Workspace *workspace); /** * Prints the table’s contents in human-readable form for debugging * */ void dump_table(xcb_connection_t *conn, Workspace *workspace); #endif