7 #include <xcb/xcb_event.h>
10 #define MISSING_VALUE "N/A"
115 DESKTOP_STATUS_OCCUPIED
125 desktop_status_t status;
132 char class_name[SMALEN];
133 unsigned int border_width;
135 bool transient; /* transient window are always floating */
137 bool locked; /* protects window from being closed */
141 xcb_rectangle_t floating_rectangle;
142 xcb_rectangle_t tiled_rectangle;
143 unsigned int tags_field;
144 xcb_atom_t wm_state[MAX_STATE];
148 typedef struct node_t node_t;
150 split_type_t split_type;
152 split_mode_t split_mode;
153 direction_t split_dir;
155 xcb_rectangle_t rectangle;
156 bool vacant; /* vacant nodes only hold floating clients */
158 node_t *second_child;
160 client_t *client; /* NULL except for leaves */
163 typedef struct desktop_t desktop_t;
172 unsigned int border_width;
173 unsigned int tags_field;
176 typedef struct monitor_t monitor_t;
179 xcb_randr_output_t id;
180 xcb_rectangle_t rectangle;
188 desktop_t *desk_head;
189 desktop_t *desk_tail;
201 typedef struct history_t history_t;
209 typedef struct stacking_list_t stacking_list_t;
210 struct stacking_list_t {
212 stacking_list_t *prev;
213 stacking_list_t *next;
232 typedef struct rule_t rule_t;
236 rule_effect_t effect;
242 xcb_point_t position;
243 pointer_action_t action;
244 xcb_rectangle_t rectangle;
245 node_t *vertical_fence;
246 node_t *horizontal_fence;
253 double vertical_ratio;
254 double horizontal_ratio;
261 unsigned int distance;