]> git.sur5r.net Git - i3/i3/blobdiff - i3bar/include/xcb.h
Merge branch 'master' into next
[i3/i3] / i3bar / include / xcb.h
index 9b10348b4bec442fc65ae78ebecd4c3bd9699231..f82c71159d7a10abb6023e54374ebe1cdddffe4c 100644 (file)
+/*
+ * 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)
+ *
+ * xcb.c: Communicating with X
+ *
+ */
 #ifndef XCB_H_
 #define XCB_H_
 
-#include <xcb/xcb.h>
+#include <stdint.h>
+//#include "outputs.h"
 
-#define NUM_ATOMS 3
+#ifdef XCB_COMPAT
+#define XCB_ATOM_CARDINAL CARDINAL
+#endif
+
+#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
 
-enum {
-       #define ATOM_DO(name) name,
-       #include "xcb_atoms.def"
+struct xcb_color_strings_t {
+    char *bar_fg;
+    char *bar_bg;
+    char *active_ws_fg;
+    char *active_ws_bg;
+    char *inactive_ws_fg;
+    char *inactive_ws_bg;
+    char *focus_ws_bg;
+    char *focus_ws_fg;
+    char *urgent_ws_bg;
+    char *urgent_ws_fg;
 };
 
-xcb_atom_t atoms[NUM_ATOMS];
+typedef struct xcb_colors_t xcb_colors_t;
+
+/*
+ * Early initialization of the connection to X11: Everything which does not
+ * depend on 'config'.
+ *
+ */
+char *init_xcb_early();
 
-xcb_connection_t*      xcb_connection;
-xcb_screen_t*          xcb_screens;
-xcb_window_t           xcb_root;
-xcb_font_t             xcb_font;
-int                    font_height;
+/**
+ * Initialization which depends on 'config' being usable. Called after the
+ * configuration has arrived.
+ *
+ */
+void init_xcb_late(char *fontname);
 
-void init_xcb();
+/*
+ * Initialize the colors
+ *
+ */
+void init_colors(const struct xcb_color_strings_t *colors);
+
+/*
+ * Cleanup the xcb-stuff.
+ * Called once, before the program terminates.
+ *
+ */
 void clean_xcb();
+
+/*
+ * Get the earlier requested atoms and save them in the prepared data-structure
+ *
+ */
 void get_atoms();
-void destroy_windows();
-void create_windows();
-void draw_buttons();
-int get_string_width(char *string);
+
+/*
+ * Destroy the bar of the specified output
+ *
+ */
+void destroy_window(i3_output *output);
+
+/*
+ * Reallocate the statusline-buffer
+ *
+ */
+void realloc_sl_buffer();
+
+/*
+ * Reconfigure all bars and create new for newly activated outputs
+ *
+ */
+void reconfig_windows();
+
+/*
+ * Render the bars, with buttons and statusline
+ *
+ */
+void draw_bars();
+
+/*
+ * Redraw the bars, i.e. simply copy the buffer to the barwindow
+ *
+ */
+void redraw_bars();
 
 #endif