X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Flibi3.h;h=9ba780042310128c0530674028cb9520f7779cc9;hb=d3beff23395356ec71fcc35a3b802163e12df73e;hp=54fa0cc730a6e4e83e174f6c2762aa4b20edae1d;hpb=b3d7531947a25d9212f8ed8db86909f64456bb3c;p=i3%2Fi3 diff --git a/include/libi3.h b/include/libi3.h index 54fa0cc7..9ba78004 100644 --- a/include/libi3.h +++ b/include/libi3.h @@ -2,7 +2,7 @@ * vim:ts=4:sw=4:expandtab * * i3 - an improved dynamic tiling window manager - * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE) + * © 2009-2013 Michael Stapelberg and contributors (see also: LICENSE) * * libi3: contains functions which are used by i3 *and* accompanying tools such * as i3-msg, i3-config-wizard, … @@ -47,6 +47,9 @@ struct Font { /** The height of the font, built from font_ascent + font_descent */ int height; + /** The pattern/name used to load the font. */ + char *pattern; + union { struct { /** The xcb-id for the font */ @@ -81,11 +84,14 @@ void errorlog(char *fmt, ...); * Try to get the contents of the given atom (for example I3_SOCKET_PATH) from * the X11 root window and return NULL if it doesn’t work. * + * If the provided XCB connection is NULL, a new connection will be + * established. + * * The memory for the contents is dynamically allocated and has to be * free()d by the caller. * */ -char *root_atom_contents(const char *atomname); +char *root_atom_contents(const char *atomname, xcb_connection_t *provided_conn, int screen); /** * Safe-wrapper around malloc which exits if malloc returns NULL (meaning that @@ -202,8 +208,8 @@ int ipc_connect(const char *socket_path); * Returns 0 on success. * */ -int ipc_send_message(int sockfd, uint32_t message_size, - uint32_t message_type, const uint8_t *payload); +int ipc_send_message(int sockfd, const uint32_t message_size, + const uint32_t message_type, const uint8_t *payload); /** * Reads a message from the given socket file descriptor and stores its length @@ -216,7 +222,7 @@ int ipc_send_message(int sockfd, uint32_t message_size, * Returns 0 on success. * */ -int ipc_recv_message(int sockfd, uint32_t message_type, +int ipc_recv_message(int sockfd, uint32_t *message_type, uint32_t *reply_length, uint8_t **reply); /** @@ -361,4 +367,12 @@ bool is_debug_build() __attribute__((const)); */ char *get_process_filename(const char *prefix); +/** + * This function returns the absolute path to the executable it is running in. + * + * The implementation follows http://stackoverflow.com/a/933996/712014 + * + */ +const char *get_exe_path(const char *argv0); + #endif