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