1 #ifndef __ECORE_XCB_PRIVATE_H__
2 #define __ECORE_XCB_PRIVATE_H__
9 # define MAXHOSTNAMELEN 256
13 # define XK_MISCELLANY 1
14 #endif /* XK_MISCELLANY */
17 #include <xcb/xcb_icccm.h>
18 #include <xcb/xcb_keysyms.h>
19 #include <xcb/bigreq.h>
20 #ifdef ECORE_XCB_CURSOR
21 # include <xcb/cursor.h>
22 #endif /* ECORE_XCB_CURSOR */
23 #ifdef ECORE_XCB_DAMAGE
24 # include <xcb/damage.h>
25 #endif /* ECORE_XCB_DAMAGE */
26 #ifdef ECORE_XCB_COMPOSITE
27 # include <xcb/composite.h>
28 #endif /* ECORE_XCB_COMPOSITE */
30 # include <xcb/dpms.h>
31 #endif /* ECORE_XCB_DPMS */
32 #ifdef ECORE_XCB_RANDR
33 # include <xcb/randr.h>
34 #endif /* ECORE_XCB_RANDR */
35 #ifdef ECORE_XCB_RENDER
36 # include <xcb/render.h>
37 #endif /* ECORE_XCB_RENDER */
38 #ifdef ECORE_XCB_SCREENSAVER
39 # include <xcb/screensaver.h>
40 #endif /* ECORE_XCB_SCREENSAVER */
41 #ifdef ECORE_XCB_SHAPE
42 # include <xcb/shape.h>
43 #endif /* ECORE_XCB_SHAPE */
45 # include <xcb/sync.h>
46 #endif /* ECORE_XCB_SYNC */
47 #ifdef ECORE_XCB_XFIXES
48 # include <xcb/xfixes.h>
49 #endif /* ECORE_XCB_XFIXES */
50 #ifdef ECORE_XCB_XINERAMA
51 # include <xcb/xinerama.h>
52 #endif /* ECORE_XCB_XINERAMA */
53 #ifdef ECORE_XCB_XPRINT
54 # include <xcb/xprint.h>
55 #endif /* ECORE_XCB_XPRINT */
58 #include "ecore_private.h"
61 extern int _ecore_x11xcb_log_dom ;
63 #ifdef ECORE_XLIB_XCB_DEFAULT_LOG_COLOR
64 # undef ECORE_XLIB_XCB_DEFAULT_LOG_COLOR
66 #define ECORE_XLIB_XCB_DEFAULT_LOG_COLOR EINA_COLOR_BLUE
71 #define ERR(...) EINA_LOG_DOM_ERR(_ecore_x11xcb_log_dom, __VA_ARGS__)
76 #define DBG(...) EINA_LOG_DOM_DBG(_ecore_x11xcb_log_dom, __VA_ARGS__)
81 #define INF(...) EINA_LOG_DOM_INFO(_ecore_x11xcb_log_dom, __VA_ARGS__)
86 #define WRN(...) EINA_LOG_DOM_WARN(_ecore_x11xcb_log_dom, __VA_ARGS__)
91 #define CRIT(...) EINA_LOG_DOM_CRIT(_ecore_x11xcb_log_dom, __VA_ARGS__)
93 typedef struct _Ecore_X_Selection_Intern Ecore_X_Selection_Intern;
95 struct _Ecore_X_Selection_Intern
98 Ecore_X_Atom selection;
104 typedef struct _Ecore_X_Selection_Converter Ecore_X_Selection_Converter;
106 struct _Ecore_X_Selection_Converter
109 int (*convert)(char *target, void *data, int size,
110 void **data_ret, int *size_ret);
111 Ecore_X_Selection_Converter *next;
114 typedef struct _Ecore_X_Selection_Parser Ecore_X_Selection_Parser;
116 struct _Ecore_X_Selection_Parser
119 void *(*parse)(const char *target, void *data, int size, int format);
120 Ecore_X_Selection_Parser *next;
123 typedef struct _Ecore_X_DND_Source
126 Ecore_X_Window win, dest;
129 ECORE_X_DND_SOURCE_IDLE,
130 ECORE_X_DND_SOURCE_DRAGGING,
131 ECORE_X_DND_SOURCE_DROPPED,
132 ECORE_X_DND_SOURCE_CONVERTING
137 unsigned short width, height;
141 Ecore_X_Window window;
147 Ecore_X_Atom action, accepted_action;
153 } Ecore_X_DND_Source;
155 typedef struct _Ecore_X_DND_Target
158 Ecore_X_Window win, source;
161 ECORE_X_DND_TARGET_IDLE,
162 ECORE_X_DND_TARGET_ENTERED
171 Ecore_X_Atom action, accepted_action;
174 } Ecore_X_DND_Target;
176 extern int ECORE_X_MODIFIER_SHIFT;
177 extern int ECORE_X_MODIFIER_CTRL;
178 extern int ECORE_X_MODIFIER_ALT;
179 extern int ECORE_X_MODIFIER_WIN;
181 extern int ECORE_X_LOCK_SCROLL;
182 extern int ECORE_X_LOCK_NUM;
183 extern int ECORE_X_LOCK_CAPS;
185 extern Ecore_X_Connection *_ecore_xcb_conn;
186 extern Ecore_X_Screen *_ecore_xcb_screen;
187 extern double _ecore_xcb_double_click_time;
188 extern Ecore_X_Time _ecore_xcb_event_last_time;
189 extern Ecore_X_Window _ecore_xcb_event_last_window;
190 extern int16_t _ecore_xcb_event_last_root_x;
191 extern int16_t _ecore_xcb_event_last_root_y;
192 extern int _ecore_xcb_xcursor;
194 extern Ecore_X_Atom _ecore_xcb_atoms_wm_protocols[ECORE_X_WM_PROTOCOL_NUM];
196 extern int _ecore_window_grabs_num;
197 extern Ecore_X_Window *_ecore_window_grabs;
198 extern int (*_ecore_window_grab_replay_func) (void *data, int event_type, void *event);
199 extern void *_ecore_window_grab_replay_data;
201 extern Ecore_X_Window _ecore_xcb_private_window;
204 void _ecore_x_error_handler_init(void);
206 void _ecore_x_event_handle_any_event (xcb_generic_event_t *event);
207 void _ecore_x_event_handle_key_press (xcb_generic_event_t *event);
208 void _ecore_x_event_handle_key_release (xcb_generic_event_t *event);
209 void _ecore_x_event_handle_button_press (xcb_generic_event_t *event);
210 void _ecore_x_event_handle_button_release (xcb_generic_event_t *event);
211 void _ecore_x_event_handle_motion_notify (xcb_generic_event_t *event);
212 void _ecore_x_event_handle_enter_notify (xcb_generic_event_t *event);
213 void _ecore_x_event_handle_leave_notify (xcb_generic_event_t *event);
214 void _ecore_x_event_handle_focus_in (xcb_generic_event_t *event);
215 void _ecore_x_event_handle_focus_out (xcb_generic_event_t *event);
216 void _ecore_x_event_handle_keymap_notify (xcb_generic_event_t *event);
217 void _ecore_x_event_handle_expose (xcb_generic_event_t *event);
218 void _ecore_x_event_handle_graphics_expose (xcb_generic_event_t *event);
219 void _ecore_x_event_handle_visibility_notify (xcb_generic_event_t *event);
220 void _ecore_x_event_handle_create_notify (xcb_generic_event_t *event);
221 void _ecore_x_event_handle_destroy_notify (xcb_generic_event_t *event);
222 void _ecore_x_event_handle_unmap_notify (xcb_generic_event_t *event);
223 void _ecore_x_event_handle_map_notify (xcb_generic_event_t *event);
224 void _ecore_x_event_handle_map_request (xcb_generic_event_t *event);
225 void _ecore_x_event_handle_reparent_notify (xcb_generic_event_t *event);
226 void _ecore_x_event_handle_configure_notify (xcb_generic_event_t *event);
227 void _ecore_x_event_handle_configure_request (xcb_generic_event_t *event);
228 void _ecore_x_event_handle_gravity_notify (xcb_generic_event_t *event);
229 void _ecore_x_event_handle_resize_request (xcb_generic_event_t *event);
230 void _ecore_x_event_handle_circulate_notify (xcb_generic_event_t *event);
231 void _ecore_x_event_handle_circulate_request (xcb_generic_event_t *event);
232 void _ecore_x_event_handle_property_notify (xcb_generic_event_t *event);
233 void _ecore_x_event_handle_selection_clear (xcb_generic_event_t *event);
234 void _ecore_x_event_handle_selection_request (xcb_generic_event_t *event);
235 void _ecore_x_event_handle_selection_notify (xcb_generic_event_t *event);
236 void _ecore_x_event_handle_colormap_notify (xcb_generic_event_t *event);
237 void _ecore_x_event_handle_client_message (xcb_generic_event_t *event);
238 void _ecore_x_event_handle_mapping_notify (xcb_generic_event_t *event);
239 #ifdef ECORE_XCB_DAMAGE
240 void _ecore_x_event_handle_damage_notify (xcb_generic_event_t *event);
241 #endif /* ECORE_XCB_DAMAGE */
242 #ifdef ECORE_XCB_RANDR
243 void _ecore_x_event_handle_randr_change (xcb_generic_event_t *event);
244 #endif /* ECORE_XCB_RANDR */
245 #ifdef ECORE_XCB_SCREENSAVER
246 void _ecore_x_event_handle_screensaver_notify (xcb_generic_event_t *event);
247 #endif /* ECORE_XCB_SCREENSAVER */
248 #ifdef ECORE_XCB_SHAPE
249 void _ecore_x_event_handle_shape_change (xcb_generic_event_t *event);
250 #endif /* ECORE_XCB_SHAPE */
251 #ifdef ECORE_XCB_SYNC
252 void _ecore_x_event_handle_sync_counter (xcb_generic_event_t *event);
253 void _ecore_x_event_handle_sync_alarm (xcb_generic_event_t *event);
254 #endif /* ECORE_XCB_SYNC */
255 #ifdef ECORE_XCB_FIXES
256 void _ecore_x_event_handle_fixes_selection_notify(xcb_generic_event_t *event);
257 #endif /* ECORE_XCB_FIXES */
260 /* requests / replies */
261 int _ecore_x_reply_init ();
262 void _ecore_x_reply_shutdown ();
263 void _ecore_xcb_cookie_cache (unsigned int cookie);
264 unsigned int _ecore_xcb_cookie_get (void);
265 void _ecore_xcb_reply_cache (void *reply);
266 void *_ecore_xcb_reply_get (void);
270 extern Ecore_X_Atom ECORE_X_ATOM_ATOM;
271 extern Ecore_X_Atom ECORE_X_ATOM_CARDINAL;
272 extern Ecore_X_Atom ECORE_X_ATOM_STRING;
273 extern Ecore_X_Atom ECORE_X_ATOM_WINDOW;
274 extern Ecore_X_Atom ECORE_X_ATOM_E_FRAME_SIZE;
275 extern Ecore_X_Atom ECORE_X_ATOM_WM_SIZE_HINTS;
277 #define ECORE_X_ATOMS_COUNT 117
279 void _ecore_x_atom_init (xcb_intern_atom_cookie_t *);
280 void _ecore_x_atom_init_finalize (xcb_intern_atom_cookie_t *);
284 void _ecore_x_damage_init (const xcb_query_extension_reply_t *reply);
285 void _ecore_x_damage_init_finalize (void);
288 void _ecore_x_composite_init (const xcb_query_extension_reply_t *reply);
289 void _ecore_x_composite_init_finalize (void);
292 void _ecore_x_dnd_init (void);
293 void _ecore_x_dnd_shutdown (void);
294 Ecore_X_DND_Source *_ecore_x_dnd_source_get (void);
295 Ecore_X_DND_Target *_ecore_x_dnd_target_get (void);
296 void _ecore_x_dnd_drag (Ecore_X_Window root,
302 void _ecore_x_dpms_init (const xcb_query_extension_reply_t *reply);
303 void _ecore_x_dpms_init_finalize (void);
307 Ecore_X_Window_State _ecore_x_netwm_state_get(Ecore_X_Atom a);
308 int _ecore_x_netwm_startup_info_begin(Ecore_X_Window win, char *data);
309 int _ecore_x_netwm_startup_info(Ecore_X_Window win, char *data);
313 void _ecore_x_randr_init (const xcb_query_extension_reply_t *reply);
314 void _ecore_x_randr_init_finalize (void);
318 void _ecore_x_selection_init(void);
319 void _ecore_x_selection_shutdown(void);
320 Ecore_X_Atom _ecore_x_selection_target_atom_get(const char *target);
321 char *_ecore_x_selection_target_get(Ecore_X_Atom target);
322 Ecore_X_Selection_Intern *_ecore_x_selection_get(Ecore_X_Atom selection);
323 int _ecore_x_selection_set(Ecore_X_Window w, const void *data, int len, Ecore_X_Atom selection);
324 int _ecore_x_selection_convert(Ecore_X_Atom selection, Ecore_X_Atom target, void **data_ret);
325 void *_ecore_x_selection_parse(const char *target, void *data, int size, int format);
329 void _ecore_x_screensaver_init (const xcb_query_extension_reply_t *reply);
330 void _ecore_x_screensaver_init_finalize (void);
334 void _ecore_x_shape_init (const xcb_query_extension_reply_t *reply);
335 void _ecore_x_shape_init_finalize (void);
339 void _ecore_x_sync_init (const xcb_query_extension_reply_t *reply);
340 void _ecore_x_sync_init_finalize (void);
344 void _ecore_x_xfixes_init (const xcb_query_extension_reply_t *reply);
345 void _ecore_x_xfixes_init_finalize (void);
349 void _ecore_x_xinerama_init (const xcb_query_extension_reply_t *reply);
350 void _ecore_x_xinerama_init_finalize (void);
354 void _ecore_x_xprint_init (const xcb_query_extension_reply_t *reply);
355 void _ecore_x_xprint_init_finalize (void);
358 void _ecore_x_sync_magic_send(int val, Ecore_X_Window swin);
359 void _ecore_x_window_grab_remove(Ecore_X_Window win);
360 void _ecore_x_key_grab_remove(Ecore_X_Window win);
363 #endif /* __ECORE_XCB_PRIVATE_H__*/