]> git.sur5r.net Git - i3/i3/blobdiff - include/table.h
Fix unaligned memory access on sparc (Thanks David Coppa)
[i3/i3] / include / table.h
index a57b392fe1d50ffceead702316fc42bd63a0f07a..6236bef56e1283c0ae85dd65583ae8476bd29908 100644 (file)
@@ -10,6 +10,8 @@
  */
 #include <stdbool.h>
 
+#include <xcb/xcb.h>
+
 #include "data.h"
 
 #ifndef _TABLE_H
 #define CUR_CELL (CUR_TABLE[current_col][current_row])
 
 extern Workspace *c_ws;
-extern Workspace workspaces[10];
+extern TAILQ_HEAD(workspaces_head, Workspace) *workspaces;
+//extern int num_workspaces;
 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);
-bool cell_exists(int col, int row);
+
+/**
+ * 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(Workspace *ws, 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