6 #include <xcb/xcb_event.h>
9 #define SPLIT_RATIO 0.5
10 #define DEFAULT_DESK_NAME "Desktop"
11 #define DEFAULT_MON_NAME "Monitor"
12 #define MISSING_VALUE "N/A"
64 ROTATE_COUNTER_CLOCKWISE,
85 char class_name[MAXLEN];
86 unsigned int border_width;
88 bool transient; /* transient window are always floating */
90 bool locked; /* protects window from being closed */
92 xcb_rectangle_t floating_rectangle;
93 xcb_rectangle_t tiled_rectangle;
96 typedef struct node_t node_t;
98 split_type_t split_type;
100 xcb_rectangle_t rectangle;
101 bool vacant; /* vacant nodes only hold floating clients */
102 split_mode_t born_as;
104 node_t *second_child;
106 client_t *client; /* NULL except for leaves */
109 typedef struct desktop_t desktop_t;
120 typedef struct monitor_t monitor_t;
123 xcb_rectangle_t rectangle;
125 desktop_t *last_desk;
126 desktop_t *desk_head;
127 desktop_t *desk_tail;
140 typedef struct rule_t rule_t;
143 rule_effect_t effect;
156 } desktop_location_t;
159 xcb_point_t position;
161 xcb_rectangle_t rectangle;
168 node_t *make_node(void);
169 monitor_t *make_monitor(xcb_rectangle_t *);
170 desktop_t *make_desktop(const char *);
171 client_t *make_client(xcb_window_t);
172 rule_t *make_rule(void);
173 pointer_state_t *make_pointer_state(void);