Logo Search packages:      
Sourcecode: i3-wm version File versions  Download package

table.h

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

Generated by  Doxygen 1.6.0   Back to index