7c2d018983d65336fd0e688c966bc796ec0ae49c
[monky] / src / x11.h
1 /* -*- mode: c; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: t -*- */
2
3 #ifdef X11
4 #ifndef X11_H_
5 #define X11_H_
6
7 #include <X11/Xlib.h>
8 #include <X11/Xlib.h>
9 #include <X11/Xatom.h>
10
11 #ifdef XFT
12 #include <X11/Xft/Xft.h>
13 #endif
14
15 #ifdef HAVE_XDBE
16 #include <X11/extensions/Xdbe.h>
17 #endif
18
19 #define ATOM(a) XInternAtom(display, #a, False)
20
21 #ifdef OWN_WINDOW
22 enum _window_type {
23         TYPE_NORMAL = 0,
24         TYPE_DOCK,
25         TYPE_PANEL,
26         TYPE_DESKTOP,
27         TYPE_OVERRIDE
28 };
29
30 enum _window_hints {
31         HINT_UNDECORATED = 0,
32         HINT_BELOW,
33         HINT_ABOVE,
34         HINT_STICKY,
35         HINT_SKIP_TASKBAR,
36         HINT_FULLSCREEN
37 };
38
39 #define SET_HINT(mask, hint)    (mask |= (1 << hint))
40 #define TEST_HINT(mask, hint)   (mask & (1 << hint))
41 #endif
42
43 struct conky_window {
44         Window root, window, desktop;
45         Drawable drawable;
46         Visual *visual;
47         Colormap colourmap;
48         GC gc;
49         long border_inner_margin, border_outer_margin, border_width;
50
51 #ifdef HAVE_XDBE
52         XdbeBackBuffer back_buffer;
53 #endif
54 #ifdef XFT
55         XftDraw *xftdraw;
56 #endif
57
58         int width;
59         int height;
60 #ifdef OWN_WINDOW
61         char class_name[256];
62         char title[256];
63         int x;
64         int y;
65         unsigned int type;
66         unsigned long hints;
67 #endif
68 };
69
70 #ifdef HAVE_XDBE
71 extern int use_xdbe;
72 #endif
73
74 #ifdef XFT
75 extern int use_xft;
76 #endif
77
78 #if defined(USE_ARGB) && defined(OWN_WINDOW)
79 /* 1 if config var set to 1, otherwise 0 */
80 extern int use_argb_visual;
81 /* 1 if use_argb_visual=1 and argb visual was found, otherwise 0 */
82 extern int have_argb_visual;
83 #endif
84 /* range of 0-255 for alpha */
85 extern int own_window_argb_value;
86
87 extern Display *display;
88 extern int display_width;
89 extern int display_height;
90 extern int screen;
91
92 extern int workarea[4];
93
94 extern struct conky_window window;
95 extern char window_created;
96
97 void init_X11(const char*);
98 void init_window(int use_own_window, int width, int height, int set_trans,
99         int back_colour, char **argv, int argc);
100 void destroy_window(void);
101 void create_gc(void);
102 void set_transparent_background(Window win, int alpha);
103 void get_x11_desktop_info(Display *display, Atom atom);
104 void set_struts(int);
105
106 #ifdef HAVE_XDBE
107 void xdbe_swap_buffers(void);
108 #endif /* HAVE_XDBE */
109
110 #endif /*X11_H_*/
111 #endif /* X11 */