15c122a50f1cf1eff8efd4da5f0f033a79e298d4
[monky] / src / x11.h
1 #ifdef X11
2 #ifndef X11_H_
3 #define X11_H_
4
5 #include <X11/Xlib.h>
6 #include <X11/Xlib.h>
7 #include <X11/Xatom.h>
8
9 #ifdef XFT
10 #include <X11/Xft/Xft.h>
11 #endif
12
13 #ifdef HAVE_XDBE
14 #include <X11/extensions/Xdbe.h>
15 #endif
16
17 #define ATOM(a) XInternAtom(display, #a, False)
18
19 #ifdef OWN_WINDOW
20 enum _window_type {
21         TYPE_NORMAL = 0,
22         TYPE_DOCK,
23         TYPE_PANEL,
24         TYPE_DESKTOP,
25         TYPE_OVERRIDE
26 };
27
28 enum _window_hints {
29         HINT_UNDECORATED = 0,
30         HINT_BELOW,
31         HINT_ABOVE,
32         HINT_STICKY,
33         HINT_SKIP_TASKBAR,
34         HINT_SKIP_PAGER
35 };
36
37 #define SET_HINT(mask, hint)    (mask |= (1 << hint))
38 #define TEST_HINT(mask, hint)   (mask & (1 << hint))
39 #endif
40
41 struct conky_window {
42         Window root, window, desktop;
43         Drawable drawable;
44         Visual *visual;
45         Colormap colourmap;
46         GC gc;
47         long border_inner_margin, border_outer_margin, border_width;
48
49 #ifdef HAVE_XDBE
50         XdbeBackBuffer back_buffer;
51 #endif
52 #ifdef XFT
53         XftDraw *xftdraw;
54 #endif
55
56         int width;
57         int height;
58 #ifdef OWN_WINDOW
59         char class_name[256];
60         char title[256];
61         int x;
62         int y;
63         unsigned int type;
64         unsigned long hints;
65 #endif
66 };
67
68 #ifdef HAVE_XDBE
69 extern int use_xdbe;
70 #endif
71
72 #ifdef XFT
73 extern int use_xft;
74 #endif
75
76 extern Display *display;
77 extern int display_width;
78 extern int display_height;
79 extern int screen;
80
81 extern int workarea[4];
82
83 extern struct conky_window window;
84
85 void init_X11(const char*);
86 void init_window(int use_own_window, int width, int height, int set_trans,
87         int back_colour, char **argv, int argc);
88 void destroy_window(void);
89 void create_gc(void);
90 void set_transparent_background(Window win);
91 long get_x11_color(const char *);
92 void set_struts(int);
93
94 #endif /*X11_H_*/
95 #endif /* X11 */