sway-patched-tray-menu-github/include/swaybar/bar.h

73 lines
1.1 KiB
C
Raw Normal View History

2016-01-24 02:34:20 +01:00
#ifndef _SWAYBAR_BAR_H
#define _SWAYBAR_BAR_H
2016-01-23 20:55:01 +01:00
#include "client/registry.h"
#include "client/window.h"
#include "list.h"
2016-01-23 20:55:01 +01:00
2016-01-24 02:34:20 +01:00
struct bar {
struct config *config;
2016-01-23 20:55:01 +01:00
struct status_line *status;
list_t *outputs;
struct output *focused_output;
2016-01-23 20:55:01 +01:00
int ipc_event_socketfd;
int ipc_socketfd;
int status_read_fd;
int status_write_fd;
2016-01-23 20:55:01 +01:00
pid_t status_command_pid;
};
struct output {
struct window *window;
struct registry *registry;
list_t *workspaces;
#ifdef ENABLE_TRAY
list_t *items;
#endif
2016-01-24 00:23:09 +01:00
char *name;
int idx;
bool focused;
2016-01-23 20:55:01 +01:00
};
struct workspace {
int num;
char *name;
bool focused;
bool visible;
bool urgent;
};
/** Global bar state */
extern struct bar swaybar;
/** True if sway needs to render */
extern bool dirty;
2016-01-23 20:55:01 +01:00
/**
2016-01-24 02:34:20 +01:00
* Setup bar.
2016-01-23 20:55:01 +01:00
*/
void bar_setup(struct bar *bar, const char *socket_path, const char *bar_id);
/**
* Create new output struct from name.
*/
struct output *new_output(const char *name);
/**
2016-01-24 02:34:20 +01:00
* Bar mainloop.
*/
2016-01-24 02:34:20 +01:00
void bar_run(struct bar *bar);
2016-01-23 20:55:01 +01:00
/**
* free workspace list.
2016-01-23 20:55:01 +01:00
*/
void free_workspaces(list_t *workspaces);
/**
2016-01-24 02:34:20 +01:00
* Teardown bar.
*/
2016-01-24 02:34:20 +01:00
void bar_teardown(struct bar *bar);
2016-01-23 20:55:01 +01:00
2016-01-24 02:34:20 +01:00
#endif /* _SWAYBAR_BAR_H */