X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=i3bar%2Finclude%2Fcommon.h;h=77be318235681341c41ad39453f967544219383d;hb=e6f2255ed2501d97515991caef2f2ed7d8b45dd5;hp=997a429ed518aab68274c1cf59e41e14ce74e25c;hpb=6226400dfd19fb67f165ae543d1ceaa2d33008cc;p=i3%2Fi3 diff --git a/i3bar/include/common.h b/i3bar/include/common.h index 997a429e..77be3182 100644 --- a/i3bar/include/common.h +++ b/i3bar/include/common.h @@ -2,11 +2,13 @@ * 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 +#include + #include #include #include @@ -31,35 +33,53 @@ 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 { i3String *full_text; + 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 + * min_width_str. */ uint32_t min_width; + char *min_width_str; + blockalign_t align; bool urgent; bool no_separator; + 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; char *instance; - TAILQ_ENTRY(status_block) blocks; + TAILQ_ENTRY(status_block) + blocks; }; -TAILQ_HEAD(statusline_head, status_block) statusline_head; +TAILQ_HEAD(statusline_head, status_block) +statusline_head; #include "child.h" #include "ipc.h" @@ -69,6 +89,6 @@ TAILQ_HEAD(statusline_head, status_block) statusline_head; #include "mode.h" #include "trayclients.h" #include "xcb.h" -#include "config.h" +#include "configuration.h" #include "libi3.h" #include "parse_json_header.h"