]> Dogcows Code - chaz/tint2/blob - src/server.h
add missing battery config CPP guard
[chaz/tint2] / src / server.h
1 /**************************************************************************
2 * server :
3 * -
4 *
5 * Check COPYING file for Copyright
6 *
7 **************************************************************************/
8
9 #ifndef SERVER_H
10 #define SERVER_H
11
12 #include <X11/Xlib.h>
13 #include <X11/Xatom.h>
14 #include <X11/extensions/Xinerama.h>
15
16 #ifdef HAVE_SN
17 #include <libsn/sn.h>
18 #include <glib.h>
19 #endif
20
21
22 typedef struct Global_atom
23 {
24 Atom _XROOTPMAP_ID;
25 Atom _XROOTMAP_ID;
26 Atom _NET_CURRENT_DESKTOP;
27 Atom _NET_NUMBER_OF_DESKTOPS;
28 Atom _NET_DESKTOP_NAMES;
29 Atom _NET_DESKTOP_GEOMETRY;
30 Atom _NET_DESKTOP_VIEWPORT;
31 Atom _NET_ACTIVE_WINDOW;
32 Atom _NET_WM_WINDOW_TYPE;
33 Atom _NET_WM_STATE_SKIP_PAGER;
34 Atom _NET_WM_STATE_SKIP_TASKBAR;
35 Atom _NET_WM_STATE_STICKY;
36 Atom _NET_WM_STATE_DEMANDS_ATTENTION;
37 Atom _NET_WM_WINDOW_TYPE_DOCK;
38 Atom _NET_WM_WINDOW_TYPE_DESKTOP;
39 Atom _NET_WM_WINDOW_TYPE_TOOLBAR;
40 Atom _NET_WM_WINDOW_TYPE_MENU;
41 Atom _NET_WM_WINDOW_TYPE_SPLASH;
42 Atom _NET_WM_WINDOW_TYPE_DIALOG;
43 Atom _NET_WM_WINDOW_TYPE_NORMAL;
44 Atom _NET_WM_DESKTOP;
45 Atom WM_STATE;
46 Atom _NET_WM_STATE;
47 Atom _NET_WM_STATE_MAXIMIZED_VERT;
48 Atom _NET_WM_STATE_MAXIMIZED_HORZ;
49 Atom _NET_WM_STATE_SHADED;
50 Atom _NET_WM_STATE_HIDDEN;
51 Atom _NET_WM_STATE_BELOW;
52 Atom _NET_WM_STATE_ABOVE;
53 Atom _NET_WM_STATE_MODAL;
54 Atom _NET_CLIENT_LIST;
55 Atom _NET_WM_NAME;
56 Atom _NET_WM_VISIBLE_NAME;
57 Atom _NET_WM_STRUT;
58 Atom _NET_WM_ICON;
59 Atom _NET_WM_ICON_GEOMETRY;
60 Atom _NET_CLOSE_WINDOW;
61 Atom UTF8_STRING;
62 Atom _NET_SUPPORTING_WM_CHECK;
63 Atom _NET_WM_CM_S0;
64 Atom _NET_WM_STRUT_PARTIAL;
65 Atom WM_NAME;
66 Atom __SWM_VROOT;
67 Atom _MOTIF_WM_HINTS;
68 Atom WM_HINTS;
69 Atom _NET_SYSTEM_TRAY_SCREEN;
70 Atom _NET_SYSTEM_TRAY_OPCODE;
71 Atom MANAGER;
72 Atom _NET_SYSTEM_TRAY_MESSAGE_DATA;
73 Atom _NET_SYSTEM_TRAY_ORIENTATION;
74 Atom _XEMBED;
75 Atom _XEMBED_INFO;
76 Atom _XSETTINGS_SCREEN;
77 Atom _XSETTINGS_SETTINGS;
78 Atom XdndAware;
79 Atom XdndEnter;
80 Atom XdndPosition;
81 Atom XdndStatus;
82 Atom XdndDrop;
83 Atom XdndLeave;
84 Atom XdndSelection;
85 Atom XdndTypeList;
86 Atom XdndActionCopy;
87 Atom XdndFinished;
88 Atom TARGETS;
89 } Global_atom;
90
91
92
93 typedef struct Monitor
94 {
95 int x;
96 int y;
97 int width;
98 int height;
99 char** names;
100 } Monitor;
101
102
103 typedef struct
104 {
105 Display *dsp;
106 Window root_win;
107 Window composite_manager;
108 int real_transparency;
109 // current desktop
110 int desktop;
111 int screen;
112 int depth;
113 int nb_desktop;
114 // number of monitor (without monitor included into another one)
115 int nb_monitor;
116 Monitor *monitor;
117 int got_root_win;
118 Visual *visual;
119 Visual *visual32;
120 // root background
121 Pixmap root_pmap;
122 GC gc;
123 Colormap colormap;
124 Colormap colormap32;
125 Global_atom atom;
126 #ifdef HAVE_SN
127 SnDisplay *sn_dsp;
128 GTree *pids;
129 #endif // HAVE_SN
130 } Server_global;
131
132
133 Server_global server;
134
135
136 // freed memory
137 void cleanup_server();
138
139 void send_event32 (Window win, Atom at, long data1, long data2, long data3);
140 int get_property32 (Window win, Atom at, Atom type);
141 void *server_get_property (Window win, Atom at, Atom type, int *num_results);
142 Atom server_get_atom (char *atom_name);
143 void server_catch_error (Display *d, XErrorEvent *ev);
144 void server_init_atoms ();
145 void server_init_visual();
146
147 // detect root background
148 void get_root_pixmap();
149
150 // detect monitors and desktops
151 void get_monitors();
152 void get_desktops();
153
154
155 #endif
This page took 0.03346 seconds and 4 git commands to generate.