X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=i3bar%2Finclude%2Fchild.h;h=9479fac1df8bdfecd0c005000bfd76b7dd10a6e5;hb=161db6f17d734ac9deb0a20e81b78d4b2a92ce68;hp=c0b56a013aba1fb1efee566ed6e583bf421591c9;hpb=b9255f51f8ee9eb8a028394cf429c25c410298ef;p=i3%2Fi3 diff --git a/i3bar/include/child.h b/i3bar/include/child.h index c0b56a01..9479fac1 100644 --- a/i3bar/include/child.h +++ b/i3bar/include/child.h @@ -2,18 +2,48 @@ * vim:ts=4:sw=4:expandtab * * i3bar - an xcb-based status- and ws-bar for i3 - * © 2010-2012 Axel Wagner and contributors (see also: LICENSE) + * © 2010 Axel Wagner and contributors (see also: LICENSE) * - * child.c: Getting Input for the statusline + * child.c: Getting input for the statusline * */ -#ifndef CHILD_H_ -#define CHILD_H_ +#pragma once + +#include + +#include #define STDIN_CHUNK_SIZE 1024 +typedef struct { + pid_t pid; + + /** + * The version number is an uint32_t to avoid machines with different sizes of + * 'int' to allow different values here. It’s highly unlikely we ever exceed + * even an int8_t, but still… + */ + uint32_t version; + + bool stopped; + /** + * The signal requested by the client to inform it of the hidden state of i3bar + */ + int stop_signal; + /** + * The signal requested by the client to inform it of theun hidden state of i3bar + */ + int cont_signal; + + /** + * Enable click events + */ + bool click_events; + bool click_events_init; +} i3bar_child; + /* - * Start a child-process with the specified command and reroute stdin. + * Start a child process with the specified command and reroute stdin. * We actually start a $SHELL to execute the command so we don't have to care * about arguments and such * @@ -21,28 +51,38 @@ void start_child(char *command); /* - * kill()s the child-process (if any). Called when exit()ing. + * kill()s the child process (if any). Called when exit()ing. * */ void kill_child_at_exit(void); /* - * kill()s the child-process (if any) and closes and - * free()s the stdin- and sigchild-watchers + * kill()s the child process (if any) and closes and + * free()s the stdin- and SIGCHLD-watchers * */ void kill_child(void); /* - * Sends a SIGSTOP to the child-process (if existent) + * Sends a SIGSTOP to the child process (if existent) * */ void stop_child(void); /* - * Sends a SIGCONT to the child-process (if existent) + * Sends a SIGCONT to the child process (if existent) * */ void cont_child(void); -#endif +/* + * Whether or not the child want click events + * + */ +bool child_want_click_events(void); + +/* + * Generates a click event, if enabled. + * + */ +void send_block_clicked(int button, const char *name, const char *instance, int x, int y, int x_rel, int y_rel, int width, int height);