aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/ecore/src/lib/ecore_evas/ecore_evas_private.h
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/ecore/src/lib/ecore_evas/ecore_evas_private.h')
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_private.h478
1 files changed, 0 insertions, 478 deletions
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_private.h b/libraries/ecore/src/lib/ecore_evas/ecore_evas_private.h
deleted file mode 100644
index e31653a..0000000
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas_private.h
+++ /dev/null
@@ -1,478 +0,0 @@
1#ifndef _ECORE_EVAS_PRIVATE_H
2#define _ECORE_EVAS_PRIVATE_H
3
4#include <Evas.h>
5#include <Ecore.h>
6#include <ecore_private.h>
7#include <Ecore_Input.h>
8#include <Ecore_Input_Evas.h>
9
10#define ECORE_MAGIC_EVAS 0x76543211
11
12#ifdef BUILD_ECORE_EVAS_X11
13# include <Ecore_X.h>
14# include <Ecore_X_Atoms.h>
15# ifdef HAVE_ECORE_X_XCB
16# include <xcb/xcb.h>
17# endif
18# ifdef HAVE_ECORE_X_XLIB
19# include <X11/Xlib.h>
20# include <X11/Xutil.h>
21# endif
22#endif
23
24#ifdef BUILD_ECORE_EVAS_SOFTWARE_X11
25# include <Evas_Engine_Software_X11.h>
26#endif
27
28#ifdef BUILD_ECORE_EVAS_OPENGL_X11
29# include <Evas_Engine_GL_X11.h>
30#endif
31
32#ifdef BUILD_ECORE_EVAS_SOFTWARE_8_X11
33# include <Evas_Engine_Software_8_X11.h>
34#endif
35
36#ifdef BUILD_ECORE_EVAS_SOFTWARE_16_X11
37# include <Evas_Engine_Software_16_X11.h>
38#endif
39
40#ifdef BUILD_ECORE_EVAS_FB
41# include <Evas_Engine_FB.h>
42#endif
43
44#ifdef BUILD_ECORE_EVAS_DIRECTFB
45# include <Evas_Engine_DirectFB.h>
46# include "Ecore_DirectFB.h"
47#endif
48
49#if defined(BUILD_ECORE_EVAS_SOFTWARE_BUFFER) || defined(BUILD_ECORE_EVAS_EWS)
50# include <Evas_Engine_Buffer.h>
51#endif
52
53#ifdef BUILD_ECORE_EVAS_WIN32
54# include "Ecore_Win32.h"
55# ifdef BUILD_ECORE_EVAS_SOFTWARE_GDI
56# include <Evas_Engine_Software_Gdi.h>
57# endif
58# ifdef BUILD_ECORE_EVAS_SOFTWARE_DDRAW
59# include <Evas_Engine_Software_DDraw.h>
60# endif
61# ifdef BUILD_ECORE_EVAS_DIRECT3D
62# include <Evas_Engine_Direct3D.h>
63# endif
64# ifdef BUILD_ECORE_EVAS_OPENGL_GLEW
65# include <Evas_Engine_GL_Glew.h>
66# endif
67# ifdef BUILD_ECORE_EVAS_SOFTWARE_16_DDRAW
68# include <Evas_Engine_Software_16_DDraw.h>
69# endif
70#endif
71
72#ifdef BUILD_ECORE_EVAS_SOFTWARE_16_WINCE
73# include "Ecore_WinCE.h"
74# include <Evas_Engine_Software_16_WinCE.h>
75#endif
76
77#ifdef BUILD_ECORE_EVAS_GL_COCOA
78# include "Ecore_Cocoa.h"
79# include <Evas_Engine_Gl_Cocoa.h>
80#endif
81
82#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM
83# include "Ecore_Wayland.h"
84# include <Evas_Engine_Wayland_Shm.h>
85#endif
86
87#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL
88# include "Ecore_Wayland.h"
89# include <Evas_Engine_Wayland_Egl.h>
90#endif
91
92/** Log domain macros and variables **/
93
94extern int _ecore_evas_log_dom;
95
96#ifdef ECORE_EVAS_DEFAULT_LOG_COLOR
97# undef ECORE_EVAS_DEFAULT_LOG_COLOR
98#endif
99#define ECORE_EVAS_DEFAULT_LOG_COLOR EINA_COLOR_BLUE
100
101#ifdef ERR
102# undef ERR
103#endif
104#define ERR(...) EINA_LOG_DOM_ERR(_ecore_evas_log_dom, __VA_ARGS__)
105#ifdef DBG
106# undef DBG
107#endif
108#define DBG(...) EINA_LOG_DOM_DBG(_ecore_evas_log_dom, __VA_ARGS__)
109#ifdef INF
110# undef INF
111#endif
112#define INF(...) EINA_LOG_DOM_INFO(_ecore_evas_log_dom, __VA_ARGS__)
113#ifdef WRN
114# undef WRN
115#endif
116#define WRN(...) EINA_LOG_DOM_WARN(_ecore_evas_log_dom, __VA_ARGS__)
117#ifdef CRIT
118# undef CRIT
119#endif
120#define CRIT(...) EINA_LOG_DOM_CRIT(_ecore_evas_log_dom, __VA_ARGS__)
121
122
123#define IDLE_FLUSH_TIME 0.5
124#ifndef _ECORE_EVAS_H
125typedef struct _Ecore_Evas Ecore_Evas;
126typedef void (*Ecore_Evas_Event_Cb) (Ecore_Evas *ee);
127#endif
128
129typedef struct _Ecore_Evas_Engine Ecore_Evas_Engine;
130typedef struct _Ecore_Evas_Engine_Func Ecore_Evas_Engine_Func;
131
132struct _Ecore_Evas_Engine_Func
133{
134 void (*fn_free) (Ecore_Evas *ee);
135 void (*fn_callback_resize_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
136 void (*fn_callback_move_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
137 void (*fn_callback_show_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
138 void (*fn_callback_hide_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
139 void (*fn_callback_delete_request_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
140 void (*fn_callback_destroy_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
141 void (*fn_callback_focus_in_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
142 void (*fn_callback_focus_out_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
143 void (*fn_callback_mouse_in_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
144 void (*fn_callback_mouse_out_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
145 void (*fn_callback_sticky_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
146 void (*fn_callback_unsticky_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
147 void (*fn_callback_pre_render_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
148 void (*fn_callback_post_render_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
149 void (*fn_move) (Ecore_Evas *ee, int x, int y);
150 void (*fn_managed_move) (Ecore_Evas *ee, int x, int y);
151 void (*fn_resize) (Ecore_Evas *ee, int w, int h);
152 void (*fn_move_resize) (Ecore_Evas *ee, int x, int y, int w, int h);
153 void (*fn_rotation_set) (Ecore_Evas *ee, int rot, int resize);
154 void (*fn_shaped_set) (Ecore_Evas *ee, int shaped);
155 void (*fn_show) (Ecore_Evas *ee);
156 void (*fn_hide) (Ecore_Evas *ee);
157 void (*fn_raise) (Ecore_Evas *ee);
158 void (*fn_lower) (Ecore_Evas *ee);
159 void (*fn_activate) (Ecore_Evas *ee);
160 void (*fn_title_set) (Ecore_Evas *ee, const char *t);
161 void (*fn_name_class_set) (Ecore_Evas *ee, const char *n, const char *c);
162 void (*fn_size_min_set) (Ecore_Evas *ee, int w, int h);
163 void (*fn_size_max_set) (Ecore_Evas *ee, int w, int h);
164 void (*fn_size_base_set) (Ecore_Evas *ee, int w, int h);
165 void (*fn_size_step_set) (Ecore_Evas *ee, int w, int h);
166 void (*fn_object_cursor_set) (Ecore_Evas *ee, Evas_Object *obj, int layer, int hot_x, int hot_y);
167 void (*fn_layer_set) (Ecore_Evas *ee, int layer);
168 void (*fn_focus_set) (Ecore_Evas *ee, int on);
169 void (*fn_iconified_set) (Ecore_Evas *ee, int on);
170 void (*fn_borderless_set) (Ecore_Evas *ee, int on);
171 void (*fn_override_set) (Ecore_Evas *ee, int on);
172 void (*fn_maximized_set) (Ecore_Evas *ee, int on);
173 void (*fn_fullscreen_set) (Ecore_Evas *ee, int on);
174 void (*fn_avoid_damage_set) (Ecore_Evas *ee, int on);
175 void (*fn_withdrawn_set) (Ecore_Evas *ee, int withdrawn);
176 void (*fn_sticky_set) (Ecore_Evas *ee, int sticky);
177 void (*fn_ignore_events_set) (Ecore_Evas *ee, int ignore);
178 void (*fn_alpha_set) (Ecore_Evas *ee, int alpha);
179 void (*fn_transparent_set) (Ecore_Evas *ee, int transparent);
180
181 void (*fn_window_group_set) (Ecore_Evas *ee, const Ecore_Evas *ee_group);
182 void (*fn_aspect_set) (Ecore_Evas *ee, double aspect);
183 void (*fn_urgent_set) (Ecore_Evas *ee, int urgent);
184 void (*fn_modal_set) (Ecore_Evas *ee, int modal);
185 void (*fn_demands_attention_set) (Ecore_Evas *ee, int demand);
186 void (*fn_focus_skip_set) (Ecore_Evas *ee, int skip);
187
188 int (*fn_render) (Ecore_Evas *ee);
189 void (*fn_screen_geometry_get) (const Ecore_Evas *ee, int *x, int *y, int *w, int *h);
190};
191
192struct _Ecore_Evas_Engine
193{
194 Ecore_Evas_Engine_Func *func;
195
196/* TODO: UGLY! This should be an union or inheritance! */
197#ifdef BUILD_ECORE_EVAS_X11
198 struct
199 {
200 Ecore_X_Window win_root;
201 Eina_List *win_extra;
202 Ecore_X_Pixmap pmap;
203 Ecore_X_Pixmap mask;
204 Ecore_X_GC gc;
205 Ecore_X_XRegion *damages;
206 Ecore_X_Sync_Counter sync_counter;
207 Ecore_X_Window leader;
208 Ecore_X_Sync_Counter netwm_sync_counter;
209 int netwm_sync_val_hi;
210 unsigned int netwm_sync_val_lo;
211 int sync_val; // bigger! this will screw up at 2 billion frames (414 days of continual rendering @ 60fps)
212 int screen_num;
213 int px, py, pw, ph;
214 unsigned char direct_resize : 1;
215 unsigned char using_bg_pixmap : 1;
216 unsigned char managed : 1;
217 unsigned char sync_began : 1;
218 unsigned char sync_cancel : 1;
219 unsigned char netwm_sync_set : 1;
220 unsigned char configure_coming : 1;
221 struct {
222 unsigned char modal : 1;
223 unsigned char sticky : 1;
224 unsigned char maximized_v : 1;
225 unsigned char maximized_h : 1;
226 unsigned char shaded : 1;
227 unsigned char skip_taskbar : 1;
228 unsigned char skip_pager : 1;
229 unsigned char fullscreen : 1;
230 unsigned char above : 1;
231 unsigned char below : 1;
232 } state;
233 Ecore_X_Window win_shaped_input;
234 } x;
235#endif
236#ifdef BUILD_ECORE_EVAS_FB
237 struct {
238 int real_w;
239 int real_h;
240 } fb;
241#endif
242#ifdef BUILD_ECORE_EVAS_SOFTWARE_BUFFER
243 struct {
244 void *pixels;
245 Evas_Object *image;
246 void (*free_func) (void *data, void *pix);
247 void *(*alloc_func) (void *data, int size);
248 void *data;
249 } buffer;
250#endif
251#ifdef BUILD_ECORE_EVAS_DIRECTFB
252 struct {
253 Ecore_DirectFB_Window *window;
254 } directfb;
255#endif
256#ifdef BUILD_ECORE_EVAS_WIN32
257 struct {
258 Ecore_Win32_Window *parent;
259 struct {
260 unsigned char region : 1;
261 unsigned char fullscreen : 1;
262 } state;
263 } win32;
264#endif
265#ifdef BUILD_ECORE_EVAS_SOFTWARE_16_WINCE
266 struct {
267 Ecore_WinCE_Window *window;
268 struct {
269 unsigned char fullscreen : 1;
270 } state;
271 } wince;
272#endif
273#ifdef BUILD_ECORE_EVAS_EWS
274 struct {
275 Evas_Object *image;
276 } ews;
277#endif
278
279#if defined(BUILD_ECORE_EVAS_WAYLAND_SHM) || defined(BUILD_ECORE_EVAS_WAYLAND_EGL)
280 struct
281 {
282 Ecore_Wl_Window *parent, *win;
283 Evas_Object *frame;
284
285# if defined(BUILD_ECORE_EVAS_WAYLAND_SHM)
286 struct wl_buffer *buffer;
287# endif
288
289 } wl;
290#endif
291
292 Ecore_Timer *idle_flush_timer;
293};
294
295struct _Ecore_Evas
296{
297 EINA_INLIST;
298 ECORE_MAGIC;
299 Evas *evas;
300 const char *driver;
301 char *name;
302 int x, y, w, h;
303 short rotation;
304 Eina_Bool shaped : 1;
305 Eina_Bool visible : 1;
306 Eina_Bool draw_ok : 1;
307 Eina_Bool should_be_visible : 1;
308 Eina_Bool alpha : 1;
309 Eina_Bool transparent : 1;
310 Eina_Bool in : 1;
311
312 Eina_Hash *data;
313
314 struct {
315 int x, y, w, h;
316 } req;
317
318 struct {
319 int x, y;
320 } mouse;
321
322 struct {
323 int w, h;
324 } expecting_resize;
325
326 struct {
327 char *title;
328 char *name;
329 char *clas;
330 struct {
331 int w, h;
332 } min,
333 max,
334 base,
335 step;
336 struct {
337 Evas_Object *object;
338 int layer;
339 struct {
340 int x, y;
341 } hot;
342 } cursor;
343 int layer;
344 Ecore_Window window;
345 unsigned char avoid_damage;
346 Ecore_Evas *group_ee;
347 Ecore_Window group_ee_win;
348 double aspect;
349 char focused : 1;
350 char iconified : 1;
351 char borderless : 1;
352 char override : 1;
353 char maximized : 1;
354 char fullscreen : 1;
355 char withdrawn : 1;
356 char sticky : 1;
357 char request_pos : 1;
358 char draw_frame : 1;
359 char hwsurface : 1;
360 char urgent : 1;
361 char modal : 1;
362 char demand_attention : 1;
363 char focus_skip : 1;
364 } prop;
365
366 struct {
367 void (*fn_resize) (Ecore_Evas *ee);
368 void (*fn_move) (Ecore_Evas *ee);
369 void (*fn_show) (Ecore_Evas *ee);
370 void (*fn_hide) (Ecore_Evas *ee);
371 void (*fn_delete_request) (Ecore_Evas *ee);
372 void (*fn_destroy) (Ecore_Evas *ee);
373 void (*fn_focus_in) (Ecore_Evas *ee);
374 void (*fn_focus_out) (Ecore_Evas *ee);
375 void (*fn_sticky) (Ecore_Evas *ee);
376 void (*fn_unsticky) (Ecore_Evas *ee);
377 void (*fn_mouse_in) (Ecore_Evas *ee);
378 void (*fn_mouse_out) (Ecore_Evas *ee);
379 void (*fn_pre_render) (Ecore_Evas *ee);
380 void (*fn_post_render) (Ecore_Evas *ee);
381 void (*fn_pre_free) (Ecore_Evas *ee);
382 void (*fn_state_change) (Ecore_Evas *ee);
383 } func;
384
385 Ecore_Evas_Engine engine;
386 Eina_List *sub_ecore_evas;
387
388 int refcount;
389
390 unsigned char ignore_events : 1;
391 unsigned char manual_render : 1;
392 unsigned char registered : 1;
393 unsigned char no_comp_sync : 1;
394 unsigned char semi_sync : 1;
395 unsigned char deleted : 1;
396};
397
398void _ecore_evas_ref(Ecore_Evas *ee);
399void _ecore_evas_unref(Ecore_Evas *ee);
400
401#ifdef BUILD_ECORE_EVAS_X11
402int _ecore_evas_x_shutdown(void);
403#endif
404#ifdef BUILD_ECORE_EVAS_FB
405int _ecore_evas_fb_shutdown(void);
406#endif
407#ifdef BUILD_ECORE_EVAS_SOFTWARE_BUFFER
408int _ecore_evas_buffer_shutdown(void);
409int _ecore_evas_buffer_render(Ecore_Evas *ee);
410#endif
411#ifdef BUILD_ECORE_EVAS_DIRECTFB
412int _ecore_evas_directfb_shutdown(void);
413#endif
414#ifdef BUILD_ECORE_EVAS_WIN32
415int _ecore_evas_win32_shutdown(void);
416#endif
417#ifdef BUILD_ECORE_EVAS_SOFTWARE_16_WINCE
418int _ecore_evas_wince_shutdown(void);
419#endif
420#ifdef BUILD_ECORE_EVAS_EWS
421void _ecore_evas_ews_events_init(void);
422int _ecore_evas_ews_shutdown(void);
423#endif
424
425#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM
426void _ecore_evas_wayland_shm_resize(Ecore_Evas *ee, int location);
427void _ecore_evas_wayland_shm_drag_start(Ecore_Evas *ee, Ecore_Evas *drag_ee, void *source);
428void _ecore_evas_wayland_shm_pointer_set(Ecore_Evas *ee, int hot_x, int hot_y);
429void _ecore_evas_wayland_shm_type_set(Ecore_Evas *ee, int type);
430#endif
431
432#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL
433void _ecore_evas_wayland_egl_resize(Ecore_Evas *ee, int location);
434void _ecore_evas_wayland_egl_drag_start(Ecore_Evas *ee, Ecore_Evas *drag_ee, void *source);
435void _ecore_evas_wayland_egl_pointer_set(Ecore_Evas *ee, int hot_x, int hot_y);
436void _ecore_evas_wayland_egl_type_set(Ecore_Evas *ee, int type);
437#endif
438
439void _ecore_evas_fps_debug_init(void);
440void _ecore_evas_fps_debug_shutdown(void);
441void _ecore_evas_fps_debug_rendertime_add(double t);
442void _ecore_evas_register(Ecore_Evas *ee);
443void _ecore_evas_free(Ecore_Evas *ee);
444void _ecore_evas_idle_timeout_update(Ecore_Evas *ee);
445void _ecore_evas_mouse_move_process(Ecore_Evas *ee, int x, int y, unsigned int timestamp);
446void _ecore_evas_mouse_multi_move_process(Ecore_Evas *ee, int device,
447 int x, int y,
448 double radius,
449 double radius_x, double radius_y,
450 double pressure,
451 double angle,
452 double mx, double my,
453 unsigned int timestamp);
454void _ecore_evas_mouse_multi_down_process(Ecore_Evas *ee, int device,
455 int x, int y,
456 double radius,
457 double radius_x, double radius_y,
458 double pressure,
459 double angle,
460 double mx, double my,
461 Evas_Button_Flags flags,
462 unsigned int timestamp);
463void _ecore_evas_mouse_multi_up_process(Ecore_Evas *ee, int device,
464 int x, int y,
465 double radius,
466 double radius_x, double radius_y,
467 double pressure,
468 double angle,
469 double mx, double my,
470 Evas_Button_Flags flags,
471 unsigned int timestamp);
472
473extern Eina_Bool _ecore_evas_app_comp_sync;
474
475void _ecore_evas_extn_init(void);
476void _ecore_evas_extn_shutdown(void);
477
478#endif