]> git.sur5r.net Git - i3/i3/blobdiff - i3bar/include/common.h
Merge branch 'master' into next
[i3/i3] / i3bar / include / common.h
index e2582a02053bab03caacbc486774a47a27166cfa..90da9388a60b128b34ed2b929df8263c17984e2c 100644 (file)
@@ -2,11 +2,10 @@
  * 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)
  *
  */
-#ifndef COMMON_H_
-#define COMMON_H_
+#pragma once
 
 #include <stdbool.h>
 #include <xcb/xcb.h>
@@ -16,9 +15,7 @@
 
 typedef struct rect_t rect;
 
-struct ev_loop* main_loop;
-char            *statusline;
-char            *statusline_buffer;
+struct ev_loop *main_loop;
 
 struct rect_t {
     int x;
@@ -27,18 +24,45 @@ struct rect_t {
     int h;
 };
 
+typedef enum {
+    /* First value to make it the default. */
+    ALIGN_LEFT,
+    ALIGN_CENTER,
+    ALIGN_RIGHT
+} blockalign_t;
+
 /* This data structure represents one JSON dictionary, multiple of these make
  * up one status line. */
 struct status_block {
     i3String *full_text;
+    i3String *short_text;
 
     char *color;
 
+    /* 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
+     * min_width_str. */
+    uint32_t min_width;
+    char *min_width_str;
+
+    blockalign_t align;
+
     bool urgent;
+    bool no_separator;
+    bool is_markup;
 
-    /* The amount of pixels necessary to render this block. This variable is
+    /* 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;
+
+    /* Optional */
+    char *name;
+    char *instance;
 
     TAILQ_ENTRY(status_block) blocks;
 };
@@ -50,10 +74,9 @@ TAILQ_HEAD(statusline_head, status_block) statusline_head;
 #include "outputs.h"
 #include "util.h"
 #include "workspaces.h"
+#include "mode.h"
 #include "trayclients.h"
 #include "xcb.h"
 #include "config.h"
 #include "libi3.h"
 #include "parse_json_header.h"
-
-#endif