6 #include <xcb/xcb_event.h>
9 #define DEFAULT_DESK_NAME "Desktop"
10 #define DEFAULT_MON_NAME "Monitor"
11 #define MISSING_VALUE "N/A"
45 SEND_OPTION_DONT_FOLLOW
52 CLIENT_SKIP_CLASS_EQUAL,
53 CLIENT_SKIP_CLASS_DIFFER
84 ROTATE_COUNTER_CLOCKWISE,
125 char class_name[MAXLEN];
126 split_mode_t born_as;
127 unsigned int border_width;
129 bool transient; /* transient window are always floating */
131 bool locked; /* protects window from being closed */
133 xcb_rectangle_t floating_rectangle;
134 xcb_rectangle_t tiled_rectangle;
137 typedef struct node_t node_t;
139 split_type_t split_type;
141 xcb_rectangle_t rectangle;
142 bool vacant; /* vacant nodes only hold floating clients */
144 node_t *second_child;
146 client_t *client; /* NULL except for leaves */
149 typedef struct node_list_t node_list_t;
162 typedef struct desktop_t desktop_t;
168 focus_history_t *history;
173 typedef struct monitor_t monitor_t;
176 xcb_rectangle_t rectangle;
182 desktop_t *last_desk;
183 desktop_t *desk_head;
184 desktop_t *desk_tail;
200 typedef struct rule_t rule_t;
204 rule_effect_t effect;
218 } desktop_location_t;
221 xcb_point_t position;
222 pointer_action_t action;
223 xcb_rectangle_t rectangle;
224 node_t *vertical_fence;
225 node_t *horizontal_fence;
232 double vertical_ratio;
233 double horizontal_ratio;
240 unsigned int distance;
243 node_t *make_node(void);
244 monitor_t *make_monitor(xcb_rectangle_t *);
245 monitor_t *find_monitor(char *);
246 void add_monitor(xcb_rectangle_t *);
247 void remove_monitor(monitor_t *);
248 desktop_t *make_desktop(const char *);
249 void add_desktop(monitor_t *, char *);
250 void empty_desktop(desktop_t *);
251 void remove_desktop(monitor_t *, desktop_t *);
252 rule_t *make_rule(void);
253 pointer_state_t *make_pointer_state(void);
254 client_t *make_client(xcb_window_t);
255 focus_history_t *make_focus_history(void);
256 node_list_t *make_node_list(void);
257 void history_add(focus_history_t *, node_t *);
258 void history_remove(focus_history_t *, node_t *);
259 void empty_history(focus_history_t *);
260 node_t *history_get(focus_history_t *, int);