Added own_window_type panel
[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         GC gc;
45 #ifdef HAVE_XDBE
46         XdbeBackBuffer back_buffer;
47 #endif
48 #ifdef XFT
49         XftDraw *xftdraw;
50 #endif
51
52         int width;
53         int height;
54 #ifdef OWN_WINDOW
55         char class_name[256];
56         char title[256];
57         int x;
58         int y;
59         unsigned int type;
60         unsigned long hints;
61 #endif
62 };
63
64 #ifdef HAVE_XDBE
65 extern int use_xdbe;
66 #endif
67
68 #ifdef XFT
69 extern int use_xft;
70 #endif
71
72 extern Display *display;
73 extern int display_width;
74 extern int display_height;
75 extern int screen;
76
77 extern int workarea[4];
78
79 extern struct conky_window window;
80
81 void init_X11(const char*);
82 void init_window(int use_own_window, int width, int height, int set_trans,
83         int back_colour, char **argv, int argc);
84 void destroy_window(void);
85 void create_gc(void);
86 void set_transparent_background(Window win);
87 long get_x11_color(const char *);
88 void set_struts(int);
89
90 #endif /*X11_H_*/
91 #endif /* X11 */