45b209d11ae520e9753d1b1f301c66070f472025
[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_DESKTOP,
24         TYPE_OVERRIDE
25 };
26
27 enum _window_hints {
28         HINT_UNDECORATED = 0,
29         HINT_BELOW,
30         HINT_ABOVE,
31         HINT_STICKY,
32         HINT_SKIP_TASKBAR,
33         HINT_SKIP_PAGER
34 };
35
36 #define SET_HINT(mask, hint)    (mask |= (1 << hint))
37 #define TEST_HINT(mask, hint)   (mask & (1 << hint))
38 #endif
39
40 struct conky_window {
41         Window root, window, desktop;
42         Drawable drawable;
43         GC gc;
44 #ifdef HAVE_XDBE
45         XdbeBackBuffer back_buffer;
46 #endif
47 #ifdef XFT
48         XftDraw *xftdraw;
49 #endif
50
51         int width;
52         int height;
53 #ifdef OWN_WINDOW
54         char class_name[256];
55         char title[256];
56         int x;
57         int y;
58         unsigned int type;
59         unsigned long hints;
60 #endif
61 };
62
63 #ifdef HAVE_XDBE
64 extern int use_xdbe;
65 #endif
66
67 #ifdef XFT
68 extern int use_xft;
69 #endif
70
71 extern Display *display;
72 extern int display_width;
73 extern int display_height;
74 extern int screen;
75
76 extern int workarea[4];
77
78 extern struct conky_window window;
79
80 void init_X11(const char*);
81 void init_window(int use_own_window, int width, int height, int set_trans,
82         int back_colour, char **argv, int argc);
83 void destroy_window(void);
84 void create_gc(void);
85 void set_transparent_background(Window win);
86 long get_x11_color(const char *);
87
88 #endif /*X11_H_*/
89 #endif /* X11 */