]> git.lizzy.rs Git - bspwm.git/blobdiff - src/types.h
bspwm: port rounded corners patch to latest version
[bspwm.git] / src / types.h
index 9745368992a658c36f028ad7dc829c5ee0abf0b5..8fc8eb6afc20cf877295b770799be6cf64f86793 100644 (file)
@@ -44,6 +44,12 @@ typedef enum {
        MODE_MANUAL
 } split_mode_t;
 
+typedef enum {
+       SCHEME_LONGEST_SIDE,
+       SCHEME_ALTERNATE,
+       SCHEME_SPIRAL
+} automatic_scheme_t;
+
 typedef enum {
        STATE_TILED,
        STATE_PSEUDO_TILED,
@@ -139,11 +145,26 @@ typedef enum {
        SECOND_CHILD
 } child_polarity_t;
 
+typedef enum {
+       TIGHTNESS_LOW,
+       TIGHTNESS_HIGH,
+} tightness_t;
+
+typedef enum {
+       AREA_BIGGEST,
+       AREA_SMALLEST,
+} area_peak_t;
+
+typedef enum {
+       STATE_TRANSITION_ENTER = 1 << 0,
+       STATE_TRANSITION_EXIT = 1 << 1,
+} state_transition_t;
+
 typedef struct {
        option_bool_t automatic;
        option_bool_t focused;
-       option_bool_t local;
        option_bool_t active;
+       option_bool_t local;
        option_bool_t leaf;
        option_bool_t window;
        option_bool_t tiled;
@@ -154,6 +175,7 @@ typedef struct {
        option_bool_t sticky;
        option_bool_t private;
        option_bool_t locked;
+       option_bool_t marked;
        option_bool_t urgent;
        option_bool_t same_class;
        option_bool_t descendant_of;
@@ -161,13 +183,20 @@ typedef struct {
        option_bool_t below;
        option_bool_t normal;
        option_bool_t above;
+       option_bool_t horizontal;
+       option_bool_t vertical;
 } node_select_t;
 
 typedef struct {
        option_bool_t occupied;
        option_bool_t focused;
+       option_bool_t active;
        option_bool_t urgent;
        option_bool_t local;
+       option_bool_t tiled;
+       option_bool_t monocle;
+       option_bool_t user_tiled;
+       option_bool_t user_monocle;
 } desktop_select_t;
 
 typedef struct {
@@ -183,11 +212,15 @@ struct icccm_props_t {
 };
 
 typedef struct {
-       char class_name[3 * SMALEN / 2];
-       char instance_name[3 * SMALEN / 2];
+       char class_name[MAXLEN];
+       char instance_name[MAXLEN];
+       char name[MAXLEN];
        unsigned int border_width;
+    unsigned int border_radius;
+    unsigned int drawn_border_radius;
        bool urgent;
        bool shown;
+    bool sets_own_shape;
        client_state_t state;
        client_state_t last_state;
        stack_layer_t layer;
@@ -206,19 +239,26 @@ struct presel_t {
        xcb_window_t feedback;
 };
 
+typedef struct constraints_t constraints_t;
+struct constraints_t {
+       uint16_t min_width;
+       uint16_t min_height;
+};
+
 typedef struct node_t node_t;
 struct node_t {
        uint32_t id;
        split_type_t split_type;
        double split_ratio;
-       int birth_rotation;
        presel_t *presel;
        xcb_rectangle_t rectangle;
+       constraints_t constraints;
        bool vacant;
        bool hidden;
        bool sticky;
        bool private;
        bool locked;
+       bool marked;
        node_t *first_child;
        node_t *second_child;
        node_t *parent;
@@ -238,6 +278,7 @@ struct desktop_t {
        char name[SMALEN];
        uint32_t id;
        layout_t layout;
+       layout_t user_layout;
        node_t *root;
        node_t *focus;
        desktop_t *prev;
@@ -245,6 +286,7 @@ struct desktop_t {
        padding_t padding;
        int window_gap;
        unsigned int border_width;
+       unsigned int border_radius;
 };
 
 typedef struct monitor_t monitor_t;
@@ -258,6 +300,7 @@ struct monitor_t {
        unsigned int sticky_count;
        int window_gap;
        unsigned int border_width;
+       unsigned int border_radius;
        xcb_rectangle_t rectangle;
        desktop_t *desk;
        desktop_t *desk_head;
@@ -287,11 +330,19 @@ struct stacking_list_t {
        stacking_list_t *next;
 };
 
+typedef struct event_queue_t event_queue_t;
+struct event_queue_t {
+       xcb_generic_event_t event;
+       event_queue_t *prev;
+       event_queue_t *next;
+};
+
 typedef struct subscriber_list_t subscriber_list_t;
 struct subscriber_list_t {
-       int fd;
        FILE *stream;
+       char* fifo_path;
        int field;
+       int count;
        subscriber_list_t *prev;
        subscriber_list_t *next;
 };
@@ -300,6 +351,7 @@ typedef struct rule_t rule_t;
 struct rule_t {
        char class_name[MAXLEN];
        char instance_name[MAXLEN];
+       char name[MAXLEN];
        char effect[MAXLEN];
        bool one_shot;
        rule_t *prev;
@@ -307,12 +359,13 @@ struct rule_t {
 };
 
 typedef struct {
-       char class_name[3 * SMALEN / 2];
-       char instance_name[3 * SMALEN / 2];
+       char class_name[MAXLEN];
+       char instance_name[MAXLEN];
+       char name[MAXLEN];
        char monitor_desc[MAXLEN];
        char desktop_desc[MAXLEN];
        char node_desc[MAXLEN];
-       char split_dir[SMALEN];
+       direction_t *split_dir;
        double split_ratio;
        stack_layer_t *layer;
        client_state_t *state;
@@ -320,11 +373,13 @@ typedef struct {
        bool sticky;
        bool private;
        bool locked;
+       bool marked;
        bool center;
        bool follow;
        bool manage;
        bool focus;
        bool border;
+       xcb_rectangle_t *rect;
 } rule_consequence_t;
 
 typedef struct pending_rule_t pending_rule_t;
@@ -332,6 +387,8 @@ struct pending_rule_t {
        int fd;
        xcb_window_t win;
        rule_consequence_t *csq;
+       event_queue_t *event_head;
+       event_queue_t *event_tail;
        pending_rule_t *prev;
        pending_rule_t *next;
 };