X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=i3bar%2Finclude%2Fxcb.h;h=2e34c7760e299e2f36b74e1919cab6c67c547635;hb=884214f14fdbd0a4a368d2a36d5e50324fa1d52a;hp=c5a507877c9444c744dd3faaf163633bd4b0ab30;hpb=2daa8d422ae63d55e4b952070e8e894c0963618f;p=i3%2Fi3 diff --git a/i3bar/include/xcb.h b/i3bar/include/xcb.h index c5a50787..2e34c776 100644 --- a/i3bar/include/xcb.h +++ b/i3bar/include/xcb.h @@ -2,13 +2,12 @@ * 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) * * xcb.c: Communicating with X * */ -#ifndef XCB_H_ -#define XCB_H_ +#pragma once #include //#include "outputs.h" @@ -19,15 +18,16 @@ #define _NET_SYSTEM_TRAY_ORIENTATION_HORZ 0 #define _NET_SYSTEM_TRAY_ORIENTATION_VERT 1 -#define SYSTEM_TRAY_REQUEST_DOCK 0 -#define SYSTEM_TRAY_BEGIN_MESSAGE 1 -#define SYSTEM_TRAY_CANCEL_MESSAGE 2 -#define XEMBED_MAPPED (1 << 0) -#define XEMBED_EMBEDDED_NOTIFY 0 +#define SYSTEM_TRAY_REQUEST_DOCK 0 +#define SYSTEM_TRAY_BEGIN_MESSAGE 1 +#define SYSTEM_TRAY_CANCEL_MESSAGE 2 +#define XEMBED_MAPPED (1 << 0) +#define XEMBED_EMBEDDED_NOTIFY 0 struct xcb_color_strings_t { char *bar_fg; char *bar_bg; + char *sep_fg; char *active_ws_fg; char *active_ws_bg; char *active_ws_border; @@ -44,6 +44,9 @@ struct xcb_color_strings_t { typedef struct xcb_colors_t xcb_colors_t; +/* Cached width of the custom separator if one was set */ +int separator_symbol_width; + /* * Early initialization of the connection to X11: Everything which does not * depend on 'config'. @@ -65,17 +68,37 @@ void init_xcb_late(char *fontname); void init_colors(const struct xcb_color_strings_t *colors); /* - * Cleanup the xcb-stuff. + * Cleanup the xcb stuff. * Called once, before the program terminates. * */ -void clean_xcb(); +void clean_xcb(void); + +/* + * Get the earlier requested atoms and save them in the prepared data structure + * + */ +void get_atoms(void); + +/* + * Reparents all tray clients of the specified output to the root window. This + * is either used when shutting down, when an output appears (xrandr --output + * VGA1 --off) or when the primary output changes. + * + * Applications using the tray will start the protocol from the beginning again + * afterwards. + * + */ +void kick_tray_clients(i3_output *output); /* - * Get the earlier requested atoms and save them in the prepared data-structure + * We need to set the _NET_SYSTEM_TRAY_COLORS atom on the tray selection window + * to make GTK+ 3 applets with symbolic icons visible. If the colors are unset, + * they assume a light background. + * See also https://bugzilla.gnome.org/show_bug.cgi?id=679591 * */ -void get_atoms(); +void init_tray_colors(void); /* * Destroy the bar of the specified output @@ -84,27 +107,31 @@ void get_atoms(); void destroy_window(i3_output *output); /* - * Reallocate the statusline-buffer + * Reallocate the statusline buffer * */ -void realloc_sl_buffer(); +void realloc_sl_buffer(void); /* * Reconfigure all bars and create new for newly activated outputs * */ -void reconfig_windows(); +void reconfig_windows(bool redraw_bars); /* * Render the bars, with buttons and statusline * */ -void draw_bars(); +void draw_bars(bool force_unhide); /* * Redraw the bars, i.e. simply copy the buffer to the barwindow * */ -void redraw_bars(); +void redraw_bars(void); -#endif +/* + * Set the current binding mode + * + */ +void set_current_mode(struct mode *mode);