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"
48 CLIENT_SKIP_CLASS_EQUAL,
49 CLIENT_SKIP_CLASS_DIFFER
75 ROTATE_COUNTER_CLOCKWISE,
96 char class_name[MAXLEN];
97 unsigned int border_width;
99 bool transient; /* transient window are always floating */
101 bool locked; /* protects window from being closed */
103 xcb_rectangle_t floating_rectangle;
104 xcb_rectangle_t tiled_rectangle;
107 typedef struct node_t node_t;
109 split_type_t split_type;
111 xcb_rectangle_t rectangle;
112 bool vacant; /* vacant nodes only hold floating clients */
113 split_mode_t born_as;
115 node_t *second_child;
117 client_t *client; /* NULL except for leaves */
120 typedef struct desktop_t desktop_t;
131 typedef struct monitor_t monitor_t;
134 xcb_rectangle_t rectangle;
136 desktop_t *last_desk;
137 desktop_t *desk_head;
138 desktop_t *desk_tail;
151 typedef struct rule_t rule_t;
154 rule_effect_t effect;
167 } desktop_location_t;
170 xcb_point_t position;
172 xcb_rectangle_t rectangle;
179 node_t *make_node(void);
180 monitor_t *make_monitor(xcb_rectangle_t *);
181 desktop_t *make_desktop(const char *);
182 client_t *make_client(xcb_window_t);
183 rule_t *make_rule(void);
184 pointer_state_t *make_pointer_state(void);