]> git.sur5r.net Git - i3/i3/blob - i3bar/include/workspaces.h
Merge pull request #3441 from stapelberg/template
[i3/i3] / i3bar / include / workspaces.h
1 /*
2  * vim:ts=4:sw=4:expandtab
3  *
4  * i3bar - an xcb-based status- and ws-bar for i3
5  * © 2010 Axel Wagner and contributors (see also: LICENSE)
6  *
7  * workspaces.c: Maintaining the workspace lists
8  *
9  */
10 #pragma once
11
12 #include "common.h"
13
14 #include <xcb/xproto.h>
15
16 typedef struct i3_ws i3_ws;
17
18 TAILQ_HEAD(ws_head, i3_ws);
19
20 /*
21  * Start parsing the received JSON string
22  *
23  */
24 void parse_workspaces_json(char *json);
25
26 /*
27  * free() all workspace data structures
28  *
29  */
30 void free_workspaces(void);
31
32 struct i3_ws {
33     int num;                  /* The internal number of the ws */
34     char *canonical_name;     /* The true name of the ws according to the ipc */
35     i3String *name;           /* The name of the ws that is displayed on the bar */
36     int name_width;           /* The rendered width of the name */
37     bool visible;             /* If the ws is currently visible on an output */
38     bool focused;             /* If the ws is currently focused */
39     bool urgent;              /* If the urgent hint of the ws is set */
40     rect rect;                /* The rect of the ws (not used (yet)) */
41     struct i3_output *output; /* The current output of the ws */
42
43     TAILQ_ENTRY(i3_ws)
44     tailq; /* Pointer for the TAILQ-Macro */
45 };