1 /**************************************************************************
5 * Check COPYING file for Copyright
7 **************************************************************************/
13 #include <X11/Xatom.h>
14 #include <X11/extensions/Xinerama.h>
17 typedef struct Global_atom
20 Atom _NET_CURRENT_DESKTOP
;
21 Atom _NET_NUMBER_OF_DESKTOPS
;
22 Atom _NET_DESKTOP_GEOMETRY
;
23 Atom _NET_DESKTOP_VIEWPORT
;
24 Atom _NET_ACTIVE_WINDOW
;
25 Atom _NET_WM_WINDOW_TYPE
;
26 Atom _NET_WM_STATE_SKIP_PAGER
;
27 Atom _NET_WM_STATE_SKIP_TASKBAR
;
28 Atom _NET_WM_STATE_STICKY
;
29 Atom _NET_WM_STATE_DEMANDS_ATTENTION
;
30 Atom _NET_WM_WINDOW_TYPE_DOCK
;
31 Atom _NET_WM_WINDOW_TYPE_DESKTOP
;
32 Atom _NET_WM_WINDOW_TYPE_TOOLBAR
;
33 Atom _NET_WM_WINDOW_TYPE_MENU
;
34 Atom _NET_WM_WINDOW_TYPE_SPLASH
;
35 Atom _NET_WM_WINDOW_TYPE_DIALOG
;
36 Atom _NET_WM_WINDOW_TYPE_NORMAL
;
40 Atom _NET_WM_STATE_MAXIMIZED_VERT
;
41 Atom _NET_WM_STATE_MAXIMIZED_HORZ
;
42 Atom _NET_WM_STATE_SHADED
;
43 Atom _NET_WM_STATE_BELOW
;
44 Atom _NET_WM_STATE_MODAL
;
45 Atom _NET_CLIENT_LIST
;
47 Atom _NET_WM_VISIBLE_NAME
;
50 Atom _NET_CLOSE_WINDOW
;
52 Atom _NET_SUPPORTING_WM_CHECK
;
53 Atom _NET_WM_STRUT_PARTIAL
;
58 Atom _NET_SYSTEM_TRAY_SCREEN
;
59 Atom _NET_SYSTEM_TRAY_OPCODE
;
61 Atom _NET_SYSTEM_TRAY_MESSAGE_DATA
;
62 Atom _NET_SYSTEM_TRAY_ORIENTATION
;
72 typedef struct Monitor
90 // number of monitor (without monitor included into another one)
102 Server_global server
;
105 void send_event32 (Window win
, Atom at
, long data1
, long data2
, long data3
);
106 int get_property32 (Window win
, Atom at
, Atom type
);
107 void *server_get_property (Window win
, Atom at
, Atom type
, int *num_results
);
108 Atom
server_get_atom (char *atom_name
);
109 void server_refresh_root_pixmap ();
110 void server_refresh_main_pixmap ();
111 void server_catch_error (Display
*d
, XErrorEvent
*ev
);
112 void server_init_atoms ();
114 // detect root background
115 void get_root_pixmap();
117 // detect monitors and desktops