]> icculus.org git repositories - mikachu/rspanel.git/blob - xprop.h
better with bevel2
[mikachu/rspanel.git] / xprop.h
1 #ifndef rs_prop_h
2 #define rs_prop_h
3
4 struct screen;
5
6 #include <X11/Xlib.h>
7 #include <X11/Xatom.h>
8
9 typedef enum {
10     /* types */
11     UTF8_STRING,
12     /* client properties */
13     KWM_WIN_ICON,
14     WM_STATE,
15     WM_NAME,
16     _MOTIF_WM_HINTS,
17     _NET_WM_STATE,
18     _NET_WM_STATE_SKIP_TASKBAR,
19     _NET_WM_STATE_SHADED,
20     _NET_WM_STATE_BELOW,
21     _NET_WM_STATE_HIDDEN,
22     _NET_WM_DESKTOP,
23     _NET_WM_WINDOW_TYPE,
24 _NET_WM_WINDOW_TYPE_DESKTOP,
25 _NET_WM_WINDOW_TYPE_DOCK,
26 _NET_WM_WINDOW_TYPE_TOOLBAR,
27 _NET_WM_WINDOW_TYPE_MENU,
28 _NET_WM_WINDOW_TYPE_UTILITY,
29 _NET_WM_WINDOW_TYPE_SPLASH,
30 _NET_WM_WINDOW_TYPE_DIALOG,
31 _NET_WM_WINDOW_TYPE_DROPDOWN_MENU,
32 _NET_WM_WINDOW_TYPE_POPUP_MENU,
33 _NET_WM_WINDOW_TYPE_TOOLTIP,
34 _NET_WM_WINDOW_TYPE_NOTIFICATION,
35 _NET_WM_WINDOW_TYPE_COMBO,
36 _NET_WM_WINDOW_TYPE_DND,
37 _NET_WM_WINDOW_TYPE_NORMAL,
38     _NET_WM_STRUT,
39     _NET_WM_ICON_GEOMETRY,
40     _NET_WM_ICON,
41     _WIN_HINTS,
42     /* root properties */
43     _NET_CLIENT_LIST,
44     _NET_CLIENT_LIST_STACKING,
45     _NET_NUMBER_OF_DESKTOPS,
46     _NET_CURRENT_DESKTOP,
47     _OB_WM_ACTION,
48     _NET_WM_NAME,
49     _NET_ACTIVE_WINDOW,
50     _NET_RESTACK_WINDOW,
51     _OB_FOCUS,
52     XPROP_COUNT,
53 } xprop_t;
54
55 enum {
56     XPROP_REMOVE = 0,
57     XPROP_ADD,
58     XPROP_TOGGLE
59 };
60
61 void  xprop_init(struct screen *sc);
62
63 void* xprop_get_data(struct screen *sc, Window win, xprop_t prop,
64                      Atom type, int *items);
65
66 int   xprop_get_num(struct screen *sc, Window win, xprop_t p);
67 char* xprop_get_utf8(struct screen *sc, Window win, xprop_t p);
68 char* xprop_get_string(struct screen *sc, Window win, xprop_t p);
69
70 void xprop_set_num(struct screen *sc, Window win, xprop_t p, long val);
71 void xprop_set_atom(struct screen *sc, Window win, xprop_t p, xprop_t at);
72
73 void xprop_set_array(struct screen *sc, Window win, xprop_t p,
74                      const long *vals, int num);
75
76 void xprop_set_string(struct screen *sc, Window win, xprop_t p, const char *s);
77
78 #endif