56 lines
1.4 KiB
C
56 lines
1.4 KiB
C
/*
|
||
* vim:ts=8:expandtab
|
||
*
|
||
* i3 - an improved dynamic tiling window manager
|
||
*
|
||
* (c) 2009 Michael Stapelberg and contributors
|
||
*
|
||
* See file LICENSE for license information.
|
||
*
|
||
*/
|
||
#include <stdbool.h>
|
||
|
||
#include <xcb/xcb.h>
|
||
|
||
#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
|