]> git.sur5r.net Git - i3/i3/blobdiff - i3bar/include/common.h
Use separate buffers for i3bar statusline for each workspace, track short and long...
[i3/i3] / i3bar / include / common.h
index 22b9a28ac81d39e9d7a3a24cf40f2ba900839fe7..aa706bbe2af31bda1ca10a4345f7e047d7136990 100644 (file)
@@ -2,7 +2,7 @@
  * vim:ts=4:sw=4:expandtab
  *
  * i3bar - an xcb-based status- and ws-bar for i3
- * © 2010-2011 Axel Wagner and contributors (see also: LICENSE)
+ * © 2010 Axel Wagner and contributors (see also: LICENSE)
  *
  */
 #pragma once
@@ -31,6 +31,14 @@ typedef enum {
     ALIGN_RIGHT
 } blockalign_t;
 
+/* This data structure describes the way a status block should be rendered. These
+ * variables are updated each time the statusline is re-rendered. */
+struct status_block_render_desc {
+    uint32_t width;
+    uint32_t x_offset;
+    uint32_t x_append;
+};
+
 /* This data structure represents one JSON dictionary, multiple of these make
  * up one status line. */
 struct status_block {
@@ -38,6 +46,8 @@ struct status_block {
     i3String *short_text;
 
     char *color;
+    char *background;
+    char *border;
 
     /* min_width can be specified either as a numeric value (in pixels) or as a
      * string. For strings, we set min_width to the measured text width of
@@ -49,16 +59,14 @@ struct status_block {
 
     bool urgent;
     bool no_separator;
-    bool is_markup;
+    bool pango_markup;
 
     /* The amount of pixels necessary to render a separater after the block. */
     uint32_t sep_block_width;
 
-    /* The amount of pixels necessary to render this block. These variables are
-     * only temporarily used in refresh_statusline(). */
-    uint32_t width;
-    uint32_t x_offset;
-    uint32_t x_append;
+    /* Continuously-updated information on how to render this status block. */
+    struct status_block_render_desc full_render;
+    struct status_block_render_desc short_render;
 
     /* Optional */
     char *name;
@@ -80,3 +88,4 @@ TAILQ_HEAD(statusline_head, status_block) statusline_head;
 #include "config.h"
 #include "libi3.h"
 #include "parse_json_header.h"
+#include "draw_util.h"