i3
include/table.h
Go to the documentation of this file.
00001 /*
00002  * vim:ts=8:expandtab
00003  *
00004  * i3 - an improved dynamic tiling window manager
00005  *
00006  * (c) 2009 Michael Stapelberg and contributors
00007  *
00008  * See file LICENSE for license information.
00009  *
00010  */
00011 #include <stdbool.h>
00012 
00013 #include <xcb/xcb.h>
00014 
00015 #include "data.h"
00016 
00017 #ifndef _TABLE_H
00018 #define _TABLE_H
00019 
00020 #define CUR_TABLE (c_ws->table)
00021 #define CUR_CELL (CUR_TABLE[current_col][current_row])
00022 
00023 extern Workspace *c_ws;
00024 extern TAILQ_HEAD(workspaces_head, Workspace) *workspaces;
00025 //extern int num_workspaces;
00026 extern int current_col;
00027 extern int current_row;
00028 
00030 void init_table();
00031 
00033 void expand_table_rows(Workspace *workspace);
00034 
00036 void expand_table_rows_at_head(Workspace *workspace);
00037 
00039 void expand_table_cols(Workspace *workspace);
00040 
00045 void expand_table_cols_at_head(Workspace *workspace);
00046 
00051 bool cell_exists(Workspace *ws, int col, int row);
00052 
00058 void cleanup_table(xcb_connection_t *conn, Workspace *workspace);
00059 
00064 void fix_colrowspan(xcb_connection_t *conn, Workspace *workspace);
00065 
00070 void dump_table(xcb_connection_t *conn, Workspace *workspace);
00071 
00072 #endif