]> icculus.org git repositories - mikachu/rspanel.git/blob - xprop.h
0963ae98d01a1857e424264eab7fef47957dfa0d
[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     _OB_THEME,
53     XPROP_COUNT,
54 } xprop_t;
55
56 enum {
57     XPROP_REMOVE = 0,
58     XPROP_ADD,
59     XPROP_TOGGLE
60 };
61
62 void  xprop_init(struct screen *sc);
63
64 void* xprop_get_data(struct screen *sc, Window win, xprop_t prop,
65                      Atom type, int *items);
66
67 int   xprop_get_num(struct screen *sc, Window win, xprop_t p);
68 char* xprop_get_utf8(struct screen *sc, Window win, xprop_t p);
69 char* xprop_get_string(struct screen *sc, Window win, xprop_t p);
70
71 void xprop_set_num(struct screen *sc, Window win, xprop_t p, long val);
72 void xprop_set_atom(struct screen *sc, Window win, xprop_t p, xprop_t at);
73
74 void xprop_set_array(struct screen *sc, Window win, xprop_t p,
75                      const long *vals, int num);
76
77 void xprop_set_string(struct screen *sc, Window win, xprop_t p, const char *s);
78
79 #endif