aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/ecore
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/ecore')
-rw-r--r--libraries/ecore/AUTHORS3
-rw-r--r--libraries/ecore/ChangeLog123
-rw-r--r--libraries/ecore/Makefile.in24
-rw-r--r--libraries/ecore/NEWS42
-rw-r--r--libraries/ecore/README3
-rw-r--r--libraries/ecore/aclocal.m463
-rwxr-xr-xlibraries/ecore/config.guess149
-rw-r--r--libraries/ecore/config.h.in9
-rwxr-xr-xlibraries/ecore/config.sub47
-rwxr-xr-xlibraries/ecore/configure3345
-rw-r--r--libraries/ecore/configure.ac295
-rw-r--r--libraries/ecore/doc/Makefile.in20
-rw-r--r--libraries/ecore/ecore-win32.pc.in2
-rw-r--r--libraries/ecore/ecore.pc.in4
-rw-r--r--libraries/ecore/ecore.spec2
-rw-r--r--libraries/ecore/ecore.supp2
-rwxr-xr-xlibraries/ecore/ltmain.sh4
-rw-r--r--libraries/ecore/m4/ecore_check_module.m46
-rw-r--r--libraries/ecore/m4/ecore_check_options.m42
-rw-r--r--libraries/ecore/po/cs.gmobin3004 -> 3004 bytes
-rw-r--r--libraries/ecore/po/cs.po80
-rw-r--r--libraries/ecore/po/de.gmobin3001 -> 3001 bytes
-rw-r--r--libraries/ecore/po/de.po80
-rw-r--r--libraries/ecore/po/ecore.pot81
-rw-r--r--libraries/ecore/po/el.gmobin3487 -> 3487 bytes
-rw-r--r--libraries/ecore/po/el.po80
-rw-r--r--libraries/ecore/po/fr.gmobin3199 -> 3199 bytes
-rw-r--r--libraries/ecore/po/fr.po80
-rw-r--r--libraries/ecore/po/it.gmobin2931 -> 2931 bytes
-rw-r--r--libraries/ecore/po/it.po80
-rw-r--r--libraries/ecore/po/nl.gmobin2978 -> 2978 bytes
-rw-r--r--libraries/ecore/po/nl.po80
-rw-r--r--libraries/ecore/po/pt.gmobin3020 -> 3020 bytes
-rw-r--r--libraries/ecore/po/pt.po80
-rw-r--r--libraries/ecore/po/sl.gmobin3015 -> 3015 bytes
-rw-r--r--libraries/ecore/po/sl.po80
-rw-r--r--libraries/ecore/src/Makefile.in20
-rw-r--r--libraries/ecore/src/bin/Makefile.in20
-rw-r--r--libraries/ecore/src/examples/Makefile.in20
-rw-r--r--libraries/ecore/src/examples/ecore_evas_basics_example.c5
-rw-r--r--libraries/ecore/src/lib/Makefile.in20
-rw-r--r--libraries/ecore/src/lib/ecore/Ecore.h896
-rw-r--r--libraries/ecore/src/lib/ecore/Makefile.am8
-rw-r--r--libraries/ecore/src/lib/ecore/Makefile.in33
-rw-r--r--libraries/ecore/src/lib/ecore/ecore.c6
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_anim.c4
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_events.c158
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_exe.c10
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_getopt.c4
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_main.c185
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_pipe.c17
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_poll.c94
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_private.h6
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_thread.c756
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_time.c6
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_timer.c19
-rw-r--r--libraries/ecore/src/lib/ecore_cocoa/Makefile.in20
-rw-r--r--libraries/ecore/src/lib/ecore_con/Ecore_Con.h81
-rw-r--r--libraries/ecore/src/lib/ecore_con/Makefile.in20
-rw-r--r--libraries/ecore/src/lib/ecore_con/ecore_con.c23
-rw-r--r--libraries/ecore/src/lib/ecore_con/ecore_con_private.h47
-rw-r--r--libraries/ecore/src/lib/ecore_con/ecore_con_socks.c762
-rw-r--r--libraries/ecore/src/lib/ecore_con/ecore_con_ssl.c3
-rw-r--r--libraries/ecore/src/lib/ecore_con/ecore_con_url.c671
-rw-r--r--libraries/ecore/src/lib/ecore_config/Makefile.in20
-rw-r--r--libraries/ecore/src/lib/ecore_directfb/Makefile.in20
-rw-r--r--libraries/ecore/src/lib/ecore_evas/Ecore_Evas.h256
-rw-r--r--libraries/ecore/src/lib/ecore_evas/Makefile.am1
-rw-r--r--libraries/ecore/src/lib/ecore_evas/Makefile.in21
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas.c252
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_buffer.c7
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_cocoa.c10
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_directfb.c7
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_ews.c8
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_extn.c69
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_fb.c7
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_private.h57
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_psl1ght.c9
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_sdl.c189
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_wayland_egl.c694
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_wayland_shm.c769
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_win32.c19
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_wince.c21
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_x.c455
-rw-r--r--libraries/ecore/src/lib/ecore_fb/Makefile.in20
-rw-r--r--libraries/ecore/src/lib/ecore_fb/ecore_fb.c23
-rw-r--r--libraries/ecore/src/lib/ecore_file/Makefile.in20
-rw-r--r--libraries/ecore/src/lib/ecore_file/ecore_file.c2
-rw-r--r--libraries/ecore/src/lib/ecore_file/ecore_file_download.c40
-rw-r--r--libraries/ecore/src/lib/ecore_imf/Ecore_IMF.h143
-rw-r--r--libraries/ecore/src/lib/ecore_imf/Makefile.in20
-rw-r--r--libraries/ecore/src/lib/ecore_imf/ecore_imf_context.c402
-rw-r--r--libraries/ecore/src/lib/ecore_imf/ecore_imf_private.h3
-rw-r--r--libraries/ecore/src/lib/ecore_imf_evas/Makefile.in20
-rw-r--r--libraries/ecore/src/lib/ecore_imf_evas/ecore_imf_evas.c44
-rw-r--r--libraries/ecore/src/lib/ecore_input/Makefile.in20
-rw-r--r--libraries/ecore/src/lib/ecore_input_evas/Makefile.in20
-rw-r--r--libraries/ecore/src/lib/ecore_ipc/Makefile.in20
-rw-r--r--libraries/ecore/src/lib/ecore_ipc/ecore_ipc.c5
-rw-r--r--libraries/ecore/src/lib/ecore_psl1ght/Makefile.in20
-rw-r--r--libraries/ecore/src/lib/ecore_sdl/Makefile.in20
-rw-r--r--libraries/ecore/src/lib/ecore_wayland/Ecore_Wayland.h271
-rw-r--r--libraries/ecore/src/lib/ecore_wayland/Makefile.am8
-rw-r--r--libraries/ecore/src/lib/ecore_wayland/Makefile.in33
-rw-r--r--libraries/ecore/src/lib/ecore_wayland/ecore_wl.c1322
-rw-r--r--libraries/ecore/src/lib/ecore_wayland/ecore_wl_private.h56
-rw-r--r--libraries/ecore/src/lib/ecore_win32/Ecore_Win32.h9
-rw-r--r--libraries/ecore/src/lib/ecore_win32/Makefile.in20
-rw-r--r--libraries/ecore/src/lib/ecore_win32/ecore_win32_private.h4
-rw-r--r--libraries/ecore/src/lib/ecore_win32/ecore_win32_window.c173
-rw-r--r--libraries/ecore/src/lib/ecore_wince/Ecore_WinCE.h4
-rw-r--r--libraries/ecore/src/lib/ecore_wince/Makefile.in20
-rw-r--r--libraries/ecore/src/lib/ecore_wince/ecore_wince_window.c52
-rw-r--r--libraries/ecore/src/lib/ecore_x/Ecore_X.h91
-rw-r--r--libraries/ecore/src/lib/ecore_x/Ecore_X_Atoms.h14
-rw-r--r--libraries/ecore/src/lib/ecore_x/Makefile.in20
-rw-r--r--libraries/ecore/src/lib/ecore_x/ecore_x_atoms_decl.h14
-rw-r--r--libraries/ecore/src/lib/ecore_x/xcb/Makefile.in20
-rw-r--r--libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_atoms.c15
-rw-r--r--libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_e.c236
-rw-r--r--libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_keymap.c8
-rw-r--r--libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_netwm.c50
-rw-r--r--libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_randr.c294
-rw-r--r--libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_window.c4
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/Makefile.in20
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_atoms.c15
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_e.c233
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_netwm.c51
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_randr_12.c246
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_test.c12
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_window.c4
-rw-r--r--libraries/ecore/src/modules/Makefile.in20
-rw-r--r--libraries/ecore/src/modules/immodules/Makefile.in20
-rw-r--r--libraries/ecore/src/modules/immodules/scim/Makefile.in20
-rw-r--r--libraries/ecore/src/modules/immodules/scim/scim_imcontext.cpp1348
-rw-r--r--libraries/ecore/src/modules/immodules/scim/scim_imcontext.h2
-rw-r--r--libraries/ecore/src/modules/immodules/scim/scim_module.cpp11
-rw-r--r--libraries/ecore/src/modules/immodules/xim/Makefile.in20
-rw-r--r--libraries/ecore/src/modules/immodules/xim/ecore_imf_xim.c48
-rw-r--r--libraries/ecore/src/tests/Makefile.in20
-rw-r--r--libraries/ecore/src/tests/ecore_test_ecore_x.c4
-rw-r--r--libraries/ecore/src/util/Makefile.in20
142 files changed, 9956 insertions, 7409 deletions
diff --git a/libraries/ecore/AUTHORS b/libraries/ecore/AUTHORS
index 8fc1f10..3db7a4b 100644
--- a/libraries/ecore/AUTHORS
+++ b/libraries/ecore/AUTHORS
@@ -1,3 +1,4 @@
1Myoungwoon Roy Kim(roy_kim) <myoungwoon.kim@samsung.com> <myoungwoon@gmail.com>
1The Rasterman <raster@rasterman.com> 2The Rasterman <raster@rasterman.com>
2Tom Gilbert <tom@linuxbrit.co.uk> 3Tom Gilbert <tom@linuxbrit.co.uk>
3Burra <burra@colorado.edu> 4Burra <burra@colorado.edu>
@@ -49,3 +50,5 @@ Youness Alaoui <kakaroto@kakaroto.homelinux.net>
49Bluezery <ohpowel@gmail.com> 50Bluezery <ohpowel@gmail.com>
50Doyoun Kang <wayofmine@gmail.com> <doyoun.kang@samsung.com> 51Doyoun Kang <wayofmine@gmail.com> <doyoun.kang@samsung.com>
51Haifeng Deng <haifeng.deng@samsung.com> 52Haifeng Deng <haifeng.deng@samsung.com>
53Jérémy Zurcher <jeremy@asynk.ch>
54Vikram Narayanan <vikram186@gmail.com>
diff --git a/libraries/ecore/ChangeLog b/libraries/ecore/ChangeLog
index 5c32d20..dc855e0 100644
--- a/libraries/ecore/ChangeLog
+++ b/libraries/ecore/ChangeLog
@@ -364,7 +364,7 @@
3642011-12-02 Carsten Haitzler (The Rasterman) 3642011-12-02 Carsten Haitzler (The Rasterman)
365 365
366 1.1.0 release 366 1.1.0 release
367 367
3682011-12-02 Mike Blumenkrantz 3682011-12-02 Mike Blumenkrantz
369 369
370 * Use mempools for allocations 370 * Use mempools for allocations
@@ -465,3 +465,124 @@
465 using "Plug" image object. Before only one to one communication 465 using "Plug" image object. Before only one to one communication
466 is possible, but now many "plug"s can show socket's canvas. 466 is possible, but now many "plug"s can show socket's canvas.
467 467
4682011-12-26 Christopher Michael (devilhorns)
469
470 * Add Ecore_X function to return the keycode from a given keyname.
471
4722012-02-06 Jihoon Kim (jihoon)
473
474 * Set ECORE_IMF_INPUT_PANEL_LAYOUT_NORMAL as default layout in ecore_imf_context_add.
475 * Add Ecore_IMF function to set or get the input panel-specific data.
476
4772012-02-07 Jihoon Kim (jihoon)
478
479 * Support ecore_imf_context_input_panel_show/hide in XIM and SCIM module.
480
4812012-02-08 Carsten Haitzler (The Rasterman)
482
483 * Add ecore_con_url_http_version_set() to set url request version
484
4852012-02-09 Jihoon Kim (jihoon)
486
487 * Provide compose, string in key down/up event in case of scim-input-pad.
488
4892012-02-10 Christopher Michael (devilhorns)
490
491 * Add Ecore_Evas function to allow setting a mouse pointer from efl/elm wayland clients.
492
4932012-02-15 Jihoon Kim (jihoon)
494
495 * Add ecore_imf APIs to set return key type, disable return key.
496
4972012-02-16 Leif Middelschulte (T_UNIX)
498
499 * Add ecore_x_randr_mode_add to add a mode to a display
500 * Add ecore_x_randr_mode_del to remove a mode from the display
501 * Add ecore_x_randr_output_mode_add to add a mode to an output
502 * Add ecore_x_randr_output_mode_del to remove a mode from an output
503
5042012-02-10 Jérémy Zurcher
505
506 * Improve callbacks in ecore_evas to use typedefs for readability.
507
5082012-02-20 Cedric Bail
509
510 * Rewrite internal of Ecore_Thread to use Eina_Lock and ecore_main_loop_thread_safe_call_async.
511
5122012-02-23 Cedric Bail
513
514 * Move to Evas buffer engine for Ecore_Evas SDL software backend.
515
5162012-02-23 Leif Middelschulte (T_UNIX)
517
518 * Add ecore_x_randr_window_crtcs_get to get the crtcs that display a
519 window.
520 * Deprecate ecore_x_randr_current_output_get. Use
521 ecore_x_randr_window_crtcs_get instead.
522
5232012-02-24 Doyun Kang
524
525 * Add indicator controls to ecore_x
526
5272012-02-26 Carsten Haitzler (The Rasterman)
528
529 * Fix ecore_file_download to not limit downloads to 30sec.
530
5312012-02-28 Carsten Haitzler (The Rasterman)
532
533 * Add ecore_x_netwm_icons_set()
534 * Add ecore_evas_window_group_set() ecore_evas_window_group_get()
535 ecore_evas_aspect_set() ecore_evas_aspect_get()
536 ecore_evas_urgent_set() ecore_evas_urgent_get()
537 ecore_evas_modal_set() ecore_evas_modal_get()
538 ecore_evas_demand_attention_set()
539 ecore_evas_demand_attention_get()
540 ecore_evas_focus_skip_set() ecore_evas_focus_skip_get()
541 ecore_evas_callback_state_change_set()
542
5432012-02-28 Christopher Michael (devilhorns)
544
545 * Refactor Ecore_Wayland code to improve running EFL
546 applications as Wayland Clients.
547 * Refactor Ecore_Evas Wayland code to match changes in
548 Ecore_Wayland
549
5502012-02-29 Jihoon Kim (jihoon)
551
552 * Add ecore_imf_context_input_panel_caps_lock_mode_set/get to set the caps lock mode on the input panel
553
5542012-03-07 ChunEon Park (Hermet)
555
556 * Add ecore_x_illume_clipboard_state_set()
557 ecore_x_illume_clipboard_state_get()
558 ecore_x_illume_clipboard_geometry_set()
559 ecore_x_illume_clipboard_geometry_get()
560
5612012-03-07 Carsten Haitzler (The Rasterman)
562
563 * Add atoms and api for rotation and indicator transparency in
564 ecore_x/ecore_evas
565
5662012-03-07 Mike Blumenkrantz (discomfitor/zmike)
567
568 * Add ecore_con_url_status_code_get() to check return code at any time
569
5702012-03-09 Carsten Haitzler (The Rasterman)
571
572 * Fix ecore_thread_feedback_run to work as the documentation and logic tell us.
573
5742012-03-10 Cedric Bail
575
576 * Fix double free at end of execution of Ecore_Thread with feedback.
577
5782012-03-13 Leif Middelschulte (T_UNIX)
579
580 * Fix ecore_x_randr_modes_info_get to not cut off the trailing '\0'
581 anymore
582
5832012-03-20 Vincent Torri
584
585 * Rename ecore_win32_window_focus_set() to ecore_win32_window_focus()
586 to match ecore_x API.
587 * Add ecore_wince_window_focus(), ecore_wince_window_focus_get()
588 and ecore_win32_window_focus_get().
diff --git a/libraries/ecore/Makefile.in b/libraries/ecore/Makefile.in
index 7ae3118..39507a9 100644
--- a/libraries/ecore/Makefile.in
+++ b/libraries/ecore/Makefile.in
@@ -79,8 +79,8 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
79 $(srcdir)/ecore-wince.pc.in $(srcdir)/ecore-x.pc.in \ 79 $(srcdir)/ecore-wince.pc.in $(srcdir)/ecore-x.pc.in \
80 $(srcdir)/ecore.pc.in $(srcdir)/ecore.spec.in \ 80 $(srcdir)/ecore.pc.in $(srcdir)/ecore.spec.in \
81 $(top_srcdir)/configure ABOUT-NLS AUTHORS COPYING ChangeLog \ 81 $(top_srcdir)/configure ABOUT-NLS AUTHORS COPYING ChangeLog \
82 INSTALL NEWS config.guess config.rpath config.sub depcomp \ 82 INSTALL NEWS TODO config.guess config.rpath config.sub depcomp \
83 install-sh ltmain.sh missing mkinstalldirs 83 install-sh ltmain.sh missing
84ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 84ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
85am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \ 85am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
86 $(top_srcdir)/m4/ac_path_generic.m4 \ 86 $(top_srcdir)/m4/ac_path_generic.m4 \
@@ -93,18 +93,17 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
93 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 93 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
94 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 94 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
95 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 95 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
96 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 96 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
97 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 97 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
98 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 98 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
99 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 99 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
100 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 100 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
101 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 101 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
102 $(top_srcdir)/configure.ac
103am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 102am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
104 $(ACLOCAL_M4) 103 $(ACLOCAL_M4)
105am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ 104am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
106 configure.lineno config.status.lineno 105 configure.lineno config.status.lineno
107mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 106mkinstalldirs = $(install_sh) -d
108CONFIG_HEADER = config.h 107CONFIG_HEADER = config.h
109CONFIG_CLEAN_FILES = ecore-con.pc ecore-config.pc ecore-directfb.pc \ 108CONFIG_CLEAN_FILES = ecore-con.pc ecore-config.pc ecore-directfb.pc \
110 ecore-evas.pc ecore-fb.pc ecore-file.pc ecore-imf.pc \ 109 ecore-evas.pc ecore-fb.pc ecore-file.pc ecore-imf.pc \
@@ -259,6 +258,8 @@ EVAS_LIBS = @EVAS_LIBS@
259EVIL_CFLAGS = @EVIL_CFLAGS@ 258EVIL_CFLAGS = @EVIL_CFLAGS@
260EVIL_LIBS = @EVIL_LIBS@ 259EVIL_LIBS = @EVIL_LIBS@
261EXEEXT = @EXEEXT@ 260EXEEXT = @EXEEXT@
261EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
262EXOTIC_LIBS = @EXOTIC_LIBS@
262FGREP = @FGREP@ 263FGREP = @FGREP@
263GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 264GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
264GLIB_CFLAGS = @GLIB_CFLAGS@ 265GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -314,6 +315,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
314PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 315PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
315PIXMAN_LIBS = @PIXMAN_LIBS@ 316PIXMAN_LIBS = @PIXMAN_LIBS@
316PKG_CONFIG = @PKG_CONFIG@ 317PKG_CONFIG = @PKG_CONFIG@
318PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
319PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
317POSUB = @POSUB@ 320POSUB = @POSUB@
318RANLIB = @RANLIB@ 321RANLIB = @RANLIB@
319SCIM_CFLAGS = @SCIM_CFLAGS@ 322SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -324,6 +327,7 @@ SDL_LIBS = @SDL_LIBS@
324SED = @SED@ 327SED = @SED@
325SET_MAKE = @SET_MAKE@ 328SET_MAKE = @SET_MAKE@
326SHELL = @SHELL@ 329SHELL = @SHELL@
330SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
327SSL_CFLAGS = @SSL_CFLAGS@ 331SSL_CFLAGS = @SSL_CFLAGS@
328SSL_LIBS = @SSL_LIBS@ 332SSL_LIBS = @SSL_LIBS@
329STRIP = @STRIP@ 333STRIP = @STRIP@
diff --git a/libraries/ecore/NEWS b/libraries/ecore/NEWS
index f558bb4..22fd7a7 100644
--- a/libraries/ecore/NEWS
+++ b/libraries/ecore/NEWS
@@ -13,15 +13,43 @@ Additions:
13 - ECORE_CON_REMOTE_CORK 13 - ECORE_CON_REMOTE_CORK
14 - ecore_con_url_proxy_set() 14 - ecore_con_url_proxy_set()
15 - ecore_con_url_timeout_set() 15 - ecore_con_url_timeout_set()
16 - ecore_con_url_proxy_username_set 16 - ecore_con_url_proxy_username_set()
17 - ecore_con_url_proxy_password_set() 17 - ecore_con_url_proxy_password_set()
18 - ecore_con_url_http_version_set()
19 - ecore_con_url_status_code_get()
18 * ecore_x: 20 * ecore_x:
19 - ecore_x_randr_output_backlight_available() 21 - ecore_x_randr_output_backlight_available()
22 - ecore_x_randr_window_crtcs_get()
20 * ecore_evas: 23 * ecore_evas:
21 - Add Shm and Egl engines for ecore_evas to draw in Wayland. 24 - Add Shm and Egl engines for ecore_evas to draw in Wayland.
22 - Add Socket and Plug to draw other process area. 25 - Add Socket and Plug to draw other process area.
23 * ecore_wayland 26 * ecore_wayland
24 - Add Ecore_Wayland (backend to support Wayland). 27 - Add Ecore_Wayland (backend to support Wayland).
28 * ecore_imf
29 - ecore_imf_context_event_callback_add()
30 - ecore_imf_context_event_callback_del()
31 - ecore_imf_context_event_callback_call()
32 - ecore_imf_context_input_panel_imdata_set()
33 - ecore_imf_context_input_panel_imdata_get()
34 - ecore_imf_context_input_panel_return_key_type_set()
35 - ecore_imf_context_input_panel_return_key_type_get()
36 - ecore_imf_context_input_panel_return_key_disabled_set()
37 - ecore_imf_context_input_panel_return_key_disabled_get()
38 - ecore_imf_context_input_panel_caps_lock_mode_set()
39 - ecore_imf_context_input_panel_caps_lock_mode_get()
40 * ecore_win32:
41 - ecore_win32_focus()
42 - ecore_win32_focus_get()
43 * ecore_wince:
44 - ecore_wince_focus()
45 - ecore_wince_focus_get()
46
47Fixes:
48 * ecore_thread:
49 - ecore_thread_feedback_run now handle try_no_queue the way it logically should.
50 - prevent double free that could cause crash when an Ecore_Thread stop.
51 * ecore_x:
52 - ecore_x_randr_modes_info_get does not cut off the trailing '\0' anymore.
25 53
26Improvements: 54Improvements:
27 * ecore: 55 * ecore:
@@ -30,7 +58,19 @@ Improvements:
30 - certificates can now be added for STARTTTLS 58 - certificates can now be added for STARTTTLS
31 * ecore_win32: 59 * ecore_win32:
32 - fix modifiers value on Windows XP 60 - fix modifiers value on Windows XP
61 * ecore_thread:
62 - use eina_lock
63 - use Ecore thread safe async call
64 * ecore_evas:
65 - use Evas buffer backend for SDL software engine
66
67Deprecations:
68 * ecore_x:
69 - ecore_x_randr_crtc_current_get()
33 70
71Removal:
72 * ecore_win32:
73 - ecore_win32_focus_set()
34 74
35Ecore 1.1.0 75Ecore 1.1.0
36 76
diff --git a/libraries/ecore/README b/libraries/ecore/README
index 7b11f68..c902528 100644
--- a/libraries/ecore/README
+++ b/libraries/ecore/README
@@ -1,4 +1,4 @@
1Ecore 1.1.0 1Ecore 1.2.0
2 2
3****************************************************************************** 3******************************************************************************
4 4
@@ -12,7 +12,6 @@ Requirements:
12 12
13Must: 13Must:
14 libc 14 libc
15 libm
16 eina (1.1.0 or better) 15 eina (1.1.0 or better)
17 (For windows you also need: evil) 16 (For windows you also need: evil)
18 17
diff --git a/libraries/ecore/aclocal.m4 b/libraries/ecore/aclocal.m4
index 859816b..8ae8efb 100644
--- a/libraries/ecore/aclocal.m4
+++ b/libraries/ecore/aclocal.m4
@@ -13,13 +13,14 @@
13 13
14m4_ifndef([AC_AUTOCONF_VERSION], 14m4_ifndef([AC_AUTOCONF_VERSION],
15 [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl 15 [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
16m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],, 16m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],,
17[m4_warning([this file was generated for autoconf 2.65. 17[m4_warning([this file was generated for autoconf 2.67.
18You have another version of autoconf. It may work, but is not guaranteed to. 18You have another version of autoconf. It may work, but is not guaranteed to.
19If you have problems, you may need to regenerate the build system entirely. 19If you have problems, you may need to regenerate the build system entirely.
20To do so, use the procedure documented by the package, typically `autoreconf'.])]) 20To do so, use the procedure documented by the package, typically `autoreconf'.])])
21 21
22# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- 22# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
23# serial 1 (pkg-config-0.24)
23# 24#
24# Copyright © 2004 Scott James Remnant <scott@netsplit.com>. 25# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
25# 26#
@@ -47,7 +48,10 @@ To do so, use the procedure documented by the package, typically `autoreconf'.])
47AC_DEFUN([PKG_PROG_PKG_CONFIG], 48AC_DEFUN([PKG_PROG_PKG_CONFIG],
48[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) 49[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
49m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) 50m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
50AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl 51AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
52AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
53AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
54
51if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 55if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
52 AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) 56 AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
53fi 57fi
@@ -60,7 +64,6 @@ if test -n "$PKG_CONFIG"; then
60 AC_MSG_RESULT([no]) 64 AC_MSG_RESULT([no])
61 PKG_CONFIG="" 65 PKG_CONFIG=""
62 fi 66 fi
63
64fi[]dnl 67fi[]dnl
65])# PKG_PROG_PKG_CONFIG 68])# PKG_PROG_PKG_CONFIG
66 69
@@ -69,34 +72,31 @@ fi[]dnl
69# Check to see whether a particular set of modules exists. Similar 72# Check to see whether a particular set of modules exists. Similar
70# to PKG_CHECK_MODULES(), but does not set variables or print errors. 73# to PKG_CHECK_MODULES(), but does not set variables or print errors.
71# 74#
72# 75# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
73# Similar to PKG_CHECK_MODULES, make sure that the first instance of 76# only at the first occurence in configure.ac, so if the first place
74# this or PKG_CHECK_MODULES is called, or make sure to call 77# it's called might be skipped (such as if it is within an "if", you
75# PKG_CHECK_EXISTS manually 78# have to call PKG_CHECK_EXISTS manually
76# -------------------------------------------------------------- 79# --------------------------------------------------------------
77AC_DEFUN([PKG_CHECK_EXISTS], 80AC_DEFUN([PKG_CHECK_EXISTS],
78[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl 81[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
79if test -n "$PKG_CONFIG" && \ 82if test -n "$PKG_CONFIG" && \
80 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then 83 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
81 m4_ifval([$2], [$2], [:]) 84 m4_default([$2], [:])
82m4_ifvaln([$3], [else 85m4_ifvaln([$3], [else
83 $3])dnl 86 $3])dnl
84fi]) 87fi])
85 88
86
87# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) 89# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
88# --------------------------------------------- 90# ---------------------------------------------
89m4_define([_PKG_CONFIG], 91m4_define([_PKG_CONFIG],
90[if test -n "$PKG_CONFIG"; then 92[if test -n "$$1"; then
91 if test -n "$$1"; then 93 pkg_cv_[]$1="$$1"
92 pkg_cv_[]$1="$$1" 94 elif test -n "$PKG_CONFIG"; then
93 else 95 PKG_CHECK_EXISTS([$3],
94 PKG_CHECK_EXISTS([$3], 96 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
95 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], 97 [pkg_failed=yes])
96 [pkg_failed=yes]) 98 else
97 fi 99 pkg_failed=untried
98else
99 pkg_failed=untried
100fi[]dnl 100fi[]dnl
101])# _PKG_CONFIG 101])# _PKG_CONFIG
102 102
@@ -138,16 +138,17 @@ and $1[]_LIBS to avoid the need to call pkg-config.
138See the pkg-config man page for more details.]) 138See the pkg-config man page for more details.])
139 139
140if test $pkg_failed = yes; then 140if test $pkg_failed = yes; then
141 AC_MSG_RESULT([no])
141 _PKG_SHORT_ERRORS_SUPPORTED 142 _PKG_SHORT_ERRORS_SUPPORTED
142 if test $_pkg_short_errors_supported = yes; then 143 if test $_pkg_short_errors_supported = yes; then
143 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` 144 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
144 else 145 else
145 $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` 146 $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
146 fi 147 fi
147 # Put the nasty error message in config.log where it belongs 148 # Put the nasty error message in config.log where it belongs
148 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD 149 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
149 150
150 ifelse([$4], , [AC_MSG_ERROR(dnl 151 m4_default([$4], [AC_MSG_ERROR(
151[Package requirements ($2) were not met: 152[Package requirements ($2) were not met:
152 153
153$$1_PKG_ERRORS 154$$1_PKG_ERRORS
@@ -155,25 +156,24 @@ $$1_PKG_ERRORS
155Consider adjusting the PKG_CONFIG_PATH environment variable if you 156Consider adjusting the PKG_CONFIG_PATH environment variable if you
156installed software in a non-standard prefix. 157installed software in a non-standard prefix.
157 158
158_PKG_TEXT 159_PKG_TEXT])[]dnl
159])], 160 ])
160 [AC_MSG_RESULT([no])
161 $4])
162elif test $pkg_failed = untried; then 161elif test $pkg_failed = untried; then
163 ifelse([$4], , [AC_MSG_FAILURE(dnl 162 AC_MSG_RESULT([no])
163 m4_default([$4], [AC_MSG_FAILURE(
164[The pkg-config script could not be found or is too old. Make sure it 164[The pkg-config script could not be found or is too old. Make sure it
165is in your PATH or set the PKG_CONFIG environment variable to the full 165is in your PATH or set the PKG_CONFIG environment variable to the full
166path to pkg-config. 166path to pkg-config.
167 167
168_PKG_TEXT 168_PKG_TEXT
169 169
170To get pkg-config, see <http://pkg-config.freedesktop.org/>.])], 170To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
171 [$4]) 171 ])
172else 172else
173 $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS 173 $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
174 $1[]_LIBS=$pkg_cv_[]$1[]_LIBS 174 $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
175 AC_MSG_RESULT([yes]) 175 AC_MSG_RESULT([yes])
176 ifelse([$3], , :, [$3]) 176 $3
177fi[]dnl 177fi[]dnl
178])# PKG_CHECK_MODULES 178])# PKG_CHECK_MODULES
179 179
@@ -1148,7 +1148,6 @@ m4_include([m4/efl_threads.m4])
1148m4_include([m4/gettext.m4]) 1148m4_include([m4/gettext.m4])
1149m4_include([m4/iconv.m4]) 1149m4_include([m4/iconv.m4])
1150m4_include([m4/intlmacosx.m4]) 1150m4_include([m4/intlmacosx.m4])
1151m4_include([m4/isc-posix.m4])
1152m4_include([m4/lib-ld.m4]) 1151m4_include([m4/lib-ld.m4])
1153m4_include([m4/lib-link.m4]) 1152m4_include([m4/lib-link.m4])
1154m4_include([m4/lib-prefix.m4]) 1153m4_include([m4/lib-prefix.m4])
diff --git a/libraries/ecore/config.guess b/libraries/ecore/config.guess
index e3a2116..c2246a4 100755
--- a/libraries/ecore/config.guess
+++ b/libraries/ecore/config.guess
@@ -1,10 +1,10 @@
1#! /bin/sh 1#! /bin/sh
2# Attempt to guess a canonical system name. 2# Attempt to guess a canonical system name.
3# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 3# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 4# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5# Free Software Foundation, Inc. 5# Free Software Foundation, Inc.
6 6
7timestamp='2009-06-10' 7timestamp='2009-12-30'
8 8
9# This file is free software; you can redistribute it and/or modify it 9# This file is free software; you can redistribute it and/or modify it
10# under the terms of the GNU General Public License as published by 10# under the terms of the GNU General Public License as published by
@@ -27,16 +27,16 @@ timestamp='2009-06-10'
27# the same distribution terms that you use for the rest of that program. 27# the same distribution terms that you use for the rest of that program.
28 28
29 29
30# Originally written by Per Bothner <per@bothner.com>. 30# Originally written by Per Bothner. Please send patches (context
31# Please send patches to <config-patches@gnu.org>. Submit a context 31# diff format) to <config-patches@gnu.org> and include a ChangeLog
32# diff and a properly formatted ChangeLog entry. 32# entry.
33# 33#
34# This script attempts to guess a canonical system name similar to 34# This script attempts to guess a canonical system name similar to
35# config.sub. If it succeeds, it prints the system name on stdout, and 35# config.sub. If it succeeds, it prints the system name on stdout, and
36# exits with 0. Otherwise, it exits with 1. 36# exits with 0. Otherwise, it exits with 1.
37# 37#
38# The plan is that this can be called by configure scripts if you 38# You can get the latest version of this script from:
39# don't specify an explicit build system type. 39# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
40 40
41me=`echo "$0" | sed -e 's,.*/,,'` 41me=`echo "$0" | sed -e 's,.*/,,'`
42 42
@@ -56,8 +56,9 @@ version="\
56GNU config.guess ($timestamp) 56GNU config.guess ($timestamp)
57 57
58Originally written by Per Bothner. 58Originally written by Per Bothner.
59Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 59Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
602002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. 602001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
61Software Foundation, Inc.
61 62
62This is free software; see the source for copying conditions. There is NO 63This is free software; see the source for copying conditions. There is NO
63warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 64warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -333,6 +334,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
333 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) 334 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
334 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 335 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
335 exit ;; 336 exit ;;
337 i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
338 echo i386-pc-auroraux${UNAME_RELEASE}
339 exit ;;
336 i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) 340 i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
337 eval $set_cc_for_build 341 eval $set_cc_for_build
338 SUN_ARCH="i386" 342 SUN_ARCH="i386"
@@ -807,12 +811,12 @@ EOF
807 i*:PW*:*) 811 i*:PW*:*)
808 echo ${UNAME_MACHINE}-pc-pw32 812 echo ${UNAME_MACHINE}-pc-pw32
809 exit ;; 813 exit ;;
810 *:Interix*:[3456]*) 814 *:Interix*:*)
811 case ${UNAME_MACHINE} in 815 case ${UNAME_MACHINE} in
812 x86) 816 x86)
813 echo i586-pc-interix${UNAME_RELEASE} 817 echo i586-pc-interix${UNAME_RELEASE}
814 exit ;; 818 exit ;;
815 EM64T | authenticamd | genuineintel) 819 authenticamd | genuineintel | EM64T)
816 echo x86_64-unknown-interix${UNAME_RELEASE} 820 echo x86_64-unknown-interix${UNAME_RELEASE}
817 exit ;; 821 exit ;;
818 IA64) 822 IA64)
@@ -854,6 +858,20 @@ EOF
854 i*86:Minix:*:*) 858 i*86:Minix:*:*)
855 echo ${UNAME_MACHINE}-pc-minix 859 echo ${UNAME_MACHINE}-pc-minix
856 exit ;; 860 exit ;;
861 alpha:Linux:*:*)
862 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
863 EV5) UNAME_MACHINE=alphaev5 ;;
864 EV56) UNAME_MACHINE=alphaev56 ;;
865 PCA56) UNAME_MACHINE=alphapca56 ;;
866 PCA57) UNAME_MACHINE=alphapca56 ;;
867 EV6) UNAME_MACHINE=alphaev6 ;;
868 EV67) UNAME_MACHINE=alphaev67 ;;
869 EV68*) UNAME_MACHINE=alphaev68 ;;
870 esac
871 objdump --private-headers /bin/sh | grep -q ld.so.1
872 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
873 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
874 exit ;;
857 arm*:Linux:*:*) 875 arm*:Linux:*:*)
858 eval $set_cc_for_build 876 eval $set_cc_for_build
859 if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ 877 if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
@@ -876,6 +894,17 @@ EOF
876 frv:Linux:*:*) 894 frv:Linux:*:*)
877 echo frv-unknown-linux-gnu 895 echo frv-unknown-linux-gnu
878 exit ;; 896 exit ;;
897 i*86:Linux:*:*)
898 LIBC=gnu
899 eval $set_cc_for_build
900 sed 's/^ //' << EOF >$dummy.c
901 #ifdef __dietlibc__
902 LIBC=dietlibc
903 #endif
904EOF
905 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
906 echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
907 exit ;;
879 ia64:Linux:*:*) 908 ia64:Linux:*:*)
880 echo ${UNAME_MACHINE}-unknown-linux-gnu 909 echo ${UNAME_MACHINE}-unknown-linux-gnu
881 exit ;; 910 exit ;;
@@ -901,39 +930,18 @@ EOF
901 #endif 930 #endif
902 #endif 931 #endif
903EOF 932EOF
904 eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' 933 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
905 /^CPU/{
906 s: ::g
907 p
908 }'`"
909 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } 934 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
910 ;; 935 ;;
911 or32:Linux:*:*) 936 or32:Linux:*:*)
912 echo or32-unknown-linux-gnu 937 echo or32-unknown-linux-gnu
913 exit ;; 938 exit ;;
914 ppc:Linux:*:*)
915 echo powerpc-unknown-linux-gnu
916 exit ;;
917 ppc64:Linux:*:*)
918 echo powerpc64-unknown-linux-gnu
919 exit ;;
920 alpha:Linux:*:*)
921 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
922 EV5) UNAME_MACHINE=alphaev5 ;;
923 EV56) UNAME_MACHINE=alphaev56 ;;
924 PCA56) UNAME_MACHINE=alphapca56 ;;
925 PCA57) UNAME_MACHINE=alphapca56 ;;
926 EV6) UNAME_MACHINE=alphaev6 ;;
927 EV67) UNAME_MACHINE=alphaev67 ;;
928 EV68*) UNAME_MACHINE=alphaev68 ;;
929 esac
930 objdump --private-headers /bin/sh | grep -q ld.so.1
931 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
932 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
933 exit ;;
934 padre:Linux:*:*) 939 padre:Linux:*:*)
935 echo sparc-unknown-linux-gnu 940 echo sparc-unknown-linux-gnu
936 exit ;; 941 exit ;;
942 parisc64:Linux:*:* | hppa64:Linux:*:*)
943 echo hppa64-unknown-linux-gnu
944 exit ;;
937 parisc:Linux:*:* | hppa:Linux:*:*) 945 parisc:Linux:*:* | hppa:Linux:*:*)
938 # Look for CPU level 946 # Look for CPU level
939 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in 947 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
@@ -942,8 +950,11 @@ EOF
942 *) echo hppa-unknown-linux-gnu ;; 950 *) echo hppa-unknown-linux-gnu ;;
943 esac 951 esac
944 exit ;; 952 exit ;;
945 parisc64:Linux:*:* | hppa64:Linux:*:*) 953 ppc64:Linux:*:*)
946 echo hppa64-unknown-linux-gnu 954 echo powerpc64-unknown-linux-gnu
955 exit ;;
956 ppc:Linux:*:*)
957 echo powerpc-unknown-linux-gnu
947 exit ;; 958 exit ;;
948 s390:Linux:*:* | s390x:Linux:*:*) 959 s390:Linux:*:* | s390x:Linux:*:*)
949 echo ${UNAME_MACHINE}-ibm-linux 960 echo ${UNAME_MACHINE}-ibm-linux
@@ -966,58 +977,6 @@ EOF
966 xtensa*:Linux:*:*) 977 xtensa*:Linux:*:*)
967 echo ${UNAME_MACHINE}-unknown-linux-gnu 978 echo ${UNAME_MACHINE}-unknown-linux-gnu
968 exit ;; 979 exit ;;
969 i*86:Linux:*:*)
970 # The BFD linker knows what the default object file format is, so
971 # first see if it will tell us. cd to the root directory to prevent
972 # problems with other programs or directories called `ld' in the path.
973 # Set LC_ALL=C to ensure ld outputs messages in English.
974 ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
975 | sed -ne '/supported targets:/!d
976 s/[ ][ ]*/ /g
977 s/.*supported targets: *//
978 s/ .*//
979 p'`
980 case "$ld_supported_targets" in
981 elf32-i386)
982 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
983 ;;
984 esac
985 # Determine whether the default compiler is a.out or elf
986 eval $set_cc_for_build
987 sed 's/^ //' << EOF >$dummy.c
988 #include <features.h>
989 #ifdef __ELF__
990 # ifdef __GLIBC__
991 # if __GLIBC__ >= 2
992 LIBC=gnu
993 # else
994 LIBC=gnulibc1
995 # endif
996 # else
997 LIBC=gnulibc1
998 # endif
999 #else
1000 #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
1001 LIBC=gnu
1002 #else
1003 LIBC=gnuaout
1004 #endif
1005 #endif
1006 #ifdef __dietlibc__
1007 LIBC=dietlibc
1008 #endif
1009EOF
1010 eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
1011 /^LIBC/{
1012 s: ::g
1013 p
1014 }'`"
1015 test x"${LIBC}" != x && {
1016 echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
1017 exit
1018 }
1019 test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
1020 ;;
1021 i*86:DYNIX/ptx:4*:*) 980 i*86:DYNIX/ptx:4*:*)
1022 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. 981 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
1023 # earlier versions are messed up and put the nodename in both 982 # earlier versions are messed up and put the nodename in both
@@ -1247,6 +1206,16 @@ EOF
1247 *:Darwin:*:*) 1206 *:Darwin:*:*)
1248 UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown 1207 UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1249 case $UNAME_PROCESSOR in 1208 case $UNAME_PROCESSOR in
1209 i386)
1210 eval $set_cc_for_build
1211 if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
1212 if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1213 (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
1214 grep IS_64BIT_ARCH >/dev/null
1215 then
1216 UNAME_PROCESSOR="x86_64"
1217 fi
1218 fi ;;
1250 unknown) UNAME_PROCESSOR=powerpc ;; 1219 unknown) UNAME_PROCESSOR=powerpc ;;
1251 esac 1220 esac
1252 echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} 1221 echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
diff --git a/libraries/ecore/config.h.in b/libraries/ecore/config.h.in
index 06c1d8e..abc5822 100644
--- a/libraries/ecore/config.h.in
+++ b/libraries/ecore/config.h.in
@@ -30,6 +30,9 @@
30 */ 30 */
31#undef BUILD_ECORE_EVAS_EWS 31#undef BUILD_ECORE_EVAS_EWS
32 32
33/* Support for Extn Engine in Ecore_Evas */
34#undef BUILD_ECORE_EVAS_EXTN
35
33/* Support for Linux Framebuffer Engine in Ecore_Evas */ 36/* Support for Linux Framebuffer Engine in Ecore_Evas */
34#undef BUILD_ECORE_EVAS_FB 37#undef BUILD_ECORE_EVAS_FB
35 38
@@ -331,6 +334,9 @@
331/* Define to 1 if you have the `execvp' function. */ 334/* Define to 1 if you have the `execvp' function. */
332#undef HAVE_EXECVP 335#undef HAVE_EXECVP
333 336
337/* Define to 1 if you have Exotic. */
338#undef HAVE_EXOTIC
339
334/* Define to 1 if you have the <features.h> header file. */ 340/* Define to 1 if you have the <features.h> header file. */
335#undef HAVE_FEATURES_H 341#undef HAVE_FEATURES_H
336 342
@@ -403,6 +409,9 @@
403/* File monitoring with polling */ 409/* File monitoring with polling */
404#undef HAVE_POLL 410#undef HAVE_POLL
405 411
412/* Have shm_open() call */
413#undef HAVE_SHM_OPEN
414
406/* Define to 1 if you have the <signal.h> header file. */ 415/* Define to 1 if you have the <signal.h> header file. */
407#undef HAVE_SIGNAL_H 416#undef HAVE_SIGNAL_H
408 417
diff --git a/libraries/ecore/config.sub b/libraries/ecore/config.sub
index eb0389a..c2d1257 100755
--- a/libraries/ecore/config.sub
+++ b/libraries/ecore/config.sub
@@ -1,10 +1,10 @@
1#! /bin/sh 1#! /bin/sh
2# Configuration validation subroutine script. 2# Configuration validation subroutine script.
3# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 3# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 4# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5# Free Software Foundation, Inc. 5# Free Software Foundation, Inc.
6 6
7timestamp='2009-06-11' 7timestamp='2010-01-22'
8 8
9# This file is (in principle) common to ALL GNU software. 9# This file is (in principle) common to ALL GNU software.
10# The presence of a machine in this file suggests that SOME GNU software 10# The presence of a machine in this file suggests that SOME GNU software
@@ -32,13 +32,16 @@ timestamp='2009-06-11'
32 32
33 33
34# Please send patches to <config-patches@gnu.org>. Submit a context 34# Please send patches to <config-patches@gnu.org>. Submit a context
35# diff and a properly formatted ChangeLog entry. 35# diff and a properly formatted GNU ChangeLog entry.
36# 36#
37# Configuration subroutine to validate and canonicalize a configuration type. 37# Configuration subroutine to validate and canonicalize a configuration type.
38# Supply the specified configuration type as an argument. 38# Supply the specified configuration type as an argument.
39# If it is invalid, we print an error message on stderr and exit with code 1. 39# If it is invalid, we print an error message on stderr and exit with code 1.
40# Otherwise, we print the canonical config type on stdout and succeed. 40# Otherwise, we print the canonical config type on stdout and succeed.
41 41
42# You can get the latest version of this script from:
43# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
44
42# This file is supposed to be the same for all GNU packages 45# This file is supposed to be the same for all GNU packages
43# and recognize all the CPU types, system types and aliases 46# and recognize all the CPU types, system types and aliases
44# that are meaningful with *any* GNU software. 47# that are meaningful with *any* GNU software.
@@ -72,8 +75,9 @@ Report bugs and patches to <config-patches@gnu.org>."
72version="\ 75version="\
73GNU config.sub ($timestamp) 76GNU config.sub ($timestamp)
74 77
75Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 78Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
762002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. 792001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
80Software Foundation, Inc.
77 81
78This is free software; see the source for copying conditions. There is NO 82This is free software; see the source for copying conditions. There is NO
79warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 83warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -149,7 +153,7 @@ case $os in
149 -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ 153 -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
150 -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ 154 -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
151 -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ 155 -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
152 -apple | -axis | -knuth | -cray) 156 -apple | -axis | -knuth | -cray | -microblaze)
153 os= 157 os=
154 basic_machine=$1 158 basic_machine=$1
155 ;; 159 ;;
@@ -284,6 +288,7 @@ case $basic_machine in
284 | pdp10 | pdp11 | pj | pjl \ 288 | pdp10 | pdp11 | pj | pjl \
285 | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ 289 | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
286 | pyramid \ 290 | pyramid \
291 | rx \
287 | score \ 292 | score \
288 | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ 293 | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
289 | sh64 | sh64le \ 294 | sh64 | sh64le \
@@ -291,13 +296,14 @@ case $basic_machine in
291 | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ 296 | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
292 | spu | strongarm \ 297 | spu | strongarm \
293 | tahoe | thumb | tic4x | tic80 | tron \ 298 | tahoe | thumb | tic4x | tic80 | tron \
299 | ubicom32 \
294 | v850 | v850e \ 300 | v850 | v850e \
295 | we32k \ 301 | we32k \
296 | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ 302 | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
297 | z8k | z80) 303 | z8k | z80)
298 basic_machine=$basic_machine-unknown 304 basic_machine=$basic_machine-unknown
299 ;; 305 ;;
300 m6811 | m68hc11 | m6812 | m68hc12) 306 m6811 | m68hc11 | m6812 | m68hc12 | picochip)
301 # Motorola 68HC11/12. 307 # Motorola 68HC11/12.
302 basic_machine=$basic_machine-unknown 308 basic_machine=$basic_machine-unknown
303 os=-none 309 os=-none
@@ -340,7 +346,7 @@ case $basic_machine in
340 | lm32-* \ 346 | lm32-* \
341 | m32c-* | m32r-* | m32rle-* \ 347 | m32c-* | m32r-* | m32rle-* \
342 | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ 348 | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
343 | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ 349 | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
344 | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ 350 | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
345 | mips16-* \ 351 | mips16-* \
346 | mips64-* | mips64el-* \ 352 | mips64-* | mips64el-* \
@@ -368,15 +374,17 @@ case $basic_machine in
368 | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ 374 | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
369 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ 375 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
370 | pyramid-* \ 376 | pyramid-* \
371 | romp-* | rs6000-* \ 377 | romp-* | rs6000-* | rx-* \
372 | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ 378 | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
373 | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ 379 | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
374 | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ 380 | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
375 | sparclite-* \ 381 | sparclite-* \
376 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ 382 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
377 | tahoe-* | thumb-* \ 383 | tahoe-* | thumb-* \
378 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ 384 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
385 | tile-* | tilegx-* \
379 | tron-* \ 386 | tron-* \
387 | ubicom32-* \
380 | v850-* | v850e-* | vax-* \ 388 | v850-* | v850e-* | vax-* \
381 | we32k-* \ 389 | we32k-* \
382 | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ 390 | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
@@ -726,6 +734,9 @@ case $basic_machine in
726 basic_machine=ns32k-utek 734 basic_machine=ns32k-utek
727 os=-sysv 735 os=-sysv
728 ;; 736 ;;
737 microblaze)
738 basic_machine=microblaze-xilinx
739 ;;
729 mingw32) 740 mingw32)
730 basic_machine=i386-pc 741 basic_machine=i386-pc
731 os=-mingw32 742 os=-mingw32
@@ -1076,6 +1087,11 @@ case $basic_machine in
1076 basic_machine=tic6x-unknown 1087 basic_machine=tic6x-unknown
1077 os=-coff 1088 os=-coff
1078 ;; 1089 ;;
1090 # This must be matched before tile*.
1091 tilegx*)
1092 basic_machine=tilegx-unknown
1093 os=-linux-gnu
1094 ;;
1079 tile*) 1095 tile*)
1080 basic_machine=tile-unknown 1096 basic_machine=tile-unknown
1081 os=-linux-gnu 1097 os=-linux-gnu
@@ -1247,6 +1263,9 @@ case $os in
1247 # First match some system type aliases 1263 # First match some system type aliases
1248 # that might get confused with valid system types. 1264 # that might get confused with valid system types.
1249 # -solaris* is a basic system type, with this one exception. 1265 # -solaris* is a basic system type, with this one exception.
1266 -auroraux)
1267 os=-auroraux
1268 ;;
1250 -solaris1 | -solaris1.*) 1269 -solaris1 | -solaris1.*)
1251 os=`echo $os | sed -e 's|solaris1|sunos4|'` 1270 os=`echo $os | sed -e 's|solaris1|sunos4|'`
1252 ;; 1271 ;;
@@ -1268,8 +1287,8 @@ case $os in
1268 # -sysv* is not here because it comes later, after sysvr4. 1287 # -sysv* is not here because it comes later, after sysvr4.
1269 -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ 1288 -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1270 | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ 1289 | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1271 | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ 1290 | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1272 | -kopensolaris* \ 1291 | -sym* | -kopensolaris* \
1273 | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ 1292 | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1274 | -aos* | -aros* \ 1293 | -aos* | -aros* \
1275 | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ 1294 | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
@@ -1290,7 +1309,7 @@ case $os in
1290 | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ 1309 | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1291 | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ 1310 | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1292 | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ 1311 | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1293 | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) 1312 | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
1294 # Remember, each alternative MUST END IN *, to match a version number. 1313 # Remember, each alternative MUST END IN *, to match a version number.
1295 ;; 1314 ;;
1296 -qnx*) 1315 -qnx*)
@@ -1423,6 +1442,8 @@ case $os in
1423 -dicos*) 1442 -dicos*)
1424 os=-dicos 1443 os=-dicos
1425 ;; 1444 ;;
1445 -nacl*)
1446 ;;
1426 -none) 1447 -none)
1427 ;; 1448 ;;
1428 *) 1449 *)
diff --git a/libraries/ecore/configure b/libraries/ecore/configure
index 2ea7dd2..1b2ed41 100755
--- a/libraries/ecore/configure
+++ b/libraries/ecore/configure
@@ -1,13 +1,13 @@
1#! /bin/sh 1#! /bin/sh
2# Guess values for system-dependent variables and create Makefiles. 2# Guess values for system-dependent variables and create Makefiles.
3# Generated by GNU Autoconf 2.65 for ecore 1.1.99.67344. 3# Generated by GNU Autoconf 2.67 for ecore 1.2.0-alpha.
4# 4#
5# Report bugs to <enlightenment-devel@lists.sourceforge.net>. 5# Report bugs to <enlightenment-devel@lists.sourceforge.net>.
6# 6#
7# 7#
8# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 8# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
9# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, 9# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
10# Inc. 10# Foundation, Inc.
11# 11#
12# 12#
13# This configure script is free software; the Free Software Foundation 13# This configure script is free software; the Free Software Foundation
@@ -319,7 +319,7 @@ $as_echo X"$as_dir" |
319 test -d "$as_dir" && break 319 test -d "$as_dir" && break
320 done 320 done
321 test -z "$as_dirs" || eval "mkdir $as_dirs" 321 test -z "$as_dirs" || eval "mkdir $as_dirs"
322 } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" 322 } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
323 323
324 324
325} # as_fn_mkdir_p 325} # as_fn_mkdir_p
@@ -359,19 +359,19 @@ else
359fi # as_fn_arith 359fi # as_fn_arith
360 360
361 361
362# as_fn_error ERROR [LINENO LOG_FD] 362# as_fn_error STATUS ERROR [LINENO LOG_FD]
363# --------------------------------- 363# ----------------------------------------
364# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are 364# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
365# provided, also output the error to LOG_FD, referencing LINENO. Then exit the 365# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
366# script with status $?, using 1 if that was 0. 366# script with STATUS, using 1 if that was 0.
367as_fn_error () 367as_fn_error ()
368{ 368{
369 as_status=$?; test $as_status -eq 0 && as_status=1 369 as_status=$1; test $as_status -eq 0 && as_status=1
370 if test "$3"; then 370 if test "$4"; then
371 as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 371 as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
372 $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 372 $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
373 fi 373 fi
374 $as_echo "$as_me: error: $1" >&2 374 $as_echo "$as_me: error: $2" >&2
375 as_fn_exit $as_status 375 as_fn_exit $as_status
376} # as_fn_error 376} # as_fn_error
377 377
@@ -682,7 +682,7 @@ test -n "$DJDIR" || exec 7<&0 </dev/null
682exec 6>&1 682exec 6>&1
683 683
684# Name of the host. 684# Name of the host.
685# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, 685# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
686# so uname gets run too. 686# so uname gets run too.
687ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` 687ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
688 688
@@ -701,8 +701,8 @@ MAKEFLAGS=
701# Identity of this package. 701# Identity of this package.
702PACKAGE_NAME='ecore' 702PACKAGE_NAME='ecore'
703PACKAGE_TARNAME='ecore' 703PACKAGE_TARNAME='ecore'
704PACKAGE_VERSION='1.1.99.67344' 704PACKAGE_VERSION='1.2.0-alpha'
705PACKAGE_STRING='ecore 1.1.99.67344' 705PACKAGE_STRING='ecore 1.2.0-alpha'
706PACKAGE_BUGREPORT='enlightenment-devel@lists.sourceforge.net' 706PACKAGE_BUGREPORT='enlightenment-devel@lists.sourceforge.net'
707PACKAGE_URL='' 707PACKAGE_URL=''
708 708
@@ -772,6 +772,10 @@ EFL_INSTALL_EXAMPLES_FALSE
772EFL_INSTALL_EXAMPLES_TRUE 772EFL_INSTALL_EXAMPLES_TRUE
773EFL_BUILD_EXAMPLES_FALSE 773EFL_BUILD_EXAMPLES_FALSE
774EFL_BUILD_EXAMPLES_TRUE 774EFL_BUILD_EXAMPLES_TRUE
775EFL_ENABLE_TESTS_FALSE
776EFL_ENABLE_TESTS_TRUE
777CHECK_LIBS
778CHECK_CFLAGS
775WAYLAND_EGL_LIBS 779WAYLAND_EGL_LIBS
776WAYLAND_EGL_CFLAGS 780WAYLAND_EGL_CFLAGS
777ecore_wayland_libs 781ecore_wayland_libs
@@ -875,6 +879,7 @@ ecore_con_libs
875ecore_con_cflags 879ecore_con_cflags
876BUILD_ECORE_CON_FALSE 880BUILD_ECORE_CON_FALSE
877BUILD_ECORE_CON_TRUE 881BUILD_ECORE_CON_TRUE
882SHM_OPEN_LIBS
878ALLOCA 883ALLOCA
879lt_enable_auto_import 884lt_enable_auto_import
880WIN32_CFLAGS 885WIN32_CFLAGS
@@ -992,11 +997,18 @@ EFL_ECORE_FILE_BUILD
992EFL_ECORE_EVAS_BUILD 997EFL_ECORE_EVAS_BUILD
993EFL_ECORE_CON_BUILD 998EFL_ECORE_CON_BUILD
994EFL_ECORE_BUILD 999EFL_ECORE_BUILD
1000ECORE_HAVE_EXOTIC_FALSE
1001ECORE_HAVE_EXOTIC_TRUE
1002EXOTIC_LIBS
1003EXOTIC_CFLAGS
995ESCAPE_LIBS 1004ESCAPE_LIBS
996ESCAPE_CFLAGS 1005ESCAPE_CFLAGS
997EVIL_LIBS 1006EVIL_LIBS
998EVIL_CFLAGS 1007EVIL_CFLAGS
999pkgconfig_requires_private 1008pkgconfig_requires_private
1009PKG_CONFIG_LIBDIR
1010PKG_CONFIG_PATH
1011PKG_CONFIG
1000EFL_BUILD_DOC_FALSE 1012EFL_BUILD_DOC_FALSE
1001EFL_BUILD_DOC_TRUE 1013EFL_BUILD_DOC_TRUE
1002efl_doxygen 1014efl_doxygen
@@ -1014,11 +1026,6 @@ OBJCDEPMODE
1014ac_ct_OBJC 1026ac_ct_OBJC
1015OBJCFLAGS 1027OBJCFLAGS
1016OBJC 1028OBJC
1017EFL_ENABLE_TESTS_FALSE
1018EFL_ENABLE_TESTS_TRUE
1019CHECK_LIBS
1020CHECK_CFLAGS
1021PKG_CONFIG
1022HAVE_PO_FALSE 1029HAVE_PO_FALSE
1023HAVE_PO_TRUE 1030HAVE_PO_TRUE
1024POSUB 1031POSUB
@@ -1172,7 +1179,6 @@ enable_local_sockets
1172enable_abstract_sockets 1179enable_abstract_sockets
1173enable_simple_x11 1180enable_simple_x11
1174enable_xim 1181enable_xim
1175enable_tests
1176enable_doc 1182enable_doc
1177with_doxygen 1183with_doxygen
1178enable_ecore_timer_dump 1184enable_ecore_timer_dump
@@ -1243,7 +1249,6 @@ enable_ecore_evas_software_ddraw
1243enable_ecore_evas_direct3d 1249enable_ecore_evas_direct3d
1244enable_ecore_evas_opengl_glew 1250enable_ecore_evas_opengl_glew
1245enable_ecore_evas_software_16_ddraw 1251enable_ecore_evas_software_16_ddraw
1246enable_ecore_evas_software_sdl
1247enable_ecore_evas_opengl_sdl 1252enable_ecore_evas_opengl_sdl
1248enable_ecore_evas_opengl_cocoa 1253enable_ecore_evas_opengl_cocoa
1249enable_ecore_evas_directfb 1254enable_ecore_evas_directfb
@@ -1254,6 +1259,7 @@ enable_ecore_evas_psl1ght
1254enable_ecore_wayland 1259enable_ecore_wayland
1255enable_ecore_evas_wayland_shm 1260enable_ecore_evas_wayland_shm
1256enable_ecore_evas_wayland_egl 1261enable_ecore_evas_wayland_egl
1262enable_tests
1257enable_build_examples 1263enable_build_examples
1258enable_install_examples 1264enable_install_examples
1259' 1265'
@@ -1266,19 +1272,21 @@ LDFLAGS
1266LIBS 1272LIBS
1267CPPFLAGS 1273CPPFLAGS
1268CPP 1274CPP
1269PKG_CONFIG
1270CHECK_CFLAGS
1271CHECK_LIBS
1272OBJC 1275OBJC
1273OBJCFLAGS 1276OBJCFLAGS
1274CXX 1277CXX
1275CXXFLAGS 1278CXXFLAGS
1276CCC 1279CCC
1277CXXCPP 1280CXXCPP
1281PKG_CONFIG
1282PKG_CONFIG_PATH
1283PKG_CONFIG_LIBDIR
1278EVIL_CFLAGS 1284EVIL_CFLAGS
1279EVIL_LIBS 1285EVIL_LIBS
1280ESCAPE_CFLAGS 1286ESCAPE_CFLAGS
1281ESCAPE_LIBS 1287ESCAPE_LIBS
1288EXOTIC_CFLAGS
1289EXOTIC_LIBS
1282EINA_CFLAGS 1290EINA_CFLAGS
1283EINA_LIBS 1291EINA_LIBS
1284GLIB_CFLAGS 1292GLIB_CFLAGS
@@ -1343,7 +1351,9 @@ XCB_X11_LIBS
1343WAYLAND_CFLAGS 1351WAYLAND_CFLAGS
1344WAYLAND_LIBS 1352WAYLAND_LIBS
1345WAYLAND_EGL_CFLAGS 1353WAYLAND_EGL_CFLAGS
1346WAYLAND_EGL_LIBS' 1354WAYLAND_EGL_LIBS
1355CHECK_CFLAGS
1356CHECK_LIBS'
1347 1357
1348 1358
1349# Initialize some variables set by options. 1359# Initialize some variables set by options.
@@ -1406,8 +1416,9 @@ do
1406 fi 1416 fi
1407 1417
1408 case $ac_option in 1418 case $ac_option in
1409 *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; 1419 *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
1410 *) ac_optarg=yes ;; 1420 *=) ac_optarg= ;;
1421 *) ac_optarg=yes ;;
1411 esac 1422 esac
1412 1423
1413 # Accept the important Cygnus configure options, so we can diagnose typos. 1424 # Accept the important Cygnus configure options, so we can diagnose typos.
@@ -1452,7 +1463,7 @@ do
1452 ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` 1463 ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
1453 # Reject names that are not valid shell variable names. 1464 # Reject names that are not valid shell variable names.
1454 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1465 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1455 as_fn_error "invalid feature name: $ac_useropt" 1466 as_fn_error $? "invalid feature name: $ac_useropt"
1456 ac_useropt_orig=$ac_useropt 1467 ac_useropt_orig=$ac_useropt
1457 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1468 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1458 case $ac_user_opts in 1469 case $ac_user_opts in
@@ -1478,7 +1489,7 @@ do
1478 ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` 1489 ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
1479 # Reject names that are not valid shell variable names. 1490 # Reject names that are not valid shell variable names.
1480 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1491 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1481 as_fn_error "invalid feature name: $ac_useropt" 1492 as_fn_error $? "invalid feature name: $ac_useropt"
1482 ac_useropt_orig=$ac_useropt 1493 ac_useropt_orig=$ac_useropt
1483 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1494 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1484 case $ac_user_opts in 1495 case $ac_user_opts in
@@ -1682,7 +1693,7 @@ do
1682 ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` 1693 ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
1683 # Reject names that are not valid shell variable names. 1694 # Reject names that are not valid shell variable names.
1684 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1695 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1685 as_fn_error "invalid package name: $ac_useropt" 1696 as_fn_error $? "invalid package name: $ac_useropt"
1686 ac_useropt_orig=$ac_useropt 1697 ac_useropt_orig=$ac_useropt
1687 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1698 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1688 case $ac_user_opts in 1699 case $ac_user_opts in
@@ -1698,7 +1709,7 @@ do
1698 ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` 1709 ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
1699 # Reject names that are not valid shell variable names. 1710 # Reject names that are not valid shell variable names.
1700 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1711 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1701 as_fn_error "invalid package name: $ac_useropt" 1712 as_fn_error $? "invalid package name: $ac_useropt"
1702 ac_useropt_orig=$ac_useropt 1713 ac_useropt_orig=$ac_useropt
1703 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1714 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1704 case $ac_user_opts in 1715 case $ac_user_opts in
@@ -1728,8 +1739,8 @@ do
1728 | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) 1739 | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
1729 x_libraries=$ac_optarg ;; 1740 x_libraries=$ac_optarg ;;
1730 1741
1731 -*) as_fn_error "unrecognized option: \`$ac_option' 1742 -*) as_fn_error $? "unrecognized option: \`$ac_option'
1732Try \`$0 --help' for more information." 1743Try \`$0 --help' for more information"
1733 ;; 1744 ;;
1734 1745
1735 *=*) 1746 *=*)
@@ -1737,7 +1748,7 @@ Try \`$0 --help' for more information."
1737 # Reject names that are not valid shell variable names. 1748 # Reject names that are not valid shell variable names.
1738 case $ac_envvar in #( 1749 case $ac_envvar in #(
1739 '' | [0-9]* | *[!_$as_cr_alnum]* ) 1750 '' | [0-9]* | *[!_$as_cr_alnum]* )
1740 as_fn_error "invalid variable name: \`$ac_envvar'" ;; 1751 as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
1741 esac 1752 esac
1742 eval $ac_envvar=\$ac_optarg 1753 eval $ac_envvar=\$ac_optarg
1743 export $ac_envvar ;; 1754 export $ac_envvar ;;
@@ -1755,13 +1766,13 @@ done
1755 1766
1756if test -n "$ac_prev"; then 1767if test -n "$ac_prev"; then
1757 ac_option=--`echo $ac_prev | sed 's/_/-/g'` 1768 ac_option=--`echo $ac_prev | sed 's/_/-/g'`
1758 as_fn_error "missing argument to $ac_option" 1769 as_fn_error $? "missing argument to $ac_option"
1759fi 1770fi
1760 1771
1761if test -n "$ac_unrecognized_opts"; then 1772if test -n "$ac_unrecognized_opts"; then
1762 case $enable_option_checking in 1773 case $enable_option_checking in
1763 no) ;; 1774 no) ;;
1764 fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; 1775 fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
1765 *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; 1776 *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
1766 esac 1777 esac
1767fi 1778fi
@@ -1784,7 +1795,7 @@ do
1784 [\\/$]* | ?:[\\/]* ) continue;; 1795 [\\/$]* | ?:[\\/]* ) continue;;
1785 NONE | '' ) case $ac_var in *prefix ) continue;; esac;; 1796 NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
1786 esac 1797 esac
1787 as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" 1798 as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
1788done 1799done
1789 1800
1790# There might be people who depend on the old broken behavior: `$host' 1801# There might be people who depend on the old broken behavior: `$host'
@@ -1798,8 +1809,8 @@ target=$target_alias
1798if test "x$host_alias" != x; then 1809if test "x$host_alias" != x; then
1799 if test "x$build_alias" = x; then 1810 if test "x$build_alias" = x; then
1800 cross_compiling=maybe 1811 cross_compiling=maybe
1801 $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. 1812 $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
1802 If a cross compiler is detected then cross compile mode will be used." >&2 1813 If a cross compiler is detected then cross compile mode will be used" >&2
1803 elif test "x$build_alias" != "x$host_alias"; then 1814 elif test "x$build_alias" != "x$host_alias"; then
1804 cross_compiling=yes 1815 cross_compiling=yes
1805 fi 1816 fi
@@ -1814,9 +1825,9 @@ test "$silent" = yes && exec 6>/dev/null
1814ac_pwd=`pwd` && test -n "$ac_pwd" && 1825ac_pwd=`pwd` && test -n "$ac_pwd" &&
1815ac_ls_di=`ls -di .` && 1826ac_ls_di=`ls -di .` &&
1816ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || 1827ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
1817 as_fn_error "working directory cannot be determined" 1828 as_fn_error $? "working directory cannot be determined"
1818test "X$ac_ls_di" = "X$ac_pwd_ls_di" || 1829test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
1819 as_fn_error "pwd does not report name of working directory" 1830 as_fn_error $? "pwd does not report name of working directory"
1820 1831
1821 1832
1822# Find the source files, if location was not specified. 1833# Find the source files, if location was not specified.
@@ -1855,11 +1866,11 @@ else
1855fi 1866fi
1856if test ! -r "$srcdir/$ac_unique_file"; then 1867if test ! -r "$srcdir/$ac_unique_file"; then
1857 test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." 1868 test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
1858 as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" 1869 as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
1859fi 1870fi
1860ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" 1871ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
1861ac_abs_confdir=`( 1872ac_abs_confdir=`(
1862 cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" 1873 cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
1863 pwd)` 1874 pwd)`
1864# When building in place, set srcdir=. 1875# When building in place, set srcdir=.
1865if test "$ac_abs_confdir" = "$ac_pwd"; then 1876if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1885,7 +1896,7 @@ if test "$ac_init_help" = "long"; then
1885 # Omit some internal or obsolete options to make the list less imposing. 1896 # Omit some internal or obsolete options to make the list less imposing.
1886 # This message is too long to be a string in the A/UX 3.1 sh. 1897 # This message is too long to be a string in the A/UX 3.1 sh.
1887 cat <<_ACEOF 1898 cat <<_ACEOF
1888\`configure' configures ecore 1.1.99.67344 to adapt to many kinds of systems. 1899\`configure' configures ecore 1.2.0-alpha to adapt to many kinds of systems.
1889 1900
1890Usage: $0 [OPTION]... [VAR=VALUE]... 1901Usage: $0 [OPTION]... [VAR=VALUE]...
1891 1902
@@ -1899,7 +1910,7 @@ Configuration:
1899 --help=short display options specific to this package 1910 --help=short display options specific to this package
1900 --help=recursive display the short help of all the included packages 1911 --help=recursive display the short help of all the included packages
1901 -V, --version display version information and exit 1912 -V, --version display version information and exit
1902 -q, --quiet, --silent do not print \`checking...' messages 1913 -q, --quiet, --silent do not print \`checking ...' messages
1903 --cache-file=FILE cache test results in FILE [disabled] 1914 --cache-file=FILE cache test results in FILE [disabled]
1904 -C, --config-cache alias for \`--cache-file=config.cache' 1915 -C, --config-cache alias for \`--cache-file=config.cache'
1905 -n, --no-create do not create output files 1916 -n, --no-create do not create output files
@@ -1959,7 +1970,7 @@ fi
1959 1970
1960if test -n "$ac_init_help"; then 1971if test -n "$ac_init_help"; then
1961 case $ac_init_help in 1972 case $ac_init_help in
1962 short | recursive ) echo "Configuration of ecore 1.1.99.67344:";; 1973 short | recursive ) echo "Configuration of ecore 1.2.0-alpha:";;
1963 esac 1974 esac
1964 cat <<\_ACEOF 1975 cat <<\_ACEOF
1965 1976
@@ -1987,7 +1998,6 @@ Optional Features:
1987 disable abstract sockets. 1998 disable abstract sockets.
1988 --enable-simple-x11 enable simple x11 linking 1999 --enable-simple-x11 enable simple x11 linking
1989 --disable-xim disable X Input Method. 2000 --disable-xim disable X Input Method.
1990 --enable-tests enable tests [default=disabled]
1991 --disable-doc Disable documentation build [default=enabled] 2001 --disable-doc Disable documentation build [default=enabled]
1992 --disable-ecore-timer-dump 2002 --disable-ecore-timer-dump
1993 disable tracking of timer allocation. 2003 disable tracking of timer allocation.
@@ -2102,9 +2112,6 @@ Optional Features:
2102 --enable-ecore-evas-software-16-ddraw 2112 --enable-ecore-evas-software-16-ddraw
2103 enable 16 bpp Software DirectDraw support in the 2113 enable 16 bpp Software DirectDraw support in the
2104 ecore_evas module. 2114 ecore_evas module.
2105 --enable-ecore-evas-software-sdl
2106 enable Software SDL support in the ecore_evas
2107 module.
2108 --enable-ecore-evas-opengl-sdl 2115 --enable-ecore-evas-opengl-sdl
2109 enable OpenGL SDL support in the ecore_evas module. 2116 enable OpenGL SDL support in the ecore_evas module.
2110 --enable-ecore-evas-opengl-cocoa 2117 --enable-ecore-evas-opengl-cocoa
@@ -2126,6 +2133,7 @@ Optional Features:
2126 enable Wayland Shm support in the ecore_evas module. 2133 enable Wayland Shm support in the ecore_evas module.
2127 --enable-ecore-evas-wayland-egl 2134 --enable-ecore-evas-wayland-egl
2128 enable Wayland Egl support in the ecore_evas module. 2135 enable Wayland Egl support in the ecore_evas module.
2136 --enable-tests enable tests [default=disabled]
2129 --enable-build-examples enable building examples [default=disabled] 2137 --enable-build-examples enable building examples [default=disabled]
2130 --enable-install-examples 2138 --enable-install-examples
2131 enable installing example source files 2139 enable installing example source files
@@ -2164,20 +2172,24 @@ Some influential environment variables:
2164 CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if 2172 CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
2165 you have headers in a nonstandard directory <include dir> 2173 you have headers in a nonstandard directory <include dir>
2166 CPP C preprocessor 2174 CPP C preprocessor
2167 PKG_CONFIG path to pkg-config utility
2168 CHECK_CFLAGS
2169 C compiler flags for CHECK, overriding pkg-config
2170 CHECK_LIBS linker flags for CHECK, overriding pkg-config
2171 OBJC Objective C compiler command 2175 OBJC Objective C compiler command
2172 OBJCFLAGS Objective C compiler flags 2176 OBJCFLAGS Objective C compiler flags
2173 CXX C++ compiler command 2177 CXX C++ compiler command
2174 CXXFLAGS C++ compiler flags 2178 CXXFLAGS C++ compiler flags
2175 CXXCPP C++ preprocessor 2179 CXXCPP C++ preprocessor
2180 PKG_CONFIG path to pkg-config utility
2181 PKG_CONFIG_PATH
2182 directories to add to pkg-config's search path
2183 PKG_CONFIG_LIBDIR
2184 path overriding pkg-config's built-in search path
2176 EVIL_CFLAGS C compiler flags for EVIL, overriding pkg-config 2185 EVIL_CFLAGS C compiler flags for EVIL, overriding pkg-config
2177 EVIL_LIBS linker flags for EVIL, overriding pkg-config 2186 EVIL_LIBS linker flags for EVIL, overriding pkg-config
2178 ESCAPE_CFLAGS 2187 ESCAPE_CFLAGS
2179 C compiler flags for ESCAPE, overriding pkg-config 2188 C compiler flags for ESCAPE, overriding pkg-config
2180 ESCAPE_LIBS linker flags for ESCAPE, overriding pkg-config 2189 ESCAPE_LIBS linker flags for ESCAPE, overriding pkg-config
2190 EXOTIC_CFLAGS
2191 C compiler flags for EXOTIC, overriding pkg-config
2192 EXOTIC_LIBS linker flags for EXOTIC, overriding pkg-config
2181 EINA_CFLAGS C compiler flags for EINA, overriding pkg-config 2193 EINA_CFLAGS C compiler flags for EINA, overriding pkg-config
2182 EINA_LIBS linker flags for EINA, overriding pkg-config 2194 EINA_LIBS linker flags for EINA, overriding pkg-config
2183 GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config 2195 GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config
@@ -2286,6 +2298,9 @@ Some influential environment variables:
2286 C compiler flags for WAYLAND_EGL, overriding pkg-config 2298 C compiler flags for WAYLAND_EGL, overriding pkg-config
2287 WAYLAND_EGL_LIBS 2299 WAYLAND_EGL_LIBS
2288 linker flags for WAYLAND_EGL, overriding pkg-config 2300 linker flags for WAYLAND_EGL, overriding pkg-config
2301 CHECK_CFLAGS
2302 C compiler flags for CHECK, overriding pkg-config
2303 CHECK_LIBS linker flags for CHECK, overriding pkg-config
2289 2304
2290Use these variables to override the choices made by `configure' or to help 2305Use these variables to override the choices made by `configure' or to help
2291it to find libraries and programs with nonstandard names/locations. 2306it to find libraries and programs with nonstandard names/locations.
@@ -2353,10 +2368,10 @@ fi
2353test -n "$ac_init_help" && exit $ac_status 2368test -n "$ac_init_help" && exit $ac_status
2354if $ac_init_version; then 2369if $ac_init_version; then
2355 cat <<\_ACEOF 2370 cat <<\_ACEOF
2356ecore configure 1.1.99.67344 2371ecore configure 1.2.0-alpha
2357generated by GNU Autoconf 2.65 2372generated by GNU Autoconf 2.67
2358 2373
2359Copyright (C) 2009 Free Software Foundation, Inc. 2374Copyright (C) 2010 Free Software Foundation, Inc.
2360This configure script is free software; the Free Software Foundation 2375This configure script is free software; the Free Software Foundation
2361gives unlimited permission to copy, distribute and modify it. 2376gives unlimited permission to copy, distribute and modify it.
2362_ACEOF 2377_ACEOF
@@ -2426,7 +2441,7 @@ $as_echo "$ac_try_echo"; } >&5
2426 mv -f conftest.er1 conftest.err 2441 mv -f conftest.er1 conftest.err
2427 fi 2442 fi
2428 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 2443 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
2429 test $ac_status = 0; } >/dev/null && { 2444 test $ac_status = 0; } > conftest.i && {
2430 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || 2445 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
2431 test ! -s conftest.err 2446 test ! -s conftest.err
2432 }; then : 2447 }; then :
@@ -2450,10 +2465,10 @@ fi
2450ac_fn_c_check_header_mongrel () 2465ac_fn_c_check_header_mongrel ()
2451{ 2466{
2452 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 2467 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2453 if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : 2468 if eval "test \"\${$3+set}\"" = set; then :
2454 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2469 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2455$as_echo_n "checking for $2... " >&6; } 2470$as_echo_n "checking for $2... " >&6; }
2456if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : 2471if eval "test \"\${$3+set}\"" = set; then :
2457 $as_echo_n "(cached) " >&6 2472 $as_echo_n "(cached) " >&6
2458fi 2473fi
2459eval ac_res=\$$3 2474eval ac_res=\$$3
@@ -2489,7 +2504,7 @@ if ac_fn_c_try_cpp "$LINENO"; then :
2489else 2504else
2490 ac_header_preproc=no 2505 ac_header_preproc=no
2491fi 2506fi
2492rm -f conftest.err conftest.$ac_ext 2507rm -f conftest.err conftest.i conftest.$ac_ext
2493{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 2508{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
2494$as_echo "$ac_header_preproc" >&6; } 2509$as_echo "$ac_header_preproc" >&6; }
2495 2510
@@ -2512,17 +2527,15 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
2512$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} 2527$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
2513 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 2528 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
2514$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} 2529$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
2515( cat <<\_ASBOX 2530( $as_echo "## -------------------------------------------------------- ##
2516## -------------------------------------------------------- ##
2517## Report this to enlightenment-devel@lists.sourceforge.net ## 2531## Report this to enlightenment-devel@lists.sourceforge.net ##
2518## -------------------------------------------------------- ## 2532## -------------------------------------------------------- ##"
2519_ASBOX
2520 ) | sed "s/^/$as_me: WARNING: /" >&2 2533 ) | sed "s/^/$as_me: WARNING: /" >&2
2521 ;; 2534 ;;
2522esac 2535esac
2523 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2536 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2524$as_echo_n "checking for $2... " >&6; } 2537$as_echo_n "checking for $2... " >&6; }
2525if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : 2538if eval "test \"\${$3+set}\"" = set; then :
2526 $as_echo_n "(cached) " >&6 2539 $as_echo_n "(cached) " >&6
2527else 2540else
2528 eval "$3=\$ac_header_compiler" 2541 eval "$3=\$ac_header_compiler"
@@ -2586,7 +2599,7 @@ ac_fn_c_check_header_compile ()
2586 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 2599 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2587 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2600 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2588$as_echo_n "checking for $2... " >&6; } 2601$as_echo_n "checking for $2... " >&6; }
2589if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : 2602if eval "test \"\${$3+set}\"" = set; then :
2590 $as_echo_n "(cached) " >&6 2603 $as_echo_n "(cached) " >&6
2591else 2604else
2592 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 2605 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2662,7 +2675,7 @@ ac_fn_c_check_func ()
2662 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 2675 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2663 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2676 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2664$as_echo_n "checking for $2... " >&6; } 2677$as_echo_n "checking for $2... " >&6; }
2665if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : 2678if eval "test \"\${$3+set}\"" = set; then :
2666 $as_echo_n "(cached) " >&6 2679 $as_echo_n "(cached) " >&6
2667else 2680else
2668 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 2681 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2721,45 +2734,6 @@ $as_echo "$ac_res" >&6; }
2721 2734
2722} # ac_fn_c_check_func 2735} # ac_fn_c_check_func
2723 2736
2724# ac_fn_c_check_decl LINENO SYMBOL VAR
2725# ------------------------------------
2726# Tests whether SYMBOL is declared, setting cache variable VAR accordingly.
2727ac_fn_c_check_decl ()
2728{
2729 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2730 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $2 is declared" >&5
2731$as_echo_n "checking whether $2 is declared... " >&6; }
2732if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2733 $as_echo_n "(cached) " >&6
2734else
2735 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2736/* end confdefs.h. */
2737$4
2738int
2739main ()
2740{
2741#ifndef $2
2742 (void) $2;
2743#endif
2744
2745 ;
2746 return 0;
2747}
2748_ACEOF
2749if ac_fn_c_try_compile "$LINENO"; then :
2750 eval "$3=yes"
2751else
2752 eval "$3=no"
2753fi
2754rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
2755fi
2756eval ac_res=\$$3
2757 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
2758$as_echo "$ac_res" >&6; }
2759 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
2760
2761} # ac_fn_c_check_decl
2762
2763# ac_fn_objc_try_compile LINENO 2737# ac_fn_objc_try_compile LINENO
2764# ----------------------------- 2738# -----------------------------
2765# Try to compile conftest.$ac_ext, and return whether this succeeded. 2739# Try to compile conftest.$ac_ext, and return whether this succeeded.
@@ -2857,7 +2831,7 @@ $as_echo "$ac_try_echo"; } >&5
2857 mv -f conftest.er1 conftest.err 2831 mv -f conftest.er1 conftest.err
2858 fi 2832 fi
2859 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 2833 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
2860 test $ac_status = 0; } >/dev/null && { 2834 test $ac_status = 0; } > conftest.i && {
2861 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || 2835 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
2862 test ! -s conftest.err 2836 test ! -s conftest.err
2863 }; then : 2837 }; then :
@@ -2919,6 +2893,52 @@ fi
2919 2893
2920} # ac_fn_cxx_try_link 2894} # ac_fn_cxx_try_link
2921 2895
2896# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
2897# ---------------------------------------------
2898# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
2899# accordingly.
2900ac_fn_c_check_decl ()
2901{
2902 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2903 as_decl_name=`echo $2|sed 's/ *(.*//'`
2904 as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
2905 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
2906$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
2907if eval "test \"\${$3+set}\"" = set; then :
2908 $as_echo_n "(cached) " >&6
2909else
2910 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2911/* end confdefs.h. */
2912$4
2913int
2914main ()
2915{
2916#ifndef $as_decl_name
2917#ifdef __cplusplus
2918 (void) $as_decl_use;
2919#else
2920 (void) $as_decl_name;
2921#endif
2922#endif
2923
2924 ;
2925 return 0;
2926}
2927_ACEOF
2928if ac_fn_c_try_compile "$LINENO"; then :
2929 eval "$3=yes"
2930else
2931 eval "$3=no"
2932fi
2933rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
2934fi
2935eval ac_res=\$$3
2936 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
2937$as_echo "$ac_res" >&6; }
2938 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
2939
2940} # ac_fn_c_check_decl
2941
2922# ac_fn_objc_try_link LINENO 2942# ac_fn_objc_try_link LINENO
2923# -------------------------- 2943# --------------------------
2924# Try to link conftest.$ac_ext, and return whether this succeeded. 2944# Try to link conftest.$ac_ext, and return whether this succeeded.
@@ -3152,7 +3172,7 @@ ac_fn_c_check_type ()
3152 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 3172 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
3153 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 3173 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
3154$as_echo_n "checking for $2... " >&6; } 3174$as_echo_n "checking for $2... " >&6; }
3155if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : 3175if eval "test \"\${$3+set}\"" = set; then :
3156 $as_echo_n "(cached) " >&6 3176 $as_echo_n "(cached) " >&6
3157else 3177else
3158 eval "$3=no" 3178 eval "$3=no"
@@ -3200,8 +3220,8 @@ cat >config.log <<_ACEOF
3200This file contains any messages produced by compilers while 3220This file contains any messages produced by compilers while
3201running configure, to aid debugging if configure makes a mistake. 3221running configure, to aid debugging if configure makes a mistake.
3202 3222
3203It was created by ecore $as_me 1.1.99.67344, which was 3223It was created by ecore $as_me 1.2.0-alpha, which was
3204generated by GNU Autoconf 2.65. Invocation command line was 3224generated by GNU Autoconf 2.67. Invocation command line was
3205 3225
3206 $ $0 $@ 3226 $ $0 $@
3207 3227
@@ -3311,11 +3331,9 @@ trap 'exit_status=$?
3311 { 3331 {
3312 echo 3332 echo
3313 3333
3314 cat <<\_ASBOX 3334 $as_echo "## ---------------- ##
3315## ---------------- ##
3316## Cache variables. ## 3335## Cache variables. ##
3317## ---------------- ## 3336## ---------------- ##"
3318_ASBOX
3319 echo 3337 echo
3320 # The following way of writing the cache mishandles newlines in values, 3338 # The following way of writing the cache mishandles newlines in values,
3321( 3339(
@@ -3349,11 +3367,9 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
3349) 3367)
3350 echo 3368 echo
3351 3369
3352 cat <<\_ASBOX 3370 $as_echo "## ----------------- ##
3353## ----------------- ##
3354## Output variables. ## 3371## Output variables. ##
3355## ----------------- ## 3372## ----------------- ##"
3356_ASBOX
3357 echo 3373 echo
3358 for ac_var in $ac_subst_vars 3374 for ac_var in $ac_subst_vars
3359 do 3375 do
@@ -3366,11 +3382,9 @@ _ASBOX
3366 echo 3382 echo
3367 3383
3368 if test -n "$ac_subst_files"; then 3384 if test -n "$ac_subst_files"; then
3369 cat <<\_ASBOX 3385 $as_echo "## ------------------- ##
3370## ------------------- ##
3371## File substitutions. ## 3386## File substitutions. ##
3372## ------------------- ## 3387## ------------------- ##"
3373_ASBOX
3374 echo 3388 echo
3375 for ac_var in $ac_subst_files 3389 for ac_var in $ac_subst_files
3376 do 3390 do
@@ -3384,11 +3398,9 @@ _ASBOX
3384 fi 3398 fi
3385 3399
3386 if test -s confdefs.h; then 3400 if test -s confdefs.h; then
3387 cat <<\_ASBOX 3401 $as_echo "## ----------- ##
3388## ----------- ##
3389## confdefs.h. ## 3402## confdefs.h. ##
3390## ----------- ## 3403## ----------- ##"
3391_ASBOX
3392 echo 3404 echo
3393 cat confdefs.h 3405 cat confdefs.h
3394 echo 3406 echo
@@ -3443,7 +3455,12 @@ _ACEOF
3443ac_site_file1=NONE 3455ac_site_file1=NONE
3444ac_site_file2=NONE 3456ac_site_file2=NONE
3445if test -n "$CONFIG_SITE"; then 3457if test -n "$CONFIG_SITE"; then
3446 ac_site_file1=$CONFIG_SITE 3458 # We do not want a PATH search for config.site.
3459 case $CONFIG_SITE in #((
3460 -*) ac_site_file1=./$CONFIG_SITE;;
3461 */*) ac_site_file1=$CONFIG_SITE;;
3462 *) ac_site_file1=./$CONFIG_SITE;;
3463 esac
3447elif test "x$prefix" != xNONE; then 3464elif test "x$prefix" != xNONE; then
3448 ac_site_file1=$prefix/share/config.site 3465 ac_site_file1=$prefix/share/config.site
3449 ac_site_file2=$prefix/etc/config.site 3466 ac_site_file2=$prefix/etc/config.site
@@ -3458,7 +3475,11 @@ do
3458 { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 3475 { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
3459$as_echo "$as_me: loading site script $ac_site_file" >&6;} 3476$as_echo "$as_me: loading site script $ac_site_file" >&6;}
3460 sed 's/^/| /' "$ac_site_file" >&5 3477 sed 's/^/| /' "$ac_site_file" >&5
3461 . "$ac_site_file" 3478 . "$ac_site_file" \
3479 || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3480$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3481as_fn_error $? "failed to load site script $ac_site_file
3482See \`config.log' for more details" "$LINENO" 5 ; }
3462 fi 3483 fi
3463done 3484done
3464 3485
@@ -3535,7 +3556,7 @@ if $ac_cache_corrupted; then
3535$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3556$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3536 { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 3557 { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
3537$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} 3558$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
3538 as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 3559 as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
3539fi 3560fi
3540## -------------------- ## 3561## -------------------- ##
3541## Main body of script. ## 3562## Main body of script. ##
@@ -3561,16 +3582,22 @@ am__api_version='1.11'
3561 3582
3562ac_aux_dir= 3583ac_aux_dir=
3563for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do 3584for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
3564 for ac_t in install-sh install.sh shtool; do 3585 if test -f "$ac_dir/install-sh"; then
3565 if test -f "$ac_dir/$ac_t"; then 3586 ac_aux_dir=$ac_dir
3566 ac_aux_dir=$ac_dir 3587 ac_install_sh="$ac_aux_dir/install-sh -c"
3567 ac_install_sh="$ac_aux_dir/$ac_t -c" 3588 break
3568 break 2 3589 elif test -f "$ac_dir/install.sh"; then
3569 fi 3590 ac_aux_dir=$ac_dir
3570 done 3591 ac_install_sh="$ac_aux_dir/install.sh -c"
3592 break
3593 elif test -f "$ac_dir/shtool"; then
3594 ac_aux_dir=$ac_dir
3595 ac_install_sh="$ac_aux_dir/shtool install -c"
3596 break
3597 fi
3571done 3598done
3572if test -z "$ac_aux_dir"; then 3599if test -z "$ac_aux_dir"; then
3573 as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 3600 as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
3574fi 3601fi
3575 3602
3576# These three variables are undocumented and unsupported, 3603# These three variables are undocumented and unsupported,
@@ -3686,11 +3713,11 @@ am_lf='
3686' 3713'
3687case `pwd` in 3714case `pwd` in
3688 *[\\\"\#\$\&\'\`$am_lf]*) 3715 *[\\\"\#\$\&\'\`$am_lf]*)
3689 as_fn_error "unsafe absolute working directory name" "$LINENO" 5;; 3716 as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;;
3690esac 3717esac
3691case $srcdir in 3718case $srcdir in
3692 *[\\\"\#\$\&\'\`$am_lf\ \ ]*) 3719 *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
3693 as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; 3720 as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;;
3694esac 3721esac
3695 3722
3696# Do `set' in a subshell so we don't clobber the current shell's 3723# Do `set' in a subshell so we don't clobber the current shell's
@@ -3712,7 +3739,7 @@ if (
3712 # if, for instance, CONFIG_SHELL is bash and it inherits a 3739 # if, for instance, CONFIG_SHELL is bash and it inherits a
3713 # broken ls alias from the environment. This has actually 3740 # broken ls alias from the environment. This has actually
3714 # happened. Such a system could not be considered "sane". 3741 # happened. Such a system could not be considered "sane".
3715 as_fn_error "ls -t appears to fail. Make sure there is not a broken 3742 as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
3716alias in your environment" "$LINENO" 5 3743alias in your environment" "$LINENO" 5
3717 fi 3744 fi
3718 3745
@@ -3722,7 +3749,7 @@ then
3722 # Ok. 3749 # Ok.
3723 : 3750 :
3724else 3751else
3725 as_fn_error "newly created file is older than distributed files! 3752 as_fn_error $? "newly created file is older than distributed files!
3726Check your system clock" "$LINENO" 5 3753Check your system clock" "$LINENO" 5
3727fi 3754fi
3728{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 3755{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -3960,7 +3987,7 @@ done
3960$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } 3987$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
3961set x ${MAKE-make} 3988set x ${MAKE-make}
3962ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` 3989ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
3963if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : 3990if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then :
3964 $as_echo_n "(cached) " >&6 3991 $as_echo_n "(cached) " >&6
3965else 3992else
3966 cat >conftest.make <<\_ACEOF 3993 cat >conftest.make <<\_ACEOF
@@ -3968,7 +3995,7 @@ SHELL = /bin/sh
3968all: 3995all:
3969 @echo '@@@%%%=$(MAKE)=@@@%%%' 3996 @echo '@@@%%%=$(MAKE)=@@@%%%'
3970_ACEOF 3997_ACEOF
3971# GNU make sometimes prints "make[1]: Entering...", which would confuse us. 3998# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
3972case `${MAKE-make} -f conftest.make 2>/dev/null` in 3999case `${MAKE-make} -f conftest.make 2>/dev/null` in
3973 *@@@%%%=?*=@@@%%%*) 4000 *@@@%%%=?*=@@@%%%*)
3974 eval ac_cv_prog_make_${ac_make}_set=yes;; 4001 eval ac_cv_prog_make_${ac_make}_set=yes;;
@@ -4002,7 +4029,7 @@ if test "`cd $srcdir && pwd`" != "`pwd`"; then
4002 am__isrc=' -I$(srcdir)' 4029 am__isrc=' -I$(srcdir)'
4003 # test to see if srcdir already configured 4030 # test to see if srcdir already configured
4004 if test -f $srcdir/config.status; then 4031 if test -f $srcdir/config.status; then
4005 as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 4032 as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
4006 fi 4033 fi
4007fi 4034fi
4008 4035
@@ -4018,7 +4045,7 @@ fi
4018 4045
4019# Define the identity of the package. 4046# Define the identity of the package.
4020 PACKAGE='ecore' 4047 PACKAGE='ecore'
4021 VERSION='1.1.99.67344' 4048 VERSION='1.2.0-alpha'
4022 4049
4023 4050
4024cat >>confdefs.h <<_ACEOF 4051cat >>confdefs.h <<_ACEOF
@@ -4433,8 +4460,8 @@ fi
4433 4460
4434test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4461test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4435$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4462$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4436as_fn_error "no acceptable C compiler found in \$PATH 4463as_fn_error $? "no acceptable C compiler found in \$PATH
4437See \`config.log' for more details." "$LINENO" 5; } 4464See \`config.log' for more details" "$LINENO" 5 ; }
4438 4465
4439# Provide some information about the compiler. 4466# Provide some information about the compiler.
4440$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 4467$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -4548,9 +4575,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
4548 4575
4549{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4576{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4550$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4577$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4551{ as_fn_set_status 77 4578as_fn_error 77 "C compiler cannot create executables
4552as_fn_error "C compiler cannot create executables 4579See \`config.log' for more details" "$LINENO" 5 ; }
4553See \`config.log' for more details." "$LINENO" 5; }; }
4554else 4580else
4555 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 4581 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
4556$as_echo "yes" >&6; } 4582$as_echo "yes" >&6; }
@@ -4592,8 +4618,8 @@ done
4592else 4618else
4593 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4619 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4594$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4620$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4595as_fn_error "cannot compute suffix of executables: cannot compile and link 4621as_fn_error $? "cannot compute suffix of executables: cannot compile and link
4596See \`config.log' for more details." "$LINENO" 5; } 4622See \`config.log' for more details" "$LINENO" 5 ; }
4597fi 4623fi
4598rm -f conftest conftest$ac_cv_exeext 4624rm -f conftest conftest$ac_cv_exeext
4599{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 4625{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -4650,9 +4676,9 @@ $as_echo "$ac_try_echo"; } >&5
4650 else 4676 else
4651 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4677 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4652$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4678$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4653as_fn_error "cannot run C compiled programs. 4679as_fn_error $? "cannot run C compiled programs.
4654If you meant to cross compile, use \`--host'. 4680If you meant to cross compile, use \`--host'.
4655See \`config.log' for more details." "$LINENO" 5; } 4681See \`config.log' for more details" "$LINENO" 5 ; }
4656 fi 4682 fi
4657 fi 4683 fi
4658fi 4684fi
@@ -4703,8 +4729,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
4703 4729
4704{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4730{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4705$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4731$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4706as_fn_error "cannot compute suffix of object files: cannot compile 4732as_fn_error $? "cannot compute suffix of object files: cannot compile
4707See \`config.log' for more details." "$LINENO" 5; } 4733See \`config.log' for more details" "$LINENO" 5 ; }
4708fi 4734fi
4709rm -f conftest.$ac_cv_objext conftest.$ac_ext 4735rm -f conftest.$ac_cv_objext conftest.$ac_ext
4710fi 4736fi
@@ -5094,7 +5120,7 @@ else
5094 # Broken: fails on valid input. 5120 # Broken: fails on valid input.
5095continue 5121continue
5096fi 5122fi
5097rm -f conftest.err conftest.$ac_ext 5123rm -f conftest.err conftest.i conftest.$ac_ext
5098 5124
5099 # OK, works on sane cases. Now check whether nonexistent headers 5125 # OK, works on sane cases. Now check whether nonexistent headers
5100 # can be detected and how. 5126 # can be detected and how.
@@ -5110,11 +5136,11 @@ else
5110ac_preproc_ok=: 5136ac_preproc_ok=:
5111break 5137break
5112fi 5138fi
5113rm -f conftest.err conftest.$ac_ext 5139rm -f conftest.err conftest.i conftest.$ac_ext
5114 5140
5115done 5141done
5116# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 5142# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
5117rm -f conftest.err conftest.$ac_ext 5143rm -f conftest.i conftest.err conftest.$ac_ext
5118if $ac_preproc_ok; then : 5144if $ac_preproc_ok; then :
5119 break 5145 break
5120fi 5146fi
@@ -5153,7 +5179,7 @@ else
5153 # Broken: fails on valid input. 5179 # Broken: fails on valid input.
5154continue 5180continue
5155fi 5181fi
5156rm -f conftest.err conftest.$ac_ext 5182rm -f conftest.err conftest.i conftest.$ac_ext
5157 5183
5158 # OK, works on sane cases. Now check whether nonexistent headers 5184 # OK, works on sane cases. Now check whether nonexistent headers
5159 # can be detected and how. 5185 # can be detected and how.
@@ -5169,18 +5195,18 @@ else
5169ac_preproc_ok=: 5195ac_preproc_ok=:
5170break 5196break
5171fi 5197fi
5172rm -f conftest.err conftest.$ac_ext 5198rm -f conftest.err conftest.i conftest.$ac_ext
5173 5199
5174done 5200done
5175# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 5201# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
5176rm -f conftest.err conftest.$ac_ext 5202rm -f conftest.i conftest.err conftest.$ac_ext
5177if $ac_preproc_ok; then : 5203if $ac_preproc_ok; then :
5178 5204
5179else 5205else
5180 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 5206 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
5181$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 5207$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
5182as_fn_error "C preprocessor \"$CPP\" fails sanity check 5208as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
5183See \`config.log' for more details." "$LINENO" 5; } 5209See \`config.log' for more details" "$LINENO" 5 ; }
5184fi 5210fi
5185 5211
5186ac_ext=c 5212ac_ext=c
@@ -5241,7 +5267,7 @@ esac
5241 done 5267 done
5242IFS=$as_save_IFS 5268IFS=$as_save_IFS
5243 if test -z "$ac_cv_path_GREP"; then 5269 if test -z "$ac_cv_path_GREP"; then
5244 as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 5270 as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
5245 fi 5271 fi
5246else 5272else
5247 ac_cv_path_GREP=$GREP 5273 ac_cv_path_GREP=$GREP
@@ -5307,7 +5333,7 @@ esac
5307 done 5333 done
5308IFS=$as_save_IFS 5334IFS=$as_save_IFS
5309 if test -z "$ac_cv_path_EGREP"; then 5335 if test -z "$ac_cv_path_EGREP"; then
5310 as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 5336 as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
5311 fi 5337 fi
5312else 5338else
5313 ac_cv_path_EGREP=$EGREP 5339 ac_cv_path_EGREP=$EGREP
@@ -5439,8 +5465,7 @@ do :
5439 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 5465 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
5440ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default 5466ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
5441" 5467"
5442eval as_val=\$$as_ac_Header 5468if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
5443 if test "x$as_val" = x""yes; then :
5444 cat >>confdefs.h <<_ACEOF 5469 cat >>confdefs.h <<_ACEOF
5445#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 5470#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
5446_ACEOF 5471_ACEOF
@@ -5515,7 +5540,7 @@ $as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
5515 5540
5516# Make sure we can run config.sub. 5541# Make sure we can run config.sub.
5517$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || 5542$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
5518 as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 5543 as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
5519 5544
5520{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 5545{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
5521$as_echo_n "checking build system type... " >&6; } 5546$as_echo_n "checking build system type... " >&6; }
@@ -5526,16 +5551,16 @@ else
5526test "x$ac_build_alias" = x && 5551test "x$ac_build_alias" = x &&
5527 ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` 5552 ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
5528test "x$ac_build_alias" = x && 5553test "x$ac_build_alias" = x &&
5529 as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 5554 as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
5530ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || 5555ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
5531 as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 5556 as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
5532 5557
5533fi 5558fi
5534{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 5559{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
5535$as_echo "$ac_cv_build" >&6; } 5560$as_echo "$ac_cv_build" >&6; }
5536case $ac_cv_build in 5561case $ac_cv_build in
5537*-*-*) ;; 5562*-*-*) ;;
5538*) as_fn_error "invalid value of canonical build" "$LINENO" 5;; 5563*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;;
5539esac 5564esac
5540build=$ac_cv_build 5565build=$ac_cv_build
5541ac_save_IFS=$IFS; IFS='-' 5566ac_save_IFS=$IFS; IFS='-'
@@ -5560,7 +5585,7 @@ else
5560 ac_cv_host=$ac_cv_build 5585 ac_cv_host=$ac_cv_build
5561else 5586else
5562 ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || 5587 ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
5563 as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 5588 as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
5564fi 5589fi
5565 5590
5566fi 5591fi
@@ -5568,7 +5593,7 @@ fi
5568$as_echo "$ac_cv_host" >&6; } 5593$as_echo "$ac_cv_host" >&6; }
5569case $ac_cv_host in 5594case $ac_cv_host in
5570*-*-*) ;; 5595*-*-*) ;;
5571*) as_fn_error "invalid value of canonical host" "$LINENO" 5;; 5596*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;;
5572esac 5597esac
5573host=$ac_cv_host 5598host=$ac_cv_host
5574ac_save_IFS=$IFS; IFS='-' 5599ac_save_IFS=$IFS; IFS='-'
@@ -5969,7 +5994,7 @@ esac
5969 done 5994 done
5970IFS=$as_save_IFS 5995IFS=$as_save_IFS
5971 if test -z "$ac_cv_path_SED"; then 5996 if test -z "$ac_cv_path_SED"; then
5972 as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5 5997 as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
5973 fi 5998 fi
5974else 5999else
5975 ac_cv_path_SED=$SED 6000 ac_cv_path_SED=$SED
@@ -6048,7 +6073,7 @@ esac
6048 done 6073 done
6049IFS=$as_save_IFS 6074IFS=$as_save_IFS
6050 if test -z "$ac_cv_path_FGREP"; then 6075 if test -z "$ac_cv_path_FGREP"; then
6051 as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 6076 as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
6052 fi 6077 fi
6053else 6078else
6054 ac_cv_path_FGREP=$FGREP 6079 ac_cv_path_FGREP=$FGREP
@@ -6164,7 +6189,7 @@ else
6164 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6189 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
6165$as_echo "no" >&6; } 6190$as_echo "no" >&6; }
6166fi 6191fi
6167test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 6192test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
6168{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 6193{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
6169$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } 6194$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
6170if test "${lt_cv_prog_gnu_ld+set}" = set; then : 6195if test "${lt_cv_prog_gnu_ld+set}" = set; then :
@@ -6366,13 +6391,13 @@ if test "${lt_cv_nm_interface+set}" = set; then :
6366else 6391else
6367 lt_cv_nm_interface="BSD nm" 6392 lt_cv_nm_interface="BSD nm"
6368 echo "int some_variable = 0;" > conftest.$ac_ext 6393 echo "int some_variable = 0;" > conftest.$ac_ext
6369 (eval echo "\"\$as_me:6369: $ac_compile\"" >&5) 6394 (eval echo "\"\$as_me:6394: $ac_compile\"" >&5)
6370 (eval "$ac_compile" 2>conftest.err) 6395 (eval "$ac_compile" 2>conftest.err)
6371 cat conftest.err >&5 6396 cat conftest.err >&5
6372 (eval echo "\"\$as_me:6372: $NM \\\"conftest.$ac_objext\\\"\"" >&5) 6397 (eval echo "\"\$as_me:6397: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
6373 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) 6398 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
6374 cat conftest.err >&5 6399 cat conftest.err >&5
6375 (eval echo "\"\$as_me:6375: output\"" >&5) 6400 (eval echo "\"\$as_me:6400: output\"" >&5)
6376 cat conftest.out >&5 6401 cat conftest.out >&5
6377 if $GREP 'External.*some_variable' conftest.out > /dev/null; then 6402 if $GREP 'External.*some_variable' conftest.out > /dev/null; then
6378 lt_cv_nm_interface="MS dumpbin" 6403 lt_cv_nm_interface="MS dumpbin"
@@ -7574,7 +7599,7 @@ ia64-*-hpux*)
7574 ;; 7599 ;;
7575*-*-irix6*) 7600*-*-irix6*)
7576 # Find out which ABI we are using. 7601 # Find out which ABI we are using.
7577 echo '#line 7577 "configure"' > conftest.$ac_ext 7602 echo '#line 7602 "configure"' > conftest.$ac_ext
7578 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 7603 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
7579 (eval $ac_compile) 2>&5 7604 (eval $ac_compile) 2>&5
7580 ac_status=$? 7605 ac_status=$?
@@ -8834,11 +8859,11 @@ else
8834 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 8859 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
8835 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 8860 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
8836 -e 's:$: $lt_compiler_flag:'` 8861 -e 's:$: $lt_compiler_flag:'`
8837 (eval echo "\"\$as_me:8837: $lt_compile\"" >&5) 8862 (eval echo "\"\$as_me:8862: $lt_compile\"" >&5)
8838 (eval "$lt_compile" 2>conftest.err) 8863 (eval "$lt_compile" 2>conftest.err)
8839 ac_status=$? 8864 ac_status=$?
8840 cat conftest.err >&5 8865 cat conftest.err >&5
8841 echo "$as_me:8841: \$? = $ac_status" >&5 8866 echo "$as_me:8866: \$? = $ac_status" >&5
8842 if (exit $ac_status) && test -s "$ac_outfile"; then 8867 if (exit $ac_status) && test -s "$ac_outfile"; then
8843 # The compiler can only warn and ignore the option if not recognized 8868 # The compiler can only warn and ignore the option if not recognized
8844 # So say no if there are warnings other than the usual output. 8869 # So say no if there are warnings other than the usual output.
@@ -9173,11 +9198,11 @@ else
9173 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 9198 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
9174 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 9199 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
9175 -e 's:$: $lt_compiler_flag:'` 9200 -e 's:$: $lt_compiler_flag:'`
9176 (eval echo "\"\$as_me:9176: $lt_compile\"" >&5) 9201 (eval echo "\"\$as_me:9201: $lt_compile\"" >&5)
9177 (eval "$lt_compile" 2>conftest.err) 9202 (eval "$lt_compile" 2>conftest.err)
9178 ac_status=$? 9203 ac_status=$?
9179 cat conftest.err >&5 9204 cat conftest.err >&5
9180 echo "$as_me:9180: \$? = $ac_status" >&5 9205 echo "$as_me:9205: \$? = $ac_status" >&5
9181 if (exit $ac_status) && test -s "$ac_outfile"; then 9206 if (exit $ac_status) && test -s "$ac_outfile"; then
9182 # The compiler can only warn and ignore the option if not recognized 9207 # The compiler can only warn and ignore the option if not recognized
9183 # So say no if there are warnings other than the usual output. 9208 # So say no if there are warnings other than the usual output.
@@ -9278,11 +9303,11 @@ else
9278 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 9303 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
9279 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 9304 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
9280 -e 's:$: $lt_compiler_flag:'` 9305 -e 's:$: $lt_compiler_flag:'`
9281 (eval echo "\"\$as_me:9281: $lt_compile\"" >&5) 9306 (eval echo "\"\$as_me:9306: $lt_compile\"" >&5)
9282 (eval "$lt_compile" 2>out/conftest.err) 9307 (eval "$lt_compile" 2>out/conftest.err)
9283 ac_status=$? 9308 ac_status=$?
9284 cat out/conftest.err >&5 9309 cat out/conftest.err >&5
9285 echo "$as_me:9285: \$? = $ac_status" >&5 9310 echo "$as_me:9310: \$? = $ac_status" >&5
9286 if (exit $ac_status) && test -s out/conftest2.$ac_objext 9311 if (exit $ac_status) && test -s out/conftest2.$ac_objext
9287 then 9312 then
9288 # The compiler can only warn and ignore the option if not recognized 9313 # The compiler can only warn and ignore the option if not recognized
@@ -9333,11 +9358,11 @@ else
9333 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 9358 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
9334 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 9359 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
9335 -e 's:$: $lt_compiler_flag:'` 9360 -e 's:$: $lt_compiler_flag:'`
9336 (eval echo "\"\$as_me:9336: $lt_compile\"" >&5) 9361 (eval echo "\"\$as_me:9361: $lt_compile\"" >&5)
9337 (eval "$lt_compile" 2>out/conftest.err) 9362 (eval "$lt_compile" 2>out/conftest.err)
9338 ac_status=$? 9363 ac_status=$?
9339 cat out/conftest.err >&5 9364 cat out/conftest.err >&5
9340 echo "$as_me:9340: \$? = $ac_status" >&5 9365 echo "$as_me:9365: \$? = $ac_status" >&5
9341 if (exit $ac_status) && test -s out/conftest2.$ac_objext 9366 if (exit $ac_status) && test -s out/conftest2.$ac_objext
9342 then 9367 then
9343 # The compiler can only warn and ignore the option if not recognized 9368 # The compiler can only warn and ignore the option if not recognized
@@ -11717,7 +11742,7 @@ else
11717 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 11742 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
11718 lt_status=$lt_dlunknown 11743 lt_status=$lt_dlunknown
11719 cat > conftest.$ac_ext <<_LT_EOF 11744 cat > conftest.$ac_ext <<_LT_EOF
11720#line 11720 "configure" 11745#line 11745 "configure"
11721#include "confdefs.h" 11746#include "confdefs.h"
11722 11747
11723#if HAVE_DLFCN_H 11748#if HAVE_DLFCN_H
@@ -11813,7 +11838,7 @@ else
11813 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 11838 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
11814 lt_status=$lt_dlunknown 11839 lt_status=$lt_dlunknown
11815 cat > conftest.$ac_ext <<_LT_EOF 11840 cat > conftest.$ac_ext <<_LT_EOF
11816#line 11816 "configure" 11841#line 11841 "configure"
11817#include "confdefs.h" 11842#include "confdefs.h"
11818 11843
11819#if HAVE_DLFCN_H 11844#if HAVE_DLFCN_H
@@ -12052,20 +12077,20 @@ _ACEOF
12052 12077
12053 12078
12054cat >>confdefs.h <<_ACEOF 12079cat >>confdefs.h <<_ACEOF
12055#define VERS_MIN 1 12080#define VERS_MIN 2
12056_ACEOF 12081_ACEOF
12057 12082
12058 12083
12059cat >>confdefs.h <<_ACEOF 12084cat >>confdefs.h <<_ACEOF
12060#define VERS_MIC 99 12085#define VERS_MIC 0
12061_ACEOF 12086_ACEOF
12062 12087
12063 12088
12064cat >>confdefs.h <<_ACEOF 12089cat >>confdefs.h <<_ACEOF
12065#define VERS_REV 67344 12090#define VERS_REV 0
12066_ACEOF 12091_ACEOF
12067 12092
12068version_info="2:99:1" 12093version_info="3:0:2"
12069release_info="" 12094release_info=""
12070 12095
12071 12096
@@ -12489,7 +12514,7 @@ else
12489 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 12514 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12490$as_echo "no" >&6; } 12515$as_echo "no" >&6; }
12491fi 12516fi
12492test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 12517test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
12493{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 12518{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
12494$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } 12519$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
12495if test "${acl_cv_prog_gnu_ld+set}" = set; then : 12520if test "${acl_cv_prog_gnu_ld+set}" = set; then :
@@ -13136,7 +13161,7 @@ typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
13136 13161
13137 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 13162 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5
13138$as_echo_n "checking for GNU gettext in libc... " >&6; } 13163$as_echo_n "checking for GNU gettext in libc... " >&6; }
13139if { as_var=$gt_func_gnugettext_libc; eval "test \"\${$as_var+set}\" = set"; }; then : 13164if eval "test \"\${$gt_func_gnugettext_libc+set}\"" = set; then :
13140 $as_echo_n "(cached) " >&6 13165 $as_echo_n "(cached) " >&6
13141else 13166else
13142 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 13167 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -13807,7 +13832,7 @@ fi
13807 13832
13808 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 13833 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
13809$as_echo_n "checking for GNU gettext in libintl... " >&6; } 13834$as_echo_n "checking for GNU gettext in libintl... " >&6; }
13810if { as_var=$gt_func_gnugettext_libintl; eval "test \"\${$as_var+set}\" = set"; }; then : 13835if eval "test \"\${$gt_func_gnugettext_libintl+set}\"" = set; then :
13811 $as_echo_n "(cached) " >&6 13836 $as_echo_n "(cached) " >&6
13812else 13837else
13813 gt_save_CPPFLAGS="$CPPFLAGS" 13838 gt_save_CPPFLAGS="$CPPFLAGS"
@@ -14016,7 +14041,7 @@ _ACEOF
14016 14041
14017 with_max_log_level="${withval}" 14042 with_max_log_level="${withval}"
14018 else 14043 else
14019 as_fn_error "--with-internal-maximum-log-level takes a decimal number, got \"${withval}\" instead." "$LINENO" 5 14044 as_fn_error $? "--with-internal-maximum-log-level takes a decimal number, got \"${withval}\" instead." "$LINENO" 5
14020 fi 14045 fi
14021 fi 14046 fi
14022 14047
@@ -14106,6 +14131,7 @@ want_ecore_evas_directfb="no"
14106want_ecore_evas_fb="no" 14131want_ecore_evas_fb="no"
14107want_ecore_evas_software_16_wince="no" 14132want_ecore_evas_software_16_wince="no"
14108want_ecore_evas_ews="yes" 14133want_ecore_evas_ews="yes"
14134want_ecore_evas_extn="yes"
14109want_ecore_evas_wayland_shm="no" 14135want_ecore_evas_wayland_shm="no"
14110want_ecore_evas_wayland_egl="no" 14136want_ecore_evas_wayland_egl="no"
14111 14137
@@ -14114,11 +14140,12 @@ want_ecore_imf_xim="no"
14114want_ecore_imf_scim="no" 14140want_ecore_imf_scim="no"
14115 14141
14116case "$host_os" in 14142case "$host_os" in
14117 mingw32ce* | cegcc*) 14143 mingw32ce*)
14118 want_ecore_con="no" 14144 want_ecore_con="no"
14119 want_ecore_ipc="no" 14145 want_ecore_ipc="no"
14120 want_ecore_wince="yes" 14146 want_ecore_wince="yes"
14121 want_ecore_evas_software_16_wince="yes" 14147 want_ecore_evas_software_16_wince="yes"
14148 want_ecore_evas_extn="no"
14122 ;; 14149 ;;
14123 mingw*) 14150 mingw*)
14124 want_notify_win32="yes" 14151 want_notify_win32="yes"
@@ -14205,60 +14232,6 @@ requirements_ecore_imf_xim=""
14205requirements_ecore_imf_scim="" 14232requirements_ecore_imf_scim=""
14206requirements_ecore_wayland="" 14233requirements_ecore_wayland=""
14207 14234
14208ac_fn_c_check_decl "$LINENO" "MAXHOSTNAMELEN" "ac_cv_have_decl_MAXHOSTNAMELEN" "$ac_includes_default"
14209if test "x$ac_cv_have_decl_MAXHOSTNAMELEN" = x""yes; then :
14210 FOUND_MAXHOSTNAMELEN=yes
14211fi
14212
14213
14214if test x$FOUND_MAXHOSTNAMELEN != xyes ; then
14215 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for header that defines MAXHOSTNAMELEN" >&5
14216$as_echo_n "checking for header that defines MAXHOSTNAMELEN... " >&6; }
14217
14218 FOUND_MAXHOSTNAMELEN='not found'
14219
14220 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
14221/* end confdefs.h. */
14222#include <sys/param.h>
14223int
14224main ()
14225{
14226int h = MAXHOSTNAMELEN;
14227 ;
14228 return 0;
14229}
14230_ACEOF
14231if ac_fn_c_try_compile "$LINENO"; then :
14232 FOUND_MAXHOSTNAMELEN='sys/param.h'
14233
14234$as_echo "#define NEED_SYS_PARAM_H 1" >>confdefs.h
14235
14236fi
14237rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
14238
14239 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
14240/* end confdefs.h. */
14241#include <netdb.h>
14242int
14243main ()
14244{
14245int h = MAXHOSTNAMELEN;
14246 ;
14247 return 0;
14248}
14249_ACEOF
14250if ac_fn_c_try_compile "$LINENO"; then :
14251 FOUND_MAXHOSTNAMELEN='netdb.h'
14252
14253$as_echo "#define NEED_NETDB_H 1" >>confdefs.h
14254
14255fi
14256rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
14257
14258 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FOUND_MAXHOSTNAMELEN" >&5
14259$as_echo "$FOUND_MAXHOSTNAMELEN" >&6; }
14260fi
14261
14262### Additional options to configure 14235### Additional options to configure
14263 14236
14264want_glib_integration_always=no 14237want_glib_integration_always=no
@@ -14290,7 +14263,7 @@ $as_echo "#define USE_G_MAIN_LOOP 1" >>confdefs.h
14290fi 14263fi
14291 14264
14292if test "x${want_glib_integration_always}" = "xyes" -a "x${want_g_main_loop}" = "xyes"; then 14265if test "x${want_glib_integration_always}" = "xyes" -a "x${want_g_main_loop}" = "xyes"; then
14293 as_fn_error "--enable-glib-integration-always and --enable-glib-main-loop are mutually exclusive" "$LINENO" 5 14266 as_fn_error $? "--enable-glib-integration-always and --enable-glib-main-loop are mutually exclusive" "$LINENO" 5
14294fi 14267fi
14295 14268
14296# local sockets (ecore_con.c) 14269# local sockets (ecore_con.c)
@@ -14364,238 +14337,6 @@ $as_echo "#define ENABLE_XIM 1" >>confdefs.h
14364 14337
14365fi 14338fi
14366 14339
14367# Unit tests
14368
14369
14370
14371if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
14372 if test -n "$ac_tool_prefix"; then
14373 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
14374set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
14375{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
14376$as_echo_n "checking for $ac_word... " >&6; }
14377if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
14378 $as_echo_n "(cached) " >&6
14379else
14380 case $PKG_CONFIG in
14381 [\\/]* | ?:[\\/]*)
14382 ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
14383 ;;
14384 *)
14385 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
14386for as_dir in $PATH
14387do
14388 IFS=$as_save_IFS
14389 test -z "$as_dir" && as_dir=.
14390 for ac_exec_ext in '' $ac_executable_extensions; do
14391 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
14392 ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
14393 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
14394 break 2
14395 fi
14396done
14397 done
14398IFS=$as_save_IFS
14399
14400 ;;
14401esac
14402fi
14403PKG_CONFIG=$ac_cv_path_PKG_CONFIG
14404if test -n "$PKG_CONFIG"; then
14405 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
14406$as_echo "$PKG_CONFIG" >&6; }
14407else
14408 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14409$as_echo "no" >&6; }
14410fi
14411
14412
14413fi
14414if test -z "$ac_cv_path_PKG_CONFIG"; then
14415 ac_pt_PKG_CONFIG=$PKG_CONFIG
14416 # Extract the first word of "pkg-config", so it can be a program name with args.
14417set dummy pkg-config; ac_word=$2
14418{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
14419$as_echo_n "checking for $ac_word... " >&6; }
14420if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
14421 $as_echo_n "(cached) " >&6
14422else
14423 case $ac_pt_PKG_CONFIG in
14424 [\\/]* | ?:[\\/]*)
14425 ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
14426 ;;
14427 *)
14428 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
14429for as_dir in $PATH
14430do
14431 IFS=$as_save_IFS
14432 test -z "$as_dir" && as_dir=.
14433 for ac_exec_ext in '' $ac_executable_extensions; do
14434 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
14435 ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
14436 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
14437 break 2
14438 fi
14439done
14440 done
14441IFS=$as_save_IFS
14442
14443 ;;
14444esac
14445fi
14446ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
14447if test -n "$ac_pt_PKG_CONFIG"; then
14448 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
14449$as_echo "$ac_pt_PKG_CONFIG" >&6; }
14450else
14451 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14452$as_echo "no" >&6; }
14453fi
14454
14455 if test "x$ac_pt_PKG_CONFIG" = x; then
14456 PKG_CONFIG=""
14457 else
14458 case $cross_compiling:$ac_tool_warned in
14459yes:)
14460{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
14461$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
14462ac_tool_warned=yes ;;
14463esac
14464 PKG_CONFIG=$ac_pt_PKG_CONFIG
14465 fi
14466else
14467 PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
14468fi
14469
14470fi
14471if test -n "$PKG_CONFIG"; then
14472 _pkg_min_version=0.9.0
14473 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
14474$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
14475 if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
14476 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
14477$as_echo "yes" >&6; }
14478 else
14479 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14480$as_echo "no" >&6; }
14481 PKG_CONFIG=""
14482 fi
14483
14484fi
14485
14486
14487
14488# Check whether --enable-tests was given.
14489if test "${enable_tests+set}" = set; then :
14490 enableval=$enable_tests;
14491 if test "x${enableval}" = "xyes" ; then
14492 _efl_enable_tests="yes"
14493 else
14494 _efl_enable_tests="no"
14495 fi
14496
14497else
14498 _efl_enable_tests="no"
14499fi
14500
14501
14502{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether tests are built" >&5
14503$as_echo_n "checking whether tests are built... " >&6; }
14504{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_efl_enable_tests}" >&5
14505$as_echo "${_efl_enable_tests}" >&6; }
14506
14507
14508
14509if test "x${_efl_enable_tests}" = "xyes" ; then
14510
14511pkg_failed=no
14512{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CHECK" >&5
14513$as_echo_n "checking for CHECK... " >&6; }
14514
14515if test -n "$PKG_CONFIG"; then
14516 if test -n "$CHECK_CFLAGS"; then
14517 pkg_cv_CHECK_CFLAGS="$CHECK_CFLAGS"
14518 else
14519 if test -n "$PKG_CONFIG" && \
14520 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5
14521 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5
14522 ac_status=$?
14523 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
14524 test $ac_status = 0; }; then
14525 pkg_cv_CHECK_CFLAGS=`$PKG_CONFIG --cflags "check >= 0.9.5" 2>/dev/null`
14526else
14527 pkg_failed=yes
14528fi
14529 fi
14530else
14531 pkg_failed=untried
14532fi
14533if test -n "$PKG_CONFIG"; then
14534 if test -n "$CHECK_LIBS"; then
14535 pkg_cv_CHECK_LIBS="$CHECK_LIBS"
14536 else
14537 if test -n "$PKG_CONFIG" && \
14538 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5
14539 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5
14540 ac_status=$?
14541 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
14542 test $ac_status = 0; }; then
14543 pkg_cv_CHECK_LIBS=`$PKG_CONFIG --libs "check >= 0.9.5" 2>/dev/null`
14544else
14545 pkg_failed=yes
14546fi
14547 fi
14548else
14549 pkg_failed=untried
14550fi
14551
14552
14553
14554if test $pkg_failed = yes; then
14555
14556if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
14557 _pkg_short_errors_supported=yes
14558else
14559 _pkg_short_errors_supported=no
14560fi
14561 if test $_pkg_short_errors_supported = yes; then
14562 CHECK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "check >= 0.9.5"`
14563 else
14564 CHECK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "check >= 0.9.5"`
14565 fi
14566 # Put the nasty error message in config.log where it belongs
14567 echo "$CHECK_PKG_ERRORS" >&5
14568
14569 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14570$as_echo "no" >&6; }
14571 _efl_enable_tests="no"
14572elif test $pkg_failed = untried; then
14573 _efl_enable_tests="no"
14574else
14575 CHECK_CFLAGS=$pkg_cv_CHECK_CFLAGS
14576 CHECK_LIBS=$pkg_cv_CHECK_LIBS
14577 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
14578$as_echo "yes" >&6; }
14579 dummy="yes"
14580fi
14581fi
14582
14583 if test "x${_efl_enable_tests}" = "xyes"; then
14584 EFL_ENABLE_TESTS_TRUE=
14585 EFL_ENABLE_TESTS_FALSE='#'
14586else
14587 EFL_ENABLE_TESTS_TRUE='#'
14588 EFL_ENABLE_TESTS_FALSE=
14589fi
14590
14591
14592if test "x$_efl_enable_tests" = "xyes"; then :
14593 enable_tests="yes"
14594else
14595 enable_tests="no"
14596fi
14597
14598
14599### Checks for programs 14340### Checks for programs
14600 14341
14601 14342
@@ -15923,7 +15664,7 @@ else
15923 # Broken: fails on valid input. 15664 # Broken: fails on valid input.
15924continue 15665continue
15925fi 15666fi
15926rm -f conftest.err conftest.$ac_ext 15667rm -f conftest.err conftest.i conftest.$ac_ext
15927 15668
15928 # OK, works on sane cases. Now check whether nonexistent headers 15669 # OK, works on sane cases. Now check whether nonexistent headers
15929 # can be detected and how. 15670 # can be detected and how.
@@ -15939,11 +15680,11 @@ else
15939ac_preproc_ok=: 15680ac_preproc_ok=:
15940break 15681break
15941fi 15682fi
15942rm -f conftest.err conftest.$ac_ext 15683rm -f conftest.err conftest.i conftest.$ac_ext
15943 15684
15944done 15685done
15945# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 15686# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
15946rm -f conftest.err conftest.$ac_ext 15687rm -f conftest.i conftest.err conftest.$ac_ext
15947if $ac_preproc_ok; then : 15688if $ac_preproc_ok; then :
15948 break 15689 break
15949fi 15690fi
@@ -15982,7 +15723,7 @@ else
15982 # Broken: fails on valid input. 15723 # Broken: fails on valid input.
15983continue 15724continue
15984fi 15725fi
15985rm -f conftest.err conftest.$ac_ext 15726rm -f conftest.err conftest.i conftest.$ac_ext
15986 15727
15987 # OK, works on sane cases. Now check whether nonexistent headers 15728 # OK, works on sane cases. Now check whether nonexistent headers
15988 # can be detected and how. 15729 # can be detected and how.
@@ -15998,11 +15739,11 @@ else
15998ac_preproc_ok=: 15739ac_preproc_ok=:
15999break 15740break
16000fi 15741fi
16001rm -f conftest.err conftest.$ac_ext 15742rm -f conftest.err conftest.i conftest.$ac_ext
16002 15743
16003done 15744done
16004# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 15745# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
16005rm -f conftest.err conftest.$ac_ext 15746rm -f conftest.i conftest.err conftest.$ac_ext
16006if $ac_preproc_ok; then : 15747if $ac_preproc_ok; then :
16007 15748
16008else 15749else
@@ -16231,7 +15972,7 @@ else
16231 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 15972 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
16232$as_echo "no" >&6; } 15973$as_echo "no" >&6; }
16233fi 15974fi
16234test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 15975test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
16235{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 15976{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
16236$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } 15977$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
16237if test "${lt_cv_prog_gnu_ld+set}" = set; then : 15978if test "${lt_cv_prog_gnu_ld+set}" = set; then :
@@ -17772,11 +17513,11 @@ else
17772 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 17513 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
17773 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 17514 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
17774 -e 's:$: $lt_compiler_flag:'` 17515 -e 's:$: $lt_compiler_flag:'`
17775 (eval echo "\"\$as_me:17775: $lt_compile\"" >&5) 17516 (eval echo "\"\$as_me:17516: $lt_compile\"" >&5)
17776 (eval "$lt_compile" 2>conftest.err) 17517 (eval "$lt_compile" 2>conftest.err)
17777 ac_status=$? 17518 ac_status=$?
17778 cat conftest.err >&5 17519 cat conftest.err >&5
17779 echo "$as_me:17779: \$? = $ac_status" >&5 17520 echo "$as_me:17520: \$? = $ac_status" >&5
17780 if (exit $ac_status) && test -s "$ac_outfile"; then 17521 if (exit $ac_status) && test -s "$ac_outfile"; then
17781 # The compiler can only warn and ignore the option if not recognized 17522 # The compiler can only warn and ignore the option if not recognized
17782 # So say no if there are warnings other than the usual output. 17523 # So say no if there are warnings other than the usual output.
@@ -17871,11 +17612,11 @@ else
17871 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 17612 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
17872 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 17613 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
17873 -e 's:$: $lt_compiler_flag:'` 17614 -e 's:$: $lt_compiler_flag:'`
17874 (eval echo "\"\$as_me:17874: $lt_compile\"" >&5) 17615 (eval echo "\"\$as_me:17615: $lt_compile\"" >&5)
17875 (eval "$lt_compile" 2>out/conftest.err) 17616 (eval "$lt_compile" 2>out/conftest.err)
17876 ac_status=$? 17617 ac_status=$?
17877 cat out/conftest.err >&5 17618 cat out/conftest.err >&5
17878 echo "$as_me:17878: \$? = $ac_status" >&5 17619 echo "$as_me:17619: \$? = $ac_status" >&5
17879 if (exit $ac_status) && test -s out/conftest2.$ac_objext 17620 if (exit $ac_status) && test -s out/conftest2.$ac_objext
17880 then 17621 then
17881 # The compiler can only warn and ignore the option if not recognized 17622 # The compiler can only warn and ignore the option if not recognized
@@ -17923,11 +17664,11 @@ else
17923 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 17664 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
17924 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 17665 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
17925 -e 's:$: $lt_compiler_flag:'` 17666 -e 's:$: $lt_compiler_flag:'`
17926 (eval echo "\"\$as_me:17926: $lt_compile\"" >&5) 17667 (eval echo "\"\$as_me:17667: $lt_compile\"" >&5)
17927 (eval "$lt_compile" 2>out/conftest.err) 17668 (eval "$lt_compile" 2>out/conftest.err)
17928 ac_status=$? 17669 ac_status=$?
17929 cat out/conftest.err >&5 17670 cat out/conftest.err >&5
17930 echo "$as_me:17930: \$? = $ac_status" >&5 17671 echo "$as_me:17671: \$? = $ac_status" >&5
17931 if (exit $ac_status) && test -s out/conftest2.$ac_objext 17672 if (exit $ac_status) && test -s out/conftest2.$ac_objext
17932 then 17673 then
17933 # The compiler can only warn and ignore the option if not recognized 17674 # The compiler can only warn and ignore the option if not recognized
@@ -19171,8 +18912,8 @@ fi
19171 18912
19172test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 18913test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
19173$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 18914$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
19174as_fn_error "no acceptable C compiler found in \$PATH 18915as_fn_error $? "no acceptable C compiler found in \$PATH
19175See \`config.log' for more details." "$LINENO" 5; } 18916See \`config.log' for more details" "$LINENO" 5 ; }
19176 18917
19177# Provide some information about the compiler. 18918# Provide some information about the compiler.
19178$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 18919$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -19798,6 +19539,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
19798# so we should include this here: 19539# so we should include this here:
19799 19540
19800 19541
19542
19543
19544
19545
19801if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 19546if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
19802 if test -n "$ac_tool_prefix"; then 19547 if test -n "$ac_tool_prefix"; then
19803 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. 19548 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
@@ -19910,7 +19655,6 @@ $as_echo "yes" >&6; }
19910$as_echo "no" >&6; } 19655$as_echo "no" >&6; }
19911 PKG_CONFIG="" 19656 PKG_CONFIG=""
19912 fi 19657 fi
19913
19914fi 19658fi
19915 19659
19916# Check whether pkg-config supports Requires.private 19660# Check whether pkg-config supports Requires.private
@@ -19960,11 +19704,10 @@ pkg_failed=no
19960{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVIL" >&5 19704{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVIL" >&5
19961$as_echo_n "checking for EVIL... " >&6; } 19705$as_echo_n "checking for EVIL... " >&6; }
19962 19706
19963if test -n "$PKG_CONFIG"; then 19707if test -n "$EVIL_CFLAGS"; then
19964 if test -n "$EVIL_CFLAGS"; then 19708 pkg_cv_EVIL_CFLAGS="$EVIL_CFLAGS"
19965 pkg_cv_EVIL_CFLAGS="$EVIL_CFLAGS" 19709 elif test -n "$PKG_CONFIG"; then
19966 else 19710 if test -n "$PKG_CONFIG" && \
19967 if test -n "$PKG_CONFIG" && \
19968 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5 19711 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5
19969 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5 19712 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5
19970 ac_status=$? 19713 ac_status=$?
@@ -19974,15 +19717,13 @@ if test -n "$PKG_CONFIG"; then
19974else 19717else
19975 pkg_failed=yes 19718 pkg_failed=yes
19976fi 19719fi
19977 fi 19720 else
19978else 19721 pkg_failed=untried
19979 pkg_failed=untried
19980fi 19722fi
19981if test -n "$PKG_CONFIG"; then 19723if test -n "$EVIL_LIBS"; then
19982 if test -n "$EVIL_LIBS"; then 19724 pkg_cv_EVIL_LIBS="$EVIL_LIBS"
19983 pkg_cv_EVIL_LIBS="$EVIL_LIBS" 19725 elif test -n "$PKG_CONFIG"; then
19984 else 19726 if test -n "$PKG_CONFIG" && \
19985 if test -n "$PKG_CONFIG" && \
19986 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5 19727 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5
19987 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5 19728 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5
19988 ac_status=$? 19729 ac_status=$?
@@ -19992,14 +19733,15 @@ if test -n "$PKG_CONFIG"; then
19992else 19733else
19993 pkg_failed=yes 19734 pkg_failed=yes
19994fi 19735fi
19995 fi 19736 else
19996else 19737 pkg_failed=untried
19997 pkg_failed=untried
19998fi 19738fi
19999 19739
20000 19740
20001 19741
20002if test $pkg_failed = yes; then 19742if test $pkg_failed = yes; then
19743 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
19744$as_echo "no" >&6; }
20003 19745
20004if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 19746if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
20005 _pkg_short_errors_supported=yes 19747 _pkg_short_errors_supported=yes
@@ -20007,14 +19749,14 @@ else
20007 _pkg_short_errors_supported=no 19749 _pkg_short_errors_supported=no
20008fi 19750fi
20009 if test $_pkg_short_errors_supported = yes; then 19751 if test $_pkg_short_errors_supported = yes; then
20010 EVIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "evil >= 1.0.0"` 19752 EVIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "evil >= 1.0.0" 2>&1`
20011 else 19753 else
20012 EVIL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evil >= 1.0.0"` 19754 EVIL_PKG_ERRORS=`$PKG_CONFIG --print-errors "evil >= 1.0.0" 2>&1`
20013 fi 19755 fi
20014 # Put the nasty error message in config.log where it belongs 19756 # Put the nasty error message in config.log where it belongs
20015 echo "$EVIL_PKG_ERRORS" >&5 19757 echo "$EVIL_PKG_ERRORS" >&5
20016 19758
20017 as_fn_error "Package requirements (evil >= 1.0.0) were not met: 19759 as_fn_error $? "Package requirements (evil >= 1.0.0) were not met:
20018 19760
20019$EVIL_PKG_ERRORS 19761$EVIL_PKG_ERRORS
20020 19762
@@ -20023,12 +19765,13 @@ installed software in a non-standard prefix.
20023 19765
20024Alternatively, you may set the environment variables EVIL_CFLAGS 19766Alternatively, you may set the environment variables EVIL_CFLAGS
20025and EVIL_LIBS to avoid the need to call pkg-config. 19767and EVIL_LIBS to avoid the need to call pkg-config.
20026See the pkg-config man page for more details. 19768See the pkg-config man page for more details." "$LINENO" 5
20027" "$LINENO" 5
20028elif test $pkg_failed = untried; then 19769elif test $pkg_failed = untried; then
19770 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
19771$as_echo "no" >&6; }
20029 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 19772 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
20030$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 19773$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
20031as_fn_error "The pkg-config script could not be found or is too old. Make sure it 19774as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
20032is in your PATH or set the PKG_CONFIG environment variable to the full 19775is in your PATH or set the PKG_CONFIG environment variable to the full
20033path to pkg-config. 19776path to pkg-config.
20034 19777
@@ -20037,13 +19780,13 @@ and EVIL_LIBS to avoid the need to call pkg-config.
20037See the pkg-config man page for more details. 19780See the pkg-config man page for more details.
20038 19781
20039To get pkg-config, see <http://pkg-config.freedesktop.org/>. 19782To get pkg-config, see <http://pkg-config.freedesktop.org/>.
20040See \`config.log' for more details." "$LINENO" 5; } 19783See \`config.log' for more details" "$LINENO" 5 ; }
20041else 19784else
20042 EVIL_CFLAGS=$pkg_cv_EVIL_CFLAGS 19785 EVIL_CFLAGS=$pkg_cv_EVIL_CFLAGS
20043 EVIL_LIBS=$pkg_cv_EVIL_LIBS 19786 EVIL_LIBS=$pkg_cv_EVIL_LIBS
20044 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 19787 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
20045$as_echo "yes" >&6; } 19788$as_echo "yes" >&6; }
20046 : 19789
20047fi 19790fi
20048 19791
20049$as_echo "#define HAVE_EVIL 1" >>confdefs.h 19792$as_echo "#define HAVE_EVIL 1" >>confdefs.h
@@ -20091,11 +19834,10 @@ pkg_failed=no
20091{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ESCAPE" >&5 19834{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ESCAPE" >&5
20092$as_echo_n "checking for ESCAPE... " >&6; } 19835$as_echo_n "checking for ESCAPE... " >&6; }
20093 19836
20094if test -n "$PKG_CONFIG"; then 19837if test -n "$ESCAPE_CFLAGS"; then
20095 if test -n "$ESCAPE_CFLAGS"; then 19838 pkg_cv_ESCAPE_CFLAGS="$ESCAPE_CFLAGS"
20096 pkg_cv_ESCAPE_CFLAGS="$ESCAPE_CFLAGS" 19839 elif test -n "$PKG_CONFIG"; then
20097 else 19840 if test -n "$PKG_CONFIG" && \
20098 if test -n "$PKG_CONFIG" && \
20099 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"escape\""; } >&5 19841 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"escape\""; } >&5
20100 ($PKG_CONFIG --exists --print-errors "escape") 2>&5 19842 ($PKG_CONFIG --exists --print-errors "escape") 2>&5
20101 ac_status=$? 19843 ac_status=$?
@@ -20105,15 +19847,13 @@ if test -n "$PKG_CONFIG"; then
20105else 19847else
20106 pkg_failed=yes 19848 pkg_failed=yes
20107fi 19849fi
20108 fi 19850 else
20109else 19851 pkg_failed=untried
20110 pkg_failed=untried
20111fi 19852fi
20112if test -n "$PKG_CONFIG"; then 19853if test -n "$ESCAPE_LIBS"; then
20113 if test -n "$ESCAPE_LIBS"; then 19854 pkg_cv_ESCAPE_LIBS="$ESCAPE_LIBS"
20114 pkg_cv_ESCAPE_LIBS="$ESCAPE_LIBS" 19855 elif test -n "$PKG_CONFIG"; then
20115 else 19856 if test -n "$PKG_CONFIG" && \
20116 if test -n "$PKG_CONFIG" && \
20117 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"escape\""; } >&5 19857 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"escape\""; } >&5
20118 ($PKG_CONFIG --exists --print-errors "escape") 2>&5 19858 ($PKG_CONFIG --exists --print-errors "escape") 2>&5
20119 ac_status=$? 19859 ac_status=$?
@@ -20123,14 +19863,15 @@ if test -n "$PKG_CONFIG"; then
20123else 19863else
20124 pkg_failed=yes 19864 pkg_failed=yes
20125fi 19865fi
20126 fi 19866 else
20127else 19867 pkg_failed=untried
20128 pkg_failed=untried
20129fi 19868fi
20130 19869
20131 19870
20132 19871
20133if test $pkg_failed = yes; then 19872if test $pkg_failed = yes; then
19873 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
19874$as_echo "no" >&6; }
20134 19875
20135if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 19876if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
20136 _pkg_short_errors_supported=yes 19877 _pkg_short_errors_supported=yes
@@ -20138,14 +19879,14 @@ else
20138 _pkg_short_errors_supported=no 19879 _pkg_short_errors_supported=no
20139fi 19880fi
20140 if test $_pkg_short_errors_supported = yes; then 19881 if test $_pkg_short_errors_supported = yes; then
20141 ESCAPE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "escape"` 19882 ESCAPE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "escape" 2>&1`
20142 else 19883 else
20143 ESCAPE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "escape"` 19884 ESCAPE_PKG_ERRORS=`$PKG_CONFIG --print-errors "escape" 2>&1`
20144 fi 19885 fi
20145 # Put the nasty error message in config.log where it belongs 19886 # Put the nasty error message in config.log where it belongs
20146 echo "$ESCAPE_PKG_ERRORS" >&5 19887 echo "$ESCAPE_PKG_ERRORS" >&5
20147 19888
20148 as_fn_error "Package requirements (escape) were not met: 19889 as_fn_error $? "Package requirements (escape) were not met:
20149 19890
20150$ESCAPE_PKG_ERRORS 19891$ESCAPE_PKG_ERRORS
20151 19892
@@ -20154,12 +19895,13 @@ installed software in a non-standard prefix.
20154 19895
20155Alternatively, you may set the environment variables ESCAPE_CFLAGS 19896Alternatively, you may set the environment variables ESCAPE_CFLAGS
20156and ESCAPE_LIBS to avoid the need to call pkg-config. 19897and ESCAPE_LIBS to avoid the need to call pkg-config.
20157See the pkg-config man page for more details. 19898See the pkg-config man page for more details." "$LINENO" 5
20158" "$LINENO" 5
20159elif test $pkg_failed = untried; then 19899elif test $pkg_failed = untried; then
19900 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
19901$as_echo "no" >&6; }
20160 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 19902 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
20161$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 19903$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
20162as_fn_error "The pkg-config script could not be found or is too old. Make sure it 19904as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
20163is in your PATH or set the PKG_CONFIG environment variable to the full 19905is in your PATH or set the PKG_CONFIG environment variable to the full
20164path to pkg-config. 19906path to pkg-config.
20165 19907
@@ -20168,13 +19910,13 @@ and ESCAPE_LIBS to avoid the need to call pkg-config.
20168See the pkg-config man page for more details. 19910See the pkg-config man page for more details.
20169 19911
20170To get pkg-config, see <http://pkg-config.freedesktop.org/>. 19912To get pkg-config, see <http://pkg-config.freedesktop.org/>.
20171See \`config.log' for more details." "$LINENO" 5; } 19913See \`config.log' for more details" "$LINENO" 5 ; }
20172else 19914else
20173 ESCAPE_CFLAGS=$pkg_cv_ESCAPE_CFLAGS 19915 ESCAPE_CFLAGS=$pkg_cv_ESCAPE_CFLAGS
20174 ESCAPE_LIBS=$pkg_cv_ESCAPE_LIBS 19916 ESCAPE_LIBS=$pkg_cv_ESCAPE_LIBS
20175 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 19917 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
20176$as_echo "yes" >&6; } 19918$as_echo "yes" >&6; }
20177 : 19919
20178fi 19920fi
20179 CFLAGS="$CFLAGS $ESCAPE_CFLAGS" 19921 CFLAGS="$CFLAGS $ESCAPE_CFLAGS"
20180 19922
@@ -20193,6 +19935,95 @@ $as_echo "#define HAVE_ESCAPE 1" >>confdefs.h
20193esac 19935esac
20194 19936
20195 19937
19938### Checks for portability layer
19939
19940
19941pkg_failed=no
19942{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EXOTIC" >&5
19943$as_echo_n "checking for EXOTIC... " >&6; }
19944
19945if test -n "$EXOTIC_CFLAGS"; then
19946 pkg_cv_EXOTIC_CFLAGS="$EXOTIC_CFLAGS"
19947 elif test -n "$PKG_CONFIG"; then
19948 if test -n "$PKG_CONFIG" && \
19949 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"exotic\""; } >&5
19950 ($PKG_CONFIG --exists --print-errors "exotic") 2>&5
19951 ac_status=$?
19952 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
19953 test $ac_status = 0; }; then
19954 pkg_cv_EXOTIC_CFLAGS=`$PKG_CONFIG --cflags "exotic" 2>/dev/null`
19955else
19956 pkg_failed=yes
19957fi
19958 else
19959 pkg_failed=untried
19960fi
19961if test -n "$EXOTIC_LIBS"; then
19962 pkg_cv_EXOTIC_LIBS="$EXOTIC_LIBS"
19963 elif test -n "$PKG_CONFIG"; then
19964 if test -n "$PKG_CONFIG" && \
19965 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"exotic\""; } >&5
19966 ($PKG_CONFIG --exists --print-errors "exotic") 2>&5
19967 ac_status=$?
19968 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
19969 test $ac_status = 0; }; then
19970 pkg_cv_EXOTIC_LIBS=`$PKG_CONFIG --libs "exotic" 2>/dev/null`
19971else
19972 pkg_failed=yes
19973fi
19974 else
19975 pkg_failed=untried
19976fi
19977
19978
19979
19980if test $pkg_failed = yes; then
19981 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
19982$as_echo "no" >&6; }
19983
19984if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
19985 _pkg_short_errors_supported=yes
19986else
19987 _pkg_short_errors_supported=no
19988fi
19989 if test $_pkg_short_errors_supported = yes; then
19990 EXOTIC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "exotic" 2>&1`
19991 else
19992 EXOTIC_PKG_ERRORS=`$PKG_CONFIG --print-errors "exotic" 2>&1`
19993 fi
19994 # Put the nasty error message in config.log where it belongs
19995 echo "$EXOTIC_PKG_ERRORS" >&5
19996
19997 enable_exotic="no"
19998elif test $pkg_failed = untried; then
19999 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20000$as_echo "no" >&6; }
20001 enable_exotic="no"
20002else
20003 EXOTIC_CFLAGS=$pkg_cv_EXOTIC_CFLAGS
20004 EXOTIC_LIBS=$pkg_cv_EXOTIC_LIBS
20005 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
20006$as_echo "yes" >&6; }
20007 enable_exotic="yes"
20008fi
20009
20010if test "x${enable_exotic}" = "xyes"; then
20011 requirements_ecore="exotic ${requirements_ecore}"
20012
20013
20014$as_echo "#define HAVE_EXOTIC 1" >>confdefs.h
20015
20016fi
20017 if test "x${enable_exotic}" = "xyes"; then
20018 ECORE_HAVE_EXOTIC_TRUE=
20019 ECORE_HAVE_EXOTIC_FALSE='#'
20020else
20021 ECORE_HAVE_EXOTIC_TRUE='#'
20022 ECORE_HAVE_EXOTIC_FALSE=
20023fi
20024
20025
20026
20196 20027
20197 20028
20198 20029
@@ -20431,46 +20262,44 @@ pkg_failed=no
20431{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EINA" >&5 20262{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EINA" >&5
20432$as_echo_n "checking for EINA... " >&6; } 20263$as_echo_n "checking for EINA... " >&6; }
20433 20264
20434if test -n "$PKG_CONFIG"; then 20265if test -n "$EINA_CFLAGS"; then
20435 if test -n "$EINA_CFLAGS"; then 20266 pkg_cv_EINA_CFLAGS="$EINA_CFLAGS"
20436 pkg_cv_EINA_CFLAGS="$EINA_CFLAGS" 20267 elif test -n "$PKG_CONFIG"; then
20437 else 20268 if test -n "$PKG_CONFIG" && \
20438 if test -n "$PKG_CONFIG" && \ 20269 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.2.0\""; } >&5
20439 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.1.0\""; } >&5 20270 ($PKG_CONFIG --exists --print-errors "eina >= 1.2.0") 2>&5
20440 ($PKG_CONFIG --exists --print-errors "eina >= 1.1.0") 2>&5
20441 ac_status=$? 20271 ac_status=$?
20442 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 20272 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
20443 test $ac_status = 0; }; then 20273 test $ac_status = 0; }; then
20444 pkg_cv_EINA_CFLAGS=`$PKG_CONFIG --cflags "eina >= 1.1.0" 2>/dev/null` 20274 pkg_cv_EINA_CFLAGS=`$PKG_CONFIG --cflags "eina >= 1.2.0" 2>/dev/null`
20445else 20275else
20446 pkg_failed=yes 20276 pkg_failed=yes
20447fi 20277fi
20448 fi 20278 else
20449else 20279 pkg_failed=untried
20450 pkg_failed=untried
20451fi 20280fi
20452if test -n "$PKG_CONFIG"; then 20281if test -n "$EINA_LIBS"; then
20453 if test -n "$EINA_LIBS"; then 20282 pkg_cv_EINA_LIBS="$EINA_LIBS"
20454 pkg_cv_EINA_LIBS="$EINA_LIBS" 20283 elif test -n "$PKG_CONFIG"; then
20455 else 20284 if test -n "$PKG_CONFIG" && \
20456 if test -n "$PKG_CONFIG" && \ 20285 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.2.0\""; } >&5
20457 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.1.0\""; } >&5 20286 ($PKG_CONFIG --exists --print-errors "eina >= 1.2.0") 2>&5
20458 ($PKG_CONFIG --exists --print-errors "eina >= 1.1.0") 2>&5
20459 ac_status=$? 20287 ac_status=$?
20460 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 20288 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
20461 test $ac_status = 0; }; then 20289 test $ac_status = 0; }; then
20462 pkg_cv_EINA_LIBS=`$PKG_CONFIG --libs "eina >= 1.1.0" 2>/dev/null` 20290 pkg_cv_EINA_LIBS=`$PKG_CONFIG --libs "eina >= 1.2.0" 2>/dev/null`
20463else 20291else
20464 pkg_failed=yes 20292 pkg_failed=yes
20465fi 20293fi
20466 fi 20294 else
20467else 20295 pkg_failed=untried
20468 pkg_failed=untried
20469fi 20296fi
20470 20297
20471 20298
20472 20299
20473if test $pkg_failed = yes; then 20300if test $pkg_failed = yes; then
20301 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20302$as_echo "no" >&6; }
20474 20303
20475if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 20304if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
20476 _pkg_short_errors_supported=yes 20305 _pkg_short_errors_supported=yes
@@ -20478,14 +20307,14 @@ else
20478 _pkg_short_errors_supported=no 20307 _pkg_short_errors_supported=no
20479fi 20308fi
20480 if test $_pkg_short_errors_supported = yes; then 20309 if test $_pkg_short_errors_supported = yes; then
20481 EINA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "eina >= 1.1.0"` 20310 EINA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "eina >= 1.2.0" 2>&1`
20482 else 20311 else
20483 EINA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "eina >= 1.1.0"` 20312 EINA_PKG_ERRORS=`$PKG_CONFIG --print-errors "eina >= 1.2.0" 2>&1`
20484 fi 20313 fi
20485 # Put the nasty error message in config.log where it belongs 20314 # Put the nasty error message in config.log where it belongs
20486 echo "$EINA_PKG_ERRORS" >&5 20315 echo "$EINA_PKG_ERRORS" >&5
20487 20316
20488 as_fn_error "Package requirements (eina >= 1.1.0) were not met: 20317 as_fn_error $? "Package requirements (eina >= 1.2.0) were not met:
20489 20318
20490$EINA_PKG_ERRORS 20319$EINA_PKG_ERRORS
20491 20320
@@ -20494,12 +20323,13 @@ installed software in a non-standard prefix.
20494 20323
20495Alternatively, you may set the environment variables EINA_CFLAGS 20324Alternatively, you may set the environment variables EINA_CFLAGS
20496and EINA_LIBS to avoid the need to call pkg-config. 20325and EINA_LIBS to avoid the need to call pkg-config.
20497See the pkg-config man page for more details. 20326See the pkg-config man page for more details." "$LINENO" 5
20498" "$LINENO" 5
20499elif test $pkg_failed = untried; then 20327elif test $pkg_failed = untried; then
20328 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20329$as_echo "no" >&6; }
20500 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 20330 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
20501$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 20331$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
20502as_fn_error "The pkg-config script could not be found or is too old. Make sure it 20332as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
20503is in your PATH or set the PKG_CONFIG environment variable to the full 20333is in your PATH or set the PKG_CONFIG environment variable to the full
20504path to pkg-config. 20334path to pkg-config.
20505 20335
@@ -20508,33 +20338,33 @@ and EINA_LIBS to avoid the need to call pkg-config.
20508See the pkg-config man page for more details. 20338See the pkg-config man page for more details.
20509 20339
20510To get pkg-config, see <http://pkg-config.freedesktop.org/>. 20340To get pkg-config, see <http://pkg-config.freedesktop.org/>.
20511See \`config.log' for more details." "$LINENO" 5; } 20341See \`config.log' for more details" "$LINENO" 5 ; }
20512else 20342else
20513 EINA_CFLAGS=$pkg_cv_EINA_CFLAGS 20343 EINA_CFLAGS=$pkg_cv_EINA_CFLAGS
20514 EINA_LIBS=$pkg_cv_EINA_LIBS 20344 EINA_LIBS=$pkg_cv_EINA_LIBS
20515 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 20345 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
20516$as_echo "yes" >&6; } 20346$as_echo "yes" >&6; }
20517 : 20347
20518fi 20348fi
20519#FIXME check all the requirements when the eina move will be finished 20349#FIXME check all the requirements when the eina move will be finished
20520requirements_ecore="eina >= 1.1.0 ${requirements_ecore}" 20350requirements_ecore="eina >= 1.2.0 ${requirements_ecore}"
20521requirements_ecore_con="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_con}" 20351requirements_ecore_con="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_con}"
20522#requirements_ecore_config="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_config}" 20352#requirements_ecore_config="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_config}"
20523requirements_ecore_directfb="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_directfb}" 20353requirements_ecore_directfb="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_directfb}"
20524requirements_ecore_evas="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_evas}" 20354requirements_ecore_evas="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_evas}"
20525requirements_ecore_fb="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_fb}" 20355requirements_ecore_fb="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_fb}"
20526requirements_ecore_file="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_file}" 20356requirements_ecore_file="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_file}"
20527requirements_ecore_imf="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_imf}" 20357requirements_ecore_imf="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_imf}"
20528requirements_ecore_imf_evas="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_imf_evas}" 20358requirements_ecore_imf_evas="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_imf_evas}"
20529requirements_ecore_input="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_input}" 20359requirements_ecore_input="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_input}"
20530requirements_ecore_input_evas="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_input_evas}" 20360requirements_ecore_input_evas="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_input_evas}"
20531requirements_ecore_ipc="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_ipc}" 20361requirements_ecore_ipc="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_ipc}"
20532requirements_ecore_cocoa="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_cocoa}" 20362requirements_ecore_cocoa="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_cocoa}"
20533requirements_ecore_sdl="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_sdl}" 20363requirements_ecore_sdl="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_sdl}"
20534requirements_ecore_psl1ght="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_sdl}" 20364requirements_ecore_psl1ght="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_sdl}"
20535requirements_ecore_win32="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_win32}" 20365requirements_ecore_win32="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_win32}"
20536requirements_ecore_wince="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_wince}" 20366requirements_ecore_wince="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_wince}"
20537requirements_ecore_x="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_x}" 20367requirements_ecore_x="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_x}"
20538 20368
20539 20369
20540# glib support (main loop integration) 20370# glib support (main loop integration)
@@ -20550,11 +20380,10 @@ pkg_failed=no
20550{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB" >&5 20380{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB" >&5
20551$as_echo_n "checking for GLIB... " >&6; } 20381$as_echo_n "checking for GLIB... " >&6; }
20552 20382
20553if test -n "$PKG_CONFIG"; then 20383if test -n "$GLIB_CFLAGS"; then
20554 if test -n "$GLIB_CFLAGS"; then 20384 pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS"
20555 pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS" 20385 elif test -n "$PKG_CONFIG"; then
20556 else 20386 if test -n "$PKG_CONFIG" && \
20557 if test -n "$PKG_CONFIG" && \
20558 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5 20387 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5
20559 ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5 20388 ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5
20560 ac_status=$? 20389 ac_status=$?
@@ -20564,15 +20393,13 @@ if test -n "$PKG_CONFIG"; then
20564else 20393else
20565 pkg_failed=yes 20394 pkg_failed=yes
20566fi 20395fi
20567 fi 20396 else
20568else 20397 pkg_failed=untried
20569 pkg_failed=untried
20570fi 20398fi
20571if test -n "$PKG_CONFIG"; then 20399if test -n "$GLIB_LIBS"; then
20572 if test -n "$GLIB_LIBS"; then 20400 pkg_cv_GLIB_LIBS="$GLIB_LIBS"
20573 pkg_cv_GLIB_LIBS="$GLIB_LIBS" 20401 elif test -n "$PKG_CONFIG"; then
20574 else 20402 if test -n "$PKG_CONFIG" && \
20575 if test -n "$PKG_CONFIG" && \
20576 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5 20403 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5
20577 ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5 20404 ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5
20578 ac_status=$? 20405 ac_status=$?
@@ -20582,14 +20409,15 @@ if test -n "$PKG_CONFIG"; then
20582else 20409else
20583 pkg_failed=yes 20410 pkg_failed=yes
20584fi 20411fi
20585 fi 20412 else
20586else 20413 pkg_failed=untried
20587 pkg_failed=untried
20588fi 20414fi
20589 20415
20590 20416
20591 20417
20592if test $pkg_failed = yes; then 20418if test $pkg_failed = yes; then
20419 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20420$as_echo "no" >&6; }
20593 20421
20594if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 20422if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
20595 _pkg_short_errors_supported=yes 20423 _pkg_short_errors_supported=yes
@@ -20597,17 +20425,17 @@ else
20597 _pkg_short_errors_supported=no 20425 _pkg_short_errors_supported=no
20598fi 20426fi
20599 if test $_pkg_short_errors_supported = yes; then 20427 if test $_pkg_short_errors_supported = yes; then
20600 GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "glib-2.0"` 20428 GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0" 2>&1`
20601 else 20429 else
20602 GLIB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glib-2.0"` 20430 GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0" 2>&1`
20603 fi 20431 fi
20604 # Put the nasty error message in config.log where it belongs 20432 # Put the nasty error message in config.log where it belongs
20605 echo "$GLIB_PKG_ERRORS" >&5 20433 echo "$GLIB_PKG_ERRORS" >&5
20606 20434
20607 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 20435 have_glib="no"
20608$as_echo "no" >&6; }
20609 have_glib="no"
20610elif test $pkg_failed = untried; then 20436elif test $pkg_failed = untried; then
20437 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20438$as_echo "no" >&6; }
20611 have_glib="no" 20439 have_glib="no"
20612else 20440else
20613 GLIB_CFLAGS=$pkg_cv_GLIB_CFLAGS 20441 GLIB_CFLAGS=$pkg_cv_GLIB_CFLAGS
@@ -20620,7 +20448,7 @@ else
20620 have_glib="no" 20448 have_glib="no"
20621fi 20449fi
20622if test "x$want_glib" = "xyes" -a "x$have_glib" = "xno"; then 20450if test "x$want_glib" = "xyes" -a "x$have_glib" = "xno"; then
20623 as_fn_error "GLib support requested, but no GLib found by pkg-config." "$LINENO" 5 20451 as_fn_error $? "GLib support requested, but no GLib found by pkg-config." "$LINENO" 5
20624elif test "x$have_glib" = "xyes"; then 20452elif test "x$have_glib" = "xyes"; then
20625 20453
20626$as_echo "#define HAVE_GLIB 1" >>confdefs.h 20454$as_echo "#define HAVE_GLIB 1" >>confdefs.h
@@ -20637,11 +20465,10 @@ pkg_failed=no
20637{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SDL" >&5 20465{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SDL" >&5
20638$as_echo_n "checking for SDL... " >&6; } 20466$as_echo_n "checking for SDL... " >&6; }
20639 20467
20640if test -n "$PKG_CONFIG"; then 20468if test -n "$SDL_CFLAGS"; then
20641 if test -n "$SDL_CFLAGS"; then 20469 pkg_cv_SDL_CFLAGS="$SDL_CFLAGS"
20642 pkg_cv_SDL_CFLAGS="$SDL_CFLAGS" 20470 elif test -n "$PKG_CONFIG"; then
20643 else 20471 if test -n "$PKG_CONFIG" && \
20644 if test -n "$PKG_CONFIG" && \
20645 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5 20472 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5
20646 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5 20473 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5
20647 ac_status=$? 20474 ac_status=$?
@@ -20651,15 +20478,13 @@ if test -n "$PKG_CONFIG"; then
20651else 20478else
20652 pkg_failed=yes 20479 pkg_failed=yes
20653fi 20480fi
20654 fi 20481 else
20655else 20482 pkg_failed=untried
20656 pkg_failed=untried
20657fi 20483fi
20658if test -n "$PKG_CONFIG"; then 20484if test -n "$SDL_LIBS"; then
20659 if test -n "$SDL_LIBS"; then 20485 pkg_cv_SDL_LIBS="$SDL_LIBS"
20660 pkg_cv_SDL_LIBS="$SDL_LIBS" 20486 elif test -n "$PKG_CONFIG"; then
20661 else 20487 if test -n "$PKG_CONFIG" && \
20662 if test -n "$PKG_CONFIG" && \
20663 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5 20488 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5
20664 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5 20489 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5
20665 ac_status=$? 20490 ac_status=$?
@@ -20669,14 +20494,15 @@ if test -n "$PKG_CONFIG"; then
20669else 20494else
20670 pkg_failed=yes 20495 pkg_failed=yes
20671fi 20496fi
20672 fi 20497 else
20673else 20498 pkg_failed=untried
20674 pkg_failed=untried
20675fi 20499fi
20676 20500
20677 20501
20678 20502
20679if test $pkg_failed = yes; then 20503if test $pkg_failed = yes; then
20504 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20505$as_echo "no" >&6; }
20680 20506
20681if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 20507if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
20682 _pkg_short_errors_supported=yes 20508 _pkg_short_errors_supported=yes
@@ -20684,17 +20510,17 @@ else
20684 _pkg_short_errors_supported=no 20510 _pkg_short_errors_supported=no
20685fi 20511fi
20686 if test $_pkg_short_errors_supported = yes; then 20512 if test $_pkg_short_errors_supported = yes; then
20687 SDL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "sdl >= 1.2.0"` 20513 SDL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "sdl >= 1.2.0" 2>&1`
20688 else 20514 else
20689 SDL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "sdl >= 1.2.0"` 20515 SDL_PKG_ERRORS=`$PKG_CONFIG --print-errors "sdl >= 1.2.0" 2>&1`
20690 fi 20516 fi
20691 # Put the nasty error message in config.log where it belongs 20517 # Put the nasty error message in config.log where it belongs
20692 echo "$SDL_PKG_ERRORS" >&5 20518 echo "$SDL_PKG_ERRORS" >&5
20693 20519
20694 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 20520 have_sdl="no"
20695$as_echo "no" >&6; }
20696 have_sdl="no"
20697elif test $pkg_failed = untried; then 20521elif test $pkg_failed = untried; then
20522 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20523$as_echo "no" >&6; }
20698 have_sdl="no" 20524 have_sdl="no"
20699else 20525else
20700 SDL_CFLAGS=$pkg_cv_SDL_CFLAGS 20526 SDL_CFLAGS=$pkg_cv_SDL_CFLAGS
@@ -20788,11 +20614,10 @@ pkg_failed=no
20788{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DIRECTFB" >&5 20614{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DIRECTFB" >&5
20789$as_echo_n "checking for DIRECTFB... " >&6; } 20615$as_echo_n "checking for DIRECTFB... " >&6; }
20790 20616
20791if test -n "$PKG_CONFIG"; then 20617if test -n "$DIRECTFB_CFLAGS"; then
20792 if test -n "$DIRECTFB_CFLAGS"; then 20618 pkg_cv_DIRECTFB_CFLAGS="$DIRECTFB_CFLAGS"
20793 pkg_cv_DIRECTFB_CFLAGS="$DIRECTFB_CFLAGS" 20619 elif test -n "$PKG_CONFIG"; then
20794 else 20620 if test -n "$PKG_CONFIG" && \
20795 if test -n "$PKG_CONFIG" && \
20796 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"directfb >= 0.9.16\""; } >&5 20621 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"directfb >= 0.9.16\""; } >&5
20797 ($PKG_CONFIG --exists --print-errors "directfb >= 0.9.16") 2>&5 20622 ($PKG_CONFIG --exists --print-errors "directfb >= 0.9.16") 2>&5
20798 ac_status=$? 20623 ac_status=$?
@@ -20802,15 +20627,13 @@ if test -n "$PKG_CONFIG"; then
20802else 20627else
20803 pkg_failed=yes 20628 pkg_failed=yes
20804fi 20629fi
20805 fi 20630 else
20806else 20631 pkg_failed=untried
20807 pkg_failed=untried
20808fi 20632fi
20809if test -n "$PKG_CONFIG"; then 20633if test -n "$DIRECTFB_LIBS"; then
20810 if test -n "$DIRECTFB_LIBS"; then 20634 pkg_cv_DIRECTFB_LIBS="$DIRECTFB_LIBS"
20811 pkg_cv_DIRECTFB_LIBS="$DIRECTFB_LIBS" 20635 elif test -n "$PKG_CONFIG"; then
20812 else 20636 if test -n "$PKG_CONFIG" && \
20813 if test -n "$PKG_CONFIG" && \
20814 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"directfb >= 0.9.16\""; } >&5 20637 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"directfb >= 0.9.16\""; } >&5
20815 ($PKG_CONFIG --exists --print-errors "directfb >= 0.9.16") 2>&5 20638 ($PKG_CONFIG --exists --print-errors "directfb >= 0.9.16") 2>&5
20816 ac_status=$? 20639 ac_status=$?
@@ -20820,14 +20643,15 @@ if test -n "$PKG_CONFIG"; then
20820else 20643else
20821 pkg_failed=yes 20644 pkg_failed=yes
20822fi 20645fi
20823 fi 20646 else
20824else 20647 pkg_failed=untried
20825 pkg_failed=untried
20826fi 20648fi
20827 20649
20828 20650
20829 20651
20830if test $pkg_failed = yes; then 20652if test $pkg_failed = yes; then
20653 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20654$as_echo "no" >&6; }
20831 20655
20832if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 20656if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
20833 _pkg_short_errors_supported=yes 20657 _pkg_short_errors_supported=yes
@@ -20835,17 +20659,17 @@ else
20835 _pkg_short_errors_supported=no 20659 _pkg_short_errors_supported=no
20836fi 20660fi
20837 if test $_pkg_short_errors_supported = yes; then 20661 if test $_pkg_short_errors_supported = yes; then
20838 DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "directfb >= 0.9.16"` 20662 DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "directfb >= 0.9.16" 2>&1`
20839 else 20663 else
20840 DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "directfb >= 0.9.16"` 20664 DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --print-errors "directfb >= 0.9.16" 2>&1`
20841 fi 20665 fi
20842 # Put the nasty error message in config.log where it belongs 20666 # Put the nasty error message in config.log where it belongs
20843 echo "$DIRECTFB_PKG_ERRORS" >&5 20667 echo "$DIRECTFB_PKG_ERRORS" >&5
20844 20668
20845 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 20669 have_directfb="no"
20846$as_echo "no" >&6; }
20847 have_directfb="no"
20848elif test $pkg_failed = untried; then 20670elif test $pkg_failed = untried; then
20671 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20672$as_echo "no" >&6; }
20849 have_directfb="no" 20673 have_directfb="no"
20850else 20674else
20851 DIRECTFB_CFLAGS=$pkg_cv_DIRECTFB_CFLAGS 20675 DIRECTFB_CFLAGS=$pkg_cv_DIRECTFB_CFLAGS
@@ -20866,6 +20690,75 @@ fi
20866 20690
20867# Xlib and XCB (ecore_x) 20691# Xlib and XCB (ecore_x)
20868 20692
20693ac_fn_c_check_decl "$LINENO" "MAXHOSTNAMELEN" "ac_cv_have_decl_MAXHOSTNAMELEN" "$ac_includes_default"
20694if test "x$ac_cv_have_decl_MAXHOSTNAMELEN" = x""yes; then :
20695 FOUND_MAXHOSTNAMELEN=yes
20696fi
20697
20698
20699if test "x${FOUND_MAXHOSTNAMELEN}" != "xyes" ; then
20700 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for header that defines MAXHOSTNAMELEN" >&5
20701$as_echo_n "checking for header that defines MAXHOSTNAMELEN... " >&6; }
20702 FOUND_MAXHOSTNAMELEN="not found"
20703
20704 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20705/* end confdefs.h. */
20706
20707
20708#include <sys/param.h>
20709
20710int
20711main ()
20712{
20713
20714int h = MAXHOSTNAMELEN;
20715
20716 ;
20717 return 0;
20718}
20719
20720_ACEOF
20721if ac_fn_c_try_compile "$LINENO"; then :
20722
20723 FOUND_MAXHOSTNAMELEN="sys/param.h"
20724
20725$as_echo "#define NEED_SYS_PARAM_H 1" >>confdefs.h
20726
20727
20728fi
20729rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
20730
20731 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20732/* end confdefs.h. */
20733
20734
20735#include <netdb.h>
20736
20737int
20738main ()
20739{
20740
20741int h = MAXHOSTNAMELEN;
20742
20743 ;
20744 return 0;
20745}
20746
20747_ACEOF
20748if ac_fn_c_try_compile "$LINENO"; then :
20749
20750 FOUND_MAXHOSTNAMELEN="netdb.h"
20751
20752$as_echo "#define NEED_NETDB_H 1" >>confdefs.h
20753
20754
20755fi
20756rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
20757
20758 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FOUND_MAXHOSTNAMELEN" >&5
20759$as_echo "$FOUND_MAXHOSTNAMELEN" >&6; }
20760fi
20761
20869have_x="no" 20762have_x="no"
20870have_ecore_x="no" 20763have_ecore_x="no"
20871have_ecore_x_xlib="no" 20764have_ecore_x_xlib="no"
@@ -20995,7 +20888,7 @@ $as_echo_n "checking keysym definitions... " >&6; }
20995 if test -f "$KEYSYMDEFDIR/$i"; then 20888 if test -f "$KEYSYMDEFDIR/$i"; then
20996 KEYSYMDEFS="$KEYSYMDEFS $KEYSYMDEFDIR/$i" 20889 KEYSYMDEFS="$KEYSYMDEFS $KEYSYMDEFDIR/$i"
20997 elif test "x$i" = "xkeysymdef.h"; then 20890 elif test "x$i" = "xkeysymdef.h"; then
20998 as_fn_error "Cannot find keysymdef.h" "$LINENO" 5 20891 as_fn_error $? "Cannot find keysymdef.h" "$LINENO" 5
20999 fi 20892 fi
21000 done 20893 done
21001 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $KEYSYMDEFS" >&5 20894 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $KEYSYMDEFS" >&5
@@ -21159,11 +21052,10 @@ pkg_failed=no
21159{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECORE_XCB" >&5 21052{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECORE_XCB" >&5
21160$as_echo_n "checking for ECORE_XCB... " >&6; } 21053$as_echo_n "checking for ECORE_XCB... " >&6; }
21161 21054
21162if test -n "$PKG_CONFIG"; then 21055if test -n "$ECORE_XCB_CFLAGS"; then
21163 if test -n "$ECORE_XCB_CFLAGS"; then 21056 pkg_cv_ECORE_XCB_CFLAGS="$ECORE_XCB_CFLAGS"
21164 pkg_cv_ECORE_XCB_CFLAGS="$ECORE_XCB_CFLAGS" 21057 elif test -n "$PKG_CONFIG"; then
21165 else 21058 if test -n "$PKG_CONFIG" && \
21166 if test -n "$PKG_CONFIG" && \
21167 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8\""; } >&5 21059 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8\""; } >&5
21168 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8") 2>&5 21060 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8") 2>&5
21169 ac_status=$? 21061 ac_status=$?
@@ -21173,15 +21065,13 @@ if test -n "$PKG_CONFIG"; then
21173else 21065else
21174 pkg_failed=yes 21066 pkg_failed=yes
21175fi 21067fi
21176 fi 21068 else
21177else 21069 pkg_failed=untried
21178 pkg_failed=untried
21179fi 21070fi
21180if test -n "$PKG_CONFIG"; then 21071if test -n "$ECORE_XCB_LIBS"; then
21181 if test -n "$ECORE_XCB_LIBS"; then 21072 pkg_cv_ECORE_XCB_LIBS="$ECORE_XCB_LIBS"
21182 pkg_cv_ECORE_XCB_LIBS="$ECORE_XCB_LIBS" 21073 elif test -n "$PKG_CONFIG"; then
21183 else 21074 if test -n "$PKG_CONFIG" && \
21184 if test -n "$PKG_CONFIG" && \
21185 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8\""; } >&5 21075 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8\""; } >&5
21186 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8") 2>&5 21076 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8") 2>&5
21187 ac_status=$? 21077 ac_status=$?
@@ -21191,14 +21081,15 @@ if test -n "$PKG_CONFIG"; then
21191else 21081else
21192 pkg_failed=yes 21082 pkg_failed=yes
21193fi 21083fi
21194 fi 21084 else
21195else 21085 pkg_failed=untried
21196 pkg_failed=untried
21197fi 21086fi
21198 21087
21199 21088
21200 21089
21201if test $pkg_failed = yes; then 21090if test $pkg_failed = yes; then
21091 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21092$as_echo "no" >&6; }
21202 21093
21203if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21094if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21204 _pkg_short_errors_supported=yes 21095 _pkg_short_errors_supported=yes
@@ -21206,26 +21097,23 @@ else
21206 _pkg_short_errors_supported=no 21097 _pkg_short_errors_supported=no
21207fi 21098fi
21208 if test $_pkg_short_errors_supported = yes; then 21099 if test $_pkg_short_errors_supported = yes; then
21209 ECORE_XCB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8"` 21100 ECORE_XCB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8" 2>&1`
21210 else 21101 else
21211 ECORE_XCB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8"` 21102 ECORE_XCB_PKG_ERRORS=`$PKG_CONFIG --print-errors "x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8" 2>&1`
21212 fi 21103 fi
21213 # Put the nasty error message in config.log where it belongs 21104 # Put the nasty error message in config.log where it belongs
21214 echo "$ECORE_XCB_PKG_ERRORS" >&5 21105 echo "$ECORE_XCB_PKG_ERRORS" >&5
21215 21106
21216 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21217$as_echo "no" >&6; }
21218 21107
21219 21108
21220pkg_failed=no 21109pkg_failed=no
21221{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECORE_XCB" >&5 21110{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECORE_XCB" >&5
21222$as_echo_n "checking for ECORE_XCB... " >&6; } 21111$as_echo_n "checking for ECORE_XCB... " >&6; }
21223 21112
21224if test -n "$PKG_CONFIG"; then 21113if test -n "$ECORE_XCB_CFLAGS"; then
21225 if test -n "$ECORE_XCB_CFLAGS"; then 21114 pkg_cv_ECORE_XCB_CFLAGS="$ECORE_XCB_CFLAGS"
21226 pkg_cv_ECORE_XCB_CFLAGS="$ECORE_XCB_CFLAGS" 21115 elif test -n "$PKG_CONFIG"; then
21227 else 21116 if test -n "$PKG_CONFIG" && \
21228 if test -n "$PKG_CONFIG" && \
21229 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms\""; } >&5 21117 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms\""; } >&5
21230 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms") 2>&5 21118 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms") 2>&5
21231 ac_status=$? 21119 ac_status=$?
@@ -21235,15 +21123,13 @@ if test -n "$PKG_CONFIG"; then
21235else 21123else
21236 pkg_failed=yes 21124 pkg_failed=yes
21237fi 21125fi
21238 fi 21126 else
21239else 21127 pkg_failed=untried
21240 pkg_failed=untried
21241fi 21128fi
21242if test -n "$PKG_CONFIG"; then 21129if test -n "$ECORE_XCB_LIBS"; then
21243 if test -n "$ECORE_XCB_LIBS"; then 21130 pkg_cv_ECORE_XCB_LIBS="$ECORE_XCB_LIBS"
21244 pkg_cv_ECORE_XCB_LIBS="$ECORE_XCB_LIBS" 21131 elif test -n "$PKG_CONFIG"; then
21245 else 21132 if test -n "$PKG_CONFIG" && \
21246 if test -n "$PKG_CONFIG" && \
21247 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms\""; } >&5 21133 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms\""; } >&5
21248 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms") 2>&5 21134 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms") 2>&5
21249 ac_status=$? 21135 ac_status=$?
@@ -21253,14 +21139,15 @@ if test -n "$PKG_CONFIG"; then
21253else 21139else
21254 pkg_failed=yes 21140 pkg_failed=yes
21255fi 21141fi
21256 fi 21142 else
21257else 21143 pkg_failed=untried
21258 pkg_failed=untried
21259fi 21144fi
21260 21145
21261 21146
21262 21147
21263if test $pkg_failed = yes; then 21148if test $pkg_failed = yes; then
21149 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21150$as_echo "no" >&6; }
21264 21151
21265if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21152if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21266 _pkg_short_errors_supported=yes 21153 _pkg_short_errors_supported=yes
@@ -21268,17 +21155,17 @@ else
21268 _pkg_short_errors_supported=no 21155 _pkg_short_errors_supported=no
21269fi 21156fi
21270 if test $_pkg_short_errors_supported = yes; then 21157 if test $_pkg_short_errors_supported = yes; then
21271 ECORE_XCB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms"` 21158 ECORE_XCB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms" 2>&1`
21272 else 21159 else
21273 ECORE_XCB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms"` 21160 ECORE_XCB_PKG_ERRORS=`$PKG_CONFIG --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms" 2>&1`
21274 fi 21161 fi
21275 # Put the nasty error message in config.log where it belongs 21162 # Put the nasty error message in config.log where it belongs
21276 echo "$ECORE_XCB_PKG_ERRORS" >&5 21163 echo "$ECORE_XCB_PKG_ERRORS" >&5
21277 21164
21278 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 21165 have_ecore_x_xcb="no"
21279$as_echo "no" >&6; }
21280 have_ecore_x_xcb="no"
21281elif test $pkg_failed = untried; then 21166elif test $pkg_failed = untried; then
21167 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21168$as_echo "no" >&6; }
21282 have_ecore_x_xcb="no" 21169 have_ecore_x_xcb="no"
21283else 21170else
21284 ECORE_XCB_CFLAGS=$pkg_cv_ECORE_XCB_CFLAGS 21171 ECORE_XCB_CFLAGS=$pkg_cv_ECORE_XCB_CFLAGS
@@ -21293,17 +21180,18 @@ $as_echo "#define OLD_XCB_VERSION 1" >>confdefs.h
21293fi 21180fi
21294 21181
21295elif test $pkg_failed = untried; then 21182elif test $pkg_failed = untried; then
21183 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21184$as_echo "no" >&6; }
21296 21185
21297 21186
21298pkg_failed=no 21187pkg_failed=no
21299{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECORE_XCB" >&5 21188{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECORE_XCB" >&5
21300$as_echo_n "checking for ECORE_XCB... " >&6; } 21189$as_echo_n "checking for ECORE_XCB... " >&6; }
21301 21190
21302if test -n "$PKG_CONFIG"; then 21191if test -n "$ECORE_XCB_CFLAGS"; then
21303 if test -n "$ECORE_XCB_CFLAGS"; then 21192 pkg_cv_ECORE_XCB_CFLAGS="$ECORE_XCB_CFLAGS"
21304 pkg_cv_ECORE_XCB_CFLAGS="$ECORE_XCB_CFLAGS" 21193 elif test -n "$PKG_CONFIG"; then
21305 else 21194 if test -n "$PKG_CONFIG" && \
21306 if test -n "$PKG_CONFIG" && \
21307 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms\""; } >&5 21195 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms\""; } >&5
21308 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms") 2>&5 21196 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms") 2>&5
21309 ac_status=$? 21197 ac_status=$?
@@ -21313,15 +21201,13 @@ if test -n "$PKG_CONFIG"; then
21313else 21201else
21314 pkg_failed=yes 21202 pkg_failed=yes
21315fi 21203fi
21316 fi 21204 else
21317else 21205 pkg_failed=untried
21318 pkg_failed=untried
21319fi 21206fi
21320if test -n "$PKG_CONFIG"; then 21207if test -n "$ECORE_XCB_LIBS"; then
21321 if test -n "$ECORE_XCB_LIBS"; then 21208 pkg_cv_ECORE_XCB_LIBS="$ECORE_XCB_LIBS"
21322 pkg_cv_ECORE_XCB_LIBS="$ECORE_XCB_LIBS" 21209 elif test -n "$PKG_CONFIG"; then
21323 else 21210 if test -n "$PKG_CONFIG" && \
21324 if test -n "$PKG_CONFIG" && \
21325 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms\""; } >&5 21211 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms\""; } >&5
21326 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms") 2>&5 21212 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms") 2>&5
21327 ac_status=$? 21213 ac_status=$?
@@ -21331,14 +21217,15 @@ if test -n "$PKG_CONFIG"; then
21331else 21217else
21332 pkg_failed=yes 21218 pkg_failed=yes
21333fi 21219fi
21334 fi 21220 else
21335else 21221 pkg_failed=untried
21336 pkg_failed=untried
21337fi 21222fi
21338 21223
21339 21224
21340 21225
21341if test $pkg_failed = yes; then 21226if test $pkg_failed = yes; then
21227 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21228$as_echo "no" >&6; }
21342 21229
21343if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21230if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21344 _pkg_short_errors_supported=yes 21231 _pkg_short_errors_supported=yes
@@ -21346,17 +21233,17 @@ else
21346 _pkg_short_errors_supported=no 21233 _pkg_short_errors_supported=no
21347fi 21234fi
21348 if test $_pkg_short_errors_supported = yes; then 21235 if test $_pkg_short_errors_supported = yes; then
21349 ECORE_XCB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms"` 21236 ECORE_XCB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms" 2>&1`
21350 else 21237 else
21351 ECORE_XCB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms"` 21238 ECORE_XCB_PKG_ERRORS=`$PKG_CONFIG --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms" 2>&1`
21352 fi 21239 fi
21353 # Put the nasty error message in config.log where it belongs 21240 # Put the nasty error message in config.log where it belongs
21354 echo "$ECORE_XCB_PKG_ERRORS" >&5 21241 echo "$ECORE_XCB_PKG_ERRORS" >&5
21355 21242
21356 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 21243 have_ecore_x_xcb="no"
21357$as_echo "no" >&6; }
21358 have_ecore_x_xcb="no"
21359elif test $pkg_failed = untried; then 21244elif test $pkg_failed = untried; then
21245 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21246$as_echo "no" >&6; }
21360 have_ecore_x_xcb="no" 21247 have_ecore_x_xcb="no"
21361else 21248else
21362 ECORE_XCB_CFLAGS=$pkg_cv_ECORE_XCB_CFLAGS 21249 ECORE_XCB_CFLAGS=$pkg_cv_ECORE_XCB_CFLAGS
@@ -21387,11 +21274,10 @@ pkg_failed=no
21387{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PIXMAN" >&5 21274{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PIXMAN" >&5
21388$as_echo_n "checking for PIXMAN... " >&6; } 21275$as_echo_n "checking for PIXMAN... " >&6; }
21389 21276
21390if test -n "$PKG_CONFIG"; then 21277if test -n "$PIXMAN_CFLAGS"; then
21391 if test -n "$PIXMAN_CFLAGS"; then 21278 pkg_cv_PIXMAN_CFLAGS="$PIXMAN_CFLAGS"
21392 pkg_cv_PIXMAN_CFLAGS="$PIXMAN_CFLAGS" 21279 elif test -n "$PKG_CONFIG"; then
21393 else 21280 if test -n "$PKG_CONFIG" && \
21394 if test -n "$PKG_CONFIG" && \
21395 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pixman-1\""; } >&5 21281 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pixman-1\""; } >&5
21396 ($PKG_CONFIG --exists --print-errors "pixman-1") 2>&5 21282 ($PKG_CONFIG --exists --print-errors "pixman-1") 2>&5
21397 ac_status=$? 21283 ac_status=$?
@@ -21401,15 +21287,13 @@ if test -n "$PKG_CONFIG"; then
21401else 21287else
21402 pkg_failed=yes 21288 pkg_failed=yes
21403fi 21289fi
21404 fi 21290 else
21405else 21291 pkg_failed=untried
21406 pkg_failed=untried
21407fi 21292fi
21408if test -n "$PKG_CONFIG"; then 21293if test -n "$PIXMAN_LIBS"; then
21409 if test -n "$PIXMAN_LIBS"; then 21294 pkg_cv_PIXMAN_LIBS="$PIXMAN_LIBS"
21410 pkg_cv_PIXMAN_LIBS="$PIXMAN_LIBS" 21295 elif test -n "$PKG_CONFIG"; then
21411 else 21296 if test -n "$PKG_CONFIG" && \
21412 if test -n "$PKG_CONFIG" && \
21413 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pixman-1\""; } >&5 21297 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pixman-1\""; } >&5
21414 ($PKG_CONFIG --exists --print-errors "pixman-1") 2>&5 21298 ($PKG_CONFIG --exists --print-errors "pixman-1") 2>&5
21415 ac_status=$? 21299 ac_status=$?
@@ -21419,14 +21303,15 @@ if test -n "$PKG_CONFIG"; then
21419else 21303else
21420 pkg_failed=yes 21304 pkg_failed=yes
21421fi 21305fi
21422 fi 21306 else
21423else 21307 pkg_failed=untried
21424 pkg_failed=untried
21425fi 21308fi
21426 21309
21427 21310
21428 21311
21429if test $pkg_failed = yes; then 21312if test $pkg_failed = yes; then
21313 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21314$as_echo "no" >&6; }
21430 21315
21431if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21316if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21432 _pkg_short_errors_supported=yes 21317 _pkg_short_errors_supported=yes
@@ -21434,24 +21319,24 @@ else
21434 _pkg_short_errors_supported=no 21319 _pkg_short_errors_supported=no
21435fi 21320fi
21436 if test $_pkg_short_errors_supported = yes; then 21321 if test $_pkg_short_errors_supported = yes; then
21437 PIXMAN_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "pixman-1"` 21322 PIXMAN_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "pixman-1" 2>&1`
21438 else 21323 else
21439 PIXMAN_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "pixman-1"` 21324 PIXMAN_PKG_ERRORS=`$PKG_CONFIG --print-errors "pixman-1" 2>&1`
21440 fi 21325 fi
21441 # Put the nasty error message in config.log where it belongs 21326 # Put the nasty error message in config.log where it belongs
21442 echo "$PIXMAN_PKG_ERRORS" >&5 21327 echo "$PIXMAN_PKG_ERRORS" >&5
21443 21328
21444 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21445$as_echo "no" >&6; }
21446 21329
21447 if test "x${want_pixman}" = "xyes" -a "x${use_strict}" = "xyes" ; then 21330 if test "x${want_pixman}" = "xyes" -a "x${use_strict}" = "xyes" ; then
21448 as_fn_error "Pixman not found (strict dependencies checking)" "$LINENO" 5 21331 as_fn_error $? "Pixman not found (strict dependencies checking)" "$LINENO" 5
21449 fi 21332 fi
21450 21333
21451elif test $pkg_failed = untried; then 21334elif test $pkg_failed = untried; then
21335 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21336$as_echo "no" >&6; }
21452 21337
21453 if test "x${want_pixman}" = "xyes" -a "x${use_strict}" = "xyes" ; then 21338 if test "x${want_pixman}" = "xyes" -a "x${use_strict}" = "xyes" ; then
21454 as_fn_error "Pixman not found (strict dependencies checking)" "$LINENO" 5 21339 as_fn_error $? "Pixman not found (strict dependencies checking)" "$LINENO" 5
21455 fi 21340 fi
21456 21341
21457else 21342else
@@ -21474,11 +21359,10 @@ pkg_failed=no
21474{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_COMPOSITE" >&5 21359{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_COMPOSITE" >&5
21475$as_echo_n "checking for XCB_COMPOSITE... " >&6; } 21360$as_echo_n "checking for XCB_COMPOSITE... " >&6; }
21476 21361
21477if test -n "$PKG_CONFIG"; then 21362if test -n "$XCB_COMPOSITE_CFLAGS"; then
21478 if test -n "$XCB_COMPOSITE_CFLAGS"; then 21363 pkg_cv_XCB_COMPOSITE_CFLAGS="$XCB_COMPOSITE_CFLAGS"
21479 pkg_cv_XCB_COMPOSITE_CFLAGS="$XCB_COMPOSITE_CFLAGS" 21364 elif test -n "$PKG_CONFIG"; then
21480 else 21365 if test -n "$PKG_CONFIG" && \
21481 if test -n "$PKG_CONFIG" && \
21482 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-composite\""; } >&5 21366 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-composite\""; } >&5
21483 ($PKG_CONFIG --exists --print-errors "xcb-composite") 2>&5 21367 ($PKG_CONFIG --exists --print-errors "xcb-composite") 2>&5
21484 ac_status=$? 21368 ac_status=$?
@@ -21488,15 +21372,13 @@ if test -n "$PKG_CONFIG"; then
21488else 21372else
21489 pkg_failed=yes 21373 pkg_failed=yes
21490fi 21374fi
21491 fi 21375 else
21492else 21376 pkg_failed=untried
21493 pkg_failed=untried
21494fi 21377fi
21495if test -n "$PKG_CONFIG"; then 21378if test -n "$XCB_COMPOSITE_LIBS"; then
21496 if test -n "$XCB_COMPOSITE_LIBS"; then 21379 pkg_cv_XCB_COMPOSITE_LIBS="$XCB_COMPOSITE_LIBS"
21497 pkg_cv_XCB_COMPOSITE_LIBS="$XCB_COMPOSITE_LIBS" 21380 elif test -n "$PKG_CONFIG"; then
21498 else 21381 if test -n "$PKG_CONFIG" && \
21499 if test -n "$PKG_CONFIG" && \
21500 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-composite\""; } >&5 21382 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-composite\""; } >&5
21501 ($PKG_CONFIG --exists --print-errors "xcb-composite") 2>&5 21383 ($PKG_CONFIG --exists --print-errors "xcb-composite") 2>&5
21502 ac_status=$? 21384 ac_status=$?
@@ -21506,14 +21388,15 @@ if test -n "$PKG_CONFIG"; then
21506else 21388else
21507 pkg_failed=yes 21389 pkg_failed=yes
21508fi 21390fi
21509 fi 21391 else
21510else 21392 pkg_failed=untried
21511 pkg_failed=untried
21512fi 21393fi
21513 21394
21514 21395
21515 21396
21516if test $pkg_failed = yes; then 21397if test $pkg_failed = yes; then
21398 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21399$as_echo "no" >&6; }
21517 21400
21518if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21401if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21519 _pkg_short_errors_supported=yes 21402 _pkg_short_errors_supported=yes
@@ -21521,17 +21404,17 @@ else
21521 _pkg_short_errors_supported=no 21404 _pkg_short_errors_supported=no
21522fi 21405fi
21523 if test $_pkg_short_errors_supported = yes; then 21406 if test $_pkg_short_errors_supported = yes; then
21524 XCB_COMPOSITE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-composite"` 21407 XCB_COMPOSITE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-composite" 2>&1`
21525 else 21408 else
21526 XCB_COMPOSITE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-composite"` 21409 XCB_COMPOSITE_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-composite" 2>&1`
21527 fi 21410 fi
21528 # Put the nasty error message in config.log where it belongs 21411 # Put the nasty error message in config.log where it belongs
21529 echo "$XCB_COMPOSITE_PKG_ERRORS" >&5 21412 echo "$XCB_COMPOSITE_PKG_ERRORS" >&5
21530 21413
21531 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 21414 have_ecore_x_xcb_composite="no"
21532$as_echo "no" >&6; }
21533 have_ecore_x_xcb_composite="no"
21534elif test $pkg_failed = untried; then 21415elif test $pkg_failed = untried; then
21416 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21417$as_echo "no" >&6; }
21535 have_ecore_x_xcb_composite="no" 21418 have_ecore_x_xcb_composite="no"
21536else 21419else
21537 XCB_COMPOSITE_CFLAGS=$pkg_cv_XCB_COMPOSITE_CFLAGS 21420 XCB_COMPOSITE_CFLAGS=$pkg_cv_XCB_COMPOSITE_CFLAGS
@@ -21556,11 +21439,10 @@ pkg_failed=no
21556{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_DAMAGE" >&5 21439{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_DAMAGE" >&5
21557$as_echo_n "checking for XCB_DAMAGE... " >&6; } 21440$as_echo_n "checking for XCB_DAMAGE... " >&6; }
21558 21441
21559if test -n "$PKG_CONFIG"; then 21442if test -n "$XCB_DAMAGE_CFLAGS"; then
21560 if test -n "$XCB_DAMAGE_CFLAGS"; then 21443 pkg_cv_XCB_DAMAGE_CFLAGS="$XCB_DAMAGE_CFLAGS"
21561 pkg_cv_XCB_DAMAGE_CFLAGS="$XCB_DAMAGE_CFLAGS" 21444 elif test -n "$PKG_CONFIG"; then
21562 else 21445 if test -n "$PKG_CONFIG" && \
21563 if test -n "$PKG_CONFIG" && \
21564 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-damage\""; } >&5 21446 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-damage\""; } >&5
21565 ($PKG_CONFIG --exists --print-errors "xcb-damage") 2>&5 21447 ($PKG_CONFIG --exists --print-errors "xcb-damage") 2>&5
21566 ac_status=$? 21448 ac_status=$?
@@ -21570,15 +21452,13 @@ if test -n "$PKG_CONFIG"; then
21570else 21452else
21571 pkg_failed=yes 21453 pkg_failed=yes
21572fi 21454fi
21573 fi 21455 else
21574else 21456 pkg_failed=untried
21575 pkg_failed=untried
21576fi 21457fi
21577if test -n "$PKG_CONFIG"; then 21458if test -n "$XCB_DAMAGE_LIBS"; then
21578 if test -n "$XCB_DAMAGE_LIBS"; then 21459 pkg_cv_XCB_DAMAGE_LIBS="$XCB_DAMAGE_LIBS"
21579 pkg_cv_XCB_DAMAGE_LIBS="$XCB_DAMAGE_LIBS" 21460 elif test -n "$PKG_CONFIG"; then
21580 else 21461 if test -n "$PKG_CONFIG" && \
21581 if test -n "$PKG_CONFIG" && \
21582 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-damage\""; } >&5 21462 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-damage\""; } >&5
21583 ($PKG_CONFIG --exists --print-errors "xcb-damage") 2>&5 21463 ($PKG_CONFIG --exists --print-errors "xcb-damage") 2>&5
21584 ac_status=$? 21464 ac_status=$?
@@ -21588,14 +21468,15 @@ if test -n "$PKG_CONFIG"; then
21588else 21468else
21589 pkg_failed=yes 21469 pkg_failed=yes
21590fi 21470fi
21591 fi 21471 else
21592else 21472 pkg_failed=untried
21593 pkg_failed=untried
21594fi 21473fi
21595 21474
21596 21475
21597 21476
21598if test $pkg_failed = yes; then 21477if test $pkg_failed = yes; then
21478 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21479$as_echo "no" >&6; }
21599 21480
21600if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21481if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21601 _pkg_short_errors_supported=yes 21482 _pkg_short_errors_supported=yes
@@ -21603,17 +21484,17 @@ else
21603 _pkg_short_errors_supported=no 21484 _pkg_short_errors_supported=no
21604fi 21485fi
21605 if test $_pkg_short_errors_supported = yes; then 21486 if test $_pkg_short_errors_supported = yes; then
21606 XCB_DAMAGE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-damage"` 21487 XCB_DAMAGE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-damage" 2>&1`
21607 else 21488 else
21608 XCB_DAMAGE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-damage"` 21489 XCB_DAMAGE_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-damage" 2>&1`
21609 fi 21490 fi
21610 # Put the nasty error message in config.log where it belongs 21491 # Put the nasty error message in config.log where it belongs
21611 echo "$XCB_DAMAGE_PKG_ERRORS" >&5 21492 echo "$XCB_DAMAGE_PKG_ERRORS" >&5
21612 21493
21613 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 21494 have_ecore_x_xcb_damage="no"
21614$as_echo "no" >&6; }
21615 have_ecore_x_xcb_damage="no"
21616elif test $pkg_failed = untried; then 21495elif test $pkg_failed = untried; then
21496 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21497$as_echo "no" >&6; }
21617 have_ecore_x_xcb_damage="no" 21498 have_ecore_x_xcb_damage="no"
21618else 21499else
21619 XCB_DAMAGE_CFLAGS=$pkg_cv_XCB_DAMAGE_CFLAGS 21500 XCB_DAMAGE_CFLAGS=$pkg_cv_XCB_DAMAGE_CFLAGS
@@ -21638,11 +21519,10 @@ pkg_failed=no
21638{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_DPMS" >&5 21519{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_DPMS" >&5
21639$as_echo_n "checking for XCB_DPMS... " >&6; } 21520$as_echo_n "checking for XCB_DPMS... " >&6; }
21640 21521
21641if test -n "$PKG_CONFIG"; then 21522if test -n "$XCB_DPMS_CFLAGS"; then
21642 if test -n "$XCB_DPMS_CFLAGS"; then 21523 pkg_cv_XCB_DPMS_CFLAGS="$XCB_DPMS_CFLAGS"
21643 pkg_cv_XCB_DPMS_CFLAGS="$XCB_DPMS_CFLAGS" 21524 elif test -n "$PKG_CONFIG"; then
21644 else 21525 if test -n "$PKG_CONFIG" && \
21645 if test -n "$PKG_CONFIG" && \
21646 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-dpms\""; } >&5 21526 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-dpms\""; } >&5
21647 ($PKG_CONFIG --exists --print-errors "xcb-dpms") 2>&5 21527 ($PKG_CONFIG --exists --print-errors "xcb-dpms") 2>&5
21648 ac_status=$? 21528 ac_status=$?
@@ -21652,15 +21532,13 @@ if test -n "$PKG_CONFIG"; then
21652else 21532else
21653 pkg_failed=yes 21533 pkg_failed=yes
21654fi 21534fi
21655 fi 21535 else
21656else 21536 pkg_failed=untried
21657 pkg_failed=untried
21658fi 21537fi
21659if test -n "$PKG_CONFIG"; then 21538if test -n "$XCB_DPMS_LIBS"; then
21660 if test -n "$XCB_DPMS_LIBS"; then 21539 pkg_cv_XCB_DPMS_LIBS="$XCB_DPMS_LIBS"
21661 pkg_cv_XCB_DPMS_LIBS="$XCB_DPMS_LIBS" 21540 elif test -n "$PKG_CONFIG"; then
21662 else 21541 if test -n "$PKG_CONFIG" && \
21663 if test -n "$PKG_CONFIG" && \
21664 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-dpms\""; } >&5 21542 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-dpms\""; } >&5
21665 ($PKG_CONFIG --exists --print-errors "xcb-dpms") 2>&5 21543 ($PKG_CONFIG --exists --print-errors "xcb-dpms") 2>&5
21666 ac_status=$? 21544 ac_status=$?
@@ -21670,14 +21548,15 @@ if test -n "$PKG_CONFIG"; then
21670else 21548else
21671 pkg_failed=yes 21549 pkg_failed=yes
21672fi 21550fi
21673 fi 21551 else
21674else 21552 pkg_failed=untried
21675 pkg_failed=untried
21676fi 21553fi
21677 21554
21678 21555
21679 21556
21680if test $pkg_failed = yes; then 21557if test $pkg_failed = yes; then
21558 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21559$as_echo "no" >&6; }
21681 21560
21682if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21561if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21683 _pkg_short_errors_supported=yes 21562 _pkg_short_errors_supported=yes
@@ -21685,17 +21564,17 @@ else
21685 _pkg_short_errors_supported=no 21564 _pkg_short_errors_supported=no
21686fi 21565fi
21687 if test $_pkg_short_errors_supported = yes; then 21566 if test $_pkg_short_errors_supported = yes; then
21688 XCB_DPMS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-dpms"` 21567 XCB_DPMS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-dpms" 2>&1`
21689 else 21568 else
21690 XCB_DPMS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-dpms"` 21569 XCB_DPMS_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-dpms" 2>&1`
21691 fi 21570 fi
21692 # Put the nasty error message in config.log where it belongs 21571 # Put the nasty error message in config.log where it belongs
21693 echo "$XCB_DPMS_PKG_ERRORS" >&5 21572 echo "$XCB_DPMS_PKG_ERRORS" >&5
21694 21573
21695 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 21574 have_ecore_x_xcb_dpms="no"
21696$as_echo "no" >&6; }
21697 have_ecore_x_xcb_dpms="no"
21698elif test $pkg_failed = untried; then 21575elif test $pkg_failed = untried; then
21576 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21577$as_echo "no" >&6; }
21699 have_ecore_x_xcb_dpms="no" 21578 have_ecore_x_xcb_dpms="no"
21700else 21579else
21701 XCB_DPMS_CFLAGS=$pkg_cv_XCB_DPMS_CFLAGS 21580 XCB_DPMS_CFLAGS=$pkg_cv_XCB_DPMS_CFLAGS
@@ -21720,11 +21599,10 @@ pkg_failed=no
21720{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_RANDR" >&5 21599{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_RANDR" >&5
21721$as_echo_n "checking for XCB_RANDR... " >&6; } 21600$as_echo_n "checking for XCB_RANDR... " >&6; }
21722 21601
21723if test -n "$PKG_CONFIG"; then 21602if test -n "$XCB_RANDR_CFLAGS"; then
21724 if test -n "$XCB_RANDR_CFLAGS"; then 21603 pkg_cv_XCB_RANDR_CFLAGS="$XCB_RANDR_CFLAGS"
21725 pkg_cv_XCB_RANDR_CFLAGS="$XCB_RANDR_CFLAGS" 21604 elif test -n "$PKG_CONFIG"; then
21726 else 21605 if test -n "$PKG_CONFIG" && \
21727 if test -n "$PKG_CONFIG" && \
21728 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-randr\""; } >&5 21606 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-randr\""; } >&5
21729 ($PKG_CONFIG --exists --print-errors "xcb-randr") 2>&5 21607 ($PKG_CONFIG --exists --print-errors "xcb-randr") 2>&5
21730 ac_status=$? 21608 ac_status=$?
@@ -21734,15 +21612,13 @@ if test -n "$PKG_CONFIG"; then
21734else 21612else
21735 pkg_failed=yes 21613 pkg_failed=yes
21736fi 21614fi
21737 fi 21615 else
21738else 21616 pkg_failed=untried
21739 pkg_failed=untried
21740fi 21617fi
21741if test -n "$PKG_CONFIG"; then 21618if test -n "$XCB_RANDR_LIBS"; then
21742 if test -n "$XCB_RANDR_LIBS"; then 21619 pkg_cv_XCB_RANDR_LIBS="$XCB_RANDR_LIBS"
21743 pkg_cv_XCB_RANDR_LIBS="$XCB_RANDR_LIBS" 21620 elif test -n "$PKG_CONFIG"; then
21744 else 21621 if test -n "$PKG_CONFIG" && \
21745 if test -n "$PKG_CONFIG" && \
21746 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-randr\""; } >&5 21622 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-randr\""; } >&5
21747 ($PKG_CONFIG --exists --print-errors "xcb-randr") 2>&5 21623 ($PKG_CONFIG --exists --print-errors "xcb-randr") 2>&5
21748 ac_status=$? 21624 ac_status=$?
@@ -21752,14 +21628,15 @@ if test -n "$PKG_CONFIG"; then
21752else 21628else
21753 pkg_failed=yes 21629 pkg_failed=yes
21754fi 21630fi
21755 fi 21631 else
21756else 21632 pkg_failed=untried
21757 pkg_failed=untried
21758fi 21633fi
21759 21634
21760 21635
21761 21636
21762if test $pkg_failed = yes; then 21637if test $pkg_failed = yes; then
21638 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21639$as_echo "no" >&6; }
21763 21640
21764if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21641if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21765 _pkg_short_errors_supported=yes 21642 _pkg_short_errors_supported=yes
@@ -21767,17 +21644,17 @@ else
21767 _pkg_short_errors_supported=no 21644 _pkg_short_errors_supported=no
21768fi 21645fi
21769 if test $_pkg_short_errors_supported = yes; then 21646 if test $_pkg_short_errors_supported = yes; then
21770 XCB_RANDR_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-randr"` 21647 XCB_RANDR_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-randr" 2>&1`
21771 else 21648 else
21772 XCB_RANDR_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-randr"` 21649 XCB_RANDR_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-randr" 2>&1`
21773 fi 21650 fi
21774 # Put the nasty error message in config.log where it belongs 21651 # Put the nasty error message in config.log where it belongs
21775 echo "$XCB_RANDR_PKG_ERRORS" >&5 21652 echo "$XCB_RANDR_PKG_ERRORS" >&5
21776 21653
21777 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 21654 have_ecore_x_xcb_randr="no"
21778$as_echo "no" >&6; }
21779 have_ecore_x_xcb_randr="no"
21780elif test $pkg_failed = untried; then 21655elif test $pkg_failed = untried; then
21656 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21657$as_echo "no" >&6; }
21781 have_ecore_x_xcb_randr="no" 21658 have_ecore_x_xcb_randr="no"
21782else 21659else
21783 XCB_RANDR_CFLAGS=$pkg_cv_XCB_RANDR_CFLAGS 21660 XCB_RANDR_CFLAGS=$pkg_cv_XCB_RANDR_CFLAGS
@@ -21802,11 +21679,10 @@ pkg_failed=no
21802{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_RENDER" >&5 21679{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_RENDER" >&5
21803$as_echo_n "checking for XCB_RENDER... " >&6; } 21680$as_echo_n "checking for XCB_RENDER... " >&6; }
21804 21681
21805if test -n "$PKG_CONFIG"; then 21682if test -n "$XCB_RENDER_CFLAGS"; then
21806 if test -n "$XCB_RENDER_CFLAGS"; then 21683 pkg_cv_XCB_RENDER_CFLAGS="$XCB_RENDER_CFLAGS"
21807 pkg_cv_XCB_RENDER_CFLAGS="$XCB_RENDER_CFLAGS" 21684 elif test -n "$PKG_CONFIG"; then
21808 else 21685 if test -n "$PKG_CONFIG" && \
21809 if test -n "$PKG_CONFIG" && \
21810 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-render xcb-renderutil\""; } >&5 21686 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-render xcb-renderutil\""; } >&5
21811 ($PKG_CONFIG --exists --print-errors "xcb-render xcb-renderutil") 2>&5 21687 ($PKG_CONFIG --exists --print-errors "xcb-render xcb-renderutil") 2>&5
21812 ac_status=$? 21688 ac_status=$?
@@ -21816,15 +21692,13 @@ if test -n "$PKG_CONFIG"; then
21816else 21692else
21817 pkg_failed=yes 21693 pkg_failed=yes
21818fi 21694fi
21819 fi 21695 else
21820else 21696 pkg_failed=untried
21821 pkg_failed=untried
21822fi 21697fi
21823if test -n "$PKG_CONFIG"; then 21698if test -n "$XCB_RENDER_LIBS"; then
21824 if test -n "$XCB_RENDER_LIBS"; then 21699 pkg_cv_XCB_RENDER_LIBS="$XCB_RENDER_LIBS"
21825 pkg_cv_XCB_RENDER_LIBS="$XCB_RENDER_LIBS" 21700 elif test -n "$PKG_CONFIG"; then
21826 else 21701 if test -n "$PKG_CONFIG" && \
21827 if test -n "$PKG_CONFIG" && \
21828 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-render xcb-renderutil\""; } >&5 21702 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-render xcb-renderutil\""; } >&5
21829 ($PKG_CONFIG --exists --print-errors "xcb-render xcb-renderutil") 2>&5 21703 ($PKG_CONFIG --exists --print-errors "xcb-render xcb-renderutil") 2>&5
21830 ac_status=$? 21704 ac_status=$?
@@ -21834,14 +21708,15 @@ if test -n "$PKG_CONFIG"; then
21834else 21708else
21835 pkg_failed=yes 21709 pkg_failed=yes
21836fi 21710fi
21837 fi 21711 else
21838else 21712 pkg_failed=untried
21839 pkg_failed=untried
21840fi 21713fi
21841 21714
21842 21715
21843 21716
21844if test $pkg_failed = yes; then 21717if test $pkg_failed = yes; then
21718 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21719$as_echo "no" >&6; }
21845 21720
21846if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21721if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21847 _pkg_short_errors_supported=yes 21722 _pkg_short_errors_supported=yes
@@ -21849,17 +21724,17 @@ else
21849 _pkg_short_errors_supported=no 21724 _pkg_short_errors_supported=no
21850fi 21725fi
21851 if test $_pkg_short_errors_supported = yes; then 21726 if test $_pkg_short_errors_supported = yes; then
21852 XCB_RENDER_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-render xcb-renderutil"` 21727 XCB_RENDER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-render xcb-renderutil" 2>&1`
21853 else 21728 else
21854 XCB_RENDER_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-render xcb-renderutil"` 21729 XCB_RENDER_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-render xcb-renderutil" 2>&1`
21855 fi 21730 fi
21856 # Put the nasty error message in config.log where it belongs 21731 # Put the nasty error message in config.log where it belongs
21857 echo "$XCB_RENDER_PKG_ERRORS" >&5 21732 echo "$XCB_RENDER_PKG_ERRORS" >&5
21858 21733
21859 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 21734 have_ecore_x_xcb_render="no"
21860$as_echo "no" >&6; }
21861 have_ecore_x_xcb_render="no"
21862elif test $pkg_failed = untried; then 21735elif test $pkg_failed = untried; then
21736 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21737$as_echo "no" >&6; }
21863 have_ecore_x_xcb_render="no" 21738 have_ecore_x_xcb_render="no"
21864else 21739else
21865 XCB_RENDER_CFLAGS=$pkg_cv_XCB_RENDER_CFLAGS 21740 XCB_RENDER_CFLAGS=$pkg_cv_XCB_RENDER_CFLAGS
@@ -21884,11 +21759,10 @@ pkg_failed=no
21884{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_SCREENSAVER" >&5 21759{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_SCREENSAVER" >&5
21885$as_echo_n "checking for XCB_SCREENSAVER... " >&6; } 21760$as_echo_n "checking for XCB_SCREENSAVER... " >&6; }
21886 21761
21887if test -n "$PKG_CONFIG"; then 21762if test -n "$XCB_SCREENSAVER_CFLAGS"; then
21888 if test -n "$XCB_SCREENSAVER_CFLAGS"; then 21763 pkg_cv_XCB_SCREENSAVER_CFLAGS="$XCB_SCREENSAVER_CFLAGS"
21889 pkg_cv_XCB_SCREENSAVER_CFLAGS="$XCB_SCREENSAVER_CFLAGS" 21764 elif test -n "$PKG_CONFIG"; then
21890 else 21765 if test -n "$PKG_CONFIG" && \
21891 if test -n "$PKG_CONFIG" && \
21892 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-screensaver\""; } >&5 21766 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-screensaver\""; } >&5
21893 ($PKG_CONFIG --exists --print-errors "xcb-screensaver") 2>&5 21767 ($PKG_CONFIG --exists --print-errors "xcb-screensaver") 2>&5
21894 ac_status=$? 21768 ac_status=$?
@@ -21898,15 +21772,13 @@ if test -n "$PKG_CONFIG"; then
21898else 21772else
21899 pkg_failed=yes 21773 pkg_failed=yes
21900fi 21774fi
21901 fi 21775 else
21902else 21776 pkg_failed=untried
21903 pkg_failed=untried
21904fi 21777fi
21905if test -n "$PKG_CONFIG"; then 21778if test -n "$XCB_SCREENSAVER_LIBS"; then
21906 if test -n "$XCB_SCREENSAVER_LIBS"; then 21779 pkg_cv_XCB_SCREENSAVER_LIBS="$XCB_SCREENSAVER_LIBS"
21907 pkg_cv_XCB_SCREENSAVER_LIBS="$XCB_SCREENSAVER_LIBS" 21780 elif test -n "$PKG_CONFIG"; then
21908 else 21781 if test -n "$PKG_CONFIG" && \
21909 if test -n "$PKG_CONFIG" && \
21910 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-screensaver\""; } >&5 21782 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-screensaver\""; } >&5
21911 ($PKG_CONFIG --exists --print-errors "xcb-screensaver") 2>&5 21783 ($PKG_CONFIG --exists --print-errors "xcb-screensaver") 2>&5
21912 ac_status=$? 21784 ac_status=$?
@@ -21916,14 +21788,15 @@ if test -n "$PKG_CONFIG"; then
21916else 21788else
21917 pkg_failed=yes 21789 pkg_failed=yes
21918fi 21790fi
21919 fi 21791 else
21920else 21792 pkg_failed=untried
21921 pkg_failed=untried
21922fi 21793fi
21923 21794
21924 21795
21925 21796
21926if test $pkg_failed = yes; then 21797if test $pkg_failed = yes; then
21798 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21799$as_echo "no" >&6; }
21927 21800
21928if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21801if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21929 _pkg_short_errors_supported=yes 21802 _pkg_short_errors_supported=yes
@@ -21931,17 +21804,17 @@ else
21931 _pkg_short_errors_supported=no 21804 _pkg_short_errors_supported=no
21932fi 21805fi
21933 if test $_pkg_short_errors_supported = yes; then 21806 if test $_pkg_short_errors_supported = yes; then
21934 XCB_SCREENSAVER_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-screensaver"` 21807 XCB_SCREENSAVER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-screensaver" 2>&1`
21935 else 21808 else
21936 XCB_SCREENSAVER_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-screensaver"` 21809 XCB_SCREENSAVER_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-screensaver" 2>&1`
21937 fi 21810 fi
21938 # Put the nasty error message in config.log where it belongs 21811 # Put the nasty error message in config.log where it belongs
21939 echo "$XCB_SCREENSAVER_PKG_ERRORS" >&5 21812 echo "$XCB_SCREENSAVER_PKG_ERRORS" >&5
21940 21813
21941 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 21814 have_ecore_x_xcb_screensaver="no"
21942$as_echo "no" >&6; }
21943 have_ecore_x_xcb_screensaver="no"
21944elif test $pkg_failed = untried; then 21815elif test $pkg_failed = untried; then
21816 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21817$as_echo "no" >&6; }
21945 have_ecore_x_xcb_screensaver="no" 21818 have_ecore_x_xcb_screensaver="no"
21946else 21819else
21947 XCB_SCREENSAVER_CFLAGS=$pkg_cv_XCB_SCREENSAVER_CFLAGS 21820 XCB_SCREENSAVER_CFLAGS=$pkg_cv_XCB_SCREENSAVER_CFLAGS
@@ -21966,11 +21839,10 @@ pkg_failed=no
21966{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_SHAPE" >&5 21839{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_SHAPE" >&5
21967$as_echo_n "checking for XCB_SHAPE... " >&6; } 21840$as_echo_n "checking for XCB_SHAPE... " >&6; }
21968 21841
21969if test -n "$PKG_CONFIG"; then 21842if test -n "$XCB_SHAPE_CFLAGS"; then
21970 if test -n "$XCB_SHAPE_CFLAGS"; then 21843 pkg_cv_XCB_SHAPE_CFLAGS="$XCB_SHAPE_CFLAGS"
21971 pkg_cv_XCB_SHAPE_CFLAGS="$XCB_SHAPE_CFLAGS" 21844 elif test -n "$PKG_CONFIG"; then
21972 else 21845 if test -n "$PKG_CONFIG" && \
21973 if test -n "$PKG_CONFIG" && \
21974 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-shape\""; } >&5 21846 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-shape\""; } >&5
21975 ($PKG_CONFIG --exists --print-errors "xcb-shape") 2>&5 21847 ($PKG_CONFIG --exists --print-errors "xcb-shape") 2>&5
21976 ac_status=$? 21848 ac_status=$?
@@ -21980,15 +21852,13 @@ if test -n "$PKG_CONFIG"; then
21980else 21852else
21981 pkg_failed=yes 21853 pkg_failed=yes
21982fi 21854fi
21983 fi 21855 else
21984else 21856 pkg_failed=untried
21985 pkg_failed=untried
21986fi 21857fi
21987if test -n "$PKG_CONFIG"; then 21858if test -n "$XCB_SHAPE_LIBS"; then
21988 if test -n "$XCB_SHAPE_LIBS"; then 21859 pkg_cv_XCB_SHAPE_LIBS="$XCB_SHAPE_LIBS"
21989 pkg_cv_XCB_SHAPE_LIBS="$XCB_SHAPE_LIBS" 21860 elif test -n "$PKG_CONFIG"; then
21990 else 21861 if test -n "$PKG_CONFIG" && \
21991 if test -n "$PKG_CONFIG" && \
21992 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-shape\""; } >&5 21862 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-shape\""; } >&5
21993 ($PKG_CONFIG --exists --print-errors "xcb-shape") 2>&5 21863 ($PKG_CONFIG --exists --print-errors "xcb-shape") 2>&5
21994 ac_status=$? 21864 ac_status=$?
@@ -21998,14 +21868,15 @@ if test -n "$PKG_CONFIG"; then
21998else 21868else
21999 pkg_failed=yes 21869 pkg_failed=yes
22000fi 21870fi
22001 fi 21871 else
22002else 21872 pkg_failed=untried
22003 pkg_failed=untried
22004fi 21873fi
22005 21874
22006 21875
22007 21876
22008if test $pkg_failed = yes; then 21877if test $pkg_failed = yes; then
21878 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21879$as_echo "no" >&6; }
22009 21880
22010if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21881if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
22011 _pkg_short_errors_supported=yes 21882 _pkg_short_errors_supported=yes
@@ -22013,17 +21884,17 @@ else
22013 _pkg_short_errors_supported=no 21884 _pkg_short_errors_supported=no
22014fi 21885fi
22015 if test $_pkg_short_errors_supported = yes; then 21886 if test $_pkg_short_errors_supported = yes; then
22016 XCB_SHAPE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-shape"` 21887 XCB_SHAPE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-shape" 2>&1`
22017 else 21888 else
22018 XCB_SHAPE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-shape"` 21889 XCB_SHAPE_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-shape" 2>&1`
22019 fi 21890 fi
22020 # Put the nasty error message in config.log where it belongs 21891 # Put the nasty error message in config.log where it belongs
22021 echo "$XCB_SHAPE_PKG_ERRORS" >&5 21892 echo "$XCB_SHAPE_PKG_ERRORS" >&5
22022 21893
22023 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 21894 have_ecore_x_xcb_shape="no"
22024$as_echo "no" >&6; }
22025 have_ecore_x_xcb_shape="no"
22026elif test $pkg_failed = untried; then 21895elif test $pkg_failed = untried; then
21896 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21897$as_echo "no" >&6; }
22027 have_ecore_x_xcb_shape="no" 21898 have_ecore_x_xcb_shape="no"
22028else 21899else
22029 XCB_SHAPE_CFLAGS=$pkg_cv_XCB_SHAPE_CFLAGS 21900 XCB_SHAPE_CFLAGS=$pkg_cv_XCB_SHAPE_CFLAGS
@@ -22048,11 +21919,10 @@ pkg_failed=no
22048{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XGESTURE" >&5 21919{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XGESTURE" >&5
22049$as_echo_n "checking for XCB_XGESTURE... " >&6; } 21920$as_echo_n "checking for XCB_XGESTURE... " >&6; }
22050 21921
22051if test -n "$PKG_CONFIG"; then 21922if test -n "$XCB_XGESTURE_CFLAGS"; then
22052 if test -n "$XCB_XGESTURE_CFLAGS"; then 21923 pkg_cv_XCB_XGESTURE_CFLAGS="$XCB_XGESTURE_CFLAGS"
22053 pkg_cv_XCB_XGESTURE_CFLAGS="$XCB_XGESTURE_CFLAGS" 21924 elif test -n "$PKG_CONFIG"; then
22054 else 21925 if test -n "$PKG_CONFIG" && \
22055 if test -n "$PKG_CONFIG" && \
22056 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-gesture\""; } >&5 21926 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-gesture\""; } >&5
22057 ($PKG_CONFIG --exists --print-errors "xcb-gesture") 2>&5 21927 ($PKG_CONFIG --exists --print-errors "xcb-gesture") 2>&5
22058 ac_status=$? 21928 ac_status=$?
@@ -22062,15 +21932,13 @@ if test -n "$PKG_CONFIG"; then
22062else 21932else
22063 pkg_failed=yes 21933 pkg_failed=yes
22064fi 21934fi
22065 fi 21935 else
22066else 21936 pkg_failed=untried
22067 pkg_failed=untried
22068fi 21937fi
22069if test -n "$PKG_CONFIG"; then 21938if test -n "$XCB_XGESTURE_LIBS"; then
22070 if test -n "$XCB_XGESTURE_LIBS"; then 21939 pkg_cv_XCB_XGESTURE_LIBS="$XCB_XGESTURE_LIBS"
22071 pkg_cv_XCB_XGESTURE_LIBS="$XCB_XGESTURE_LIBS" 21940 elif test -n "$PKG_CONFIG"; then
22072 else 21941 if test -n "$PKG_CONFIG" && \
22073 if test -n "$PKG_CONFIG" && \
22074 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-gesture\""; } >&5 21942 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-gesture\""; } >&5
22075 ($PKG_CONFIG --exists --print-errors "xcb-gesture") 2>&5 21943 ($PKG_CONFIG --exists --print-errors "xcb-gesture") 2>&5
22076 ac_status=$? 21944 ac_status=$?
@@ -22080,14 +21948,15 @@ if test -n "$PKG_CONFIG"; then
22080else 21948else
22081 pkg_failed=yes 21949 pkg_failed=yes
22082fi 21950fi
22083 fi 21951 else
22084else 21952 pkg_failed=untried
22085 pkg_failed=untried
22086fi 21953fi
22087 21954
22088 21955
22089 21956
22090if test $pkg_failed = yes; then 21957if test $pkg_failed = yes; then
21958 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21959$as_echo "no" >&6; }
22091 21960
22092if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21961if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
22093 _pkg_short_errors_supported=yes 21962 _pkg_short_errors_supported=yes
@@ -22095,17 +21964,17 @@ else
22095 _pkg_short_errors_supported=no 21964 _pkg_short_errors_supported=no
22096fi 21965fi
22097 if test $_pkg_short_errors_supported = yes; then 21966 if test $_pkg_short_errors_supported = yes; then
22098 XCB_XGESTURE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-gesture"` 21967 XCB_XGESTURE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-gesture" 2>&1`
22099 else 21968 else
22100 XCB_XGESTURE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-gesture"` 21969 XCB_XGESTURE_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-gesture" 2>&1`
22101 fi 21970 fi
22102 # Put the nasty error message in config.log where it belongs 21971 # Put the nasty error message in config.log where it belongs
22103 echo "$XCB_XGESTURE_PKG_ERRORS" >&5 21972 echo "$XCB_XGESTURE_PKG_ERRORS" >&5
22104 21973
22105 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 21974 have_ecore_x_xcb_gesture="no"
22106$as_echo "no" >&6; }
22107 have_ecore_x_xcb_gesture="no"
22108elif test $pkg_failed = untried; then 21975elif test $pkg_failed = untried; then
21976 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21977$as_echo "no" >&6; }
22109 have_ecore_x_xcb_gesture="no" 21978 have_ecore_x_xcb_gesture="no"
22110else 21979else
22111 XCB_XGESTURE_CFLAGS=$pkg_cv_XCB_XGESTURE_CFLAGS 21980 XCB_XGESTURE_CFLAGS=$pkg_cv_XCB_XGESTURE_CFLAGS
@@ -22130,11 +21999,10 @@ pkg_failed=no
22130{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_SYNC" >&5 21999{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_SYNC" >&5
22131$as_echo_n "checking for XCB_SYNC... " >&6; } 22000$as_echo_n "checking for XCB_SYNC... " >&6; }
22132 22001
22133if test -n "$PKG_CONFIG"; then 22002if test -n "$XCB_SYNC_CFLAGS"; then
22134 if test -n "$XCB_SYNC_CFLAGS"; then 22003 pkg_cv_XCB_SYNC_CFLAGS="$XCB_SYNC_CFLAGS"
22135 pkg_cv_XCB_SYNC_CFLAGS="$XCB_SYNC_CFLAGS" 22004 elif test -n "$PKG_CONFIG"; then
22136 else 22005 if test -n "$PKG_CONFIG" && \
22137 if test -n "$PKG_CONFIG" && \
22138 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-sync\""; } >&5 22006 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-sync\""; } >&5
22139 ($PKG_CONFIG --exists --print-errors "xcb-sync") 2>&5 22007 ($PKG_CONFIG --exists --print-errors "xcb-sync") 2>&5
22140 ac_status=$? 22008 ac_status=$?
@@ -22144,15 +22012,13 @@ if test -n "$PKG_CONFIG"; then
22144else 22012else
22145 pkg_failed=yes 22013 pkg_failed=yes
22146fi 22014fi
22147 fi 22015 else
22148else 22016 pkg_failed=untried
22149 pkg_failed=untried
22150fi 22017fi
22151if test -n "$PKG_CONFIG"; then 22018if test -n "$XCB_SYNC_LIBS"; then
22152 if test -n "$XCB_SYNC_LIBS"; then 22019 pkg_cv_XCB_SYNC_LIBS="$XCB_SYNC_LIBS"
22153 pkg_cv_XCB_SYNC_LIBS="$XCB_SYNC_LIBS" 22020 elif test -n "$PKG_CONFIG"; then
22154 else 22021 if test -n "$PKG_CONFIG" && \
22155 if test -n "$PKG_CONFIG" && \
22156 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-sync\""; } >&5 22022 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-sync\""; } >&5
22157 ($PKG_CONFIG --exists --print-errors "xcb-sync") 2>&5 22023 ($PKG_CONFIG --exists --print-errors "xcb-sync") 2>&5
22158 ac_status=$? 22024 ac_status=$?
@@ -22162,14 +22028,15 @@ if test -n "$PKG_CONFIG"; then
22162else 22028else
22163 pkg_failed=yes 22029 pkg_failed=yes
22164fi 22030fi
22165 fi 22031 else
22166else 22032 pkg_failed=untried
22167 pkg_failed=untried
22168fi 22033fi
22169 22034
22170 22035
22171 22036
22172if test $pkg_failed = yes; then 22037if test $pkg_failed = yes; then
22038 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22039$as_echo "no" >&6; }
22173 22040
22174if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 22041if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
22175 _pkg_short_errors_supported=yes 22042 _pkg_short_errors_supported=yes
@@ -22177,17 +22044,17 @@ else
22177 _pkg_short_errors_supported=no 22044 _pkg_short_errors_supported=no
22178fi 22045fi
22179 if test $_pkg_short_errors_supported = yes; then 22046 if test $_pkg_short_errors_supported = yes; then
22180 XCB_SYNC_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-sync"` 22047 XCB_SYNC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-sync" 2>&1`
22181 else 22048 else
22182 XCB_SYNC_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-sync"` 22049 XCB_SYNC_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-sync" 2>&1`
22183 fi 22050 fi
22184 # Put the nasty error message in config.log where it belongs 22051 # Put the nasty error message in config.log where it belongs
22185 echo "$XCB_SYNC_PKG_ERRORS" >&5 22052 echo "$XCB_SYNC_PKG_ERRORS" >&5
22186 22053
22187 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 22054 have_ecore_x_xcb_sync="no"
22188$as_echo "no" >&6; }
22189 have_ecore_x_xcb_sync="no"
22190elif test $pkg_failed = untried; then 22055elif test $pkg_failed = untried; then
22056 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22057$as_echo "no" >&6; }
22191 have_ecore_x_xcb_sync="no" 22058 have_ecore_x_xcb_sync="no"
22192else 22059else
22193 XCB_SYNC_CFLAGS=$pkg_cv_XCB_SYNC_CFLAGS 22060 XCB_SYNC_CFLAGS=$pkg_cv_XCB_SYNC_CFLAGS
@@ -22212,11 +22079,10 @@ pkg_failed=no
22212{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XFIXES" >&5 22079{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XFIXES" >&5
22213$as_echo_n "checking for XCB_XFIXES... " >&6; } 22080$as_echo_n "checking for XCB_XFIXES... " >&6; }
22214 22081
22215if test -n "$PKG_CONFIG"; then 22082if test -n "$XCB_XFIXES_CFLAGS"; then
22216 if test -n "$XCB_XFIXES_CFLAGS"; then 22083 pkg_cv_XCB_XFIXES_CFLAGS="$XCB_XFIXES_CFLAGS"
22217 pkg_cv_XCB_XFIXES_CFLAGS="$XCB_XFIXES_CFLAGS" 22084 elif test -n "$PKG_CONFIG"; then
22218 else 22085 if test -n "$PKG_CONFIG" && \
22219 if test -n "$PKG_CONFIG" && \
22220 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xfixes\""; } >&5 22086 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xfixes\""; } >&5
22221 ($PKG_CONFIG --exists --print-errors "xcb-xfixes") 2>&5 22087 ($PKG_CONFIG --exists --print-errors "xcb-xfixes") 2>&5
22222 ac_status=$? 22088 ac_status=$?
@@ -22226,15 +22092,13 @@ if test -n "$PKG_CONFIG"; then
22226else 22092else
22227 pkg_failed=yes 22093 pkg_failed=yes
22228fi 22094fi
22229 fi 22095 else
22230else 22096 pkg_failed=untried
22231 pkg_failed=untried
22232fi 22097fi
22233if test -n "$PKG_CONFIG"; then 22098if test -n "$XCB_XFIXES_LIBS"; then
22234 if test -n "$XCB_XFIXES_LIBS"; then 22099 pkg_cv_XCB_XFIXES_LIBS="$XCB_XFIXES_LIBS"
22235 pkg_cv_XCB_XFIXES_LIBS="$XCB_XFIXES_LIBS" 22100 elif test -n "$PKG_CONFIG"; then
22236 else 22101 if test -n "$PKG_CONFIG" && \
22237 if test -n "$PKG_CONFIG" && \
22238 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xfixes\""; } >&5 22102 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xfixes\""; } >&5
22239 ($PKG_CONFIG --exists --print-errors "xcb-xfixes") 2>&5 22103 ($PKG_CONFIG --exists --print-errors "xcb-xfixes") 2>&5
22240 ac_status=$? 22104 ac_status=$?
@@ -22244,14 +22108,15 @@ if test -n "$PKG_CONFIG"; then
22244else 22108else
22245 pkg_failed=yes 22109 pkg_failed=yes
22246fi 22110fi
22247 fi 22111 else
22248else 22112 pkg_failed=untried
22249 pkg_failed=untried
22250fi 22113fi
22251 22114
22252 22115
22253 22116
22254if test $pkg_failed = yes; then 22117if test $pkg_failed = yes; then
22118 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22119$as_echo "no" >&6; }
22255 22120
22256if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 22121if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
22257 _pkg_short_errors_supported=yes 22122 _pkg_short_errors_supported=yes
@@ -22259,17 +22124,17 @@ else
22259 _pkg_short_errors_supported=no 22124 _pkg_short_errors_supported=no
22260fi 22125fi
22261 if test $_pkg_short_errors_supported = yes; then 22126 if test $_pkg_short_errors_supported = yes; then
22262 XCB_XFIXES_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-xfixes"` 22127 XCB_XFIXES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-xfixes" 2>&1`
22263 else 22128 else
22264 XCB_XFIXES_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-xfixes"` 22129 XCB_XFIXES_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-xfixes" 2>&1`
22265 fi 22130 fi
22266 # Put the nasty error message in config.log where it belongs 22131 # Put the nasty error message in config.log where it belongs
22267 echo "$XCB_XFIXES_PKG_ERRORS" >&5 22132 echo "$XCB_XFIXES_PKG_ERRORS" >&5
22268 22133
22269 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 22134 have_ecore_x_xcb_xfixes="no"
22270$as_echo "no" >&6; }
22271 have_ecore_x_xcb_xfixes="no"
22272elif test $pkg_failed = untried; then 22135elif test $pkg_failed = untried; then
22136 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22137$as_echo "no" >&6; }
22273 have_ecore_x_xcb_xfixes="no" 22138 have_ecore_x_xcb_xfixes="no"
22274else 22139else
22275 XCB_XFIXES_CFLAGS=$pkg_cv_XCB_XFIXES_CFLAGS 22140 XCB_XFIXES_CFLAGS=$pkg_cv_XCB_XFIXES_CFLAGS
@@ -22294,11 +22159,10 @@ pkg_failed=no
22294{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XINERAMA" >&5 22159{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XINERAMA" >&5
22295$as_echo_n "checking for XCB_XINERAMA... " >&6; } 22160$as_echo_n "checking for XCB_XINERAMA... " >&6; }
22296 22161
22297if test -n "$PKG_CONFIG"; then 22162if test -n "$XCB_XINERAMA_CFLAGS"; then
22298 if test -n "$XCB_XINERAMA_CFLAGS"; then 22163 pkg_cv_XCB_XINERAMA_CFLAGS="$XCB_XINERAMA_CFLAGS"
22299 pkg_cv_XCB_XINERAMA_CFLAGS="$XCB_XINERAMA_CFLAGS" 22164 elif test -n "$PKG_CONFIG"; then
22300 else 22165 if test -n "$PKG_CONFIG" && \
22301 if test -n "$PKG_CONFIG" && \
22302 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xinerama\""; } >&5 22166 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xinerama\""; } >&5
22303 ($PKG_CONFIG --exists --print-errors "xcb-xinerama") 2>&5 22167 ($PKG_CONFIG --exists --print-errors "xcb-xinerama") 2>&5
22304 ac_status=$? 22168 ac_status=$?
@@ -22308,15 +22172,13 @@ if test -n "$PKG_CONFIG"; then
22308else 22172else
22309 pkg_failed=yes 22173 pkg_failed=yes
22310fi 22174fi
22311 fi 22175 else
22312else 22176 pkg_failed=untried
22313 pkg_failed=untried
22314fi 22177fi
22315if test -n "$PKG_CONFIG"; then 22178if test -n "$XCB_XINERAMA_LIBS"; then
22316 if test -n "$XCB_XINERAMA_LIBS"; then 22179 pkg_cv_XCB_XINERAMA_LIBS="$XCB_XINERAMA_LIBS"
22317 pkg_cv_XCB_XINERAMA_LIBS="$XCB_XINERAMA_LIBS" 22180 elif test -n "$PKG_CONFIG"; then
22318 else 22181 if test -n "$PKG_CONFIG" && \
22319 if test -n "$PKG_CONFIG" && \
22320 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xinerama\""; } >&5 22182 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xinerama\""; } >&5
22321 ($PKG_CONFIG --exists --print-errors "xcb-xinerama") 2>&5 22183 ($PKG_CONFIG --exists --print-errors "xcb-xinerama") 2>&5
22322 ac_status=$? 22184 ac_status=$?
@@ -22326,14 +22188,15 @@ if test -n "$PKG_CONFIG"; then
22326else 22188else
22327 pkg_failed=yes 22189 pkg_failed=yes
22328fi 22190fi
22329 fi 22191 else
22330else 22192 pkg_failed=untried
22331 pkg_failed=untried
22332fi 22193fi
22333 22194
22334 22195
22335 22196
22336if test $pkg_failed = yes; then 22197if test $pkg_failed = yes; then
22198 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22199$as_echo "no" >&6; }
22337 22200
22338if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 22201if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
22339 _pkg_short_errors_supported=yes 22202 _pkg_short_errors_supported=yes
@@ -22341,17 +22204,17 @@ else
22341 _pkg_short_errors_supported=no 22204 _pkg_short_errors_supported=no
22342fi 22205fi
22343 if test $_pkg_short_errors_supported = yes; then 22206 if test $_pkg_short_errors_supported = yes; then
22344 XCB_XINERAMA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-xinerama"` 22207 XCB_XINERAMA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-xinerama" 2>&1`
22345 else 22208 else
22346 XCB_XINERAMA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-xinerama"` 22209 XCB_XINERAMA_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-xinerama" 2>&1`
22347 fi 22210 fi
22348 # Put the nasty error message in config.log where it belongs 22211 # Put the nasty error message in config.log where it belongs
22349 echo "$XCB_XINERAMA_PKG_ERRORS" >&5 22212 echo "$XCB_XINERAMA_PKG_ERRORS" >&5
22350 22213
22351 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 22214 have_ecore_x_xcb_xinerama="no"
22352$as_echo "no" >&6; }
22353 have_ecore_x_xcb_xinerama="no"
22354elif test $pkg_failed = untried; then 22215elif test $pkg_failed = untried; then
22216 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22217$as_echo "no" >&6; }
22355 have_ecore_x_xcb_xinerama="no" 22218 have_ecore_x_xcb_xinerama="no"
22356else 22219else
22357 XCB_XINERAMA_CFLAGS=$pkg_cv_XCB_XINERAMA_CFLAGS 22220 XCB_XINERAMA_CFLAGS=$pkg_cv_XCB_XINERAMA_CFLAGS
@@ -22376,11 +22239,10 @@ pkg_failed=no
22376{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XPRINT" >&5 22239{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XPRINT" >&5
22377$as_echo_n "checking for XCB_XPRINT... " >&6; } 22240$as_echo_n "checking for XCB_XPRINT... " >&6; }
22378 22241
22379if test -n "$PKG_CONFIG"; then 22242if test -n "$XCB_XPRINT_CFLAGS"; then
22380 if test -n "$XCB_XPRINT_CFLAGS"; then 22243 pkg_cv_XCB_XPRINT_CFLAGS="$XCB_XPRINT_CFLAGS"
22381 pkg_cv_XCB_XPRINT_CFLAGS="$XCB_XPRINT_CFLAGS" 22244 elif test -n "$PKG_CONFIG"; then
22382 else 22245 if test -n "$PKG_CONFIG" && \
22383 if test -n "$PKG_CONFIG" && \
22384 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xprint\""; } >&5 22246 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xprint\""; } >&5
22385 ($PKG_CONFIG --exists --print-errors "xcb-xprint") 2>&5 22247 ($PKG_CONFIG --exists --print-errors "xcb-xprint") 2>&5
22386 ac_status=$? 22248 ac_status=$?
@@ -22390,15 +22252,13 @@ if test -n "$PKG_CONFIG"; then
22390else 22252else
22391 pkg_failed=yes 22253 pkg_failed=yes
22392fi 22254fi
22393 fi 22255 else
22394else 22256 pkg_failed=untried
22395 pkg_failed=untried
22396fi 22257fi
22397if test -n "$PKG_CONFIG"; then 22258if test -n "$XCB_XPRINT_LIBS"; then
22398 if test -n "$XCB_XPRINT_LIBS"; then 22259 pkg_cv_XCB_XPRINT_LIBS="$XCB_XPRINT_LIBS"
22399 pkg_cv_XCB_XPRINT_LIBS="$XCB_XPRINT_LIBS" 22260 elif test -n "$PKG_CONFIG"; then
22400 else 22261 if test -n "$PKG_CONFIG" && \
22401 if test -n "$PKG_CONFIG" && \
22402 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xprint\""; } >&5 22262 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xprint\""; } >&5
22403 ($PKG_CONFIG --exists --print-errors "xcb-xprint") 2>&5 22263 ($PKG_CONFIG --exists --print-errors "xcb-xprint") 2>&5
22404 ac_status=$? 22264 ac_status=$?
@@ -22408,14 +22268,15 @@ if test -n "$PKG_CONFIG"; then
22408else 22268else
22409 pkg_failed=yes 22269 pkg_failed=yes
22410fi 22270fi
22411 fi 22271 else
22412else 22272 pkg_failed=untried
22413 pkg_failed=untried
22414fi 22273fi
22415 22274
22416 22275
22417 22276
22418if test $pkg_failed = yes; then 22277if test $pkg_failed = yes; then
22278 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22279$as_echo "no" >&6; }
22419 22280
22420if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 22281if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
22421 _pkg_short_errors_supported=yes 22282 _pkg_short_errors_supported=yes
@@ -22423,17 +22284,17 @@ else
22423 _pkg_short_errors_supported=no 22284 _pkg_short_errors_supported=no
22424fi 22285fi
22425 if test $_pkg_short_errors_supported = yes; then 22286 if test $_pkg_short_errors_supported = yes; then
22426 XCB_XPRINT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-xprint"` 22287 XCB_XPRINT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-xprint" 2>&1`
22427 else 22288 else
22428 XCB_XPRINT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-xprint"` 22289 XCB_XPRINT_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-xprint" 2>&1`
22429 fi 22290 fi
22430 # Put the nasty error message in config.log where it belongs 22291 # Put the nasty error message in config.log where it belongs
22431 echo "$XCB_XPRINT_PKG_ERRORS" >&5 22292 echo "$XCB_XPRINT_PKG_ERRORS" >&5
22432 22293
22433 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 22294 have_ecore_x_xcb_xprint="no"
22434$as_echo "no" >&6; }
22435 have_ecore_x_xcb_xprint="no"
22436elif test $pkg_failed = untried; then 22295elif test $pkg_failed = untried; then
22296 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22297$as_echo "no" >&6; }
22437 have_ecore_x_xcb_xprint="no" 22298 have_ecore_x_xcb_xprint="no"
22438else 22299else
22439 XCB_XPRINT_CFLAGS=$pkg_cv_XCB_XPRINT_CFLAGS 22300 XCB_XPRINT_CFLAGS=$pkg_cv_XCB_XPRINT_CFLAGS
@@ -22458,11 +22319,10 @@ pkg_failed=no
22458{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XTEST" >&5 22319{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XTEST" >&5
22459$as_echo_n "checking for XCB_XTEST... " >&6; } 22320$as_echo_n "checking for XCB_XTEST... " >&6; }
22460 22321
22461if test -n "$PKG_CONFIG"; then 22322if test -n "$XCB_XTEST_CFLAGS"; then
22462 if test -n "$XCB_XTEST_CFLAGS"; then 22323 pkg_cv_XCB_XTEST_CFLAGS="$XCB_XTEST_CFLAGS"
22463 pkg_cv_XCB_XTEST_CFLAGS="$XCB_XTEST_CFLAGS" 22324 elif test -n "$PKG_CONFIG"; then
22464 else 22325 if test -n "$PKG_CONFIG" && \
22465 if test -n "$PKG_CONFIG" && \
22466 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xtest\""; } >&5 22326 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xtest\""; } >&5
22467 ($PKG_CONFIG --exists --print-errors "xcb-xtest") 2>&5 22327 ($PKG_CONFIG --exists --print-errors "xcb-xtest") 2>&5
22468 ac_status=$? 22328 ac_status=$?
@@ -22472,15 +22332,13 @@ if test -n "$PKG_CONFIG"; then
22472else 22332else
22473 pkg_failed=yes 22333 pkg_failed=yes
22474fi 22334fi
22475 fi 22335 else
22476else 22336 pkg_failed=untried
22477 pkg_failed=untried
22478fi 22337fi
22479if test -n "$PKG_CONFIG"; then 22338if test -n "$XCB_XTEST_LIBS"; then
22480 if test -n "$XCB_XTEST_LIBS"; then 22339 pkg_cv_XCB_XTEST_LIBS="$XCB_XTEST_LIBS"
22481 pkg_cv_XCB_XTEST_LIBS="$XCB_XTEST_LIBS" 22340 elif test -n "$PKG_CONFIG"; then
22482 else 22341 if test -n "$PKG_CONFIG" && \
22483 if test -n "$PKG_CONFIG" && \
22484 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xtest\""; } >&5 22342 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xtest\""; } >&5
22485 ($PKG_CONFIG --exists --print-errors "xcb-xtest") 2>&5 22343 ($PKG_CONFIG --exists --print-errors "xcb-xtest") 2>&5
22486 ac_status=$? 22344 ac_status=$?
@@ -22490,14 +22348,15 @@ if test -n "$PKG_CONFIG"; then
22490else 22348else
22491 pkg_failed=yes 22349 pkg_failed=yes
22492fi 22350fi
22493 fi 22351 else
22494else 22352 pkg_failed=untried
22495 pkg_failed=untried
22496fi 22353fi
22497 22354
22498 22355
22499 22356
22500if test $pkg_failed = yes; then 22357if test $pkg_failed = yes; then
22358 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22359$as_echo "no" >&6; }
22501 22360
22502if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 22361if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
22503 _pkg_short_errors_supported=yes 22362 _pkg_short_errors_supported=yes
@@ -22505,17 +22364,17 @@ else
22505 _pkg_short_errors_supported=no 22364 _pkg_short_errors_supported=no
22506fi 22365fi
22507 if test $_pkg_short_errors_supported = yes; then 22366 if test $_pkg_short_errors_supported = yes; then
22508 XCB_XTEST_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-xtest"` 22367 XCB_XTEST_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-xtest" 2>&1`
22509 else 22368 else
22510 XCB_XTEST_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-xtest"` 22369 XCB_XTEST_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-xtest" 2>&1`
22511 fi 22370 fi
22512 # Put the nasty error message in config.log where it belongs 22371 # Put the nasty error message in config.log where it belongs
22513 echo "$XCB_XTEST_PKG_ERRORS" >&5 22372 echo "$XCB_XTEST_PKG_ERRORS" >&5
22514 22373
22515 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 22374 have_ecore_x_xcb_xtest="no"
22516$as_echo "no" >&6; }
22517 have_ecore_x_xcb_xtest="no"
22518elif test $pkg_failed = untried; then 22375elif test $pkg_failed = untried; then
22376 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22377$as_echo "no" >&6; }
22519 have_ecore_x_xcb_xtest="no" 22378 have_ecore_x_xcb_xtest="no"
22520else 22379else
22521 XCB_XTEST_CFLAGS=$pkg_cv_XCB_XTEST_CFLAGS 22380 XCB_XTEST_CFLAGS=$pkg_cv_XCB_XTEST_CFLAGS
@@ -22542,11 +22401,10 @@ pkg_failed=no
22542{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XINPUT" >&5 22401{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XINPUT" >&5
22543$as_echo_n "checking for XCB_XINPUT... " >&6; } 22402$as_echo_n "checking for XCB_XINPUT... " >&6; }
22544 22403
22545if test -n "$PKG_CONFIG"; then 22404if test -n "$XCB_XINPUT_CFLAGS"; then
22546 if test -n "$XCB_XINPUT_CFLAGS"; then 22405 pkg_cv_XCB_XINPUT_CFLAGS="$XCB_XINPUT_CFLAGS"
22547 pkg_cv_XCB_XINPUT_CFLAGS="$XCB_XINPUT_CFLAGS" 22406 elif test -n "$PKG_CONFIG"; then
22548 else 22407 if test -n "$PKG_CONFIG" && \
22549 if test -n "$PKG_CONFIG" && \
22550 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xinput\""; } >&5 22408 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xinput\""; } >&5
22551 ($PKG_CONFIG --exists --print-errors "xcb-xinput") 2>&5 22409 ($PKG_CONFIG --exists --print-errors "xcb-xinput") 2>&5
22552 ac_status=$? 22410 ac_status=$?
@@ -22556,15 +22414,13 @@ if test -n "$PKG_CONFIG"; then
22556else 22414else
22557 pkg_failed=yes 22415 pkg_failed=yes
22558fi 22416fi
22559 fi 22417 else
22560else 22418 pkg_failed=untried
22561 pkg_failed=untried
22562fi 22419fi
22563if test -n "$PKG_CONFIG"; then 22420if test -n "$XCB_XINPUT_LIBS"; then
22564 if test -n "$XCB_XINPUT_LIBS"; then 22421 pkg_cv_XCB_XINPUT_LIBS="$XCB_XINPUT_LIBS"
22565 pkg_cv_XCB_XINPUT_LIBS="$XCB_XINPUT_LIBS" 22422 elif test -n "$PKG_CONFIG"; then
22566 else 22423 if test -n "$PKG_CONFIG" && \
22567 if test -n "$PKG_CONFIG" && \
22568 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xinput\""; } >&5 22424 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xinput\""; } >&5
22569 ($PKG_CONFIG --exists --print-errors "xcb-xinput") 2>&5 22425 ($PKG_CONFIG --exists --print-errors "xcb-xinput") 2>&5
22570 ac_status=$? 22426 ac_status=$?
@@ -22574,14 +22430,15 @@ if test -n "$PKG_CONFIG"; then
22574else 22430else
22575 pkg_failed=yes 22431 pkg_failed=yes
22576fi 22432fi
22577 fi 22433 else
22578else 22434 pkg_failed=untried
22579 pkg_failed=untried
22580fi 22435fi
22581 22436
22582 22437
22583 22438
22584if test $pkg_failed = yes; then 22439if test $pkg_failed = yes; then
22440 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22441$as_echo "no" >&6; }
22585 22442
22586if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 22443if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
22587 _pkg_short_errors_supported=yes 22444 _pkg_short_errors_supported=yes
@@ -22589,17 +22446,17 @@ else
22589 _pkg_short_errors_supported=no 22446 _pkg_short_errors_supported=no
22590fi 22447fi
22591 if test $_pkg_short_errors_supported = yes; then 22448 if test $_pkg_short_errors_supported = yes; then
22592 XCB_XINPUT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-xinput"` 22449 XCB_XINPUT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-xinput" 2>&1`
22593 else 22450 else
22594 XCB_XINPUT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-xinput"` 22451 XCB_XINPUT_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-xinput" 2>&1`
22595 fi 22452 fi
22596 # Put the nasty error message in config.log where it belongs 22453 # Put the nasty error message in config.log where it belongs
22597 echo "$XCB_XINPUT_PKG_ERRORS" >&5 22454 echo "$XCB_XINPUT_PKG_ERRORS" >&5
22598 22455
22599 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 22456 have_ecore_x_xcb_xinput="no"
22600$as_echo "no" >&6; }
22601 have_ecore_x_xcb_xinput="no"
22602elif test $pkg_failed = untried; then 22457elif test $pkg_failed = untried; then
22458 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22459$as_echo "no" >&6; }
22603 have_ecore_x_xcb_xinput="no" 22460 have_ecore_x_xcb_xinput="no"
22604else 22461else
22605 XCB_XINPUT_CFLAGS=$pkg_cv_XCB_XINPUT_CFLAGS 22462 XCB_XINPUT_CFLAGS=$pkg_cv_XCB_XINPUT_CFLAGS
@@ -22624,11 +22481,10 @@ pkg_failed=no
22624{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_CURSOR" >&5 22481{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_CURSOR" >&5
22625$as_echo_n "checking for XCB_CURSOR... " >&6; } 22482$as_echo_n "checking for XCB_CURSOR... " >&6; }
22626 22483
22627if test -n "$PKG_CONFIG"; then 22484if test -n "$XCB_CURSOR_CFLAGS"; then
22628 if test -n "$XCB_CURSOR_CFLAGS"; then 22485 pkg_cv_XCB_CURSOR_CFLAGS="$XCB_CURSOR_CFLAGS"
22629 pkg_cv_XCB_CURSOR_CFLAGS="$XCB_CURSOR_CFLAGS" 22486 elif test -n "$PKG_CONFIG"; then
22630 else 22487 if test -n "$PKG_CONFIG" && \
22631 if test -n "$PKG_CONFIG" && \
22632 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-render xcb-renderutil\""; } >&5 22488 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-render xcb-renderutil\""; } >&5
22633 ($PKG_CONFIG --exists --print-errors "xcb-render xcb-renderutil") 2>&5 22489 ($PKG_CONFIG --exists --print-errors "xcb-render xcb-renderutil") 2>&5
22634 ac_status=$? 22490 ac_status=$?
@@ -22638,15 +22494,13 @@ if test -n "$PKG_CONFIG"; then
22638else 22494else
22639 pkg_failed=yes 22495 pkg_failed=yes
22640fi 22496fi
22641 fi 22497 else
22642else 22498 pkg_failed=untried
22643 pkg_failed=untried
22644fi 22499fi
22645if test -n "$PKG_CONFIG"; then 22500if test -n "$XCB_CURSOR_LIBS"; then
22646 if test -n "$XCB_CURSOR_LIBS"; then 22501 pkg_cv_XCB_CURSOR_LIBS="$XCB_CURSOR_LIBS"
22647 pkg_cv_XCB_CURSOR_LIBS="$XCB_CURSOR_LIBS" 22502 elif test -n "$PKG_CONFIG"; then
22648 else 22503 if test -n "$PKG_CONFIG" && \
22649 if test -n "$PKG_CONFIG" && \
22650 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-render xcb-renderutil\""; } >&5 22504 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-render xcb-renderutil\""; } >&5
22651 ($PKG_CONFIG --exists --print-errors "xcb-render xcb-renderutil") 2>&5 22505 ($PKG_CONFIG --exists --print-errors "xcb-render xcb-renderutil") 2>&5
22652 ac_status=$? 22506 ac_status=$?
@@ -22656,14 +22510,15 @@ if test -n "$PKG_CONFIG"; then
22656else 22510else
22657 pkg_failed=yes 22511 pkg_failed=yes
22658fi 22512fi
22659 fi 22513 else
22660else 22514 pkg_failed=untried
22661 pkg_failed=untried
22662fi 22515fi
22663 22516
22664 22517
22665 22518
22666if test $pkg_failed = yes; then 22519if test $pkg_failed = yes; then
22520 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22521$as_echo "no" >&6; }
22667 22522
22668if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 22523if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
22669 _pkg_short_errors_supported=yes 22524 _pkg_short_errors_supported=yes
@@ -22671,17 +22526,17 @@ else
22671 _pkg_short_errors_supported=no 22526 _pkg_short_errors_supported=no
22672fi 22527fi
22673 if test $_pkg_short_errors_supported = yes; then 22528 if test $_pkg_short_errors_supported = yes; then
22674 XCB_CURSOR_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-render xcb-renderutil"` 22529 XCB_CURSOR_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-render xcb-renderutil" 2>&1`
22675 else 22530 else
22676 XCB_CURSOR_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-render xcb-renderutil"` 22531 XCB_CURSOR_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-render xcb-renderutil" 2>&1`
22677 fi 22532 fi
22678 # Put the nasty error message in config.log where it belongs 22533 # Put the nasty error message in config.log where it belongs
22679 echo "$XCB_CURSOR_PKG_ERRORS" >&5 22534 echo "$XCB_CURSOR_PKG_ERRORS" >&5
22680 22535
22681 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 22536 have_ecore_x_xcb_cursor="no"
22682$as_echo "no" >&6; }
22683 have_ecore_x_xcb_cursor="no"
22684elif test $pkg_failed = untried; then 22537elif test $pkg_failed = untried; then
22538 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22539$as_echo "no" >&6; }
22685 have_ecore_x_xcb_cursor="no" 22540 have_ecore_x_xcb_cursor="no"
22686else 22541else
22687 XCB_CURSOR_CFLAGS=$pkg_cv_XCB_CURSOR_CFLAGS 22542 XCB_CURSOR_CFLAGS=$pkg_cv_XCB_CURSOR_CFLAGS
@@ -22740,7 +22595,7 @@ if test "x$with_x" = xno; then
22740 have_x=disabled 22595 have_x=disabled
22741else 22596else
22742 case $x_includes,$x_libraries in #( 22597 case $x_includes,$x_libraries in #(
22743 *\'*) as_fn_error "cannot use X directory names containing '" "$LINENO" 5;; #( 22598 *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5 ;; #(
22744 *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then : 22599 *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then :
22745 $as_echo_n "(cached) " >&6 22600 $as_echo_n "(cached) " >&6
22746else 22601else
@@ -22758,7 +22613,7 @@ libdir:
22758 @echo libdir='${LIBDIR}' 22613 @echo libdir='${LIBDIR}'
22759_ACEOF 22614_ACEOF
22760 if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then 22615 if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
22761 # GNU make sometimes prints "make[1]: Entering...", which would confuse us. 22616 # GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
22762 for ac_var in incroot usrlibdir libdir; do 22617 for ac_var in incroot usrlibdir libdir; do
22763 eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" 22618 eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
22764 done 22619 done
@@ -22844,7 +22699,7 @@ else
22844 fi 22699 fi
22845done 22700done
22846fi 22701fi
22847rm -f conftest.err conftest.$ac_ext 22702rm -f conftest.err conftest.i conftest.$ac_ext
22848fi # $ac_x_includes = no 22703fi # $ac_x_includes = no
22849 22704
22850if test "$ac_x_libraries" = no; then 22705if test "$ac_x_libraries" = no; then
@@ -24710,46 +24565,44 @@ pkg_failed=no
24710{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVAS" >&5 24565{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVAS" >&5
24711$as_echo_n "checking for EVAS... " >&6; } 24566$as_echo_n "checking for EVAS... " >&6; }
24712 24567
24713if test -n "$PKG_CONFIG"; then 24568if test -n "$EVAS_CFLAGS"; then
24714 if test -n "$EVAS_CFLAGS"; then 24569 pkg_cv_EVAS_CFLAGS="$EVAS_CFLAGS"
24715 pkg_cv_EVAS_CFLAGS="$EVAS_CFLAGS" 24570 elif test -n "$PKG_CONFIG"; then
24716 else 24571 if test -n "$PKG_CONFIG" && \
24717 if test -n "$PKG_CONFIG" && \ 24572 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas >= 1.2.0\""; } >&5
24718 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas >= 1.1.99\""; } >&5 24573 ($PKG_CONFIG --exists --print-errors "evas >= 1.2.0") 2>&5
24719 ($PKG_CONFIG --exists --print-errors "evas >= 1.1.99") 2>&5
24720 ac_status=$? 24574 ac_status=$?
24721 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 24575 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
24722 test $ac_status = 0; }; then 24576 test $ac_status = 0; }; then
24723 pkg_cv_EVAS_CFLAGS=`$PKG_CONFIG --cflags "evas >= 1.1.99" 2>/dev/null` 24577 pkg_cv_EVAS_CFLAGS=`$PKG_CONFIG --cflags "evas >= 1.2.0" 2>/dev/null`
24724else 24578else
24725 pkg_failed=yes 24579 pkg_failed=yes
24726fi 24580fi
24727 fi 24581 else
24728else 24582 pkg_failed=untried
24729 pkg_failed=untried
24730fi 24583fi
24731if test -n "$PKG_CONFIG"; then 24584if test -n "$EVAS_LIBS"; then
24732 if test -n "$EVAS_LIBS"; then 24585 pkg_cv_EVAS_LIBS="$EVAS_LIBS"
24733 pkg_cv_EVAS_LIBS="$EVAS_LIBS" 24586 elif test -n "$PKG_CONFIG"; then
24734 else 24587 if test -n "$PKG_CONFIG" && \
24735 if test -n "$PKG_CONFIG" && \ 24588 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas >= 1.2.0\""; } >&5
24736 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas >= 1.1.99\""; } >&5 24589 ($PKG_CONFIG --exists --print-errors "evas >= 1.2.0") 2>&5
24737 ($PKG_CONFIG --exists --print-errors "evas >= 1.1.99") 2>&5
24738 ac_status=$? 24590 ac_status=$?
24739 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 24591 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
24740 test $ac_status = 0; }; then 24592 test $ac_status = 0; }; then
24741 pkg_cv_EVAS_LIBS=`$PKG_CONFIG --libs "evas >= 1.1.99" 2>/dev/null` 24593 pkg_cv_EVAS_LIBS=`$PKG_CONFIG --libs "evas >= 1.2.0" 2>/dev/null`
24742else 24594else
24743 pkg_failed=yes 24595 pkg_failed=yes
24744fi 24596fi
24745 fi 24597 else
24746else 24598 pkg_failed=untried
24747 pkg_failed=untried
24748fi 24599fi
24749 24600
24750 24601
24751 24602
24752if test $pkg_failed = yes; then 24603if test $pkg_failed = yes; then
24604 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
24605$as_echo "no" >&6; }
24753 24606
24754if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 24607if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
24755 _pkg_short_errors_supported=yes 24608 _pkg_short_errors_supported=yes
@@ -24757,17 +24610,17 @@ else
24757 _pkg_short_errors_supported=no 24610 _pkg_short_errors_supported=no
24758fi 24611fi
24759 if test $_pkg_short_errors_supported = yes; then 24612 if test $_pkg_short_errors_supported = yes; then
24760 EVAS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "evas >= 1.1.99"` 24613 EVAS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "evas >= 1.2.0" 2>&1`
24761 else 24614 else
24762 EVAS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evas >= 1.1.99"` 24615 EVAS_PKG_ERRORS=`$PKG_CONFIG --print-errors "evas >= 1.2.0" 2>&1`
24763 fi 24616 fi
24764 # Put the nasty error message in config.log where it belongs 24617 # Put the nasty error message in config.log where it belongs
24765 echo "$EVAS_PKG_ERRORS" >&5 24618 echo "$EVAS_PKG_ERRORS" >&5
24766 24619
24767 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 24620 have_evas="no"
24768$as_echo "no" >&6; }
24769 have_evas="no"
24770elif test $pkg_failed = untried; then 24621elif test $pkg_failed = untried; then
24622 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
24623$as_echo "no" >&6; }
24771 have_evas="no" 24624 have_evas="no"
24772else 24625else
24773 EVAS_CFLAGS=$pkg_cv_EVAS_CFLAGS 24626 EVAS_CFLAGS=$pkg_cv_EVAS_CFLAGS
@@ -24784,8 +24637,7 @@ for ac_header in sys/select.h sys/prctl.h
24784do : 24637do :
24785 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 24638 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
24786ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" 24639ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
24787eval as_val=\$$as_ac_Header 24640if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
24788 if test "x$as_val" = x""yes; then :
24789 cat >>confdefs.h <<_ACEOF 24641 cat >>confdefs.h <<_ACEOF
24790#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 24642#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
24791_ACEOF 24643_ACEOF
@@ -25106,8 +24958,7 @@ $as_echo "#define HAVE_SYS_TIME_H 1" >>confdefs.h
25106do : 24958do :
25107 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 24959 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
25108ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" 24960ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
25109eval as_val=\$$as_ac_Header 24961if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
25110 if test "x$as_val" = x""yes; then :
25111 cat >>confdefs.h <<_ACEOF 24962 cat >>confdefs.h <<_ACEOF
25112#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 24963#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
25113_ACEOF 24964_ACEOF
@@ -25121,12 +24972,49 @@ esac
25121 24972
25122# ecore_con 24973# ecore_con
25123 24974
25124for ac_header in arpa/inet.h arpa/nameser.h netinet/tcp.h net/if.h netinet/in.h sys/socket.h sys/un.h ws2tcpip.h netdb.h 24975for ac_header in sys/socket.h
24976do :
24977 ac_fn_c_check_header_mongrel "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default"
24978if test "x$ac_cv_header_sys_socket_h" = x""yes; then :
24979 cat >>confdefs.h <<_ACEOF
24980#define HAVE_SYS_SOCKET_H 1
24981_ACEOF
24982
24983fi
24984
24985done
24986
24987for ac_header in net/if.h
24988do :
24989 ac_fn_c_check_header_compile "$LINENO" "net/if.h" "ac_cv_header_net_if_h" "
24990#include <stdio.h>
24991#ifdef STDC_HEADERS
24992# include <stdlib.h>
24993# include <stddef.h>
24994#else
24995# ifdef HAVE_STDLIB_H
24996# include <stdlib.h>
24997# endif
24998#endif
24999#ifdef HAVE_SYS_SOCKET_H
25000# include <sys/socket.h>
25001#endif
25002
25003"
25004if test "x$ac_cv_header_net_if_h" = x""yes; then :
25005 cat >>confdefs.h <<_ACEOF
25006#define HAVE_NET_IF_H 1
25007_ACEOF
25008
25009fi
25010
25011done
25012
25013for ac_header in sys/un.h arpa/inet.h arpa/nameser.h netinet/tcp.h netinet/in.h ws2tcpip.h netdb.h
25125do : 25014do :
25126 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 25015 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
25127ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" 25016ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
25128eval as_val=\$$as_ac_Header 25017if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
25129 if test "x$as_val" = x""yes; then :
25130 cat >>confdefs.h <<_ACEOF 25018 cat >>confdefs.h <<_ACEOF
25131#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 25019#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
25132_ACEOF 25020_ACEOF
@@ -25326,7 +25214,7 @@ if test "x${_efl_enable_win32_threads}" = "xyes" ; then
25326 mingw*) 25214 mingw*)
25327 ;; 25215 ;;
25328 *) 25216 *)
25329 as_fn_error "Win32 threads support requested but non Windows system found." "$LINENO" 5 25217 as_fn_error $? "Win32 threads support requested but non Windows system found." "$LINENO" 5
25330 ;; 25218 ;;
25331 esac 25219 esac
25332fi 25220fi
@@ -25334,7 +25222,7 @@ fi
25334if test "x${_efl_enable_posix_threads}" = "xyes" ; then 25222if test "x${_efl_enable_posix_threads}" = "xyes" ; then
25335 case "$host_os" in 25223 case "$host_os" in
25336 mingw*) 25224 mingw*)
25337 as_fn_error "POSIX threads support requested but Windows system found." "$LINENO" 5 25225 as_fn_error $? "POSIX threads support requested but Windows system found." "$LINENO" 5
25338 ;; 25226 ;;
25339 *) 25227 *)
25340 ;; 25228 ;;
@@ -25397,7 +25285,7 @@ $as_echo_n "checking whether system support POSIX threads... " >&6; }
25397{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_efl_have_posix_threads}" >&5 25285{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_efl_have_posix_threads}" >&5
25398$as_echo "${_efl_have_posix_threads}" >&6; } 25286$as_echo "${_efl_have_posix_threads}" >&6; }
25399if test "$x{_efl_enable_posix_threads}" = "xyes" && test "x${_efl_have_posix_threads}" = "xno"; then 25287if test "$x{_efl_enable_posix_threads}" = "xyes" && test "x${_efl_have_posix_threads}" = "xno"; then
25400 as_fn_error "POSIX threads support requested but not found." "$LINENO" 5 25288 as_fn_error $? "POSIX threads support requested but not found." "$LINENO" 5
25401fi 25289fi
25402 25290
25403EFL_PTHREAD_CFLAGS="" 25291EFL_PTHREAD_CFLAGS=""
@@ -25497,9 +25385,8 @@ else
25497 if test "$ac_cv_type_int" = yes; then 25385 if test "$ac_cv_type_int" = yes; then
25498 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 25386 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
25499$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 25387$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
25500{ as_fn_set_status 77 25388as_fn_error 77 "cannot compute sizeof (int)
25501as_fn_error "cannot compute sizeof (int) 25389See \`config.log' for more details" "$LINENO" 5 ; }
25502See \`config.log' for more details." "$LINENO" 5; }; }
25503 else 25390 else
25504 ac_cv_sizeof_int=0 25391 ac_cv_sizeof_int=0
25505 fi 25392 fi
@@ -25531,9 +25418,8 @@ else
25531 if test "$ac_cv_type_long" = yes; then 25418 if test "$ac_cv_type_long" = yes; then
25532 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 25419 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
25533$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 25420$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
25534{ as_fn_set_status 77 25421as_fn_error 77 "cannot compute sizeof (long)
25535as_fn_error "cannot compute sizeof (long) 25422See \`config.log' for more details" "$LINENO" 5 ; }
25536See \`config.log' for more details." "$LINENO" 5; }; }
25537 else 25423 else
25538 ac_cv_sizeof_long=0 25424 ac_cv_sizeof_long=0
25539 fi 25425 fi
@@ -26149,8 +26035,8 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
26149 26035
26150 ;; #( 26036 ;; #(
26151 *) 26037 *)
26152 as_fn_error "unknown endianness 26038 as_fn_error $? "unknown endianness
26153 presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; 26039 presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
26154 esac 26040 esac
26155 26041
26156{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 26042{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
@@ -26351,14 +26237,12 @@ esac
26351 26237
26352 26238
26353### Checks for library functions 26239### Checks for library functions
26354 26240{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5
26355 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strerror in -lcposix" >&5 26241$as_echo_n "checking for library containing strerror... " >&6; }
26356$as_echo_n "checking for strerror in -lcposix... " >&6; } 26242if test "${ac_cv_search_strerror+set}" = set; then :
26357if test "${ac_cv_lib_cposix_strerror+set}" = set; then :
26358 $as_echo_n "(cached) " >&6 26243 $as_echo_n "(cached) " >&6
26359else 26244else
26360 ac_check_lib_save_LIBS=$LIBS 26245 ac_func_search_save_LIBS=$LIBS
26361LIBS="-lcposix $LIBS"
26362cat confdefs.h - <<_ACEOF >conftest.$ac_ext 26246cat confdefs.h - <<_ACEOF >conftest.$ac_ext
26363/* end confdefs.h. */ 26247/* end confdefs.h. */
26364 26248
@@ -26377,22 +26261,37 @@ return strerror ();
26377 return 0; 26261 return 0;
26378} 26262}
26379_ACEOF 26263_ACEOF
26380if ac_fn_c_try_link "$LINENO"; then : 26264for ac_lib in '' cposix; do
26381 ac_cv_lib_cposix_strerror=yes 26265 if test -z "$ac_lib"; then
26382else 26266 ac_res="none required"
26383 ac_cv_lib_cposix_strerror=no 26267 else
26268 ac_res=-l$ac_lib
26269 LIBS="-l$ac_lib $ac_func_search_save_LIBS"
26270 fi
26271 if ac_fn_c_try_link "$LINENO"; then :
26272 ac_cv_search_strerror=$ac_res
26384fi 26273fi
26385rm -f core conftest.err conftest.$ac_objext \ 26274rm -f core conftest.err conftest.$ac_objext \
26386 conftest$ac_exeext conftest.$ac_ext 26275 conftest$ac_exeext
26387LIBS=$ac_check_lib_save_LIBS 26276 if test "${ac_cv_search_strerror+set}" = set; then :
26388fi 26277 break
26389{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cposix_strerror" >&5
26390$as_echo "$ac_cv_lib_cposix_strerror" >&6; }
26391if test "x$ac_cv_lib_cposix_strerror" = x""yes; then :
26392 LIBS="$LIBS -lcposix"
26393fi 26278fi
26279done
26280if test "${ac_cv_search_strerror+set}" = set; then :
26394 26281
26282else
26283 ac_cv_search_strerror=no
26284fi
26285rm conftest.$ac_ext
26286LIBS=$ac_func_search_save_LIBS
26287fi
26288{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5
26289$as_echo "$ac_cv_search_strerror" >&6; }
26290ac_res=$ac_cv_search_strerror
26291if test "$ac_res" != no; then :
26292 test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
26395 26293
26294fi
26396 26295
26397# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works 26296# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
26398# for constant arguments. Useless! 26297# for constant arguments. Useless!
@@ -26521,8 +26420,7 @@ if test $ac_cv_os_cray = yes; then
26521 for ac_func in _getb67 GETB67 getb67; do 26420 for ac_func in _getb67 GETB67 getb67; do
26522 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` 26421 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
26523ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" 26422ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
26524eval as_val=\$$as_ac_var 26423if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
26525 if test "x$as_val" = x""yes; then :
26526 26424
26527cat >>confdefs.h <<_ACEOF 26425cat >>confdefs.h <<_ACEOF
26528#define CRAY_STACKSEG_END $ac_func 26426#define CRAY_STACKSEG_END $ac_func
@@ -26588,8 +26486,7 @@ for ac_func in gettimeofday strlcpy execvp
26588do : 26486do :
26589 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` 26487 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
26590ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" 26488ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
26591eval as_val=\$$as_ac_var 26489if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
26592 if test "x$as_val" = x""yes; then :
26593 cat >>confdefs.h <<_ACEOF 26490 cat >>confdefs.h <<_ACEOF
26594#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 26491#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
26595_ACEOF 26492_ACEOF
@@ -26661,7 +26558,7 @@ $as_echo "#define HAVE_ATFILE_SOURCE 1" >>confdefs.h
26661else 26558else
26662 26559
26663 if test "x${have_atfile_source}" = "xyes" ; then 26560 if test "x${have_atfile_source}" = "xyes" ; then
26664 as_fn_error "required atfile-source but no mkdirat()" "$LINENO" 5 26561 as_fn_error $? "required atfile-source but no mkdirat()" "$LINENO" 5
26665 fi 26562 fi
26666 have_atfile_source="no" 26563 have_atfile_source="no"
26667 26564
@@ -26670,6 +26567,94 @@ done
26670 26567
26671fi 26568fi
26672 26569
26570SHM_OPEN_LIBS=""
26571
26572{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether shm_open is in libc" >&5
26573$as_echo_n "checking whether shm_open is in libc... " >&6; }
26574cat confdefs.h - <<_ACEOF >conftest.$ac_ext
26575/* end confdefs.h. */
26576
26577#include <sys/mman.h>
26578#include <sys/stat.h>
26579#include <fcntl.h>
26580
26581int
26582main ()
26583{
26584
26585int fd;
26586fd = shm_open("/", O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
26587shm_unlink("/");
26588
26589 ;
26590 return 0;
26591}
26592_ACEOF
26593if ac_fn_c_try_link "$LINENO"; then :
26594
26595 have_shm_open="yes"
26596
26597$as_echo "#define HAVE_SHM_OPEN 1" >>confdefs.h
26598
26599
26600else
26601 have_shm_open="no"
26602fi
26603rm -f core conftest.err conftest.$ac_objext \
26604 conftest$ac_exeext conftest.$ac_ext
26605LIBS="${LIBS_save}"
26606{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_shm_open}" >&5
26607$as_echo "${have_shm_open}" >&6; }
26608
26609if ! test "x${have_shm_open}" = "xyes" ; then
26610 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether shm_open is in librt" >&5
26611$as_echo_n "checking whether shm_open is in librt... " >&6; }
26612 LIBS_save="${LIBS}"
26613 LIBS="${LIBS} -lrt"
26614 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
26615/* end confdefs.h. */
26616
26617#include <sys/mman.h>
26618#include <sys/stat.h>
26619#include <fcntl.h>
26620
26621int
26622main ()
26623{
26624
26625int fd;
26626fd = shm_open("/", O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
26627shm_unlink("/");
26628
26629 ;
26630 return 0;
26631}
26632_ACEOF
26633if ac_fn_c_try_link "$LINENO"; then :
26634
26635 have_shm_open="yes"
26636
26637$as_echo "#define HAVE_SHM_OPEN 1" >>confdefs.h
26638
26639 SHM_OPEN_LIBS="-lrt"
26640
26641else
26642 have_shm_open="no"
26643fi
26644rm -f core conftest.err conftest.$ac_objext \
26645 conftest$ac_exeext conftest.$ac_ext
26646 LIBS="${LIBS_save}"
26647 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_shm_open}" >&5
26648$as_echo "${have_shm_open}" >&6; }
26649fi
26650
26651
26652
26653{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether shm_open is available" >&5
26654$as_echo_n "checking whether shm_open is available... " >&6; }
26655{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_shm_open}" >&5
26656$as_echo "${have_shm_open}" >&6; }
26657
26673### Checks for optionnal feature 26658### Checks for optionnal feature
26674ac_fn_c_check_func "$LINENO" "mallinfo" "ac_cv_func_mallinfo" 26659ac_fn_c_check_func "$LINENO" "mallinfo" "ac_cv_func_mallinfo"
26675if test "x$ac_cv_func_mallinfo" = x""yes; then : 26660if test "x$ac_cv_func_mallinfo" = x""yes; then :
@@ -26823,11 +26808,10 @@ pkg_failed=no
26823{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CURL" >&5 26808{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CURL" >&5
26824$as_echo_n "checking for CURL... " >&6; } 26809$as_echo_n "checking for CURL... " >&6; }
26825 26810
26826if test -n "$PKG_CONFIG"; then 26811if test -n "$CURL_CFLAGS"; then
26827 if test -n "$CURL_CFLAGS"; then 26812 pkg_cv_CURL_CFLAGS="$CURL_CFLAGS"
26828 pkg_cv_CURL_CFLAGS="$CURL_CFLAGS" 26813 elif test -n "$PKG_CONFIG"; then
26829 else 26814 if test -n "$PKG_CONFIG" && \
26830 if test -n "$PKG_CONFIG" && \
26831 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl\""; } >&5 26815 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl\""; } >&5
26832 ($PKG_CONFIG --exists --print-errors "libcurl") 2>&5 26816 ($PKG_CONFIG --exists --print-errors "libcurl") 2>&5
26833 ac_status=$? 26817 ac_status=$?
@@ -26837,15 +26821,13 @@ if test -n "$PKG_CONFIG"; then
26837else 26821else
26838 pkg_failed=yes 26822 pkg_failed=yes
26839fi 26823fi
26840 fi 26824 else
26841else 26825 pkg_failed=untried
26842 pkg_failed=untried
26843fi 26826fi
26844if test -n "$PKG_CONFIG"; then 26827if test -n "$CURL_LIBS"; then
26845 if test -n "$CURL_LIBS"; then 26828 pkg_cv_CURL_LIBS="$CURL_LIBS"
26846 pkg_cv_CURL_LIBS="$CURL_LIBS" 26829 elif test -n "$PKG_CONFIG"; then
26847 else 26830 if test -n "$PKG_CONFIG" && \
26848 if test -n "$PKG_CONFIG" && \
26849 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl\""; } >&5 26831 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl\""; } >&5
26850 ($PKG_CONFIG --exists --print-errors "libcurl") 2>&5 26832 ($PKG_CONFIG --exists --print-errors "libcurl") 2>&5
26851 ac_status=$? 26833 ac_status=$?
@@ -26855,14 +26837,15 @@ if test -n "$PKG_CONFIG"; then
26855else 26837else
26856 pkg_failed=yes 26838 pkg_failed=yes
26857fi 26839fi
26858 fi 26840 else
26859else 26841 pkg_failed=untried
26860 pkg_failed=untried
26861fi 26842fi
26862 26843
26863 26844
26864 26845
26865if test $pkg_failed = yes; then 26846if test $pkg_failed = yes; then
26847 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
26848$as_echo "no" >&6; }
26866 26849
26867if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 26850if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
26868 _pkg_short_errors_supported=yes 26851 _pkg_short_errors_supported=yes
@@ -26870,17 +26853,17 @@ else
26870 _pkg_short_errors_supported=no 26853 _pkg_short_errors_supported=no
26871fi 26854fi
26872 if test $_pkg_short_errors_supported = yes; then 26855 if test $_pkg_short_errors_supported = yes; then
26873 CURL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libcurl"` 26856 CURL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libcurl" 2>&1`
26874 else 26857 else
26875 CURL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libcurl"` 26858 CURL_PKG_ERRORS=`$PKG_CONFIG --print-errors "libcurl" 2>&1`
26876 fi 26859 fi
26877 # Put the nasty error message in config.log where it belongs 26860 # Put the nasty error message in config.log where it belongs
26878 echo "$CURL_PKG_ERRORS" >&5 26861 echo "$CURL_PKG_ERRORS" >&5
26879 26862
26880 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 26863 _ecore_have_curl="no"
26881$as_echo "no" >&6; }
26882 _ecore_have_curl="no"
26883elif test $pkg_failed = untried; then 26864elif test $pkg_failed = untried; then
26865 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
26866$as_echo "no" >&6; }
26884 _ecore_have_curl="no" 26867 _ecore_have_curl="no"
26885else 26868else
26886 CURL_CFLAGS=$pkg_cv_CURL_CFLAGS 26869 CURL_CFLAGS=$pkg_cv_CURL_CFLAGS
@@ -26928,11 +26911,10 @@ pkg_failed=no
26928{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TLS" >&5 26911{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TLS" >&5
26929$as_echo_n "checking for TLS... " >&6; } 26912$as_echo_n "checking for TLS... " >&6; }
26930 26913
26931if test -n "$PKG_CONFIG"; then 26914if test -n "$TLS_CFLAGS"; then
26932 if test -n "$TLS_CFLAGS"; then 26915 pkg_cv_TLS_CFLAGS="$TLS_CFLAGS"
26933 pkg_cv_TLS_CFLAGS="$TLS_CFLAGS" 26916 elif test -n "$PKG_CONFIG"; then
26934 else 26917 if test -n "$PKG_CONFIG" && \
26935 if test -n "$PKG_CONFIG" && \
26936 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 2.10.2\""; } >&5 26918 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 2.10.2\""; } >&5
26937 ($PKG_CONFIG --exists --print-errors "gnutls >= 2.10.2") 2>&5 26919 ($PKG_CONFIG --exists --print-errors "gnutls >= 2.10.2") 2>&5
26938 ac_status=$? 26920 ac_status=$?
@@ -26942,15 +26924,13 @@ if test -n "$PKG_CONFIG"; then
26942else 26924else
26943 pkg_failed=yes 26925 pkg_failed=yes
26944fi 26926fi
26945 fi 26927 else
26946else 26928 pkg_failed=untried
26947 pkg_failed=untried
26948fi 26929fi
26949if test -n "$PKG_CONFIG"; then 26930if test -n "$TLS_LIBS"; then
26950 if test -n "$TLS_LIBS"; then 26931 pkg_cv_TLS_LIBS="$TLS_LIBS"
26951 pkg_cv_TLS_LIBS="$TLS_LIBS" 26932 elif test -n "$PKG_CONFIG"; then
26952 else 26933 if test -n "$PKG_CONFIG" && \
26953 if test -n "$PKG_CONFIG" && \
26954 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 2.10.2\""; } >&5 26934 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 2.10.2\""; } >&5
26955 ($PKG_CONFIG --exists --print-errors "gnutls >= 2.10.2") 2>&5 26935 ($PKG_CONFIG --exists --print-errors "gnutls >= 2.10.2") 2>&5
26956 ac_status=$? 26936 ac_status=$?
@@ -26960,14 +26940,15 @@ if test -n "$PKG_CONFIG"; then
26960else 26940else
26961 pkg_failed=yes 26941 pkg_failed=yes
26962fi 26942fi
26963 fi 26943 else
26964else 26944 pkg_failed=untried
26965 pkg_failed=untried
26966fi 26945fi
26967 26946
26968 26947
26969 26948
26970if test $pkg_failed = yes; then 26949if test $pkg_failed = yes; then
26950 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
26951$as_echo "no" >&6; }
26971 26952
26972if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 26953if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
26973 _pkg_short_errors_supported=yes 26954 _pkg_short_errors_supported=yes
@@ -26975,17 +26956,17 @@ else
26975 _pkg_short_errors_supported=no 26956 _pkg_short_errors_supported=no
26976fi 26957fi
26977 if test $_pkg_short_errors_supported = yes; then 26958 if test $_pkg_short_errors_supported = yes; then
26978 TLS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gnutls >= 2.10.2"` 26959 TLS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gnutls >= 2.10.2" 2>&1`
26979 else 26960 else
26980 TLS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gnutls >= 2.10.2"` 26961 TLS_PKG_ERRORS=`$PKG_CONFIG --print-errors "gnutls >= 2.10.2" 2>&1`
26981 fi 26962 fi
26982 # Put the nasty error message in config.log where it belongs 26963 # Put the nasty error message in config.log where it belongs
26983 echo "$TLS_PKG_ERRORS" >&5 26964 echo "$TLS_PKG_ERRORS" >&5
26984 26965
26985 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 26966 _ecore_have_gnutls="no"
26986$as_echo "no" >&6; }
26987 _ecore_have_gnutls="no"
26988elif test $pkg_failed = untried; then 26967elif test $pkg_failed = untried; then
26968 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
26969$as_echo "no" >&6; }
26989 _ecore_have_gnutls="no" 26970 _ecore_have_gnutls="no"
26990else 26971else
26991 TLS_CFLAGS=$pkg_cv_TLS_CFLAGS 26972 TLS_CFLAGS=$pkg_cv_TLS_CFLAGS
@@ -27005,11 +26986,10 @@ pkg_failed=no
27005{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TLS2" >&5 26986{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TLS2" >&5
27006$as_echo_n "checking for TLS2... " >&6; } 26987$as_echo_n "checking for TLS2... " >&6; }
27007 26988
27008if test -n "$PKG_CONFIG"; then 26989if test -n "$TLS2_CFLAGS"; then
27009 if test -n "$TLS2_CFLAGS"; then 26990 pkg_cv_TLS2_CFLAGS="$TLS2_CFLAGS"
27010 pkg_cv_TLS2_CFLAGS="$TLS2_CFLAGS" 26991 elif test -n "$PKG_CONFIG"; then
27011 else 26992 if test -n "$PKG_CONFIG" && \
27012 if test -n "$PKG_CONFIG" && \
27013 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 2.10.2\""; } >&5 26993 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 2.10.2\""; } >&5
27014 ($PKG_CONFIG --exists --print-errors "gnutls >= 2.10.2") 2>&5 26994 ($PKG_CONFIG --exists --print-errors "gnutls >= 2.10.2") 2>&5
27015 ac_status=$? 26995 ac_status=$?
@@ -27019,15 +26999,13 @@ if test -n "$PKG_CONFIG"; then
27019else 26999else
27020 pkg_failed=yes 27000 pkg_failed=yes
27021fi 27001fi
27022 fi 27002 else
27023else 27003 pkg_failed=untried
27024 pkg_failed=untried
27025fi 27004fi
27026if test -n "$PKG_CONFIG"; then 27005if test -n "$TLS2_LIBS"; then
27027 if test -n "$TLS2_LIBS"; then 27006 pkg_cv_TLS2_LIBS="$TLS2_LIBS"
27028 pkg_cv_TLS2_LIBS="$TLS2_LIBS" 27007 elif test -n "$PKG_CONFIG"; then
27029 else 27008 if test -n "$PKG_CONFIG" && \
27030 if test -n "$PKG_CONFIG" && \
27031 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 2.10.2\""; } >&5 27009 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 2.10.2\""; } >&5
27032 ($PKG_CONFIG --exists --print-errors "gnutls >= 2.10.2") 2>&5 27010 ($PKG_CONFIG --exists --print-errors "gnutls >= 2.10.2") 2>&5
27033 ac_status=$? 27011 ac_status=$?
@@ -27037,14 +27015,15 @@ if test -n "$PKG_CONFIG"; then
27037else 27015else
27038 pkg_failed=yes 27016 pkg_failed=yes
27039fi 27017fi
27040 fi 27018 else
27041else 27019 pkg_failed=untried
27042 pkg_failed=untried
27043fi 27020fi
27044 27021
27045 27022
27046 27023
27047if test $pkg_failed = yes; then 27024if test $pkg_failed = yes; then
27025 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27026$as_echo "no" >&6; }
27048 27027
27049if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 27028if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
27050 _pkg_short_errors_supported=yes 27029 _pkg_short_errors_supported=yes
@@ -27052,17 +27031,17 @@ else
27052 _pkg_short_errors_supported=no 27031 _pkg_short_errors_supported=no
27053fi 27032fi
27054 if test $_pkg_short_errors_supported = yes; then 27033 if test $_pkg_short_errors_supported = yes; then
27055 TLS2_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gnutls >= 2.10.2"` 27034 TLS2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gnutls >= 2.10.2" 2>&1`
27056 else 27035 else
27057 TLS2_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gnutls >= 2.10.2"` 27036 TLS2_PKG_ERRORS=`$PKG_CONFIG --print-errors "gnutls >= 2.10.2" 2>&1`
27058 fi 27037 fi
27059 # Put the nasty error message in config.log where it belongs 27038 # Put the nasty error message in config.log where it belongs
27060 echo "$TLS2_PKG_ERRORS" >&5 27039 echo "$TLS2_PKG_ERRORS" >&5
27061 27040
27062 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 27041 dummy="no"
27063$as_echo "no" >&6; }
27064 dummy="no"
27065elif test $pkg_failed = untried; then 27042elif test $pkg_failed = untried; then
27043 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27044$as_echo "no" >&6; }
27066 dummy="no" 27045 dummy="no"
27067else 27046else
27068 TLS2_CFLAGS=$pkg_cv_TLS2_CFLAGS 27047 TLS2_CFLAGS=$pkg_cv_TLS2_CFLAGS
@@ -27220,11 +27199,10 @@ pkg_failed=no
27220{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL" >&5 27199{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL" >&5
27221$as_echo_n "checking for SSL... " >&6; } 27200$as_echo_n "checking for SSL... " >&6; }
27222 27201
27223if test -n "$PKG_CONFIG"; then 27202if test -n "$SSL_CFLAGS"; then
27224 if test -n "$SSL_CFLAGS"; then 27203 pkg_cv_SSL_CFLAGS="$SSL_CFLAGS"
27225 pkg_cv_SSL_CFLAGS="$SSL_CFLAGS" 27204 elif test -n "$PKG_CONFIG"; then
27226 else 27205 if test -n "$PKG_CONFIG" && \
27227 if test -n "$PKG_CONFIG" && \
27228 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl\""; } >&5 27206 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl\""; } >&5
27229 ($PKG_CONFIG --exists --print-errors "openssl") 2>&5 27207 ($PKG_CONFIG --exists --print-errors "openssl") 2>&5
27230 ac_status=$? 27208 ac_status=$?
@@ -27234,15 +27212,13 @@ if test -n "$PKG_CONFIG"; then
27234else 27212else
27235 pkg_failed=yes 27213 pkg_failed=yes
27236fi 27214fi
27237 fi 27215 else
27238else 27216 pkg_failed=untried
27239 pkg_failed=untried
27240fi 27217fi
27241if test -n "$PKG_CONFIG"; then 27218if test -n "$SSL_LIBS"; then
27242 if test -n "$SSL_LIBS"; then 27219 pkg_cv_SSL_LIBS="$SSL_LIBS"
27243 pkg_cv_SSL_LIBS="$SSL_LIBS" 27220 elif test -n "$PKG_CONFIG"; then
27244 else 27221 if test -n "$PKG_CONFIG" && \
27245 if test -n "$PKG_CONFIG" && \
27246 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl\""; } >&5 27222 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl\""; } >&5
27247 ($PKG_CONFIG --exists --print-errors "openssl") 2>&5 27223 ($PKG_CONFIG --exists --print-errors "openssl") 2>&5
27248 ac_status=$? 27224 ac_status=$?
@@ -27252,14 +27228,15 @@ if test -n "$PKG_CONFIG"; then
27252else 27228else
27253 pkg_failed=yes 27229 pkg_failed=yes
27254fi 27230fi
27255 fi 27231 else
27256else 27232 pkg_failed=untried
27257 pkg_failed=untried
27258fi 27233fi
27259 27234
27260 27235
27261 27236
27262if test $pkg_failed = yes; then 27237if test $pkg_failed = yes; then
27238 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27239$as_echo "no" >&6; }
27263 27240
27264if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 27241if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
27265 _pkg_short_errors_supported=yes 27242 _pkg_short_errors_supported=yes
@@ -27267,17 +27244,17 @@ else
27267 _pkg_short_errors_supported=no 27244 _pkg_short_errors_supported=no
27268fi 27245fi
27269 if test $_pkg_short_errors_supported = yes; then 27246 if test $_pkg_short_errors_supported = yes; then
27270 SSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "openssl"` 27247 SSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "openssl" 2>&1`
27271 else 27248 else
27272 SSL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "openssl"` 27249 SSL_PKG_ERRORS=`$PKG_CONFIG --print-errors "openssl" 2>&1`
27273 fi 27250 fi
27274 # Put the nasty error message in config.log where it belongs 27251 # Put the nasty error message in config.log where it belongs
27275 echo "$SSL_PKG_ERRORS" >&5 27252 echo "$SSL_PKG_ERRORS" >&5
27276 27253
27277 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 27254 _ecore_have_openssl="no"
27278$as_echo "no" >&6; }
27279 _ecore_have_openssl="no"
27280elif test $pkg_failed = untried; then 27255elif test $pkg_failed = untried; then
27256 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27257$as_echo "no" >&6; }
27281 _ecore_have_openssl="no" 27258 _ecore_have_openssl="no"
27282else 27259else
27283 SSL_CFLAGS=$pkg_cv_SSL_CFLAGS 27260 SSL_CFLAGS=$pkg_cv_SSL_CFLAGS
@@ -27334,46 +27311,44 @@ pkg_failed=no
27334{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CARES" >&5 27311{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CARES" >&5
27335$as_echo_n "checking for CARES... " >&6; } 27312$as_echo_n "checking for CARES... " >&6; }
27336 27313
27337if test -n "$PKG_CONFIG"; then 27314if test -n "$CARES_CFLAGS"; then
27338 if test -n "$CARES_CFLAGS"; then 27315 pkg_cv_CARES_CFLAGS="$CARES_CFLAGS"
27339 pkg_cv_CARES_CFLAGS="$CARES_CFLAGS" 27316 elif test -n "$PKG_CONFIG"; then
27340 else 27317 if test -n "$PKG_CONFIG" && \
27341 if test -n "$PKG_CONFIG" && \ 27318 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcares >= 1.6.1\""; } >&5
27342 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcares >= 1.6.1 libcares != 1.7.5\""; } >&5 27319 ($PKG_CONFIG --exists --print-errors "libcares >= 1.6.1") 2>&5
27343 ($PKG_CONFIG --exists --print-errors "libcares >= 1.6.1 libcares != 1.7.5") 2>&5
27344 ac_status=$? 27320 ac_status=$?
27345 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 27321 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
27346 test $ac_status = 0; }; then 27322 test $ac_status = 0; }; then
27347 pkg_cv_CARES_CFLAGS=`$PKG_CONFIG --cflags "libcares >= 1.6.1 libcares != 1.7.5" 2>/dev/null` 27323 pkg_cv_CARES_CFLAGS=`$PKG_CONFIG --cflags "libcares >= 1.6.1" 2>/dev/null`
27348else 27324else
27349 pkg_failed=yes 27325 pkg_failed=yes
27350fi 27326fi
27351 fi 27327 else
27352else 27328 pkg_failed=untried
27353 pkg_failed=untried
27354fi 27329fi
27355if test -n "$PKG_CONFIG"; then 27330if test -n "$CARES_LIBS"; then
27356 if test -n "$CARES_LIBS"; then 27331 pkg_cv_CARES_LIBS="$CARES_LIBS"
27357 pkg_cv_CARES_LIBS="$CARES_LIBS" 27332 elif test -n "$PKG_CONFIG"; then
27358 else 27333 if test -n "$PKG_CONFIG" && \
27359 if test -n "$PKG_CONFIG" && \ 27334 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcares >= 1.6.1\""; } >&5
27360 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcares >= 1.6.1 libcares != 1.7.5\""; } >&5 27335 ($PKG_CONFIG --exists --print-errors "libcares >= 1.6.1") 2>&5
27361 ($PKG_CONFIG --exists --print-errors "libcares >= 1.6.1 libcares != 1.7.5") 2>&5
27362 ac_status=$? 27336 ac_status=$?
27363 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 27337 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
27364 test $ac_status = 0; }; then 27338 test $ac_status = 0; }; then
27365 pkg_cv_CARES_LIBS=`$PKG_CONFIG --libs "libcares >= 1.6.1 libcares != 1.7.5" 2>/dev/null` 27339 pkg_cv_CARES_LIBS=`$PKG_CONFIG --libs "libcares >= 1.6.1" 2>/dev/null`
27366else 27340else
27367 pkg_failed=yes 27341 pkg_failed=yes
27368fi 27342fi
27369 fi 27343 else
27370else 27344 pkg_failed=untried
27371 pkg_failed=untried
27372fi 27345fi
27373 27346
27374 27347
27375 27348
27376if test $pkg_failed = yes; then 27349if test $pkg_failed = yes; then
27350 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27351$as_echo "no" >&6; }
27377 27352
27378if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 27353if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
27379 _pkg_short_errors_supported=yes 27354 _pkg_short_errors_supported=yes
@@ -27381,17 +27356,17 @@ else
27381 _pkg_short_errors_supported=no 27356 _pkg_short_errors_supported=no
27382fi 27357fi
27383 if test $_pkg_short_errors_supported = yes; then 27358 if test $_pkg_short_errors_supported = yes; then
27384 CARES_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libcares >= 1.6.1 libcares != 1.7.5"` 27359 CARES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libcares >= 1.6.1" 2>&1`
27385 else 27360 else
27386 CARES_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libcares >= 1.6.1 libcares != 1.7.5"` 27361 CARES_PKG_ERRORS=`$PKG_CONFIG --print-errors "libcares >= 1.6.1" 2>&1`
27387 fi 27362 fi
27388 # Put the nasty error message in config.log where it belongs 27363 # Put the nasty error message in config.log where it belongs
27389 echo "$CARES_PKG_ERRORS" >&5 27364 echo "$CARES_PKG_ERRORS" >&5
27390 27365
27391 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 27366 _ecore_have_cares="no"
27392$as_echo "no" >&6; }
27393 _ecore_have_cares="no"
27394elif test $pkg_failed = untried; then 27367elif test $pkg_failed = untried; then
27368 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27369$as_echo "no" >&6; }
27395 _ecore_have_cares="no" 27370 _ecore_have_cares="no"
27396else 27371else
27397 CARES_CFLAGS=$pkg_cv_CARES_CFLAGS 27372 CARES_CFLAGS=$pkg_cv_CARES_CFLAGS
@@ -27481,8 +27456,8 @@ fi
27481 27456
27482if test "x$have_ecore_ipc" = "xyes"; then : 27457if test "x$have_ecore_ipc" = "xyes"; then :
27483 27458
27484 requirements_ecore_ipc="ecore-con >= 1.1.99 ${requirements_ecore_ipc}" 27459 requirements_ecore_ipc="ecore-con >= 1.2.0 ${requirements_ecore_ipc}"
27485 requirements_ecore_evas="ecore-ipc >= 1.1.99 ${requirements_ecore_evas}" 27460 requirements_ecore_evas="ecore-ipc >= 1.2.0 ${requirements_ecore_evas}"
27486 27461
27487fi 27462fi
27488 27463
@@ -27736,7 +27711,7 @@ fi
27736 27711
27737 27712
27738 if test "x${have_ecore_con}" = "xyes" ; then 27713 if test "x${have_ecore_con}" = "xyes" ; then
27739 requirements_ecore_file="ecore-con >= 1.1.99 ${requirements_ecore_file}" 27714 requirements_ecore_file="ecore-con >= 1.2.0 ${requirements_ecore_file}"
27740 else 27715 else
27741 27716
27742_ecore_want_curl=${want_curl} 27717_ecore_want_curl=${want_curl}
@@ -27760,11 +27735,10 @@ pkg_failed=no
27760{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CURL" >&5 27735{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CURL" >&5
27761$as_echo_n "checking for CURL... " >&6; } 27736$as_echo_n "checking for CURL... " >&6; }
27762 27737
27763if test -n "$PKG_CONFIG"; then 27738if test -n "$CURL_CFLAGS"; then
27764 if test -n "$CURL_CFLAGS"; then 27739 pkg_cv_CURL_CFLAGS="$CURL_CFLAGS"
27765 pkg_cv_CURL_CFLAGS="$CURL_CFLAGS" 27740 elif test -n "$PKG_CONFIG"; then
27766 else 27741 if test -n "$PKG_CONFIG" && \
27767 if test -n "$PKG_CONFIG" && \
27768 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl\""; } >&5 27742 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl\""; } >&5
27769 ($PKG_CONFIG --exists --print-errors "libcurl") 2>&5 27743 ($PKG_CONFIG --exists --print-errors "libcurl") 2>&5
27770 ac_status=$? 27744 ac_status=$?
@@ -27774,15 +27748,13 @@ if test -n "$PKG_CONFIG"; then
27774else 27748else
27775 pkg_failed=yes 27749 pkg_failed=yes
27776fi 27750fi
27777 fi 27751 else
27778else 27752 pkg_failed=untried
27779 pkg_failed=untried
27780fi 27753fi
27781if test -n "$PKG_CONFIG"; then 27754if test -n "$CURL_LIBS"; then
27782 if test -n "$CURL_LIBS"; then 27755 pkg_cv_CURL_LIBS="$CURL_LIBS"
27783 pkg_cv_CURL_LIBS="$CURL_LIBS" 27756 elif test -n "$PKG_CONFIG"; then
27784 else 27757 if test -n "$PKG_CONFIG" && \
27785 if test -n "$PKG_CONFIG" && \
27786 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl\""; } >&5 27758 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl\""; } >&5
27787 ($PKG_CONFIG --exists --print-errors "libcurl") 2>&5 27759 ($PKG_CONFIG --exists --print-errors "libcurl") 2>&5
27788 ac_status=$? 27760 ac_status=$?
@@ -27792,14 +27764,15 @@ if test -n "$PKG_CONFIG"; then
27792else 27764else
27793 pkg_failed=yes 27765 pkg_failed=yes
27794fi 27766fi
27795 fi 27767 else
27796else 27768 pkg_failed=untried
27797 pkg_failed=untried
27798fi 27769fi
27799 27770
27800 27771
27801 27772
27802if test $pkg_failed = yes; then 27773if test $pkg_failed = yes; then
27774 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27775$as_echo "no" >&6; }
27803 27776
27804if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 27777if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
27805 _pkg_short_errors_supported=yes 27778 _pkg_short_errors_supported=yes
@@ -27807,17 +27780,17 @@ else
27807 _pkg_short_errors_supported=no 27780 _pkg_short_errors_supported=no
27808fi 27781fi
27809 if test $_pkg_short_errors_supported = yes; then 27782 if test $_pkg_short_errors_supported = yes; then
27810 CURL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libcurl"` 27783 CURL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libcurl" 2>&1`
27811 else 27784 else
27812 CURL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libcurl"` 27785 CURL_PKG_ERRORS=`$PKG_CONFIG --print-errors "libcurl" 2>&1`
27813 fi 27786 fi
27814 # Put the nasty error message in config.log where it belongs 27787 # Put the nasty error message in config.log where it belongs
27815 echo "$CURL_PKG_ERRORS" >&5 27788 echo "$CURL_PKG_ERRORS" >&5
27816 27789
27817 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 27790 _ecore_have_curl="no"
27818$as_echo "no" >&6; }
27819 _ecore_have_curl="no"
27820elif test $pkg_failed = untried; then 27791elif test $pkg_failed = untried; then
27792 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27793$as_echo "no" >&6; }
27821 _ecore_have_curl="no" 27794 _ecore_have_curl="no"
27822else 27795else
27823 CURL_CFLAGS=$pkg_cv_CURL_CFLAGS 27796 CURL_CFLAGS=$pkg_cv_CURL_CFLAGS
@@ -27853,7 +27826,7 @@ fi
27853#fi 27826#fi
27854 27827
27855#ECORE_CHECK_MODULE([config], [${want_ecore_config}], [Config], [${ecore_config_deps}], 27828#ECORE_CHECK_MODULE([config], [${want_ecore_config}], [Config], [${ecore_config_deps}],
27856# [requirements_ecore_config="ecore-ipc >= 1.1.99 evas >= 1.1.99 eet >= 1.5.0 ${requirements_ecore_config}"]) 27829# [requirements_ecore_config="ecore-ipc >= 1.2.0 evas >= 1.2.0 eet >= 1.6.0 ${requirements_ecore_config}"])
27857 27830
27858 if false; then 27831 if false; then
27859 BUILD_ECORE_CONFIG_TRUE= 27832 BUILD_ECORE_CONFIG_TRUE=
@@ -27983,7 +27956,7 @@ fi
27983 27956
27984 27957
27985if test "x$have_ecore_imf_evas" = "xyes"; then : 27958if test "x$have_ecore_imf_evas" = "xyes"; then :
27986 requirements_ecore_imf_evas="ecore-imf >= 1.1.99 evas >= 1.1.99 ${requirements_ecore_imf_evas}" 27959 requirements_ecore_imf_evas="ecore-imf >= 1.2.0 evas >= 1.2.0 ${requirements_ecore_imf_evas}"
27987fi 27960fi
27988 27961
27989 27962
@@ -28103,7 +28076,7 @@ fi
28103 28076
28104 28077
28105if test "x$have_ecore_input_evas" = "xyes"; then : 28078if test "x$have_ecore_input_evas" = "xyes"; then :
28106 requirements_ecore_input_evas="ecore-input >= 1.1.99 evas >= 1.1.99 ${requirements_ecore_input}" 28079 requirements_ecore_input_evas="ecore-input >= 1.2.0 evas >= 1.2.0 ${requirements_ecore_input}"
28107fi 28080fi
28108 28081
28109 28082
@@ -28183,7 +28156,7 @@ fi
28183 28156
28184 28157
28185if test "x$have_ecore_imf_xim" = "xyes"; then : 28158if test "x$have_ecore_imf_xim" = "xyes"; then :
28186 requirements_ecore_imf_xim="ecore-imf >= 1.1.99 ecore-x >= 1.1.99 ecore-input >= 1.1.99 ${requirements_ecore_imf_xim}" 28159 requirements_ecore_imf_xim="ecore-imf >= 1.2.0 ecore-x >= 1.2.0 ecore-input >= 1.2.0 ${requirements_ecore_imf_xim}"
28187fi 28160fi
28188 28161
28189 28162
@@ -28199,11 +28172,10 @@ pkg_failed=no
28199{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SCIM" >&5 28172{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SCIM" >&5
28200$as_echo_n "checking for SCIM... " >&6; } 28173$as_echo_n "checking for SCIM... " >&6; }
28201 28174
28202if test -n "$PKG_CONFIG"; then 28175if test -n "$SCIM_CFLAGS"; then
28203 if test -n "$SCIM_CFLAGS"; then 28176 pkg_cv_SCIM_CFLAGS="$SCIM_CFLAGS"
28204 pkg_cv_SCIM_CFLAGS="$SCIM_CFLAGS" 28177 elif test -n "$PKG_CONFIG"; then
28205 else 28178 if test -n "$PKG_CONFIG" && \
28206 if test -n "$PKG_CONFIG" && \
28207 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"scim\""; } >&5 28179 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"scim\""; } >&5
28208 ($PKG_CONFIG --exists --print-errors "scim") 2>&5 28180 ($PKG_CONFIG --exists --print-errors "scim") 2>&5
28209 ac_status=$? 28181 ac_status=$?
@@ -28213,15 +28185,13 @@ if test -n "$PKG_CONFIG"; then
28213else 28185else
28214 pkg_failed=yes 28186 pkg_failed=yes
28215fi 28187fi
28216 fi 28188 else
28217else 28189 pkg_failed=untried
28218 pkg_failed=untried
28219fi 28190fi
28220if test -n "$PKG_CONFIG"; then 28191if test -n "$SCIM_LIBS"; then
28221 if test -n "$SCIM_LIBS"; then 28192 pkg_cv_SCIM_LIBS="$SCIM_LIBS"
28222 pkg_cv_SCIM_LIBS="$SCIM_LIBS" 28193 elif test -n "$PKG_CONFIG"; then
28223 else 28194 if test -n "$PKG_CONFIG" && \
28224 if test -n "$PKG_CONFIG" && \
28225 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"scim\""; } >&5 28195 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"scim\""; } >&5
28226 ($PKG_CONFIG --exists --print-errors "scim") 2>&5 28196 ($PKG_CONFIG --exists --print-errors "scim") 2>&5
28227 ac_status=$? 28197 ac_status=$?
@@ -28231,14 +28201,15 @@ if test -n "$PKG_CONFIG"; then
28231else 28201else
28232 pkg_failed=yes 28202 pkg_failed=yes
28233fi 28203fi
28234 fi 28204 else
28235else 28205 pkg_failed=untried
28236 pkg_failed=untried
28237fi 28206fi
28238 28207
28239 28208
28240 28209
28241if test $pkg_failed = yes; then 28210if test $pkg_failed = yes; then
28211 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28212$as_echo "no" >&6; }
28242 28213
28243if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 28214if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
28244 _pkg_short_errors_supported=yes 28215 _pkg_short_errors_supported=yes
@@ -28246,17 +28217,17 @@ else
28246 _pkg_short_errors_supported=no 28217 _pkg_short_errors_supported=no
28247fi 28218fi
28248 if test $_pkg_short_errors_supported = yes; then 28219 if test $_pkg_short_errors_supported = yes; then
28249 SCIM_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "scim"` 28220 SCIM_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "scim" 2>&1`
28250 else 28221 else
28251 SCIM_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "scim"` 28222 SCIM_PKG_ERRORS=`$PKG_CONFIG --print-errors "scim" 2>&1`
28252 fi 28223 fi
28253 # Put the nasty error message in config.log where it belongs 28224 # Put the nasty error message in config.log where it belongs
28254 echo "$SCIM_PKG_ERRORS" >&5 28225 echo "$SCIM_PKG_ERRORS" >&5
28255 28226
28256 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 28227 have_scim="no"
28257$as_echo "no" >&6; }
28258 have_scim="no"
28259elif test $pkg_failed = untried; then 28228elif test $pkg_failed = untried; then
28229 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28230$as_echo "no" >&6; }
28260 have_scim="no" 28231 have_scim="no"
28261else 28232else
28262 SCIM_CFLAGS=$pkg_cv_SCIM_CFLAGS 28233 SCIM_CFLAGS=$pkg_cv_SCIM_CFLAGS
@@ -28335,7 +28306,7 @@ fi
28335 28306
28336 28307
28337if test "x$have_ecore_imf_scim" = "xyes"; then : 28308if test "x$have_ecore_imf_scim" = "xyes"; then :
28338 requirements_ecore_imf_scim="ecore-imf >= 1.1.0 ecore-x >= 1.1.0 ecore-input >= 1.1.0 ${requirements_ecore_imf_scim}" 28309 requirements_ecore_imf_scim="ecore-imf >= 1.2.0 ecore-x >= 1.2.0 ecore-input >= 1.2.0 ${requirements_ecore_imf_scim}"
28339fi 28310fi
28340 28311
28341 28312
@@ -28407,7 +28378,7 @@ fi
28407if test "x$have_ecore_x" = "xyes"; then : 28378if test "x$have_ecore_x" = "xyes"; then :
28408 28379
28409 ecore_x_libs="$ecore_x_libs $x_libs" 28380 ecore_x_libs="$ecore_x_libs $x_libs"
28410 requirements_ecore_x="ecore-input >= 1.1.99 ${requirements_ecore_x}" 28381 requirements_ecore_x="ecore-input >= 1.2.0 ${requirements_ecore_x}"
28411 28382
28412fi 28383fi
28413 28384
@@ -28472,7 +28443,7 @@ fi
28472if test "x$have_ecore_win32" = "xyes"; then : 28443if test "x$have_ecore_win32" = "xyes"; then :
28473 28444
28474 ecore_win32_libs="-lole32 -lgdi32" 28445 ecore_win32_libs="-lole32 -lgdi32"
28475 requirements_ecore_win32="ecore-input >= 1.1.99 ${requirements_ecore_win32}" 28446 requirements_ecore_win32="ecore-input >= 1.2.0 ${requirements_ecore_win32}"
28476 28447
28477fi 28448fi
28478 28449
@@ -28541,7 +28512,7 @@ fi
28541 28512
28542 28513
28543if test "x$have_ecore_cocoa" = "xyes"; then : 28514if test "x$have_ecore_cocoa" = "xyes"; then :
28544 requirements_ecore_cocoa="ecore-input >= 1.1.99 ${requirements_ecore_cocoa}" 28515 requirements_ecore_cocoa="ecore-input >= 1.2.0 ${requirements_ecore_cocoa}"
28545fi 28516fi
28546 28517
28547 28518
@@ -28608,7 +28579,7 @@ fi
28608 28579
28609 28580
28610if test "x$have_ecore_sdl" = "xyes"; then : 28581if test "x$have_ecore_sdl" = "xyes"; then :
28611 requirements_ecore_sdl="ecore-input >= 1.1.99 ${requirements_ecore_sdl}" 28582 requirements_ecore_sdl="ecore-input >= 1.2.0 ${requirements_ecore_sdl}"
28612fi 28583fi
28613 28584
28614 28585
@@ -28668,7 +28639,7 @@ fi
28668 28639
28669 28640
28670if test "x$have_ecore_psl1ght" = "xyes"; then : 28641if test "x$have_ecore_psl1ght" = "xyes"; then :
28671 requirements_ecore_psl1ght="ecore-input >= 1.1.99 ${requirements_ecore_psl1ght}" 28642 requirements_ecore_psl1ght="ecore-input >= 1.2.0 ${requirements_ecore_psl1ght}"
28672fi 28643fi
28673 28644
28674 28645
@@ -28765,11 +28736,10 @@ pkg_failed=no
28765{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TSLIB" >&5 28736{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TSLIB" >&5
28766$as_echo_n "checking for TSLIB... " >&6; } 28737$as_echo_n "checking for TSLIB... " >&6; }
28767 28738
28768if test -n "$PKG_CONFIG"; then 28739if test -n "$TSLIB_CFLAGS"; then
28769 if test -n "$TSLIB_CFLAGS"; then 28740 pkg_cv_TSLIB_CFLAGS="$TSLIB_CFLAGS"
28770 pkg_cv_TSLIB_CFLAGS="$TSLIB_CFLAGS" 28741 elif test -n "$PKG_CONFIG"; then
28771 else 28742 if test -n "$PKG_CONFIG" && \
28772 if test -n "$PKG_CONFIG" && \
28773 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tslib-1.0\""; } >&5 28743 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tslib-1.0\""; } >&5
28774 ($PKG_CONFIG --exists --print-errors "tslib-1.0") 2>&5 28744 ($PKG_CONFIG --exists --print-errors "tslib-1.0") 2>&5
28775 ac_status=$? 28745 ac_status=$?
@@ -28779,15 +28749,13 @@ if test -n "$PKG_CONFIG"; then
28779else 28749else
28780 pkg_failed=yes 28750 pkg_failed=yes
28781fi 28751fi
28782 fi 28752 else
28783else 28753 pkg_failed=untried
28784 pkg_failed=untried
28785fi 28754fi
28786if test -n "$PKG_CONFIG"; then 28755if test -n "$TSLIB_LIBS"; then
28787 if test -n "$TSLIB_LIBS"; then 28756 pkg_cv_TSLIB_LIBS="$TSLIB_LIBS"
28788 pkg_cv_TSLIB_LIBS="$TSLIB_LIBS" 28757 elif test -n "$PKG_CONFIG"; then
28789 else 28758 if test -n "$PKG_CONFIG" && \
28790 if test -n "$PKG_CONFIG" && \
28791 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tslib-1.0\""; } >&5 28759 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tslib-1.0\""; } >&5
28792 ($PKG_CONFIG --exists --print-errors "tslib-1.0") 2>&5 28760 ($PKG_CONFIG --exists --print-errors "tslib-1.0") 2>&5
28793 ac_status=$? 28761 ac_status=$?
@@ -28797,14 +28765,15 @@ if test -n "$PKG_CONFIG"; then
28797else 28765else
28798 pkg_failed=yes 28766 pkg_failed=yes
28799fi 28767fi
28800 fi 28768 else
28801else 28769 pkg_failed=untried
28802 pkg_failed=untried
28803fi 28770fi
28804 28771
28805 28772
28806 28773
28807if test $pkg_failed = yes; then 28774if test $pkg_failed = yes; then
28775 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28776$as_echo "no" >&6; }
28808 28777
28809if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 28778if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
28810 _pkg_short_errors_supported=yes 28779 _pkg_short_errors_supported=yes
@@ -28812,26 +28781,23 @@ else
28812 _pkg_short_errors_supported=no 28781 _pkg_short_errors_supported=no
28813fi 28782fi
28814 if test $_pkg_short_errors_supported = yes; then 28783 if test $_pkg_short_errors_supported = yes; then
28815 TSLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "tslib-1.0"` 28784 TSLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "tslib-1.0" 2>&1`
28816 else 28785 else
28817 TSLIB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "tslib-1.0"` 28786 TSLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors "tslib-1.0" 2>&1`
28818 fi 28787 fi
28819 # Put the nasty error message in config.log where it belongs 28788 # Put the nasty error message in config.log where it belongs
28820 echo "$TSLIB_PKG_ERRORS" >&5 28789 echo "$TSLIB_PKG_ERRORS" >&5
28821 28790
28822 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28823$as_echo "no" >&6; }
28824 28791
28825 28792
28826pkg_failed=no 28793pkg_failed=no
28827{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TSLIB" >&5 28794{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TSLIB" >&5
28828$as_echo_n "checking for TSLIB... " >&6; } 28795$as_echo_n "checking for TSLIB... " >&6; }
28829 28796
28830if test -n "$PKG_CONFIG"; then 28797if test -n "$TSLIB_CFLAGS"; then
28831 if test -n "$TSLIB_CFLAGS"; then 28798 pkg_cv_TSLIB_CFLAGS="$TSLIB_CFLAGS"
28832 pkg_cv_TSLIB_CFLAGS="$TSLIB_CFLAGS" 28799 elif test -n "$PKG_CONFIG"; then
28833 else 28800 if test -n "$PKG_CONFIG" && \
28834 if test -n "$PKG_CONFIG" && \
28835 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tslib\""; } >&5 28801 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tslib\""; } >&5
28836 ($PKG_CONFIG --exists --print-errors "tslib") 2>&5 28802 ($PKG_CONFIG --exists --print-errors "tslib") 2>&5
28837 ac_status=$? 28803 ac_status=$?
@@ -28841,15 +28807,13 @@ if test -n "$PKG_CONFIG"; then
28841else 28807else
28842 pkg_failed=yes 28808 pkg_failed=yes
28843fi 28809fi
28844 fi 28810 else
28845else 28811 pkg_failed=untried
28846 pkg_failed=untried
28847fi 28812fi
28848if test -n "$PKG_CONFIG"; then 28813if test -n "$TSLIB_LIBS"; then
28849 if test -n "$TSLIB_LIBS"; then 28814 pkg_cv_TSLIB_LIBS="$TSLIB_LIBS"
28850 pkg_cv_TSLIB_LIBS="$TSLIB_LIBS" 28815 elif test -n "$PKG_CONFIG"; then
28851 else 28816 if test -n "$PKG_CONFIG" && \
28852 if test -n "$PKG_CONFIG" && \
28853 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tslib\""; } >&5 28817 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tslib\""; } >&5
28854 ($PKG_CONFIG --exists --print-errors "tslib") 2>&5 28818 ($PKG_CONFIG --exists --print-errors "tslib") 2>&5
28855 ac_status=$? 28819 ac_status=$?
@@ -28859,14 +28823,15 @@ if test -n "$PKG_CONFIG"; then
28859else 28823else
28860 pkg_failed=yes 28824 pkg_failed=yes
28861fi 28825fi
28862 fi 28826 else
28863else 28827 pkg_failed=untried
28864 pkg_failed=untried
28865fi 28828fi
28866 28829
28867 28830
28868 28831
28869if test $pkg_failed = yes; then 28832if test $pkg_failed = yes; then
28833 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28834$as_echo "no" >&6; }
28870 28835
28871if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 28836if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
28872 _pkg_short_errors_supported=yes 28837 _pkg_short_errors_supported=yes
@@ -28874,15 +28839,13 @@ else
28874 _pkg_short_errors_supported=no 28839 _pkg_short_errors_supported=no
28875fi 28840fi
28876 if test $_pkg_short_errors_supported = yes; then 28841 if test $_pkg_short_errors_supported = yes; then
28877 TSLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "tslib"` 28842 TSLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "tslib" 2>&1`
28878 else 28843 else
28879 TSLIB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "tslib"` 28844 TSLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors "tslib" 2>&1`
28880 fi 28845 fi
28881 # Put the nasty error message in config.log where it belongs 28846 # Put the nasty error message in config.log where it belongs
28882 echo "$TSLIB_PKG_ERRORS" >&5 28847 echo "$TSLIB_PKG_ERRORS" >&5
28883 28848
28884 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28885$as_echo "no" >&6; }
28886 28849
28887 ac_fn_c_check_header_mongrel "$LINENO" "tslib.h" "ac_cv_header_tslib_h" "$ac_includes_default" 28850 ac_fn_c_check_header_mongrel "$LINENO" "tslib.h" "ac_cv_header_tslib_h" "$ac_includes_default"
28888if test "x$ac_cv_header_tslib_h" = x""yes; then : 28851if test "x$ac_cv_header_tslib_h" = x""yes; then :
@@ -28994,6 +28957,8 @@ fi
28994 28957
28995 28958
28996elif test $pkg_failed = untried; then 28959elif test $pkg_failed = untried; then
28960 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28961$as_echo "no" >&6; }
28997 28962
28998 ac_fn_c_check_header_mongrel "$LINENO" "tslib.h" "ac_cv_header_tslib_h" "$ac_includes_default" 28963 ac_fn_c_check_header_mongrel "$LINENO" "tslib.h" "ac_cv_header_tslib_h" "$ac_includes_default"
28999if test "x$ac_cv_header_tslib_h" = x""yes; then : 28964if test "x$ac_cv_header_tslib_h" = x""yes; then :
@@ -29119,17 +29084,18 @@ $as_echo "#define HAVE_TSLIB 1" >>confdefs.h
29119fi 29084fi
29120 29085
29121elif test $pkg_failed = untried; then 29086elif test $pkg_failed = untried; then
29087 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
29088$as_echo "no" >&6; }
29122 29089
29123 29090
29124pkg_failed=no 29091pkg_failed=no
29125{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TSLIB" >&5 29092{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TSLIB" >&5
29126$as_echo_n "checking for TSLIB... " >&6; } 29093$as_echo_n "checking for TSLIB... " >&6; }
29127 29094
29128if test -n "$PKG_CONFIG"; then 29095if test -n "$TSLIB_CFLAGS"; then
29129 if test -n "$TSLIB_CFLAGS"; then 29096 pkg_cv_TSLIB_CFLAGS="$TSLIB_CFLAGS"
29130 pkg_cv_TSLIB_CFLAGS="$TSLIB_CFLAGS" 29097 elif test -n "$PKG_CONFIG"; then
29131 else 29098 if test -n "$PKG_CONFIG" && \
29132 if test -n "$PKG_CONFIG" && \
29133 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tslib\""; } >&5 29099 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tslib\""; } >&5
29134 ($PKG_CONFIG --exists --print-errors "tslib") 2>&5 29100 ($PKG_CONFIG --exists --print-errors "tslib") 2>&5
29135 ac_status=$? 29101 ac_status=$?
@@ -29139,15 +29105,13 @@ if test -n "$PKG_CONFIG"; then
29139else 29105else
29140 pkg_failed=yes 29106 pkg_failed=yes
29141fi 29107fi
29142 fi 29108 else
29143else 29109 pkg_failed=untried
29144 pkg_failed=untried
29145fi 29110fi
29146if test -n "$PKG_CONFIG"; then 29111if test -n "$TSLIB_LIBS"; then
29147 if test -n "$TSLIB_LIBS"; then 29112 pkg_cv_TSLIB_LIBS="$TSLIB_LIBS"
29148 pkg_cv_TSLIB_LIBS="$TSLIB_LIBS" 29113 elif test -n "$PKG_CONFIG"; then
29149 else 29114 if test -n "$PKG_CONFIG" && \
29150 if test -n "$PKG_CONFIG" && \
29151 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tslib\""; } >&5 29115 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tslib\""; } >&5
29152 ($PKG_CONFIG --exists --print-errors "tslib") 2>&5 29116 ($PKG_CONFIG --exists --print-errors "tslib") 2>&5
29153 ac_status=$? 29117 ac_status=$?
@@ -29157,14 +29121,15 @@ if test -n "$PKG_CONFIG"; then
29157else 29121else
29158 pkg_failed=yes 29122 pkg_failed=yes
29159fi 29123fi
29160 fi 29124 else
29161else 29125 pkg_failed=untried
29162 pkg_failed=untried
29163fi 29126fi
29164 29127
29165 29128
29166 29129
29167if test $pkg_failed = yes; then 29130if test $pkg_failed = yes; then
29131 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
29132$as_echo "no" >&6; }
29168 29133
29169if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 29134if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
29170 _pkg_short_errors_supported=yes 29135 _pkg_short_errors_supported=yes
@@ -29172,15 +29137,13 @@ else
29172 _pkg_short_errors_supported=no 29137 _pkg_short_errors_supported=no
29173fi 29138fi
29174 if test $_pkg_short_errors_supported = yes; then 29139 if test $_pkg_short_errors_supported = yes; then
29175 TSLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "tslib"` 29140 TSLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "tslib" 2>&1`
29176 else 29141 else
29177 TSLIB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "tslib"` 29142 TSLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors "tslib" 2>&1`
29178 fi 29143 fi
29179 # Put the nasty error message in config.log where it belongs 29144 # Put the nasty error message in config.log where it belongs
29180 echo "$TSLIB_PKG_ERRORS" >&5 29145 echo "$TSLIB_PKG_ERRORS" >&5
29181 29146
29182 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
29183$as_echo "no" >&6; }
29184 29147
29185 ac_fn_c_check_header_mongrel "$LINENO" "tslib.h" "ac_cv_header_tslib_h" "$ac_includes_default" 29148 ac_fn_c_check_header_mongrel "$LINENO" "tslib.h" "ac_cv_header_tslib_h" "$ac_includes_default"
29186if test "x$ac_cv_header_tslib_h" = x""yes; then : 29149if test "x$ac_cv_header_tslib_h" = x""yes; then :
@@ -29292,6 +29255,8 @@ fi
29292 29255
29293 29256
29294elif test $pkg_failed = untried; then 29257elif test $pkg_failed = untried; then
29258 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
29259$as_echo "no" >&6; }
29295 29260
29296 ac_fn_c_check_header_mongrel "$LINENO" "tslib.h" "ac_cv_header_tslib_h" "$ac_includes_default" 29261 ac_fn_c_check_header_mongrel "$LINENO" "tslib.h" "ac_cv_header_tslib_h" "$ac_includes_default"
29297if test "x$ac_cv_header_tslib_h" = x""yes; then : 29262if test "x$ac_cv_header_tslib_h" = x""yes; then :
@@ -29559,7 +29524,7 @@ fi
29559 29524
29560 29525
29561if test "x$have_ecore_wince" = "xyes"; then : 29526if test "x$have_ecore_wince" = "xyes"; then :
29562 requirements_ecore_win32="ecore-input >= 1.1.99 ${requirements_ecore_win32}" 29527 requirements_ecore_win32="ecore-input >= 1.2.0 ${requirements_ecore_win32}"
29563fi 29528fi
29564 29529
29565 29530
@@ -29574,7 +29539,7 @@ fi
29574# ecore_evas 29539# ecore_evas
29575 29540
29576ecore_evas_deps="no" 29541ecore_evas_deps="no"
29577if test "x${have_evas}" = "xyes" -a "x${have_ecore_input}" = "xyes" -a "x${have_ecore_input_evas}" = "xyes" ; then 29542if test "x${have_evas}" = "xyes" && test "x${have_ecore_input}" = "xyes" && test "x${have_ecore_input_evas}" = "xyes" ; then
29578 ecore_evas_deps="yes" 29543 ecore_evas_deps="yes"
29579fi 29544fi
29580 29545
@@ -29628,7 +29593,7 @@ fi
29628 29593
29629 29594
29630if test "x$have_ecore_evas" = "xyes"; then : 29595if test "x$have_ecore_evas" = "xyes"; then :
29631 requirements_ecore_evas="ecore-input >= 1.1.99 ecore-input-evas >= 1.1.99 evas >= 1.1.99 ${requirements_ecore_evas}" 29596 requirements_ecore_evas="ecore-input >= 1.2.0 ecore-input-evas >= 1.2.0 evas >= 1.2.0 ${requirements_ecore_evas}"
29632fi 29597fi
29633 29598
29634 29599
@@ -29662,9 +29627,9 @@ $as_echo_n "checking whether ecore_evas Software Buffer support is to be built..
29662{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5 29627{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5
29663$as_echo "${want_module}" >&6; } 29628$as_echo "${want_module}" >&6; }
29664 29629
29665if test "xyes" = "xyes" -a \ 29630if test "xyes" = "xyes" && \
29666 "x$have_ecore_evas" = "xyes" -a \ 29631 test "x$have_ecore_evas" = "xyes" && \
29667 "x$want_module" = "xyes" ; then 29632 test "x$want_module" = "xyes" ; then
29668 if test -n "$PKG_CONFIG" && \ 29633 if test -n "$PKG_CONFIG" && \
29669 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-software-buffer\""; } >&5 29634 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-software-buffer\""; } >&5
29670 ($PKG_CONFIG --exists --print-errors "evas-software-buffer") 2>&5 29635 ($PKG_CONFIG --exists --print-errors "evas-software-buffer") 2>&5
@@ -29719,9 +29684,9 @@ $as_echo_n "checking whether ecore_evas Software X11 support is to be built... "
29719{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5 29684{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5
29720$as_echo "${want_module}" >&6; } 29685$as_echo "${want_module}" >&6; }
29721 29686
29722if test "x${have_ecore_x}" = "xyes" -a \ 29687if test "x${have_ecore_x}" = "xyes" && \
29723 "x$have_ecore_evas" = "xyes" -a \ 29688 test "x$have_ecore_evas" = "xyes" && \
29724 "x$want_module" = "xyes" ; then 29689 test "x$want_module" = "xyes" ; then
29725 if test -n "$PKG_CONFIG" && \ 29690 if test -n "$PKG_CONFIG" && \
29726 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-software-x11\""; } >&5 29691 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-software-x11\""; } >&5
29727 ($PKG_CONFIG --exists --print-errors "evas-software-x11") 2>&5 29692 ($PKG_CONFIG --exists --print-errors "evas-software-x11") 2>&5
@@ -29797,9 +29762,9 @@ $as_echo_n "checking whether ecore_evas OpenGL Xlib support is to be built... "
29797{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5 29762{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5
29798$as_echo "${want_module}" >&6; } 29763$as_echo "${want_module}" >&6; }
29799 29764
29800if test "x${have_ecore_x}" = "xyes" -a \ 29765if test "x${have_ecore_x}" = "xyes" && \
29801 "x$have_ecore_evas" = "xyes" -a \ 29766 test "x$have_ecore_evas" = "xyes" && \
29802 "x$want_module" = "xyes" ; then 29767 test "x$want_module" = "xyes" ; then
29803 if test -n "$PKG_CONFIG" && \ 29768 if test -n "$PKG_CONFIG" && \
29804 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-opengl-x11\""; } >&5 29769 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-opengl-x11\""; } >&5
29805 ($PKG_CONFIG --exists --print-errors "evas-opengl-x11") 2>&5 29770 ($PKG_CONFIG --exists --print-errors "evas-opengl-x11") 2>&5
@@ -29849,11 +29814,10 @@ pkg_failed=no
29849{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_X11" >&5 29814{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_X11" >&5
29850$as_echo_n "checking for XCB_X11... " >&6; } 29815$as_echo_n "checking for XCB_X11... " >&6; }
29851 29816
29852if test -n "$PKG_CONFIG"; then 29817if test -n "$XCB_X11_CFLAGS"; then
29853 if test -n "$XCB_X11_CFLAGS"; then 29818 pkg_cv_XCB_X11_CFLAGS="$XCB_X11_CFLAGS"
29854 pkg_cv_XCB_X11_CFLAGS="$XCB_X11_CFLAGS" 29819 elif test -n "$PKG_CONFIG"; then
29855 else 29820 if test -n "$PKG_CONFIG" && \
29856 if test -n "$PKG_CONFIG" && \
29857 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb\""; } >&5 29821 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb\""; } >&5
29858 ($PKG_CONFIG --exists --print-errors "x11-xcb") 2>&5 29822 ($PKG_CONFIG --exists --print-errors "x11-xcb") 2>&5
29859 ac_status=$? 29823 ac_status=$?
@@ -29863,15 +29827,13 @@ if test -n "$PKG_CONFIG"; then
29863else 29827else
29864 pkg_failed=yes 29828 pkg_failed=yes
29865fi 29829fi
29866 fi 29830 else
29867else 29831 pkg_failed=untried
29868 pkg_failed=untried
29869fi 29832fi
29870if test -n "$PKG_CONFIG"; then 29833if test -n "$XCB_X11_LIBS"; then
29871 if test -n "$XCB_X11_LIBS"; then 29834 pkg_cv_XCB_X11_LIBS="$XCB_X11_LIBS"
29872 pkg_cv_XCB_X11_LIBS="$XCB_X11_LIBS" 29835 elif test -n "$PKG_CONFIG"; then
29873 else 29836 if test -n "$PKG_CONFIG" && \
29874 if test -n "$PKG_CONFIG" && \
29875 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb\""; } >&5 29837 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb\""; } >&5
29876 ($PKG_CONFIG --exists --print-errors "x11-xcb") 2>&5 29838 ($PKG_CONFIG --exists --print-errors "x11-xcb") 2>&5
29877 ac_status=$? 29839 ac_status=$?
@@ -29881,14 +29843,15 @@ if test -n "$PKG_CONFIG"; then
29881else 29843else
29882 pkg_failed=yes 29844 pkg_failed=yes
29883fi 29845fi
29884 fi 29846 else
29885else 29847 pkg_failed=untried
29886 pkg_failed=untried
29887fi 29848fi
29888 29849
29889 29850
29890 29851
29891if test $pkg_failed = yes; then 29852if test $pkg_failed = yes; then
29853 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
29854$as_echo "no" >&6; }
29892 29855
29893if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 29856if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
29894 _pkg_short_errors_supported=yes 29857 _pkg_short_errors_supported=yes
@@ -29896,17 +29859,17 @@ else
29896 _pkg_short_errors_supported=no 29859 _pkg_short_errors_supported=no
29897fi 29860fi
29898 if test $_pkg_short_errors_supported = yes; then 29861 if test $_pkg_short_errors_supported = yes; then
29899 XCB_X11_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "x11-xcb"` 29862 XCB_X11_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "x11-xcb" 2>&1`
29900 else 29863 else
29901 XCB_X11_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "x11-xcb"` 29864 XCB_X11_PKG_ERRORS=`$PKG_CONFIG --print-errors "x11-xcb" 2>&1`
29902 fi 29865 fi
29903 # Put the nasty error message in config.log where it belongs 29866 # Put the nasty error message in config.log where it belongs
29904 echo "$XCB_X11_PKG_ERRORS" >&5 29867 echo "$XCB_X11_PKG_ERRORS" >&5
29905 29868
29906 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 29869 have_ecore_x_opengl_xcb="no"
29907$as_echo "no" >&6; }
29908 have_ecore_x_opengl_xcb="no"
29909elif test $pkg_failed = untried; then 29870elif test $pkg_failed = untried; then
29871 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
29872$as_echo "no" >&6; }
29910 have_ecore_x_opengl_xcb="no" 29873 have_ecore_x_opengl_xcb="no"
29911else 29874else
29912 XCB_X11_CFLAGS=$pkg_cv_XCB_X11_CFLAGS 29875 XCB_X11_CFLAGS=$pkg_cv_XCB_X11_CFLAGS
@@ -29954,9 +29917,9 @@ $as_echo_n "checking whether ecore_evas Software Xlib 16 bits support is to be b
29954{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5 29917{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5
29955$as_echo "${want_module}" >&6; } 29918$as_echo "${want_module}" >&6; }
29956 29919
29957if test "x${have_ecore_x_xlib}" = "xyes" -a \ 29920if test "x${have_ecore_x_xlib}" = "xyes" && \
29958 "x$have_ecore_evas" = "xyes" -a \ 29921 test "x$have_ecore_evas" = "xyes" && \
29959 "x$want_module" = "xyes" ; then 29922 test "x$want_module" = "xyes" ; then
29960 if test -n "$PKG_CONFIG" && \ 29923 if test -n "$PKG_CONFIG" && \
29961 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-software-16-x11\""; } >&5 29924 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-software-16-x11\""; } >&5
29962 ($PKG_CONFIG --exists --print-errors "evas-software-16-x11") 2>&5 29925 ($PKG_CONFIG --exists --print-errors "evas-software-16-x11") 2>&5
@@ -30007,9 +29970,9 @@ $as_echo_n "checking whether ecore_evas Software 8bit X11 support is to be built
30007{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5 29970{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5
30008$as_echo "${want_module}" >&6; } 29971$as_echo "${want_module}" >&6; }
30009 29972
30010if test "x$have_ecore_x_xcb" = "xyes" -a \ 29973if test "x$have_ecore_x_xcb" = "xyes" && \
30011 "x$have_ecore_evas" = "xyes" -a \ 29974 test "x$have_ecore_evas" = "xyes" && \
30012 "x$want_module" = "xyes" ; then 29975 test "x$want_module" = "xyes" ; then
30013 if test -n "$PKG_CONFIG" && \ 29976 if test -n "$PKG_CONFIG" && \
30014 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-software-8-x11\""; } >&5 29977 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-software-8-x11\""; } >&5
30015 ($PKG_CONFIG --exists --print-errors "evas-software-8-x11") 2>&5 29978 ($PKG_CONFIG --exists --print-errors "evas-software-8-x11") 2>&5
@@ -30047,7 +30010,7 @@ if test "x$have_ecore_evas_software_x11" = "xyes" -o \
30047 30010
30048$as_echo "#define BUILD_ECORE_EVAS_X11 1" >>confdefs.h 30011$as_echo "#define BUILD_ECORE_EVAS_X11 1" >>confdefs.h
30049 30012
30050 requirements_ecore_evas="ecore-x >= 1.1.99 ${requirements_ecore_evas}" 30013 requirements_ecore_evas="ecore-x >= 1.2.0 ${requirements_ecore_evas}"
30051fi 30014fi
30052 30015
30053# ecore_evas_win32 30016# ecore_evas_win32
@@ -30074,9 +30037,9 @@ $as_echo_n "checking whether ecore_evas Software GDI support is to be built... "
30074{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5 30037{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5
30075$as_echo "${want_module}" >&6; } 30038$as_echo "${want_module}" >&6; }
30076 30039
30077if test "x${have_ecore_win32}" = "xyes" -a \ 30040if test "x${have_ecore_win32}" = "xyes" && \
30078 "x$have_ecore_evas" = "xyes" -a \ 30041 test "x$have_ecore_evas" = "xyes" && \
30079 "x$want_module" = "xyes" ; then 30042 test "x$want_module" = "xyes" ; then
30080 if test -n "$PKG_CONFIG" && \ 30043 if test -n "$PKG_CONFIG" && \
30081 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-software-gdi\""; } >&5 30044 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-software-gdi\""; } >&5
30082 ($PKG_CONFIG --exists --print-errors "evas-software-gdi") 2>&5 30045 ($PKG_CONFIG --exists --print-errors "evas-software-gdi") 2>&5
@@ -30127,9 +30090,9 @@ $as_echo_n "checking whether ecore_evas Software DirectDraw support is to be bui
30127{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5 30090{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5
30128$as_echo "${want_module}" >&6; } 30091$as_echo "${want_module}" >&6; }
30129 30092
30130if test "x${have_ecore_win32}" = "xyes" -a \ 30093if test "x${have_ecore_win32}" = "xyes" && \
30131 "x$have_ecore_evas" = "xyes" -a \ 30094 test "x$have_ecore_evas" = "xyes" && \
30132 "x$want_module" = "xyes" ; then 30095 test "x$want_module" = "xyes" ; then
30133 if test -n "$PKG_CONFIG" && \ 30096 if test -n "$PKG_CONFIG" && \
30134 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-software-ddraw\""; } >&5 30097 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-software-ddraw\""; } >&5
30135 ($PKG_CONFIG --exists --print-errors "evas-software-ddraw") 2>&5 30098 ($PKG_CONFIG --exists --print-errors "evas-software-ddraw") 2>&5
@@ -30180,9 +30143,9 @@ $as_echo_n "checking whether ecore_evas Direct3d support is to be built... " >&6
30180{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5 30143{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5
30181$as_echo "${want_module}" >&6; } 30144$as_echo "${want_module}" >&6; }
30182 30145
30183if test "x${have_ecore_win32}" = "xyes" -a \ 30146if test "x${have_ecore_win32}" = "xyes" && \
30184 "x$have_ecore_evas" = "xyes" -a \ 30147 test "x$have_ecore_evas" = "xyes" && \
30185 "x$want_module" = "xyes" ; then 30148 test "x$want_module" = "xyes" ; then
30186 if test -n "$PKG_CONFIG" && \ 30149 if test -n "$PKG_CONFIG" && \
30187 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-direct3d\""; } >&5 30150 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-direct3d\""; } >&5
30188 ($PKG_CONFIG --exists --print-errors "evas-direct3d") 2>&5 30151 ($PKG_CONFIG --exists --print-errors "evas-direct3d") 2>&5
@@ -30233,9 +30196,9 @@ $as_echo_n "checking whether ecore_evas Glew OpenGL support is to be built... "
30233{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5 30196{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5
30234$as_echo "${want_module}" >&6; } 30197$as_echo "${want_module}" >&6; }
30235 30198
30236if test "x${have_ecore_win32}" = "xyes" -a \ 30199if test "x${have_ecore_win32}" = "xyes" && \
30237 "x$have_ecore_evas" = "xyes" -a \ 30200 test "x$have_ecore_evas" = "xyes" && \
30238 "x$want_module" = "xyes" ; then 30201 test "x$want_module" = "xyes" ; then
30239 if test -n "$PKG_CONFIG" && \ 30202 if test -n "$PKG_CONFIG" && \
30240 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-opengl-glew\""; } >&5 30203 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-opengl-glew\""; } >&5
30241 ($PKG_CONFIG --exists --print-errors "evas-opengl-glew") 2>&5 30204 ($PKG_CONFIG --exists --print-errors "evas-opengl-glew") 2>&5
@@ -30286,9 +30249,9 @@ $as_echo_n "checking whether ecore_evas 16 bpp Software DirectDraw support is to
30286{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5 30249{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5
30287$as_echo "${want_module}" >&6; } 30250$as_echo "${want_module}" >&6; }
30288 30251
30289if test "x${have_ecore_win32}" = "xyes" -a \ 30252if test "x${have_ecore_win32}" = "xyes" && \
30290 "x$have_ecore_evas" = "xyes" -a \ 30253 test "x$have_ecore_evas" = "xyes" && \
30291 "x$want_module" = "xyes" ; then 30254 test "x$want_module" = "xyes" ; then
30292 if test -n "$PKG_CONFIG" && \ 30255 if test -n "$PKG_CONFIG" && \
30293 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-software-16-ddraw\""; } >&5 30256 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-software-16-ddraw\""; } >&5
30294 ($PKG_CONFIG --exists --print-errors "evas-software-16-ddraw") 2>&5 30257 ($PKG_CONFIG --exists --print-errors "evas-software-16-ddraw") 2>&5
@@ -30325,64 +30288,21 @@ if test "x${have_ecore_evas_software_gdi}" = "xyes" -o \
30325 30288
30326$as_echo "#define BUILD_ECORE_EVAS_WIN32 1" >>confdefs.h 30289$as_echo "#define BUILD_ECORE_EVAS_WIN32 1" >>confdefs.h
30327 30290
30328 requirements_ecore_evas="ecore-win32 >= 1.1.99 ${requirements_ecore_evas}" 30291 requirements_ecore_evas="ecore-win32 >= 1.2.0 ${requirements_ecore_evas}"
30329fi 30292fi
30330 30293
30331# ecore_evas_software_sdl 30294# ecore_evas_software_sdl
30332 30295
30333
30334
30335have_ecore_evas_software_sdl="no" 30296have_ecore_evas_software_sdl="no"
30336want_module="${want_ecore_evas_software_sdl}" 30297if test "x${have_ecore_sdl}" = "xyes"; then
30337 30298 requirements_ecore_evas="ecore-sdl >= 1.2.0 ${requirements_ecore_evas}"
30338# Check whether --enable-ecore-evas-software-sdl was given. 30299 have_ecore_evas_software_sdl="yes"
30339if test "${enable_ecore_evas_software_sdl+set}" = set; then :
30340 enableval=$enable_ecore_evas_software_sdl;
30341 if test "x${enableval}" = "xyes" ; then
30342 want_module="yes"
30343 else
30344 want_module="no"
30345 fi
30346
30347fi
30348
30349
30350{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ecore_evas Software SDL support is to be built" >&5
30351$as_echo_n "checking whether ecore_evas Software SDL support is to be built... " >&6; }
30352{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5
30353$as_echo "${want_module}" >&6; }
30354
30355if test "x${have_ecore_sdl}" = "xyes" -a \
30356 "x$have_ecore_evas" = "xyes" -a \
30357 "x$want_module" = "xyes" ; then
30358 if test -n "$PKG_CONFIG" && \
30359 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-software-sdl\""; } >&5
30360 ($PKG_CONFIG --exists --print-errors "evas-software-sdl") 2>&5
30361 ac_status=$?
30362 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
30363 test $ac_status = 0; }; then
30364
30365 30300
30366$as_echo "#define BUILD_ECORE_EVAS_SOFTWARE_SDL 1" >>confdefs.h 30301$as_echo "#define BUILD_ECORE_EVAS_SOFTWARE_SDL 1" >>confdefs.h
30367 30302
30368 have_ecore_evas_software_sdl="yes" 30303 requirements_ecore_evas="ecore-sdl >= 1.2.0 ${requirements_ecore_evas}"
30369
30370fi
30371fi
30372
30373{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ecore_evas Software SDL support is built" >&5
30374$as_echo_n "checking whether ecore_evas Software SDL support is built... " >&6; }
30375{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_ecore_evas_software_sdl" >&5
30376$as_echo "$have_ecore_evas_software_sdl" >&6; }
30377
30378if test "x$have_ecore_evas_software_sdl" = "xyes"; then :
30379 requirements_ecore_evas="ecore-sdl >= 1.1.99 ${requirements_ecore_evas}"
30380fi 30304fi
30381 30305
30382
30383
30384
30385
30386# ecore_evas_gl_sdl 30306# ecore_evas_gl_sdl
30387 30307
30388 30308
@@ -30407,9 +30327,9 @@ $as_echo_n "checking whether ecore_evas OpenGL SDL support is to be built... " >
30407{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5 30327{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5
30408$as_echo "${want_module}" >&6; } 30328$as_echo "${want_module}" >&6; }
30409 30329
30410if test "x${have_ecore_sdl}" = "xyes" -a \ 30330if test "x${have_ecore_sdl}" = "xyes" && \
30411 "x$have_ecore_evas" = "xyes" -a \ 30331 test "x$have_ecore_evas" = "xyes" && \
30412 "x$want_module" = "xyes" ; then 30332 test "x$want_module" = "xyes" ; then
30413 if test -n "$PKG_CONFIG" && \ 30333 if test -n "$PKG_CONFIG" && \
30414 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-opengl-sdl\""; } >&5 30334 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-opengl-sdl\""; } >&5
30415 ($PKG_CONFIG --exists --print-errors "evas-opengl-sdl") 2>&5 30335 ($PKG_CONFIG --exists --print-errors "evas-opengl-sdl") 2>&5
@@ -30431,7 +30351,7 @@ $as_echo_n "checking whether ecore_evas OpenGL SDL support is built... " >&6; }
30431$as_echo "$have_ecore_evas_opengl_sdl" >&6; } 30351$as_echo "$have_ecore_evas_opengl_sdl" >&6; }
30432 30352
30433if test "x$have_ecore_evas_opengl_sdl" = "xyes"; then : 30353if test "x$have_ecore_evas_opengl_sdl" = "xyes"; then :
30434 requirements_ecore_evas="ecore-sdl >= 1.1.99 ${requirements_ecore_evas}" 30354 requirements_ecore_evas="ecore-sdl >= 1.2.0 ${requirements_ecore_evas}"
30435fi 30355fi
30436 30356
30437 30357
@@ -30462,9 +30382,9 @@ $as_echo_n "checking whether ecore_evas OpenGL Cocoa support is to be built... "
30462{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5 30382{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5
30463$as_echo "${want_module}" >&6; } 30383$as_echo "${want_module}" >&6; }
30464 30384
30465if test "x${have_ecore_cocoa}" = "xyes" -a \ 30385if test "x${have_ecore_cocoa}" = "xyes" && \
30466 "x$have_ecore_evas" = "xyes" -a \ 30386 test "x$have_ecore_evas" = "xyes" && \
30467 "x$want_module" = "xyes" ; then 30387 test "x$want_module" = "xyes" ; then
30468 if test -n "$PKG_CONFIG" && \ 30388 if test -n "$PKG_CONFIG" && \
30469 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-opengl-cocoa\""; } >&5 30389 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-opengl-cocoa\""; } >&5
30470 ($PKG_CONFIG --exists --print-errors "evas-opengl-cocoa") 2>&5 30390 ($PKG_CONFIG --exists --print-errors "evas-opengl-cocoa") 2>&5
@@ -30486,7 +30406,7 @@ $as_echo_n "checking whether ecore_evas OpenGL Cocoa support is built... " >&6;
30486$as_echo "$have_ecore_evas_opengl_cocoa" >&6; } 30406$as_echo "$have_ecore_evas_opengl_cocoa" >&6; }
30487 30407
30488if test "x$have_ecore_evas_opengl_cocoa" = "xyes"; then : 30408if test "x$have_ecore_evas_opengl_cocoa" = "xyes"; then :
30489 requirements_ecore_evas="ecore-cocoa >= 1.1.99 ${requirements_ecore_evas}" 30409 requirements_ecore_evas="ecore-cocoa >= 1.2.0 ${requirements_ecore_evas}"
30490fi 30410fi
30491 30411
30492 30412
@@ -30517,9 +30437,9 @@ $as_echo_n "checking whether ecore_evas DirectFB support is to be built... " >&6
30517{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5 30437{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5
30518$as_echo "${want_module}" >&6; } 30438$as_echo "${want_module}" >&6; }
30519 30439
30520if test "x${have_ecore_directfb}" = "xyes" -a \ 30440if test "x${have_ecore_directfb}" = "xyes" && \
30521 "x$have_ecore_evas" = "xyes" -a \ 30441 test "x$have_ecore_evas" = "xyes" && \
30522 "x$want_module" = "xyes" ; then 30442 test "x$want_module" = "xyes" ; then
30523 if test -n "$PKG_CONFIG" && \ 30443 if test -n "$PKG_CONFIG" && \
30524 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-directfb\""; } >&5 30444 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-directfb\""; } >&5
30525 ($PKG_CONFIG --exists --print-errors "evas-directfb") 2>&5 30445 ($PKG_CONFIG --exists --print-errors "evas-directfb") 2>&5
@@ -30541,7 +30461,7 @@ $as_echo_n "checking whether ecore_evas DirectFB support is built... " >&6; }
30541$as_echo "$have_ecore_evas_directfb" >&6; } 30461$as_echo "$have_ecore_evas_directfb" >&6; }
30542 30462
30543if test "x$have_ecore_evas_directfb" = "xyes"; then : 30463if test "x$have_ecore_evas_directfb" = "xyes"; then :
30544 requirements_ecore_evas="ecore-directfb >= 1.1.99 ${requirements_ecore_evas}" 30464 requirements_ecore_evas="ecore-directfb >= 1.2.0 ${requirements_ecore_evas}"
30545fi 30465fi
30546 30466
30547 30467
@@ -30572,9 +30492,9 @@ $as_echo_n "checking whether ecore_evas Linux Framebuffer support is to be built
30572{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5 30492{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5
30573$as_echo "${want_module}" >&6; } 30493$as_echo "${want_module}" >&6; }
30574 30494
30575if test "x${have_ecore_fb}" = "xyes" -a \ 30495if test "x${have_ecore_fb}" = "xyes" && \
30576 "x$have_ecore_evas" = "xyes" -a \ 30496 test "x$have_ecore_evas" = "xyes" && \
30577 "x$want_module" = "xyes" ; then 30497 test "x$want_module" = "xyes" ; then
30578 if test -n "$PKG_CONFIG" && \ 30498 if test -n "$PKG_CONFIG" && \
30579 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-fb\""; } >&5 30499 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-fb\""; } >&5
30580 ($PKG_CONFIG --exists --print-errors "evas-fb") 2>&5 30500 ($PKG_CONFIG --exists --print-errors "evas-fb") 2>&5
@@ -30596,7 +30516,7 @@ $as_echo_n "checking whether ecore_evas Linux Framebuffer support is built... "
30596$as_echo "$have_ecore_evas_fb" >&6; } 30516$as_echo "$have_ecore_evas_fb" >&6; }
30597 30517
30598if test "x$have_ecore_evas_fb" = "xyes"; then : 30518if test "x$have_ecore_evas_fb" = "xyes"; then :
30599 requirements_ecore_evas="ecore-fb >= 1.1.99 ${requirements_ecore_evas}" 30519 requirements_ecore_evas="ecore-fb >= 1.2.0 ${requirements_ecore_evas}"
30600fi 30520fi
30601 30521
30602 30522
@@ -30627,9 +30547,9 @@ $as_echo_n "checking whether ecore_evas 16 bpp Software Windows CE support is to
30627{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5 30547{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5
30628$as_echo "${want_module}" >&6; } 30548$as_echo "${want_module}" >&6; }
30629 30549
30630if test "x${have_ecore_wince}" = "xyes" -a \ 30550if test "x${have_ecore_wince}" = "xyes" && \
30631 "x$have_ecore_evas" = "xyes" -a \ 30551 test "x$have_ecore_evas" = "xyes" && \
30632 "x$want_module" = "xyes" ; then 30552 test "x$want_module" = "xyes" ; then
30633 if test -n "$PKG_CONFIG" && \ 30553 if test -n "$PKG_CONFIG" && \
30634 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-software-16-wince\""; } >&5 30554 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-software-16-wince\""; } >&5
30635 ($PKG_CONFIG --exists --print-errors "evas-software-16-wince") 2>&5 30555 ($PKG_CONFIG --exists --print-errors "evas-software-16-wince") 2>&5
@@ -30651,7 +30571,7 @@ $as_echo_n "checking whether ecore_evas 16 bpp Software Windows CE support is bu
30651$as_echo "$have_ecore_evas_software_16_wince" >&6; } 30571$as_echo "$have_ecore_evas_software_16_wince" >&6; }
30652 30572
30653if test "x$have_ecore_evas_software_16_wince" = "xyes"; then : 30573if test "x$have_ecore_evas_software_16_wince" = "xyes"; then :
30654 requirements_ecore_evas="ecore-wince >= 1.1.99 ${requirements_ecore_evas}" 30574 requirements_ecore_evas="ecore-wince >= 1.2.0 ${requirements_ecore_evas}"
30655fi 30575fi
30656 30576
30657 30577
@@ -30682,9 +30602,9 @@ $as_echo_n "checking whether ecore_evas Ecore Evas Single Process Windowing Syst
30682{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5 30602{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5
30683$as_echo "${want_module}" >&6; } 30603$as_echo "${want_module}" >&6; }
30684 30604
30685if test "xyes" = "xyes" -a \ 30605if test "xyes" = "xyes" && \
30686 "x$have_ecore_evas" = "xyes" -a \ 30606 test "x$have_ecore_evas" = "xyes" && \
30687 "x$want_module" = "xyes" ; then 30607 test "x$want_module" = "xyes" ; then
30688 if test -n "$PKG_CONFIG" && \ 30608 if test -n "$PKG_CONFIG" && \
30689 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-software-buffer\""; } >&5 30609 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-software-buffer\""; } >&5
30690 ($PKG_CONFIG --exists --print-errors "evas-software-buffer") 2>&5 30610 ($PKG_CONFIG --exists --print-errors "evas-software-buffer") 2>&5
@@ -30713,6 +30633,25 @@ fi
30713 30633
30714 30634
30715 30635
30636# ecore_evas_extn
30637
30638have_extn="yes"
30639if test "x${have_ecore_ipc}" = "xno" || \
30640 test "x${have_ecore_evas_software_buffer}" = "xno" || \
30641 test "x${have_shm_open}" = "xno" ; then
30642 have_extn="no"
30643fi
30644
30645have_ecore_evas_extn="no"
30646if test "x${want_ecore_evas_extn}" = "xyes" && \
30647 test "x${have_extn}" = "xyes" && \
30648 test "x${have_ecore_evas}" = "xyes"; then
30649
30650$as_echo "#define BUILD_ECORE_EVAS_EXTN 1" >>confdefs.h
30651
30652 have_ecore_evas_extn="yes"
30653fi
30654
30716# ecore_evas_psl1ght 30655# ecore_evas_psl1ght
30717 30656
30718 30657
@@ -30737,9 +30676,9 @@ $as_echo_n "checking whether ecore_evas PSL1GHT support is to be built... " >&6;
30737{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5 30676{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5
30738$as_echo "${want_module}" >&6; } 30677$as_echo "${want_module}" >&6; }
30739 30678
30740if test "x${have_ecore_psl1ght}" = "xyes" -a \ 30679if test "x${have_ecore_psl1ght}" = "xyes" && \
30741 "x$have_ecore_evas" = "xyes" -a \ 30680 test "x$have_ecore_evas" = "xyes" && \
30742 "x$want_module" = "xyes" ; then 30681 test "x$want_module" = "xyes" ; then
30743 if test -n "$PKG_CONFIG" && \ 30682 if test -n "$PKG_CONFIG" && \
30744 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-psl1ght\""; } >&5 30683 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-psl1ght\""; } >&5
30745 ($PKG_CONFIG --exists --print-errors "evas-psl1ght") 2>&5 30684 ($PKG_CONFIG --exists --print-errors "evas-psl1ght") 2>&5
@@ -30761,7 +30700,7 @@ $as_echo_n "checking whether ecore_evas PSL1GHT support is built... " >&6; }
30761$as_echo "$have_ecore_evas_psl1ght" >&6; } 30700$as_echo "$have_ecore_evas_psl1ght" >&6; }
30762 30701
30763if test "x$have_ecore_evas_psl1ght" = "xyes"; then : 30702if test "x$have_ecore_evas_psl1ght" = "xyes"; then :
30764 requirements_ecore_evas="ecore-psl1ght >= 1.1.99 ${requirements_ecore_evas}" 30703 requirements_ecore_evas="ecore-psl1ght >= 1.2.0 ${requirements_ecore_evas}"
30765fi 30704fi
30766 30705
30767 30706
@@ -30778,46 +30717,44 @@ pkg_failed=no
30778{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for WAYLAND" >&5 30717{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for WAYLAND" >&5
30779$as_echo_n "checking for WAYLAND... " >&6; } 30718$as_echo_n "checking for WAYLAND... " >&6; }
30780 30719
30781if test -n "$PKG_CONFIG"; then 30720if test -n "$WAYLAND_CFLAGS"; then
30782 if test -n "$WAYLAND_CFLAGS"; then 30721 pkg_cv_WAYLAND_CFLAGS="$WAYLAND_CFLAGS"
30783 pkg_cv_WAYLAND_CFLAGS="$WAYLAND_CFLAGS" 30722 elif test -n "$PKG_CONFIG"; then
30784 else 30723 if test -n "$PKG_CONFIG" && \
30785 if test -n "$PKG_CONFIG" && \ 30724 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"egl wayland-egl wayland-client xkbcommon\""; } >&5
30786 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"wayland-client xkbcommon\""; } >&5 30725 ($PKG_CONFIG --exists --print-errors "egl wayland-egl wayland-client xkbcommon") 2>&5
30787 ($PKG_CONFIG --exists --print-errors "wayland-client xkbcommon") 2>&5
30788 ac_status=$? 30726 ac_status=$?
30789 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 30727 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
30790 test $ac_status = 0; }; then 30728 test $ac_status = 0; }; then
30791 pkg_cv_WAYLAND_CFLAGS=`$PKG_CONFIG --cflags "wayland-client xkbcommon" 2>/dev/null` 30729 pkg_cv_WAYLAND_CFLAGS=`$PKG_CONFIG --cflags "egl wayland-egl wayland-client xkbcommon" 2>/dev/null`
30792else 30730else
30793 pkg_failed=yes 30731 pkg_failed=yes
30794fi 30732fi
30795 fi 30733 else
30796else 30734 pkg_failed=untried
30797 pkg_failed=untried
30798fi 30735fi
30799if test -n "$PKG_CONFIG"; then 30736if test -n "$WAYLAND_LIBS"; then
30800 if test -n "$WAYLAND_LIBS"; then 30737 pkg_cv_WAYLAND_LIBS="$WAYLAND_LIBS"
30801 pkg_cv_WAYLAND_LIBS="$WAYLAND_LIBS" 30738 elif test -n "$PKG_CONFIG"; then
30802 else 30739 if test -n "$PKG_CONFIG" && \
30803 if test -n "$PKG_CONFIG" && \ 30740 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"egl wayland-egl wayland-client xkbcommon\""; } >&5
30804 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"wayland-client xkbcommon\""; } >&5 30741 ($PKG_CONFIG --exists --print-errors "egl wayland-egl wayland-client xkbcommon") 2>&5
30805 ($PKG_CONFIG --exists --print-errors "wayland-client xkbcommon") 2>&5
30806 ac_status=$? 30742 ac_status=$?
30807 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 30743 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
30808 test $ac_status = 0; }; then 30744 test $ac_status = 0; }; then
30809 pkg_cv_WAYLAND_LIBS=`$PKG_CONFIG --libs "wayland-client xkbcommon" 2>/dev/null` 30745 pkg_cv_WAYLAND_LIBS=`$PKG_CONFIG --libs "egl wayland-egl wayland-client xkbcommon" 2>/dev/null`
30810else 30746else
30811 pkg_failed=yes 30747 pkg_failed=yes
30812fi 30748fi
30813 fi 30749 else
30814else 30750 pkg_failed=untried
30815 pkg_failed=untried
30816fi 30751fi
30817 30752
30818 30753
30819 30754
30820if test $pkg_failed = yes; then 30755if test $pkg_failed = yes; then
30756 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
30757$as_echo "no" >&6; }
30821 30758
30822if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 30759if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
30823 _pkg_short_errors_supported=yes 30760 _pkg_short_errors_supported=yes
@@ -30825,17 +30762,17 @@ else
30825 _pkg_short_errors_supported=no 30762 _pkg_short_errors_supported=no
30826fi 30763fi
30827 if test $_pkg_short_errors_supported = yes; then 30764 if test $_pkg_short_errors_supported = yes; then
30828 WAYLAND_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "wayland-client xkbcommon"` 30765 WAYLAND_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "egl wayland-egl wayland-client xkbcommon" 2>&1`
30829 else 30766 else
30830 WAYLAND_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "wayland-client xkbcommon"` 30767 WAYLAND_PKG_ERRORS=`$PKG_CONFIG --print-errors "egl wayland-egl wayland-client xkbcommon" 2>&1`
30831 fi 30768 fi
30832 # Put the nasty error message in config.log where it belongs 30769 # Put the nasty error message in config.log where it belongs
30833 echo "$WAYLAND_PKG_ERRORS" >&5 30770 echo "$WAYLAND_PKG_ERRORS" >&5
30834 30771
30835 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 30772 have_wayland="no"
30836$as_echo "no" >&6; }
30837 have_wayland="no"
30838elif test $pkg_failed = untried; then 30773elif test $pkg_failed = untried; then
30774 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
30775$as_echo "no" >&6; }
30839 have_wayland="no" 30776 have_wayland="no"
30840else 30777else
30841 WAYLAND_CFLAGS=$pkg_cv_WAYLAND_CFLAGS 30778 WAYLAND_CFLAGS=$pkg_cv_WAYLAND_CFLAGS
@@ -30909,7 +30846,7 @@ fi
30909 30846
30910 30847
30911if test "x${have_ecore_wayland}" = "xyes" ; then 30848if test "x${have_ecore_wayland}" = "xyes" ; then
30912 requirements_ecore_wayland="ecore-input >= 1.1.0 wayland-client xkbcommon ${requirements_ecore_wayland}" 30849 requirements_ecore_wayland="ecore-input >= 1.2.0 egl wayland-egl wayland-client xkbcommon ${requirements_ecore_wayland}"
30913fi 30850fi
30914 30851
30915 30852
@@ -30934,9 +30871,9 @@ $as_echo_n "checking whether ecore_evas Wayland Shm support is to be built... "
30934{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5 30871{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5
30935$as_echo "${want_module}" >&6; } 30872$as_echo "${want_module}" >&6; }
30936 30873
30937if test "x${have_ecore_wayland}" = "xyes" -a \ 30874if test "x${have_ecore_wayland}" = "xyes" && \
30938 "x$have_ecore_evas" = "xyes" -a \ 30875 test "x$have_ecore_evas" = "xyes" && \
30939 "x$want_module" = "xyes" ; then 30876 test "x$want_module" = "xyes" ; then
30940 if test -n "$PKG_CONFIG" && \ 30877 if test -n "$PKG_CONFIG" && \
30941 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-wayland-shm\""; } >&5 30878 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-wayland-shm\""; } >&5
30942 ($PKG_CONFIG --exists --print-errors "evas-wayland-shm") 2>&5 30879 ($PKG_CONFIG --exists --print-errors "evas-wayland-shm") 2>&5
@@ -30987,12 +30924,12 @@ $as_echo_n "checking whether ecore_evas Wayland Egl support is to be built... "
30987{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5 30924{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5
30988$as_echo "${want_module}" >&6; } 30925$as_echo "${want_module}" >&6; }
30989 30926
30990if test "x${have_ecore_wayland}" = "xyes" -a \ 30927if test "x${have_ecore_wayland}" = "xyes" && \
30991 "x$have_ecore_evas" = "xyes" -a \ 30928 test "x$have_ecore_evas" = "xyes" && \
30992 "x$want_module" = "xyes" ; then 30929 test "x$want_module" = "xyes" ; then
30993 if test -n "$PKG_CONFIG" && \ 30930 if test -n "$PKG_CONFIG" && \
30994 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-wayland-egl\""; } >&5 30931 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-wayland-egl egl\""; } >&5
30995 ($PKG_CONFIG --exists --print-errors "evas-wayland-egl") 2>&5 30932 ($PKG_CONFIG --exists --print-errors "evas-wayland-egl egl") 2>&5
30996 ac_status=$? 30933 ac_status=$?
30997 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 30934 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
30998 test $ac_status = 0; }; then 30935 test $ac_status = 0; }; then
@@ -31017,11 +30954,10 @@ pkg_failed=no
31017{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for WAYLAND_EGL" >&5 30954{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for WAYLAND_EGL" >&5
31018$as_echo_n "checking for WAYLAND_EGL... " >&6; } 30955$as_echo_n "checking for WAYLAND_EGL... " >&6; }
31019 30956
31020if test -n "$PKG_CONFIG"; then 30957if test -n "$WAYLAND_EGL_CFLAGS"; then
31021 if test -n "$WAYLAND_EGL_CFLAGS"; then 30958 pkg_cv_WAYLAND_EGL_CFLAGS="$WAYLAND_EGL_CFLAGS"
31022 pkg_cv_WAYLAND_EGL_CFLAGS="$WAYLAND_EGL_CFLAGS" 30959 elif test -n "$PKG_CONFIG"; then
31023 else 30960 if test -n "$PKG_CONFIG" && \
31024 if test -n "$PKG_CONFIG" && \
31025 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"wayland-egl\""; } >&5 30961 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"wayland-egl\""; } >&5
31026 ($PKG_CONFIG --exists --print-errors "wayland-egl") 2>&5 30962 ($PKG_CONFIG --exists --print-errors "wayland-egl") 2>&5
31027 ac_status=$? 30963 ac_status=$?
@@ -31031,15 +30967,13 @@ if test -n "$PKG_CONFIG"; then
31031else 30967else
31032 pkg_failed=yes 30968 pkg_failed=yes
31033fi 30969fi
31034 fi 30970 else
31035else 30971 pkg_failed=untried
31036 pkg_failed=untried
31037fi 30972fi
31038if test -n "$PKG_CONFIG"; then 30973if test -n "$WAYLAND_EGL_LIBS"; then
31039 if test -n "$WAYLAND_EGL_LIBS"; then 30974 pkg_cv_WAYLAND_EGL_LIBS="$WAYLAND_EGL_LIBS"
31040 pkg_cv_WAYLAND_EGL_LIBS="$WAYLAND_EGL_LIBS" 30975 elif test -n "$PKG_CONFIG"; then
31041 else 30976 if test -n "$PKG_CONFIG" && \
31042 if test -n "$PKG_CONFIG" && \
31043 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"wayland-egl\""; } >&5 30977 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"wayland-egl\""; } >&5
31044 ($PKG_CONFIG --exists --print-errors "wayland-egl") 2>&5 30978 ($PKG_CONFIG --exists --print-errors "wayland-egl") 2>&5
31045 ac_status=$? 30979 ac_status=$?
@@ -31049,14 +30983,15 @@ if test -n "$PKG_CONFIG"; then
31049else 30983else
31050 pkg_failed=yes 30984 pkg_failed=yes
31051fi 30985fi
31052 fi 30986 else
31053else 30987 pkg_failed=untried
31054 pkg_failed=untried
31055fi 30988fi
31056 30989
31057 30990
31058 30991
31059if test $pkg_failed = yes; then 30992if test $pkg_failed = yes; then
30993 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
30994$as_echo "no" >&6; }
31060 30995
31061if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 30996if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
31062 _pkg_short_errors_supported=yes 30997 _pkg_short_errors_supported=yes
@@ -31064,17 +30999,17 @@ else
31064 _pkg_short_errors_supported=no 30999 _pkg_short_errors_supported=no
31065fi 31000fi
31066 if test $_pkg_short_errors_supported = yes; then 31001 if test $_pkg_short_errors_supported = yes; then
31067 WAYLAND_EGL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "wayland-egl"` 31002 WAYLAND_EGL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "wayland-egl" 2>&1`
31068 else 31003 else
31069 WAYLAND_EGL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "wayland-egl"` 31004 WAYLAND_EGL_PKG_ERRORS=`$PKG_CONFIG --print-errors "wayland-egl" 2>&1`
31070 fi 31005 fi
31071 # Put the nasty error message in config.log where it belongs 31006 # Put the nasty error message in config.log where it belongs
31072 echo "$WAYLAND_EGL_PKG_ERRORS" >&5 31007 echo "$WAYLAND_EGL_PKG_ERRORS" >&5
31073 31008
31074 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 31009 have_wayland_egl="no"
31075$as_echo "no" >&6; }
31076 have_wayland_egl="no"
31077elif test $pkg_failed = untried; then 31010elif test $pkg_failed = untried; then
31011 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
31012$as_echo "no" >&6; }
31078 have_wayland_egl="no" 31013 have_wayland_egl="no"
31079else 31014else
31080 WAYLAND_EGL_CFLAGS=$pkg_cv_WAYLAND_EGL_CFLAGS 31015 WAYLAND_EGL_CFLAGS=$pkg_cv_WAYLAND_EGL_CFLAGS
@@ -31093,6 +31028,120 @@ fi
31093 31028
31094 31029
31095 31030
31031### Unit tests
31032
31033
31034
31035
31036# Check whether --enable-tests was given.
31037if test "${enable_tests+set}" = set; then :
31038 enableval=$enable_tests;
31039 if test "x${enableval}" = "xyes" ; then
31040 _efl_enable_tests="yes"
31041 else
31042 _efl_enable_tests="no"
31043 fi
31044
31045else
31046 _efl_enable_tests="no"
31047fi
31048
31049
31050{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether tests are built" >&5
31051$as_echo_n "checking whether tests are built... " >&6; }
31052{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_efl_enable_tests}" >&5
31053$as_echo "${_efl_enable_tests}" >&6; }
31054
31055
31056
31057if test "x${_efl_enable_tests}" = "xyes" ; then
31058
31059pkg_failed=no
31060{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CHECK" >&5
31061$as_echo_n "checking for CHECK... " >&6; }
31062
31063if test -n "$CHECK_CFLAGS"; then
31064 pkg_cv_CHECK_CFLAGS="$CHECK_CFLAGS"
31065 elif test -n "$PKG_CONFIG"; then
31066 if test -n "$PKG_CONFIG" && \
31067 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5
31068 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5
31069 ac_status=$?
31070 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
31071 test $ac_status = 0; }; then
31072 pkg_cv_CHECK_CFLAGS=`$PKG_CONFIG --cflags "check >= 0.9.5" 2>/dev/null`
31073else
31074 pkg_failed=yes
31075fi
31076 else
31077 pkg_failed=untried
31078fi
31079if test -n "$CHECK_LIBS"; then
31080 pkg_cv_CHECK_LIBS="$CHECK_LIBS"
31081 elif test -n "$PKG_CONFIG"; then
31082 if test -n "$PKG_CONFIG" && \
31083 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5
31084 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5
31085 ac_status=$?
31086 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
31087 test $ac_status = 0; }; then
31088 pkg_cv_CHECK_LIBS=`$PKG_CONFIG --libs "check >= 0.9.5" 2>/dev/null`
31089else
31090 pkg_failed=yes
31091fi
31092 else
31093 pkg_failed=untried
31094fi
31095
31096
31097
31098if test $pkg_failed = yes; then
31099 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
31100$as_echo "no" >&6; }
31101
31102if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
31103 _pkg_short_errors_supported=yes
31104else
31105 _pkg_short_errors_supported=no
31106fi
31107 if test $_pkg_short_errors_supported = yes; then
31108 CHECK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "check >= 0.9.5" 2>&1`
31109 else
31110 CHECK_PKG_ERRORS=`$PKG_CONFIG --print-errors "check >= 0.9.5" 2>&1`
31111 fi
31112 # Put the nasty error message in config.log where it belongs
31113 echo "$CHECK_PKG_ERRORS" >&5
31114
31115 _efl_enable_tests="no"
31116elif test $pkg_failed = untried; then
31117 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
31118$as_echo "no" >&6; }
31119 _efl_enable_tests="no"
31120else
31121 CHECK_CFLAGS=$pkg_cv_CHECK_CFLAGS
31122 CHECK_LIBS=$pkg_cv_CHECK_LIBS
31123 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
31124$as_echo "yes" >&6; }
31125 dummy="yes"
31126fi
31127fi
31128
31129 if test "x${_efl_enable_tests}" = "xyes"; then
31130 EFL_ENABLE_TESTS_TRUE=
31131 EFL_ENABLE_TESTS_FALSE='#'
31132else
31133 EFL_ENABLE_TESTS_TRUE='#'
31134 EFL_ENABLE_TESTS_FALSE=
31135fi
31136
31137
31138if test "x$_efl_enable_tests" = "xyes"; then :
31139 enable_tests="yes"
31140else
31141 enable_tests="no"
31142fi
31143
31144
31096### install and build examples 31145### install and build examples
31097 31146
31098 31147
@@ -31280,6 +31329,7 @@ DEFS=-DHAVE_CONFIG_H
31280 31329
31281ac_libobjs= 31330ac_libobjs=
31282ac_ltlibobjs= 31331ac_ltlibobjs=
31332U=
31283for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue 31333for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
31284 # 1. Remove the extension, and $U if already installed. 31334 # 1. Remove the extension, and $U if already installed.
31285 ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' 31335 ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
@@ -31303,168 +31353,172 @@ else
31303fi 31353fi
31304 31354
31305if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then 31355if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
31306 as_fn_error "conditional \"AMDEP\" was never defined. 31356 as_fn_error $? "conditional \"AMDEP\" was never defined.
31307Usually this means the macro was only invoked conditionally." "$LINENO" 5 31357Usually this means the macro was only invoked conditionally." "$LINENO" 5
31308fi 31358fi
31309if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then 31359if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
31310 as_fn_error "conditional \"am__fastdepCC\" was never defined. 31360 as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
31311Usually this means the macro was only invoked conditionally." "$LINENO" 5 31361Usually this means the macro was only invoked conditionally." "$LINENO" 5
31312fi 31362fi
31313if test -z "${HAVE_PO_TRUE}" && test -z "${HAVE_PO_FALSE}"; then 31363if test -z "${HAVE_PO_TRUE}" && test -z "${HAVE_PO_FALSE}"; then
31314 as_fn_error "conditional \"HAVE_PO\" was never defined. 31364 as_fn_error $? "conditional \"HAVE_PO\" was never defined.
31315Usually this means the macro was only invoked conditionally." "$LINENO" 5
31316fi
31317if test -z "${EFL_ENABLE_TESTS_TRUE}" && test -z "${EFL_ENABLE_TESTS_FALSE}"; then
31318 as_fn_error "conditional \"EFL_ENABLE_TESTS\" was never defined.
31319Usually this means the macro was only invoked conditionally." "$LINENO" 5 31365Usually this means the macro was only invoked conditionally." "$LINENO" 5
31320fi 31366fi
31321if test -z "${am__fastdepOBJC_TRUE}" && test -z "${am__fastdepOBJC_FALSE}"; then 31367if test -z "${am__fastdepOBJC_TRUE}" && test -z "${am__fastdepOBJC_FALSE}"; then
31322 as_fn_error "conditional \"am__fastdepOBJC\" was never defined. 31368 as_fn_error $? "conditional \"am__fastdepOBJC\" was never defined.
31323Usually this means the macro was only invoked conditionally." "$LINENO" 5 31369Usually this means the macro was only invoked conditionally." "$LINENO" 5
31324fi 31370fi
31325if test -z "${am__fastdepOBJC_TRUE}" && test -z "${am__fastdepOBJC_FALSE}"; then 31371if test -z "${am__fastdepOBJC_TRUE}" && test -z "${am__fastdepOBJC_FALSE}"; then
31326 as_fn_error "conditional \"am__fastdepOBJC\" was never defined. 31372 as_fn_error $? "conditional \"am__fastdepOBJC\" was never defined.
31327Usually this means the macro was only invoked conditionally." "$LINENO" 5 31373Usually this means the macro was only invoked conditionally." "$LINENO" 5
31328fi 31374fi
31329if test -z "${am__fastdepOBJC_TRUE}" && test -z "${am__fastdepOBJC_FALSE}"; then 31375if test -z "${am__fastdepOBJC_TRUE}" && test -z "${am__fastdepOBJC_FALSE}"; then
31330 as_fn_error "conditional \"am__fastdepOBJC\" was never defined. 31376 as_fn_error $? "conditional \"am__fastdepOBJC\" was never defined.
31331Usually this means the macro was only invoked conditionally." "$LINENO" 5 31377Usually this means the macro was only invoked conditionally." "$LINENO" 5
31332fi 31378fi
31333if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then 31379if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
31334 as_fn_error "conditional \"am__fastdepCXX\" was never defined. 31380 as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
31335Usually this means the macro was only invoked conditionally." "$LINENO" 5 31381Usually this means the macro was only invoked conditionally." "$LINENO" 5
31336fi 31382fi
31337if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then 31383if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
31338 as_fn_error "conditional \"am__fastdepCXX\" was never defined. 31384 as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
31339Usually this means the macro was only invoked conditionally." "$LINENO" 5 31385Usually this means the macro was only invoked conditionally." "$LINENO" 5
31340fi 31386fi
31341if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then 31387if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
31342 as_fn_error "conditional \"am__fastdepCC\" was never defined. 31388 as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
31343Usually this means the macro was only invoked conditionally." "$LINENO" 5 31389Usually this means the macro was only invoked conditionally." "$LINENO" 5
31344fi 31390fi
31345if test -z "${EFL_BUILD_DOC_TRUE}" && test -z "${EFL_BUILD_DOC_FALSE}"; then 31391if test -z "${EFL_BUILD_DOC_TRUE}" && test -z "${EFL_BUILD_DOC_FALSE}"; then
31346 as_fn_error "conditional \"EFL_BUILD_DOC\" was never defined. 31392 as_fn_error $? "conditional \"EFL_BUILD_DOC\" was never defined.
31393Usually this means the macro was only invoked conditionally." "$LINENO" 5
31394fi
31395if test -z "${ECORE_HAVE_EXOTIC_TRUE}" && test -z "${ECORE_HAVE_EXOTIC_FALSE}"; then
31396 as_fn_error $? "conditional \"ECORE_HAVE_EXOTIC\" was never defined.
31347Usually this means the macro was only invoked conditionally." "$LINENO" 5 31397Usually this means the macro was only invoked conditionally." "$LINENO" 5
31348fi 31398fi
31349if test -z "${ECORE_HAVE_WINCE_TRUE}" && test -z "${ECORE_HAVE_WINCE_FALSE}"; then 31399if test -z "${ECORE_HAVE_WINCE_TRUE}" && test -z "${ECORE_HAVE_WINCE_FALSE}"; then
31350 as_fn_error "conditional \"ECORE_HAVE_WINCE\" was never defined. 31400 as_fn_error $? "conditional \"ECORE_HAVE_WINCE\" was never defined.
31351Usually this means the macro was only invoked conditionally." "$LINENO" 5 31401Usually this means the macro was only invoked conditionally." "$LINENO" 5
31352fi 31402fi
31353if test -z "${ECORE_HAVE_WIN32_TRUE}" && test -z "${ECORE_HAVE_WIN32_FALSE}"; then 31403if test -z "${ECORE_HAVE_WIN32_TRUE}" && test -z "${ECORE_HAVE_WIN32_FALSE}"; then
31354 as_fn_error "conditional \"ECORE_HAVE_WIN32\" was never defined. 31404 as_fn_error $? "conditional \"ECORE_HAVE_WIN32\" was never defined.
31355Usually this means the macro was only invoked conditionally." "$LINENO" 5 31405Usually this means the macro was only invoked conditionally." "$LINENO" 5
31356fi 31406fi
31357if test -z "${ECORE_HAVE_PS3_TRUE}" && test -z "${ECORE_HAVE_PS3_FALSE}"; then 31407if test -z "${ECORE_HAVE_PS3_TRUE}" && test -z "${ECORE_HAVE_PS3_FALSE}"; then
31358 as_fn_error "conditional \"ECORE_HAVE_PS3\" was never defined. 31408 as_fn_error $? "conditional \"ECORE_HAVE_PS3\" was never defined.
31359Usually this means the macro was only invoked conditionally." "$LINENO" 5 31409Usually this means the macro was only invoked conditionally." "$LINENO" 5
31360fi 31410fi
31361if test -z "${BUILD_ECORE_X_XLIB_TRUE}" && test -z "${BUILD_ECORE_X_XLIB_FALSE}"; then 31411if test -z "${BUILD_ECORE_X_XLIB_TRUE}" && test -z "${BUILD_ECORE_X_XLIB_FALSE}"; then
31362 as_fn_error "conditional \"BUILD_ECORE_X_XLIB\" was never defined. 31412 as_fn_error $? "conditional \"BUILD_ECORE_X_XLIB\" was never defined.
31363Usually this means the macro was only invoked conditionally." "$LINENO" 5 31413Usually this means the macro was only invoked conditionally." "$LINENO" 5
31364fi 31414fi
31365if test -z "${BUILD_ECORE_X_XCB_TRUE}" && test -z "${BUILD_ECORE_X_XCB_FALSE}"; then 31415if test -z "${BUILD_ECORE_X_XCB_TRUE}" && test -z "${BUILD_ECORE_X_XCB_FALSE}"; then
31366 as_fn_error "conditional \"BUILD_ECORE_X_XCB\" was never defined. 31416 as_fn_error $? "conditional \"BUILD_ECORE_X_XCB\" was never defined.
31367Usually this means the macro was only invoked conditionally." "$LINENO" 5 31417Usually this means the macro was only invoked conditionally." "$LINENO" 5
31368fi 31418fi
31369 31419
31370if test -z "${BUILD_ECORE_CON_TRUE}" && test -z "${BUILD_ECORE_CON_FALSE}"; then 31420if test -z "${BUILD_ECORE_CON_TRUE}" && test -z "${BUILD_ECORE_CON_FALSE}"; then
31371 as_fn_error "conditional \"BUILD_ECORE_CON\" was never defined. 31421 as_fn_error $? "conditional \"BUILD_ECORE_CON\" was never defined.
31372Usually this means the macro was only invoked conditionally." "$LINENO" 5 31422Usually this means the macro was only invoked conditionally." "$LINENO" 5
31373fi 31423fi
31374if test -z "${HAVE_CARES_TRUE}" && test -z "${HAVE_CARES_FALSE}"; then 31424if test -z "${HAVE_CARES_TRUE}" && test -z "${HAVE_CARES_FALSE}"; then
31375 as_fn_error "conditional \"HAVE_CARES\" was never defined. 31425 as_fn_error $? "conditional \"HAVE_CARES\" was never defined.
31376Usually this means the macro was only invoked conditionally." "$LINENO" 5 31426Usually this means the macro was only invoked conditionally." "$LINENO" 5
31377fi 31427fi
31378if test -z "${BUILD_ECORE_IPC_TRUE}" && test -z "${BUILD_ECORE_IPC_FALSE}"; then 31428if test -z "${BUILD_ECORE_IPC_TRUE}" && test -z "${BUILD_ECORE_IPC_FALSE}"; then
31379 as_fn_error "conditional \"BUILD_ECORE_IPC\" was never defined. 31429 as_fn_error $? "conditional \"BUILD_ECORE_IPC\" was never defined.
31380Usually this means the macro was only invoked conditionally." "$LINENO" 5 31430Usually this means the macro was only invoked conditionally." "$LINENO" 5
31381fi 31431fi
31382if test -z "${BUILD_ECORE_FILE_TRUE}" && test -z "${BUILD_ECORE_FILE_FALSE}"; then 31432if test -z "${BUILD_ECORE_FILE_TRUE}" && test -z "${BUILD_ECORE_FILE_FALSE}"; then
31383 as_fn_error "conditional \"BUILD_ECORE_FILE\" was never defined. 31433 as_fn_error $? "conditional \"BUILD_ECORE_FILE\" was never defined.
31384Usually this means the macro was only invoked conditionally." "$LINENO" 5 31434Usually this means the macro was only invoked conditionally." "$LINENO" 5
31385fi 31435fi
31386if test -z "${BUILD_ECORE_CONFIG_TRUE}" && test -z "${BUILD_ECORE_CONFIG_FALSE}"; then 31436if test -z "${BUILD_ECORE_CONFIG_TRUE}" && test -z "${BUILD_ECORE_CONFIG_FALSE}"; then
31387 as_fn_error "conditional \"BUILD_ECORE_CONFIG\" was never defined. 31437 as_fn_error $? "conditional \"BUILD_ECORE_CONFIG\" was never defined.
31388Usually this means the macro was only invoked conditionally." "$LINENO" 5 31438Usually this means the macro was only invoked conditionally." "$LINENO" 5
31389fi 31439fi
31390if test -z "${BUILD_ECORE_IMF_TRUE}" && test -z "${BUILD_ECORE_IMF_FALSE}"; then 31440if test -z "${BUILD_ECORE_IMF_TRUE}" && test -z "${BUILD_ECORE_IMF_FALSE}"; then
31391 as_fn_error "conditional \"BUILD_ECORE_IMF\" was never defined. 31441 as_fn_error $? "conditional \"BUILD_ECORE_IMF\" was never defined.
31392Usually this means the macro was only invoked conditionally." "$LINENO" 5 31442Usually this means the macro was only invoked conditionally." "$LINENO" 5
31393fi 31443fi
31394if test -z "${BUILD_ECORE_IMF_EVAS_TRUE}" && test -z "${BUILD_ECORE_IMF_EVAS_FALSE}"; then 31444if test -z "${BUILD_ECORE_IMF_EVAS_TRUE}" && test -z "${BUILD_ECORE_IMF_EVAS_FALSE}"; then
31395 as_fn_error "conditional \"BUILD_ECORE_IMF_EVAS\" was never defined. 31445 as_fn_error $? "conditional \"BUILD_ECORE_IMF_EVAS\" was never defined.
31396Usually this means the macro was only invoked conditionally." "$LINENO" 5 31446Usually this means the macro was only invoked conditionally." "$LINENO" 5
31397fi 31447fi
31398if test -z "${BUILD_ECORE_INPUT_TRUE}" && test -z "${BUILD_ECORE_INPUT_FALSE}"; then 31448if test -z "${BUILD_ECORE_INPUT_TRUE}" && test -z "${BUILD_ECORE_INPUT_FALSE}"; then
31399 as_fn_error "conditional \"BUILD_ECORE_INPUT\" was never defined. 31449 as_fn_error $? "conditional \"BUILD_ECORE_INPUT\" was never defined.
31400Usually this means the macro was only invoked conditionally." "$LINENO" 5 31450Usually this means the macro was only invoked conditionally." "$LINENO" 5
31401fi 31451fi
31402if test -z "${BUILD_ECORE_INPUT_EVAS_TRUE}" && test -z "${BUILD_ECORE_INPUT_EVAS_FALSE}"; then 31452if test -z "${BUILD_ECORE_INPUT_EVAS_TRUE}" && test -z "${BUILD_ECORE_INPUT_EVAS_FALSE}"; then
31403 as_fn_error "conditional \"BUILD_ECORE_INPUT_EVAS\" was never defined. 31453 as_fn_error $? "conditional \"BUILD_ECORE_INPUT_EVAS\" was never defined.
31404Usually this means the macro was only invoked conditionally." "$LINENO" 5 31454Usually this means the macro was only invoked conditionally." "$LINENO" 5
31405fi 31455fi
31406if test -z "${BUILD_ECORE_IMF_XIM_TRUE}" && test -z "${BUILD_ECORE_IMF_XIM_FALSE}"; then 31456if test -z "${BUILD_ECORE_IMF_XIM_TRUE}" && test -z "${BUILD_ECORE_IMF_XIM_FALSE}"; then
31407 as_fn_error "conditional \"BUILD_ECORE_IMF_XIM\" was never defined. 31457 as_fn_error $? "conditional \"BUILD_ECORE_IMF_XIM\" was never defined.
31408Usually this means the macro was only invoked conditionally." "$LINENO" 5 31458Usually this means the macro was only invoked conditionally." "$LINENO" 5
31409fi 31459fi
31410if test -z "${BUILD_ECORE_IMF_XIM_TRUE}" && test -z "${BUILD_ECORE_IMF_XIM_FALSE}"; then 31460if test -z "${BUILD_ECORE_IMF_XIM_TRUE}" && test -z "${BUILD_ECORE_IMF_XIM_FALSE}"; then
31411 as_fn_error "conditional \"BUILD_ECORE_IMF_XIM\" was never defined. 31461 as_fn_error $? "conditional \"BUILD_ECORE_IMF_XIM\" was never defined.
31412Usually this means the macro was only invoked conditionally." "$LINENO" 5 31462Usually this means the macro was only invoked conditionally." "$LINENO" 5
31413fi 31463fi
31414if test -z "${BUILD_ECORE_IMF_SCIM_TRUE}" && test -z "${BUILD_ECORE_IMF_SCIM_FALSE}"; then 31464if test -z "${BUILD_ECORE_IMF_SCIM_TRUE}" && test -z "${BUILD_ECORE_IMF_SCIM_FALSE}"; then
31415 as_fn_error "conditional \"BUILD_ECORE_IMF_SCIM\" was never defined. 31465 as_fn_error $? "conditional \"BUILD_ECORE_IMF_SCIM\" was never defined.
31416Usually this means the macro was only invoked conditionally." "$LINENO" 5 31466Usually this means the macro was only invoked conditionally." "$LINENO" 5
31417fi 31467fi
31418if test -z "${BUILD_ECORE_IMF_SCIM_TRUE}" && test -z "${BUILD_ECORE_IMF_SCIM_FALSE}"; then 31468if test -z "${BUILD_ECORE_IMF_SCIM_TRUE}" && test -z "${BUILD_ECORE_IMF_SCIM_FALSE}"; then
31419 as_fn_error "conditional \"BUILD_ECORE_IMF_SCIM\" was never defined. 31469 as_fn_error $? "conditional \"BUILD_ECORE_IMF_SCIM\" was never defined.
31420Usually this means the macro was only invoked conditionally." "$LINENO" 5 31470Usually this means the macro was only invoked conditionally." "$LINENO" 5
31421fi 31471fi
31422if test -z "${BUILD_ECORE_X_TRUE}" && test -z "${BUILD_ECORE_X_FALSE}"; then 31472if test -z "${BUILD_ECORE_X_TRUE}" && test -z "${BUILD_ECORE_X_FALSE}"; then
31423 as_fn_error "conditional \"BUILD_ECORE_X\" was never defined. 31473 as_fn_error $? "conditional \"BUILD_ECORE_X\" was never defined.
31424Usually this means the macro was only invoked conditionally." "$LINENO" 5 31474Usually this means the macro was only invoked conditionally." "$LINENO" 5
31425fi 31475fi
31426if test -z "${BUILD_ECORE_WIN32_TRUE}" && test -z "${BUILD_ECORE_WIN32_FALSE}"; then 31476if test -z "${BUILD_ECORE_WIN32_TRUE}" && test -z "${BUILD_ECORE_WIN32_FALSE}"; then
31427 as_fn_error "conditional \"BUILD_ECORE_WIN32\" was never defined. 31477 as_fn_error $? "conditional \"BUILD_ECORE_WIN32\" was never defined.
31428Usually this means the macro was only invoked conditionally." "$LINENO" 5 31478Usually this means the macro was only invoked conditionally." "$LINENO" 5
31429fi 31479fi
31430if test -z "${BUILD_ECORE_COCOA_TRUE}" && test -z "${BUILD_ECORE_COCOA_FALSE}"; then 31480if test -z "${BUILD_ECORE_COCOA_TRUE}" && test -z "${BUILD_ECORE_COCOA_FALSE}"; then
31431 as_fn_error "conditional \"BUILD_ECORE_COCOA\" was never defined. 31481 as_fn_error $? "conditional \"BUILD_ECORE_COCOA\" was never defined.
31432Usually this means the macro was only invoked conditionally." "$LINENO" 5 31482Usually this means the macro was only invoked conditionally." "$LINENO" 5
31433fi 31483fi
31434if test -z "${BUILD_ECORE_SDL_TRUE}" && test -z "${BUILD_ECORE_SDL_FALSE}"; then 31484if test -z "${BUILD_ECORE_SDL_TRUE}" && test -z "${BUILD_ECORE_SDL_FALSE}"; then
31435 as_fn_error "conditional \"BUILD_ECORE_SDL\" was never defined. 31485 as_fn_error $? "conditional \"BUILD_ECORE_SDL\" was never defined.
31436Usually this means the macro was only invoked conditionally." "$LINENO" 5 31486Usually this means the macro was only invoked conditionally." "$LINENO" 5
31437fi 31487fi
31438if test -z "${BUILD_ECORE_PSL1GHT_TRUE}" && test -z "${BUILD_ECORE_PSL1GHT_FALSE}"; then 31488if test -z "${BUILD_ECORE_PSL1GHT_TRUE}" && test -z "${BUILD_ECORE_PSL1GHT_FALSE}"; then
31439 as_fn_error "conditional \"BUILD_ECORE_PSL1GHT\" was never defined. 31489 as_fn_error $? "conditional \"BUILD_ECORE_PSL1GHT\" was never defined.
31440Usually this means the macro was only invoked conditionally." "$LINENO" 5 31490Usually this means the macro was only invoked conditionally." "$LINENO" 5
31441fi 31491fi
31442if test -z "${BUILD_ECORE_FB_TRUE}" && test -z "${BUILD_ECORE_FB_FALSE}"; then 31492if test -z "${BUILD_ECORE_FB_TRUE}" && test -z "${BUILD_ECORE_FB_FALSE}"; then
31443 as_fn_error "conditional \"BUILD_ECORE_FB\" was never defined. 31493 as_fn_error $? "conditional \"BUILD_ECORE_FB\" was never defined.
31444Usually this means the macro was only invoked conditionally." "$LINENO" 5 31494Usually this means the macro was only invoked conditionally." "$LINENO" 5
31445fi 31495fi
31446if test -z "${BUILD_ECORE_DIRECTFB_TRUE}" && test -z "${BUILD_ECORE_DIRECTFB_FALSE}"; then 31496if test -z "${BUILD_ECORE_DIRECTFB_TRUE}" && test -z "${BUILD_ECORE_DIRECTFB_FALSE}"; then
31447 as_fn_error "conditional \"BUILD_ECORE_DIRECTFB\" was never defined. 31497 as_fn_error $? "conditional \"BUILD_ECORE_DIRECTFB\" was never defined.
31448Usually this means the macro was only invoked conditionally." "$LINENO" 5 31498Usually this means the macro was only invoked conditionally." "$LINENO" 5
31449fi 31499fi
31450if test -z "${BUILD_ECORE_WINCE_TRUE}" && test -z "${BUILD_ECORE_WINCE_FALSE}"; then 31500if test -z "${BUILD_ECORE_WINCE_TRUE}" && test -z "${BUILD_ECORE_WINCE_FALSE}"; then
31451 as_fn_error "conditional \"BUILD_ECORE_WINCE\" was never defined. 31501 as_fn_error $? "conditional \"BUILD_ECORE_WINCE\" was never defined.
31452Usually this means the macro was only invoked conditionally." "$LINENO" 5 31502Usually this means the macro was only invoked conditionally." "$LINENO" 5
31453fi 31503fi
31454if test -z "${BUILD_ECORE_EVAS_TRUE}" && test -z "${BUILD_ECORE_EVAS_FALSE}"; then 31504if test -z "${BUILD_ECORE_EVAS_TRUE}" && test -z "${BUILD_ECORE_EVAS_FALSE}"; then
31455 as_fn_error "conditional \"BUILD_ECORE_EVAS\" was never defined. 31505 as_fn_error $? "conditional \"BUILD_ECORE_EVAS\" was never defined.
31456Usually this means the macro was only invoked conditionally." "$LINENO" 5 31506Usually this means the macro was only invoked conditionally." "$LINENO" 5
31457fi 31507fi
31458if test -z "${BUILD_ECORE_WAYLAND_TRUE}" && test -z "${BUILD_ECORE_WAYLAND_FALSE}"; then 31508if test -z "${BUILD_ECORE_WAYLAND_TRUE}" && test -z "${BUILD_ECORE_WAYLAND_FALSE}"; then
31459 as_fn_error "conditional \"BUILD_ECORE_WAYLAND\" was never defined. 31509 as_fn_error $? "conditional \"BUILD_ECORE_WAYLAND\" was never defined.
31510Usually this means the macro was only invoked conditionally." "$LINENO" 5
31511fi
31512if test -z "${EFL_ENABLE_TESTS_TRUE}" && test -z "${EFL_ENABLE_TESTS_FALSE}"; then
31513 as_fn_error $? "conditional \"EFL_ENABLE_TESTS\" was never defined.
31460Usually this means the macro was only invoked conditionally." "$LINENO" 5 31514Usually this means the macro was only invoked conditionally." "$LINENO" 5
31461fi 31515fi
31462if test -z "${EFL_BUILD_EXAMPLES_TRUE}" && test -z "${EFL_BUILD_EXAMPLES_FALSE}"; then 31516if test -z "${EFL_BUILD_EXAMPLES_TRUE}" && test -z "${EFL_BUILD_EXAMPLES_FALSE}"; then
31463 as_fn_error "conditional \"EFL_BUILD_EXAMPLES\" was never defined. 31517 as_fn_error $? "conditional \"EFL_BUILD_EXAMPLES\" was never defined.
31464Usually this means the macro was only invoked conditionally." "$LINENO" 5 31518Usually this means the macro was only invoked conditionally." "$LINENO" 5
31465fi 31519fi
31466if test -z "${EFL_INSTALL_EXAMPLES_TRUE}" && test -z "${EFL_INSTALL_EXAMPLES_FALSE}"; then 31520if test -z "${EFL_INSTALL_EXAMPLES_TRUE}" && test -z "${EFL_INSTALL_EXAMPLES_FALSE}"; then
31467 as_fn_error "conditional \"EFL_INSTALL_EXAMPLES\" was never defined. 31521 as_fn_error $? "conditional \"EFL_INSTALL_EXAMPLES\" was never defined.
31468Usually this means the macro was only invoked conditionally." "$LINENO" 5 31522Usually this means the macro was only invoked conditionally." "$LINENO" 5
31469fi 31523fi
31470 31524
@@ -31614,19 +31668,19 @@ export LANGUAGE
31614(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 31668(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
31615 31669
31616 31670
31617# as_fn_error ERROR [LINENO LOG_FD] 31671# as_fn_error STATUS ERROR [LINENO LOG_FD]
31618# --------------------------------- 31672# ----------------------------------------
31619# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are 31673# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
31620# provided, also output the error to LOG_FD, referencing LINENO. Then exit the 31674# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
31621# script with status $?, using 1 if that was 0. 31675# script with STATUS, using 1 if that was 0.
31622as_fn_error () 31676as_fn_error ()
31623{ 31677{
31624 as_status=$?; test $as_status -eq 0 && as_status=1 31678 as_status=$1; test $as_status -eq 0 && as_status=1
31625 if test "$3"; then 31679 if test "$4"; then
31626 as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 31680 as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
31627 $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 31681 $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
31628 fi 31682 fi
31629 $as_echo "$as_me: error: $1" >&2 31683 $as_echo "$as_me: error: $2" >&2
31630 as_fn_exit $as_status 31684 as_fn_exit $as_status
31631} # as_fn_error 31685} # as_fn_error
31632 31686
@@ -31822,7 +31876,7 @@ $as_echo X"$as_dir" |
31822 test -d "$as_dir" && break 31876 test -d "$as_dir" && break
31823 done 31877 done
31824 test -z "$as_dirs" || eval "mkdir $as_dirs" 31878 test -z "$as_dirs" || eval "mkdir $as_dirs"
31825 } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" 31879 } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
31826 31880
31827 31881
31828} # as_fn_mkdir_p 31882} # as_fn_mkdir_p
@@ -31875,8 +31929,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
31875# report actual input values of CONFIG_FILES etc. instead of their 31929# report actual input values of CONFIG_FILES etc. instead of their
31876# values after options handling. 31930# values after options handling.
31877ac_log=" 31931ac_log="
31878This file was extended by ecore $as_me 1.1.99.67344, which was 31932This file was extended by ecore $as_me 1.2.0-alpha, which was
31879generated by GNU Autoconf 2.65. Invocation command line was 31933generated by GNU Autoconf 2.67. Invocation command line was
31880 31934
31881 CONFIG_FILES = $CONFIG_FILES 31935 CONFIG_FILES = $CONFIG_FILES
31882 CONFIG_HEADERS = $CONFIG_HEADERS 31936 CONFIG_HEADERS = $CONFIG_HEADERS
@@ -31941,11 +31995,11 @@ _ACEOF
31941cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 31995cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
31942ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" 31996ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
31943ac_cs_version="\\ 31997ac_cs_version="\\
31944ecore config.status 1.1.99.67344 31998ecore config.status 1.2.0-alpha
31945configured by $0, generated by GNU Autoconf 2.65, 31999configured by $0, generated by GNU Autoconf 2.67,
31946 with options \\"\$ac_cs_config\\" 32000 with options \\"\$ac_cs_config\\"
31947 32001
31948Copyright (C) 2009 Free Software Foundation, Inc. 32002Copyright (C) 2010 Free Software Foundation, Inc.
31949This config.status script is free software; the Free Software Foundation 32003This config.status script is free software; the Free Software Foundation
31950gives unlimited permission to copy, distribute and modify it." 32004gives unlimited permission to copy, distribute and modify it."
31951 32005
@@ -31963,11 +32017,16 @@ ac_need_defaults=:
31963while test $# != 0 32017while test $# != 0
31964do 32018do
31965 case $1 in 32019 case $1 in
31966 --*=*) 32020 --*=?*)
31967 ac_option=`expr "X$1" : 'X\([^=]*\)='` 32021 ac_option=`expr "X$1" : 'X\([^=]*\)='`
31968 ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` 32022 ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
31969 ac_shift=: 32023 ac_shift=:
31970 ;; 32024 ;;
32025 --*=)
32026 ac_option=`expr "X$1" : 'X\([^=]*\)='`
32027 ac_optarg=
32028 ac_shift=:
32029 ;;
31971 *) 32030 *)
31972 ac_option=$1 32031 ac_option=$1
31973 ac_optarg=$2 32032 ac_optarg=$2
@@ -31989,6 +32048,7 @@ do
31989 $ac_shift 32048 $ac_shift
31990 case $ac_optarg in 32049 case $ac_optarg in
31991 *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; 32050 *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
32051 '') as_fn_error $? "missing file argument" ;;
31992 esac 32052 esac
31993 as_fn_append CONFIG_FILES " '$ac_optarg'" 32053 as_fn_append CONFIG_FILES " '$ac_optarg'"
31994 ac_need_defaults=false;; 32054 ac_need_defaults=false;;
@@ -32001,7 +32061,7 @@ do
32001 ac_need_defaults=false;; 32061 ac_need_defaults=false;;
32002 --he | --h) 32062 --he | --h)
32003 # Conflict between --help and --header 32063 # Conflict between --help and --header
32004 as_fn_error "ambiguous option: \`$1' 32064 as_fn_error $? "ambiguous option: \`$1'
32005Try \`$0 --help' for more information.";; 32065Try \`$0 --help' for more information.";;
32006 --help | --hel | -h ) 32066 --help | --hel | -h )
32007 $as_echo "$ac_cs_usage"; exit ;; 32067 $as_echo "$ac_cs_usage"; exit ;;
@@ -32010,7 +32070,7 @@ Try \`$0 --help' for more information.";;
32010 ac_cs_silent=: ;; 32070 ac_cs_silent=: ;;
32011 32071
32012 # This is an error. 32072 # This is an error.
32013 -*) as_fn_error "unrecognized option: \`$1' 32073 -*) as_fn_error $? "unrecognized option: \`$1'
32014Try \`$0 --help' for more information." ;; 32074Try \`$0 --help' for more information." ;;
32015 32075
32016 *) as_fn_append ac_config_targets " $1" 32076 *) as_fn_append ac_config_targets " $1"
@@ -32484,7 +32544,7 @@ do
32484 "ecore.spec") CONFIG_FILES="$CONFIG_FILES ecore.spec" ;; 32544 "ecore.spec") CONFIG_FILES="$CONFIG_FILES ecore.spec" ;;
32485 "$po_makefile_in") CONFIG_FILES="$CONFIG_FILES $po_makefile_in" ;; 32545 "$po_makefile_in") CONFIG_FILES="$CONFIG_FILES $po_makefile_in" ;;
32486 32546
32487 *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; 32547 *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
32488 esac 32548 esac
32489done 32549done
32490 32550
@@ -32522,7 +32582,7 @@ $debug ||
32522{ 32582{
32523 tmp=./conf$$-$RANDOM 32583 tmp=./conf$$-$RANDOM
32524 (umask 077 && mkdir "$tmp") 32584 (umask 077 && mkdir "$tmp")
32525} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 32585} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
32526 32586
32527# Set up the scripts for CONFIG_FILES section. 32587# Set up the scripts for CONFIG_FILES section.
32528# No need to generate them if there are no CONFIG_FILES. 32588# No need to generate them if there are no CONFIG_FILES.
@@ -32539,7 +32599,7 @@ if test "x$ac_cr" = x; then
32539fi 32599fi
32540ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` 32600ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
32541if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then 32601if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
32542 ac_cs_awk_cr='\r' 32602 ac_cs_awk_cr='\\r'
32543else 32603else
32544 ac_cs_awk_cr=$ac_cr 32604 ac_cs_awk_cr=$ac_cr
32545fi 32605fi
@@ -32553,18 +32613,18 @@ _ACEOF
32553 echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && 32613 echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
32554 echo "_ACEOF" 32614 echo "_ACEOF"
32555} >conf$$subs.sh || 32615} >conf$$subs.sh ||
32556 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 32616 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
32557ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` 32617ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
32558ac_delim='%!_!# ' 32618ac_delim='%!_!# '
32559for ac_last_try in false false false false false :; do 32619for ac_last_try in false false false false false :; do
32560 . ./conf$$subs.sh || 32620 . ./conf$$subs.sh ||
32561 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 32621 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
32562 32622
32563 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` 32623 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
32564 if test $ac_delim_n = $ac_delim_num; then 32624 if test $ac_delim_n = $ac_delim_num; then
32565 break 32625 break
32566 elif $ac_last_try; then 32626 elif $ac_last_try; then
32567 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 32627 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
32568 else 32628 else
32569 ac_delim="$ac_delim!$ac_delim _$ac_delim!! " 32629 ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
32570 fi 32630 fi
@@ -32653,20 +32713,28 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
32653else 32713else
32654 cat 32714 cat
32655fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ 32715fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
32656 || as_fn_error "could not setup config files machinery" "$LINENO" 5 32716 || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
32657_ACEOF 32717_ACEOF
32658 32718
32659# VPATH may cause trouble with some makes, so we remove $(srcdir), 32719# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
32660# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and 32720# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
32661# trailing colons and then remove the whole line if VPATH becomes empty 32721# trailing colons and then remove the whole line if VPATH becomes empty
32662# (actually we leave an empty line to preserve line numbers). 32722# (actually we leave an empty line to preserve line numbers).
32663if test "x$srcdir" = x.; then 32723if test "x$srcdir" = x.; then
32664 ac_vpsub='/^[ ]*VPATH[ ]*=/{ 32724 ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
32665s/:*\$(srcdir):*/:/ 32725h
32666s/:*\${srcdir}:*/:/ 32726s///
32667s/:*@srcdir@:*/:/ 32727s/^/:/
32668s/^\([^=]*=[ ]*\):*/\1/ 32728s/[ ]*$/:/
32729s/:\$(srcdir):/:/g
32730s/:\${srcdir}:/:/g
32731s/:@srcdir@:/:/g
32732s/^:*//
32669s/:*$// 32733s/:*$//
32734x
32735s/\(=[ ]*\).*/\1/
32736G
32737s/\n//
32670s/^[^=]*=[ ]*$// 32738s/^[^=]*=[ ]*$//
32671}' 32739}'
32672fi 32740fi
@@ -32694,7 +32762,7 @@ for ac_last_try in false false :; do
32694 if test -z "$ac_t"; then 32762 if test -z "$ac_t"; then
32695 break 32763 break
32696 elif $ac_last_try; then 32764 elif $ac_last_try; then
32697 as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5 32765 as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
32698 else 32766 else
32699 ac_delim="$ac_delim!$ac_delim _$ac_delim!! " 32767 ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
32700 fi 32768 fi
@@ -32779,7 +32847,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
32779_ACAWK 32847_ACAWK
32780_ACEOF 32848_ACEOF
32781cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 32849cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
32782 as_fn_error "could not setup config headers machinery" "$LINENO" 5 32850 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
32783fi # test -n "$CONFIG_HEADERS" 32851fi # test -n "$CONFIG_HEADERS"
32784 32852
32785 32853
@@ -32792,7 +32860,7 @@ do
32792 esac 32860 esac
32793 case $ac_mode$ac_tag in 32861 case $ac_mode$ac_tag in
32794 :[FHL]*:*);; 32862 :[FHL]*:*);;
32795 :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; 32863 :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
32796 :[FH]-) ac_tag=-:-;; 32864 :[FH]-) ac_tag=-:-;;
32797 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; 32865 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
32798 esac 32866 esac
@@ -32820,7 +32888,7 @@ do
32820 [\\/$]*) false;; 32888 [\\/$]*) false;;
32821 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; 32889 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
32822 esac || 32890 esac ||
32823 as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; 32891 as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
32824 esac 32892 esac
32825 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac 32893 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
32826 as_fn_append ac_file_inputs " '$ac_f'" 32894 as_fn_append ac_file_inputs " '$ac_f'"
@@ -32847,7 +32915,7 @@ $as_echo "$as_me: creating $ac_file" >&6;}
32847 32915
32848 case $ac_tag in 32916 case $ac_tag in
32849 *:-:* | *:-) cat >"$tmp/stdin" \ 32917 *:-:* | *:-) cat >"$tmp/stdin" \
32850 || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; 32918 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
32851 esac 32919 esac
32852 ;; 32920 ;;
32853 esac 32921 esac
@@ -32984,22 +33052,22 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t
32984$ac_datarootdir_hack 33052$ac_datarootdir_hack
32985" 33053"
32986eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ 33054eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
32987 || as_fn_error "could not create $ac_file" "$LINENO" 5 33055 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
32988 33056
32989test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && 33057test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
32990 { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && 33058 { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
32991 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && 33059 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
32992 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' 33060 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
32993which seems to be undefined. Please make sure it is defined." >&5 33061which seems to be undefined. Please make sure it is defined" >&5
32994$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' 33062$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
32995which seems to be undefined. Please make sure it is defined." >&2;} 33063which seems to be undefined. Please make sure it is defined" >&2;}
32996 33064
32997 rm -f "$tmp/stdin" 33065 rm -f "$tmp/stdin"
32998 case $ac_file in 33066 case $ac_file in
32999 -) cat "$tmp/out" && rm -f "$tmp/out";; 33067 -) cat "$tmp/out" && rm -f "$tmp/out";;
33000 *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; 33068 *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
33001 esac \ 33069 esac \
33002 || as_fn_error "could not create $ac_file" "$LINENO" 5 33070 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
33003 ;; 33071 ;;
33004 :H) 33072 :H)
33005 # 33073 #
@@ -33010,19 +33078,19 @@ which seems to be undefined. Please make sure it is defined." >&2;}
33010 $as_echo "/* $configure_input */" \ 33078 $as_echo "/* $configure_input */" \
33011 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" 33079 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
33012 } >"$tmp/config.h" \ 33080 } >"$tmp/config.h" \
33013 || as_fn_error "could not create $ac_file" "$LINENO" 5 33081 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
33014 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then 33082 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
33015 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 33083 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
33016$as_echo "$as_me: $ac_file is unchanged" >&6;} 33084$as_echo "$as_me: $ac_file is unchanged" >&6;}
33017 else 33085 else
33018 rm -f "$ac_file" 33086 rm -f "$ac_file"
33019 mv "$tmp/config.h" "$ac_file" \ 33087 mv "$tmp/config.h" "$ac_file" \
33020 || as_fn_error "could not create $ac_file" "$LINENO" 5 33088 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
33021 fi 33089 fi
33022 else 33090 else
33023 $as_echo "/* $configure_input */" \ 33091 $as_echo "/* $configure_input */" \
33024 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ 33092 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
33025 || as_fn_error "could not create -" "$LINENO" 5 33093 || as_fn_error $? "could not create -" "$LINENO" 5
33026 fi 33094 fi
33027# Compute "$ac_file"'s index in $config_headers. 33095# Compute "$ac_file"'s index in $config_headers.
33028_am_arg="$ac_file" 33096_am_arg="$ac_file"
@@ -34093,7 +34161,7 @@ _ACEOF
34093ac_clean_files=$ac_clean_files_save 34161ac_clean_files=$ac_clean_files_save
34094 34162
34095test $ac_write_fail = 0 || 34163test $ac_write_fail = 0 ||
34096 as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 34164 as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
34097 34165
34098 34166
34099# configure is writing to config.log, and then calls config.status. 34167# configure is writing to config.log, and then calls config.status.
@@ -34114,7 +34182,7 @@ if test "$no_create" != yes; then
34114 exec 5>>config.log 34182 exec 5>>config.log
34115 # Use ||, not &&, to avoid exiting from the if with $? = 1, which 34183 # Use ||, not &&, to avoid exiting from the if with $? = 1, which
34116 # would make configure fail if this is the last instruction. 34184 # would make configure fail if this is the last instruction.
34117 $ac_cs_success || as_fn_exit $? 34185 $ac_cs_success || as_fn_exit 1
34118fi 34186fi
34119if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then 34187if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
34120 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 34188 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
@@ -34266,6 +34334,7 @@ if test "x${have_ecore_evas}" = "xyes" ; then
34266 echo " Sing.Proc. Windowing System: $have_ecore_evas_ews" 34334 echo " Sing.Proc. Windowing System: $have_ecore_evas_ews"
34267 echo " Wayland Shm................: $have_ecore_evas_wayland_shm" 34335 echo " Wayland Shm................: $have_ecore_evas_wayland_shm"
34268 echo " Wayland Egl................: $have_ecore_evas_wayland_egl" 34336 echo " Wayland Egl................: $have_ecore_evas_wayland_egl"
34337 echo " Extn (Plug/socket Extn)....: $have_ecore_evas_extn"
34269fi 34338fi
34270echo 34339echo
34271echo " Tests................: ${enable_tests}" 34340echo " Tests................: ${enable_tests}"
diff --git a/libraries/ecore/configure.ac b/libraries/ecore/configure.ac
index 21393dd..3d93c9b 100644
--- a/libraries/ecore/configure.ac
+++ b/libraries/ecore/configure.ac
@@ -1,12 +1,12 @@
1##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## 1##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
2##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## 2##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
3m4_define([v_maj], [1]) 3m4_define([v_maj], [1])
4m4_define([v_min], [1]) 4m4_define([v_min], [2])
5m4_define([v_mic], [99]) 5m4_define([v_mic], [0])
6m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v '\(export\|Unversioned directory\)' || echo 0) | awk -F : '{printf("%s\n", $1);}' | tr -d ' :MSP\n' | sed 's/Unversioneddirectory/0/' | tr -d '\n'])) 6m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v '\(export\|Unversioned directory\)' || echo 0) | awk -F : '{printf("%s\n", $1);}' | tr -d ' :MSP\n' | sed 's/Unversioneddirectory/0/' | tr -d '\n']))
7m4_if(v_rev, [0], [m4_define([v_rev], m4_esyscmd([git log 2> /dev/null | (grep -m1 git-svn-id || echo 0) | sed -e 's/.*@\([0-9]*\).*/\1/' | tr -d '\n']))]) 7m4_if(v_rev, [0], [m4_define([v_rev], m4_esyscmd([git log 2> /dev/null | (grep -m1 git-svn-id || echo 0) | sed -e 's/.*@\([0-9]*\).*/\1/' | tr -d '\n']))])
8##-- When released, remove the dnl on the below line 8##-- When released, remove the dnl on the below line
9dnl m4_undefine([v_rev]) 9m4_undefine([v_rev])
10##-- When doing snapshots - change soname. remove dnl on below line 10##-- When doing snapshots - change soname. remove dnl on below line
11dnl m4_define([relname], [ver-pre-svn-07]) 11dnl m4_define([relname], [ver-pre-svn-07])
12dnl m4_define([v_rel], [-release relname]) 12dnl m4_define([v_rel], [-release relname])
@@ -18,7 +18,7 @@ m4_define([lt_age], v_min)
18##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## 18##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
19##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## 19##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
20 20
21AC_INIT([ecore], [v_ver], [enlightenment-devel@lists.sourceforge.net]) 21AC_INIT([ecore], [v_ver]-alpha, [enlightenment-devel@lists.sourceforge.net])
22AC_PREREQ([2.52]) 22AC_PREREQ([2.52])
23AC_CONFIG_SRCDIR([configure.ac]) 23AC_CONFIG_SRCDIR([configure.ac])
24AC_CONFIG_MACRO_DIR([m4]) 24AC_CONFIG_MACRO_DIR([m4])
@@ -174,6 +174,7 @@ want_ecore_evas_directfb="no"
174want_ecore_evas_fb="no" 174want_ecore_evas_fb="no"
175want_ecore_evas_software_16_wince="no" 175want_ecore_evas_software_16_wince="no"
176want_ecore_evas_ews="yes" 176want_ecore_evas_ews="yes"
177want_ecore_evas_extn="yes"
177want_ecore_evas_wayland_shm="no" 178want_ecore_evas_wayland_shm="no"
178want_ecore_evas_wayland_egl="no" 179want_ecore_evas_wayland_egl="no"
179 180
@@ -182,11 +183,12 @@ want_ecore_imf_xim="no"
182want_ecore_imf_scim="no" 183want_ecore_imf_scim="no"
183 184
184case "$host_os" in 185case "$host_os" in
185 mingw32ce* | cegcc*) 186 mingw32ce*)
186 want_ecore_con="no" 187 want_ecore_con="no"
187 want_ecore_ipc="no" 188 want_ecore_ipc="no"
188 want_ecore_wince="yes" 189 want_ecore_wince="yes"
189 want_ecore_evas_software_16_wince="yes" 190 want_ecore_evas_software_16_wince="yes"
191 want_ecore_evas_extn="no"
190 ;; 192 ;;
191 mingw*) 193 mingw*)
192 want_notify_win32="yes" 194 want_notify_win32="yes"
@@ -273,30 +275,6 @@ requirements_ecore_imf_xim=""
273requirements_ecore_imf_scim="" 275requirements_ecore_imf_scim=""
274requirements_ecore_wayland="" 276requirements_ecore_wayland=""
275 277
276AC_CHECK_DECL([MAXHOSTNAMELEN],[FOUND_MAXHOSTNAMELEN=yes])
277
278if test x$FOUND_MAXHOSTNAMELEN != xyes ; then
279 AC_MSG_CHECKING([for header that defines MAXHOSTNAMELEN])
280
281 FOUND_MAXHOSTNAMELEN='not found'
282
283 AC_COMPILE_IFELSE(
284 AC_LANG_PROGRAM([#include <sys/param.h>],
285 [int h = MAXHOSTNAMELEN;]),
286 [FOUND_MAXHOSTNAMELEN='sys/param.h'
287 AC_DEFINE(NEED_SYS_PARAM_H,1,
288 [Define to 1 if you need <sys/param.h> to define MAXHOSTNAMELEN])])
289
290 AC_COMPILE_IFELSE(
291 AC_LANG_PROGRAM([#include <netdb.h>],
292 [int h = MAXHOSTNAMELEN;]),
293 [FOUND_MAXHOSTNAMELEN='netdb.h'
294 AC_DEFINE(NEED_NETDB_H,1,
295 [Define to 1 if you need <netdb.h> to define MAXHOSTNAMELEN])])
296
297 AC_MSG_RESULT([$FOUND_MAXHOSTNAMELEN])
298fi
299
300### Additional options to configure 278### Additional options to configure
301 279
302want_glib_integration_always=no 280want_glib_integration_always=no
@@ -377,10 +355,6 @@ if test "x${want_xim}" = "xyes" ; then
377 AC_DEFINE([ENABLE_XIM], [1], [Enable X Input Method]) 355 AC_DEFINE([ENABLE_XIM], [1], [Enable X Input Method])
378fi 356fi
379 357
380# Unit tests
381
382EFL_CHECK_TESTS([enable_tests="yes"], [enable_tests="no"])
383
384### Checks for programs 358### Checks for programs
385 359
386m4_ifdef([AC_PROG_OBJC], 360m4_ifdef([AC_PROG_OBJC],
@@ -499,6 +473,21 @@ case "$host_vendor" in
499 ;; 473 ;;
500esac 474esac
501 475
476
477### Checks for portability layer
478
479PKG_CHECK_MODULES([EXOTIC],
480 [exotic],
481 [enable_exotic="yes"],
482 [enable_exotic="no"])
483
484if test "x${enable_exotic}" = "xyes"; then
485 requirements_ecore="exotic ${requirements_ecore}"
486
487 AC_DEFINE([HAVE_EXOTIC], [1], [Define to 1 if you have Exotic.])
488fi
489AM_CONDITIONAL([ECORE_HAVE_EXOTIC], [test "x${enable_exotic}" = "xyes"])
490
502AC_SUBST(EFL_ECORE_BUILD) 491AC_SUBST(EFL_ECORE_BUILD)
503AC_SUBST(EFL_ECORE_CON_BUILD) 492AC_SUBST(EFL_ECORE_CON_BUILD)
504AC_SUBST(EFL_ECORE_EVAS_BUILD) 493AC_SUBST(EFL_ECORE_EVAS_BUILD)
@@ -549,26 +538,26 @@ AC_SUBST(rt_libs)
549 538
550# Eina library 539# Eina library
551 540
552PKG_CHECK_MODULES(EINA, [eina >= 1.1.0]) 541PKG_CHECK_MODULES(EINA, [eina >= 1.2.0])
553#FIXME check all the requirements when the eina move will be finished 542#FIXME check all the requirements when the eina move will be finished
554requirements_ecore="eina >= 1.1.0 ${requirements_ecore}" 543requirements_ecore="eina >= 1.2.0 ${requirements_ecore}"
555requirements_ecore_con="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_con}" 544requirements_ecore_con="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_con}"
556#requirements_ecore_config="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_config}" 545#requirements_ecore_config="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_config}"
557requirements_ecore_directfb="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_directfb}" 546requirements_ecore_directfb="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_directfb}"
558requirements_ecore_evas="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_evas}" 547requirements_ecore_evas="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_evas}"
559requirements_ecore_fb="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_fb}" 548requirements_ecore_fb="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_fb}"
560requirements_ecore_file="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_file}" 549requirements_ecore_file="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_file}"
561requirements_ecore_imf="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_imf}" 550requirements_ecore_imf="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_imf}"
562requirements_ecore_imf_evas="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_imf_evas}" 551requirements_ecore_imf_evas="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_imf_evas}"
563requirements_ecore_input="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_input}" 552requirements_ecore_input="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_input}"
564requirements_ecore_input_evas="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_input_evas}" 553requirements_ecore_input_evas="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_input_evas}"
565requirements_ecore_ipc="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_ipc}" 554requirements_ecore_ipc="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_ipc}"
566requirements_ecore_cocoa="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_cocoa}" 555requirements_ecore_cocoa="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_cocoa}"
567requirements_ecore_sdl="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_sdl}" 556requirements_ecore_sdl="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_sdl}"
568requirements_ecore_psl1ght="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_sdl}" 557requirements_ecore_psl1ght="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_sdl}"
569requirements_ecore_win32="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_win32}" 558requirements_ecore_win32="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_win32}"
570requirements_ecore_wince="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_wince}" 559requirements_ecore_wince="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_wince}"
571requirements_ecore_x="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_x}" 560requirements_ecore_x="ecore >= 1.2.0 eina >= 1.2.0 ${requirements_ecore_x}"
572 561
573 562
574# glib support (main loop integration) 563# glib support (main loop integration)
@@ -637,6 +626,45 @@ PKG_CHECK_MODULES([DIRECTFB],
637 626
638# Xlib and XCB (ecore_x) 627# Xlib and XCB (ecore_x)
639 628
629AC_CHECK_DECL([MAXHOSTNAMELEN], [FOUND_MAXHOSTNAMELEN=yes])
630
631if test "x${FOUND_MAXHOSTNAMELEN}" != "xyes" ; then
632 AC_MSG_CHECKING([for header that defines MAXHOSTNAMELEN])
633 FOUND_MAXHOSTNAMELEN="not found"
634
635 AC_COMPILE_IFELSE(
636 [
637 AC_LANG_PROGRAM(
638 [[
639#include <sys/param.h>
640 ]],
641 [[
642int h = MAXHOSTNAMELEN;
643 ]])
644 ],
645 [
646 FOUND_MAXHOSTNAMELEN="sys/param.h"
647 AC_DEFINE([NEED_SYS_PARAM_H], [1], [Define to 1 if you need <sys/param.h> to define MAXHOSTNAMELEN])
648 ])
649
650 AC_COMPILE_IFELSE(
651 [
652 AC_LANG_PROGRAM(
653 [[
654#include <netdb.h>
655 ]],
656 [[
657int h = MAXHOSTNAMELEN;
658 ]])
659 ],
660 [
661 FOUND_MAXHOSTNAMELEN="netdb.h"
662 AC_DEFINE([NEED_NETDB_H], [1], [Define to 1 if you need <netdb.h> to define MAXHOSTNAMELEN])
663 ])
664
665 AC_MSG_RESULT([$FOUND_MAXHOSTNAMELEN])
666fi
667
640have_x="no" 668have_x="no"
641have_ecore_x="no" 669have_ecore_x="no"
642have_ecore_x_xlib="no" 670have_ecore_x_xlib="no"
@@ -1171,7 +1199,7 @@ AM_CONDITIONAL(BUILD_ECORE_X_XCB, test $have_ecore_x_xcb = yes)
1171 1199
1172# Evas library (ecore_config, ecore_input_evas, ecore_imf_evas and ecore_evas) 1200# Evas library (ecore_config, ecore_input_evas, ecore_imf_evas and ecore_evas)
1173 1201
1174PKG_CHECK_MODULES([EVAS], [evas >= 1.1.99], 1202PKG_CHECK_MODULES([EVAS], [evas >= 1.2.0],
1175 [have_evas="yes"], 1203 [have_evas="yes"],
1176 [have_evas="no"]) 1204 [have_evas="no"])
1177 1205
@@ -1200,7 +1228,23 @@ esac
1200 1228
1201# ecore_con 1229# ecore_con
1202 1230
1203AC_CHECK_HEADERS([arpa/inet.h arpa/nameser.h netinet/tcp.h net/if.h netinet/in.h sys/socket.h sys/un.h ws2tcpip.h netdb.h]) 1231AC_CHECK_HEADERS([sys/socket.h])
1232AC_CHECK_HEADERS([net/if.h], [], [],
1233[
1234#include <stdio.h>
1235#ifdef STDC_HEADERS
1236# include <stdlib.h>
1237# include <stddef.h>
1238#else
1239# ifdef HAVE_STDLIB_H
1240# include <stdlib.h>
1241# endif
1242#endif
1243#ifdef HAVE_SYS_SOCKET_H
1244# include <sys/socket.h>
1245#endif
1246])
1247AC_CHECK_HEADERS([sys/un.h arpa/inet.h arpa/nameser.h netinet/tcp.h netinet/in.h ws2tcpip.h netdb.h])
1204 1248
1205if test "x${ac_cv_header_netdb_h}" = "xyes" ; then 1249if test "x${ac_cv_header_netdb_h}" = "xyes" ; then
1206 have_addrinfo="yes" 1250 have_addrinfo="yes"
@@ -1390,6 +1434,60 @@ if ! test "x${have_atfile_source}" = "xno" ; then
1390 ]) 1434 ])
1391fi 1435fi
1392 1436
1437SHM_OPEN_LIBS=""
1438
1439AC_MSG_CHECKING([whether shm_open is in libc])
1440AC_LINK_IFELSE(
1441 [AC_LANG_PROGRAM(
1442 [[
1443#include <sys/mman.h>
1444#include <sys/stat.h>
1445#include <fcntl.h>
1446 ]],
1447 [[
1448int fd;
1449fd = shm_open("/", O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
1450shm_unlink("/");
1451 ]])],
1452 [
1453 have_shm_open="yes"
1454 AC_DEFINE(HAVE_SHM_OPEN, 1, [Have shm_open() call])
1455 ],
1456 [have_shm_open="no"])
1457LIBS="${LIBS_save}"
1458AC_MSG_RESULT([${have_shm_open}])
1459
1460if ! test "x${have_shm_open}" = "xyes" ; then
1461 AC_MSG_CHECKING([whether shm_open is in librt])
1462 LIBS_save="${LIBS}"
1463 LIBS="${LIBS} -lrt"
1464 AC_LINK_IFELSE(
1465 [AC_LANG_PROGRAM(
1466 [[
1467#include <sys/mman.h>
1468#include <sys/stat.h>
1469#include <fcntl.h>
1470 ]],
1471 [[
1472int fd;
1473fd = shm_open("/", O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
1474shm_unlink("/");
1475 ]])],
1476 [
1477 have_shm_open="yes"
1478 AC_DEFINE(HAVE_SHM_OPEN, 1, [Have shm_open() call])
1479 SHM_OPEN_LIBS="-lrt"
1480 ],
1481 [have_shm_open="no"])
1482 LIBS="${LIBS_save}"
1483 AC_MSG_RESULT([${have_shm_open}])
1484fi
1485
1486AC_SUBST([SHM_OPEN_LIBS])
1487
1488AC_MSG_CHECKING([whether shm_open is available])
1489AC_MSG_RESULT([${have_shm_open}])
1490
1393### Checks for optionnal feature 1491### Checks for optionnal feature
1394AC_CHECK_FUNC([mallinfo], 1492AC_CHECK_FUNC([mallinfo],
1395 [ 1493 [
@@ -1485,8 +1583,8 @@ AM_CONDITIONAL([HAVE_CARES], [test "x${have_cares}" = "xyes"])
1485# ecore_ipc 1583# ecore_ipc
1486ECORE_CHECK_MODULE([ipc], [${want_ecore_ipc}], [Ipc], [${have_ecore_con}], 1584ECORE_CHECK_MODULE([ipc], [${want_ecore_ipc}], [Ipc], [${have_ecore_con}],
1487 [ 1585 [
1488 requirements_ecore_ipc="ecore-con >= 1.1.99 ${requirements_ecore_ipc}" 1586 requirements_ecore_ipc="ecore-con >= 1.2.0 ${requirements_ecore_ipc}"
1489 requirements_ecore_evas="ecore-ipc >= 1.1.99 ${requirements_ecore_evas}" 1587 requirements_ecore_evas="ecore-ipc >= 1.2.0 ${requirements_ecore_evas}"
1490 ]) 1588 ])
1491 1589
1492# ecore_file 1590# ecore_file
@@ -1501,7 +1599,7 @@ if test "x${have_ecore_file}" = "xyes" ; then
1501 ECORE_CHECK_NOTIFY_WIN32([${want_notify_win32}], [have_notify_win32="yes"], [have_notify_win32="no"]) 1599 ECORE_CHECK_NOTIFY_WIN32([${want_notify_win32}], [have_notify_win32="yes"], [have_notify_win32="no"])
1502 1600
1503 if test "x${have_ecore_con}" = "xyes" ; then 1601 if test "x${have_ecore_con}" = "xyes" ; then
1504 requirements_ecore_file="ecore-con >= 1.1.99 ${requirements_ecore_file}" 1602 requirements_ecore_file="ecore-con >= 1.2.0 ${requirements_ecore_file}"
1505 else 1603 else
1506 ECORE_CHECK_CURL([${want_curl}], 1604 ECORE_CHECK_CURL([${want_curl}],
1507 [ 1605 [
@@ -1520,7 +1618,7 @@ fi
1520#fi 1618#fi
1521 1619
1522#ECORE_CHECK_MODULE([config], [${want_ecore_config}], [Config], [${ecore_config_deps}], 1620#ECORE_CHECK_MODULE([config], [${want_ecore_config}], [Config], [${ecore_config_deps}],
1523# [requirements_ecore_config="ecore-ipc >= 1.1.99 evas >= 1.1.99 eet >= 1.5.0 ${requirements_ecore_config}"]) 1621# [requirements_ecore_config="ecore-ipc >= 1.2.0 evas >= 1.2.0 eet >= 1.6.0 ${requirements_ecore_config}"])
1524 1622
1525AM_CONDITIONAL(BUILD_ECORE_CONFIG, false) 1623AM_CONDITIONAL(BUILD_ECORE_CONFIG, false)
1526 1624
@@ -1536,12 +1634,12 @@ if test "x${have_ecore_imf}" = "xyes" -a "x${have_evas}" = "xyes" ; then
1536fi 1634fi
1537 1635
1538ECORE_CHECK_MODULE([imf-evas], [${want_ecore_imf}], [Imf_Evas], [${ecore_imf_evas_deps}], 1636ECORE_CHECK_MODULE([imf-evas], [${want_ecore_imf}], [Imf_Evas], [${ecore_imf_evas_deps}],
1539 [requirements_ecore_imf_evas="ecore-imf >= 1.1.99 evas >= 1.1.99 ${requirements_ecore_imf_evas}"]) 1637 [requirements_ecore_imf_evas="ecore-imf >= 1.2.0 evas >= 1.2.0 ${requirements_ecore_imf_evas}"])
1540 1638
1541# ecore_input{_evas} 1639# ecore_input{_evas}
1542ECORE_CHECK_MODULE([input], [${want_ecore_input}], [Input]) 1640ECORE_CHECK_MODULE([input], [${want_ecore_input}], [Input])
1543ECORE_CHECK_MODULE([input-evas], [${want_ecore_input}], [Input_Evas], [${have_evas}], 1641ECORE_CHECK_MODULE([input-evas], [${want_ecore_input}], [Input_Evas], [${have_evas}],
1544 [requirements_ecore_input_evas="ecore-input >= 1.1.99 evas >= 1.1.99 ${requirements_ecore_input}"]) 1642 [requirements_ecore_input_evas="ecore-input >= 1.2.0 evas >= 1.2.0 ${requirements_ecore_input}"])
1545 1643
1546# ecore_imf_xim 1644# ecore_imf_xim
1547AM_CONDITIONAL(BUILD_ECORE_IMF_XIM, false) 1645AM_CONDITIONAL(BUILD_ECORE_IMF_XIM, false)
@@ -1555,7 +1653,7 @@ if test "x${have_ecore_imf}" = "xyes" \
1555fi 1653fi
1556 1654
1557ECORE_CHECK_MODULE([imf-xim], [${want_ecore_imf}], [Imf_XIM], [${ecore_imf_xim_deps}], 1655ECORE_CHECK_MODULE([imf-xim], [${want_ecore_imf}], [Imf_XIM], [${ecore_imf_xim_deps}],
1558 [requirements_ecore_imf_xim="ecore-imf >= 1.1.99 ecore-x >= 1.1.99 ecore-input >= 1.1.99 ${requirements_ecore_imf_xim}"]) 1656 [requirements_ecore_imf_xim="ecore-imf >= 1.2.0 ecore-x >= 1.2.0 ecore-input >= 1.2.0 ${requirements_ecore_imf_xim}"])
1559 1657
1560# ecore_imf_scim 1658# ecore_imf_scim
1561PKG_CHECK_MODULES([SCIM], [scim], [have_scim="yes"], [have_scim="no"]) 1659PKG_CHECK_MODULES([SCIM], [scim], [have_scim="yes"], [have_scim="no"])
@@ -1571,7 +1669,7 @@ if test "x${have_ecore_imf}" = "xyes" \
1571fi 1669fi
1572 1670
1573ECORE_CHECK_MODULE([imf-scim], [${want_ecore_imf}], [Imf_SCIM], [${ecore_imf_scim_deps}], 1671ECORE_CHECK_MODULE([imf-scim], [${want_ecore_imf}], [Imf_SCIM], [${ecore_imf_scim_deps}],
1574 [requirements_ecore_imf_scim="ecore-imf >= 1.1.0 ecore-x >= 1.1.0 ecore-input >= 1.1.0 ${requirements_ecore_imf_scim}"]) 1672 [requirements_ecore_imf_scim="ecore-imf >= 1.2.0 ecore-x >= 1.2.0 ecore-input >= 1.2.0 ${requirements_ecore_imf_scim}"])
1575 1673
1576## Graphic systems 1674## Graphic systems
1577 1675
@@ -1586,7 +1684,7 @@ fi
1586ECORE_CHECK_MODULE([x], [${want_ecore_x}], [X], [${ecore_x_deps}], 1684ECORE_CHECK_MODULE([x], [${want_ecore_x}], [X], [${ecore_x_deps}],
1587 [ 1685 [
1588 ecore_x_libs="$ecore_x_libs $x_libs" 1686 ecore_x_libs="$ecore_x_libs $x_libs"
1589 requirements_ecore_x="ecore-input >= 1.1.99 ${requirements_ecore_x}" 1687 requirements_ecore_x="ecore-input >= 1.2.0 ${requirements_ecore_x}"
1590 ]) 1688 ])
1591 1689
1592# ecore_win32 1690# ecore_win32
@@ -1594,7 +1692,7 @@ ECORE_CHECK_MODULE([x], [${want_ecore_x}], [X], [${ecore_x_deps}],
1594ECORE_CHECK_MODULE([win32], [${want_ecore_win32}], [Win32], [${have_ecore_input}], 1692ECORE_CHECK_MODULE([win32], [${want_ecore_win32}], [Win32], [${have_ecore_input}],
1595 [ 1693 [
1596 ecore_win32_libs="-lole32 -lgdi32" 1694 ecore_win32_libs="-lole32 -lgdi32"
1597 requirements_ecore_win32="ecore-input >= 1.1.99 ${requirements_ecore_win32}" 1695 requirements_ecore_win32="ecore-input >= 1.2.0 ${requirements_ecore_win32}"
1598 ]) 1696 ])
1599AC_SUBST(ecore_win32_libs) 1697AC_SUBST(ecore_win32_libs)
1600 1698
@@ -1606,7 +1704,7 @@ if test "x${have_ecore_input}" = "xyes" -a "x${have_cocoa}" = "xyes" ; then
1606fi 1704fi
1607 1705
1608ECORE_CHECK_MODULE([cocoa], [${want_ecore_cocoa}], [Cocoa], [${ecore_cocoa_deps}], 1706ECORE_CHECK_MODULE([cocoa], [${want_ecore_cocoa}], [Cocoa], [${ecore_cocoa_deps}],
1609 [requirements_ecore_cocoa="ecore-input >= 1.1.99 ${requirements_ecore_cocoa}"]) 1707 [requirements_ecore_cocoa="ecore-input >= 1.2.0 ${requirements_ecore_cocoa}"])
1610 1708
1611# ecore_sdl 1709# ecore_sdl
1612 1710
@@ -1616,10 +1714,10 @@ if test "x${have_sdl}" = "xyes" -a "x${have_ecore_input}" = "xyes" ; then
1616fi 1714fi
1617 1715
1618ECORE_CHECK_MODULE([sdl], [${want_ecore_sdl}], [Sdl], [${ecore_sdl_deps}], 1716ECORE_CHECK_MODULE([sdl], [${want_ecore_sdl}], [Sdl], [${ecore_sdl_deps}],
1619 [requirements_ecore_sdl="ecore-input >= 1.1.99 ${requirements_ecore_sdl}"]) 1717 [requirements_ecore_sdl="ecore-input >= 1.2.0 ${requirements_ecore_sdl}"])
1620 1718
1621ECORE_CHECK_MODULE([psl1ght], [${want_ecore_psl1ght}], [psl1ght], [${ecore_psl1ght_deps}], 1719ECORE_CHECK_MODULE([psl1ght], [${want_ecore_psl1ght}], [psl1ght], [${ecore_psl1ght_deps}],
1622 [requirements_ecore_psl1ght="ecore-input >= 1.1.99 ${requirements_ecore_psl1ght}"]) 1720 [requirements_ecore_psl1ght="ecore-input >= 1.2.0 ${requirements_ecore_psl1ght}"])
1623 1721
1624# ecore_fb 1722# ecore_fb
1625ECORE_CHECK_MODULE([fb], [${want_ecore_fb}], [FB], [$have_fb]) 1723ECORE_CHECK_MODULE([fb], [${want_ecore_fb}], [FB], [$have_fb])
@@ -1641,19 +1739,19 @@ ECORE_CHECK_MODULE([directfb], [${want_ecore_directfb}], [DirectFB], [${have_dir
1641# ecore_wince 1739# ecore_wince
1642 1740
1643ECORE_CHECK_MODULE([wince], [${want_ecore_wince}], [WinCE], [${have_ecore_input}], 1741ECORE_CHECK_MODULE([wince], [${want_ecore_wince}], [WinCE], [${have_ecore_input}],
1644 [requirements_ecore_win32="ecore-input >= 1.1.99 ${requirements_ecore_win32}"]) 1742 [requirements_ecore_win32="ecore-input >= 1.2.0 ${requirements_ecore_win32}"])
1645 1743
1646## Ecore Evas 1744## Ecore Evas
1647 1745
1648# ecore_evas 1746# ecore_evas
1649 1747
1650ecore_evas_deps="no" 1748ecore_evas_deps="no"
1651if test "x${have_evas}" = "xyes" -a "x${have_ecore_input}" = "xyes" -a "x${have_ecore_input_evas}" = "xyes" ; then 1749if test "x${have_evas}" = "xyes" && test "x${have_ecore_input}" = "xyes" && test "x${have_ecore_input_evas}" = "xyes" ; then
1652 ecore_evas_deps="yes" 1750 ecore_evas_deps="yes"
1653fi 1751fi
1654 1752
1655ECORE_CHECK_MODULE([evas], [${want_ecore_evas}], [Evas], [${ecore_evas_deps}], 1753ECORE_CHECK_MODULE([evas], [${want_ecore_evas}], [Evas], [${ecore_evas_deps}],
1656 [requirements_ecore_evas="ecore-input >= 1.1.99 ecore-input-evas >= 1.1.99 evas >= 1.1.99 ${requirements_ecore_evas}"]) 1754 [requirements_ecore_evas="ecore-input >= 1.2.0 ecore-input-evas >= 1.2.0 evas >= 1.2.0 ${requirements_ecore_evas}"])
1657 1755
1658# ecore_evas_buffer 1756# ecore_evas_buffer
1659 1757
@@ -1743,7 +1841,7 @@ if test "x$have_ecore_evas_software_x11" = "xyes" -o \
1743 "x$have_ecore_evas_software_16_x11" = "xyes" -o \ 1841 "x$have_ecore_evas_software_16_x11" = "xyes" -o \
1744 "x$have_ecore_evas_software_xcb" = "xyes"; then 1842 "x$have_ecore_evas_software_xcb" = "xyes"; then
1745 AC_DEFINE(BUILD_ECORE_EVAS_X11, 1, [Support for X Window Engines in Ecore_Evas]) 1843 AC_DEFINE(BUILD_ECORE_EVAS_X11, 1, [Support for X Window Engines in Ecore_Evas])
1746 requirements_ecore_evas="ecore-x >= 1.1.99 ${requirements_ecore_evas}" 1844 requirements_ecore_evas="ecore-x >= 1.2.0 ${requirements_ecore_evas}"
1747fi 1845fi
1748 1846
1749# ecore_evas_win32 1847# ecore_evas_win32
@@ -1779,16 +1877,18 @@ if test "x${have_ecore_evas_software_gdi}" = "xyes" -o \
1779 "x${have_ecore_evas_opengl_glew}" = "xyes" -o \ 1877 "x${have_ecore_evas_opengl_glew}" = "xyes" -o \
1780 "x${have_ecore_evas_software_16_ddraw}" = "xyes" ; then 1878 "x${have_ecore_evas_software_16_ddraw}" = "xyes" ; then
1781 AC_DEFINE(BUILD_ECORE_EVAS_WIN32, 1, [Support for Win32 Engine in Ecore_Evas]) 1879 AC_DEFINE(BUILD_ECORE_EVAS_WIN32, 1, [Support for Win32 Engine in Ecore_Evas])
1782 requirements_ecore_evas="ecore-win32 >= 1.1.99 ${requirements_ecore_evas}" 1880 requirements_ecore_evas="ecore-win32 >= 1.2.0 ${requirements_ecore_evas}"
1783fi 1881fi
1784 1882
1785# ecore_evas_software_sdl 1883# ecore_evas_software_sdl
1786 1884
1787ECORE_EVAS_CHECK_MODULE([software-sdl], 1885have_ecore_evas_software_sdl="no"
1788 [${want_ecore_evas_software_sdl}], 1886if test "x${have_ecore_sdl}" = "xyes"; then
1789 [Software SDL], 1887 requirements_ecore_evas="ecore-sdl >= 1.2.0 ${requirements_ecore_evas}"
1790 [${have_ecore_sdl}], 1888 have_ecore_evas_software_sdl="yes"
1791 [requirements_ecore_evas="ecore-sdl >= 1.1.99 ${requirements_ecore_evas}"]) 1889 AC_DEFINE(BUILD_ECORE_EVAS_SOFTWARE_SDL, 1, [Support for Software SDL Engine in Ecore_Evas])
1890 requirements_ecore_evas="ecore-sdl >= 1.2.0 ${requirements_ecore_evas}"
1891fi
1792 1892
1793# ecore_evas_gl_sdl 1893# ecore_evas_gl_sdl
1794 1894
@@ -1796,7 +1896,7 @@ ECORE_EVAS_CHECK_MODULE([opengl-sdl],
1796 [${want_ecore_evas_gl_sdl}], 1896 [${want_ecore_evas_gl_sdl}],
1797 [OpenGL SDL], 1897 [OpenGL SDL],
1798 [${have_ecore_sdl}], 1898 [${have_ecore_sdl}],
1799 [requirements_ecore_evas="ecore-sdl >= 1.1.99 ${requirements_ecore_evas}"]) 1899 [requirements_ecore_evas="ecore-sdl >= 1.2.0 ${requirements_ecore_evas}"])
1800 1900
1801# ecore_evas_cocoa 1901# ecore_evas_cocoa
1802 1902
@@ -1804,7 +1904,7 @@ ECORE_EVAS_CHECK_MODULE([opengl-cocoa],
1804 [${want_ecore_evas_gl_cocoa}], 1904 [${want_ecore_evas_gl_cocoa}],
1805 [OpenGL Cocoa], 1905 [OpenGL Cocoa],
1806 [${have_ecore_cocoa}], 1906 [${have_ecore_cocoa}],
1807 [requirements_ecore_evas="ecore-cocoa >= 1.1.99 ${requirements_ecore_evas}"]) 1907 [requirements_ecore_evas="ecore-cocoa >= 1.2.0 ${requirements_ecore_evas}"])
1808 1908
1809# ecore_evas_directfb 1909# ecore_evas_directfb
1810 1910
@@ -1812,7 +1912,7 @@ ECORE_EVAS_CHECK_MODULE([directfb],
1812 [${want_ecore_evas_directfb}], 1912 [${want_ecore_evas_directfb}],
1813 [DirectFB], 1913 [DirectFB],
1814 [${have_ecore_directfb}], 1914 [${have_ecore_directfb}],
1815 [requirements_ecore_evas="ecore-directfb >= 1.1.99 ${requirements_ecore_evas}"]) 1915 [requirements_ecore_evas="ecore-directfb >= 1.2.0 ${requirements_ecore_evas}"])
1816 1916
1817# ecore_evas_fb 1917# ecore_evas_fb
1818 1918
@@ -1820,7 +1920,7 @@ ECORE_EVAS_CHECK_MODULE([fb],
1820 [${want_ecore_evas_fb}], 1920 [${want_ecore_evas_fb}],
1821 [Linux Framebuffer], 1921 [Linux Framebuffer],
1822 [${have_ecore_fb}], 1922 [${have_ecore_fb}],
1823 [requirements_ecore_evas="ecore-fb >= 1.1.99 ${requirements_ecore_evas}"]) 1923 [requirements_ecore_evas="ecore-fb >= 1.2.0 ${requirements_ecore_evas}"])
1824 1924
1825# ecore_evas_wince 1925# ecore_evas_wince
1826 1926
@@ -1828,7 +1928,7 @@ ECORE_EVAS_CHECK_MODULE([software-16-wince],
1828 [${want_ecore_evas_software_16_wince}], 1928 [${want_ecore_evas_software_16_wince}],
1829 [16 bpp Software Windows CE], 1929 [16 bpp Software Windows CE],
1830 [${have_ecore_wince}], 1930 [${have_ecore_wince}],
1831 [requirements_ecore_evas="ecore-wince >= 1.1.99 ${requirements_ecore_evas}"]) 1931 [requirements_ecore_evas="ecore-wince >= 1.2.0 ${requirements_ecore_evas}"])
1832 1932
1833# ecore_evas_ews 1933# ecore_evas_ews
1834 1934
@@ -1837,20 +1937,38 @@ ECORE_EVAS_CHECK_MODULE_FULL([ews], [software-buffer],
1837 [Ecore Evas Single Process Windowing System], 1937 [Ecore Evas Single Process Windowing System],
1838 [yes], []) 1938 [yes], [])
1839 1939
1940# ecore_evas_extn
1941
1942have_extn="yes"
1943if test "x${have_ecore_ipc}" = "xno" || \
1944 test "x${have_ecore_evas_software_buffer}" = "xno" || \
1945 test "x${have_shm_open}" = "xno" ; then
1946 have_extn="no"
1947fi
1948
1949dnl THIS IS SPECIAL - dont use normal ECORE_EVAS_CHECK_MODULE
1950have_ecore_evas_extn="no"
1951if test "x${want_ecore_evas_extn}" = "xyes" && \
1952 test "x${have_extn}" = "xyes" && \
1953 test "x${have_ecore_evas}" = "xyes"; then
1954 AC_DEFINE([BUILD_ECORE_EVAS_EXTN], [1], [Support for Extn Engine in Ecore_Evas])
1955 have_ecore_evas_extn="yes"
1956fi
1957
1840# ecore_evas_psl1ght 1958# ecore_evas_psl1ght
1841 1959
1842ECORE_EVAS_CHECK_MODULE([psl1ght], 1960ECORE_EVAS_CHECK_MODULE([psl1ght],
1843 [${want_ecore_evas_psl1ght}], 1961 [${want_ecore_evas_psl1ght}],
1844 [PSL1GHT], 1962 [PSL1GHT],
1845 [${have_ecore_psl1ght}], 1963 [${have_ecore_psl1ght}],
1846 [requirements_ecore_evas="ecore-psl1ght >= 1.1.99 ${requirements_ecore_evas}"]) 1964 [requirements_ecore_evas="ecore-psl1ght >= 1.2.0 ${requirements_ecore_evas}"])
1847 1965
1848### WAYLAND 1966### WAYLAND
1849 1967
1850ecore_wayland_deps="no" 1968ecore_wayland_deps="no"
1851have_wayland="no" 1969have_wayland="no"
1852if test "x${want_ecore_wayland}" = "xyes" ; then 1970if test "x${want_ecore_wayland}" = "xyes" ; then
1853 PKG_CHECK_MODULES([WAYLAND], [wayland-client xkbcommon], [have_wayland="yes"], [have_wayland="no"]) 1971 PKG_CHECK_MODULES([WAYLAND], [egl wayland-egl wayland-client xkbcommon], [have_wayland="yes"], [have_wayland="no"])
1854fi 1972fi
1855if test "x${have_ecore_input}" = "xyes" -a "x${have_wayland}" = "xyes" ; then 1973if test "x${have_ecore_input}" = "xyes" -a "x${have_wayland}" = "xyes" ; then
1856 ecore_wayland_deps="yes" 1974 ecore_wayland_deps="yes"
@@ -1858,7 +1976,7 @@ fi
1858 1976
1859ECORE_CHECK_MODULE([wayland], [${want_ecore_wayland}], [Wayland], [${ecore_wayland_deps}]) 1977ECORE_CHECK_MODULE([wayland], [${want_ecore_wayland}], [Wayland], [${ecore_wayland_deps}])
1860if test "x${have_ecore_wayland}" = "xyes" ; then 1978if test "x${have_ecore_wayland}" = "xyes" ; then
1861 requirements_ecore_wayland="ecore-input >= 1.1.0 wayland-client xkbcommon ${requirements_ecore_wayland}" 1979 requirements_ecore_wayland="ecore-input >= 1.2.0 egl wayland-egl wayland-client xkbcommon ${requirements_ecore_wayland}"
1862fi 1980fi
1863 1981
1864ECORE_EVAS_CHECK_MODULE_FULL([wayland-shm], [wayland-shm], 1982ECORE_EVAS_CHECK_MODULE_FULL([wayland-shm], [wayland-shm],
@@ -1867,7 +1985,7 @@ ECORE_EVAS_CHECK_MODULE_FULL([wayland-shm], [wayland-shm],
1867 [${have_ecore_wayland}], 1985 [${have_ecore_wayland}],
1868 [requirements_ecore_evas="${requirements_ecore_wayland} ${requirements_ecore_evas}"]) 1986 [requirements_ecore_evas="${requirements_ecore_wayland} ${requirements_ecore_evas}"])
1869 1987
1870ECORE_EVAS_CHECK_MODULE_FULL([wayland-egl], [wayland-egl], 1988ECORE_EVAS_CHECK_MODULE_FULL([wayland-egl], [wayland-egl egl],
1871 [${want_ecore_evas_wayland_egl}], 1989 [${want_ecore_evas_wayland_egl}],
1872 [Wayland Egl], 1990 [Wayland Egl],
1873 [${have_ecore_wayland}], 1991 [${have_ecore_wayland}],
@@ -1878,6 +1996,10 @@ ECORE_EVAS_CHECK_MODULE_FULL([wayland-egl], [wayland-egl],
1878 fi 1996 fi
1879 ]) 1997 ])
1880 1998
1999### Unit tests
2000
2001EFL_CHECK_TESTS([enable_tests="yes"], [enable_tests="no"])
2002
1881### install and build examples 2003### install and build examples
1882 2004
1883EFL_CHECK_BUILD_EXAMPLES([enable_build_examples="yes"], [enable_build_examples="no"]) 2005EFL_CHECK_BUILD_EXAMPLES([enable_build_examples="yes"], [enable_build_examples="no"])
@@ -2112,6 +2234,7 @@ if test "x${have_ecore_evas}" = "xyes" ; then
2112 echo " Sing.Proc. Windowing System: $have_ecore_evas_ews" 2234 echo " Sing.Proc. Windowing System: $have_ecore_evas_ews"
2113 echo " Wayland Shm................: $have_ecore_evas_wayland_shm" 2235 echo " Wayland Shm................: $have_ecore_evas_wayland_shm"
2114 echo " Wayland Egl................: $have_ecore_evas_wayland_egl" 2236 echo " Wayland Egl................: $have_ecore_evas_wayland_egl"
2237 echo " Extn (Plug/socket Extn)....: $have_ecore_evas_extn"
2115fi 2238fi
2116echo 2239echo
2117echo " Tests................: ${enable_tests}" 2240echo " Tests................: ${enable_tests}"
diff --git a/libraries/ecore/doc/Makefile.in b/libraries/ecore/doc/Makefile.in
index e71c120..b7593f5 100644
--- a/libraries/ecore/doc/Makefile.in
+++ b/libraries/ecore/doc/Makefile.in
@@ -48,16 +48,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
48 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 48 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
49 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 49 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
50 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 50 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
51 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 51 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
52 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 52 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
53 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 53 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
54 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 54 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
55 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 55 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
56 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 56 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
57 $(top_srcdir)/configure.ac
58am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 57am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
59 $(ACLOCAL_M4) 58 $(ACLOCAL_M4)
60mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 59mkinstalldirs = $(install_sh) -d
61CONFIG_HEADER = $(top_builddir)/config.h 60CONFIG_HEADER = $(top_builddir)/config.h
62CONFIG_CLEAN_FILES = ecore.dox Doxyfile 61CONFIG_CLEAN_FILES = ecore.dox Doxyfile
63CONFIG_CLEAN_VPATH_FILES = 62CONFIG_CLEAN_VPATH_FILES =
@@ -133,6 +132,8 @@ EVAS_LIBS = @EVAS_LIBS@
133EVIL_CFLAGS = @EVIL_CFLAGS@ 132EVIL_CFLAGS = @EVIL_CFLAGS@
134EVIL_LIBS = @EVIL_LIBS@ 133EVIL_LIBS = @EVIL_LIBS@
135EXEEXT = @EXEEXT@ 134EXEEXT = @EXEEXT@
135EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
136EXOTIC_LIBS = @EXOTIC_LIBS@
136FGREP = @FGREP@ 137FGREP = @FGREP@
137GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 138GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
138GLIB_CFLAGS = @GLIB_CFLAGS@ 139GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -188,6 +189,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
188PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 189PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
189PIXMAN_LIBS = @PIXMAN_LIBS@ 190PIXMAN_LIBS = @PIXMAN_LIBS@
190PKG_CONFIG = @PKG_CONFIG@ 191PKG_CONFIG = @PKG_CONFIG@
192PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
193PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
191POSUB = @POSUB@ 194POSUB = @POSUB@
192RANLIB = @RANLIB@ 195RANLIB = @RANLIB@
193SCIM_CFLAGS = @SCIM_CFLAGS@ 196SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -198,6 +201,7 @@ SDL_LIBS = @SDL_LIBS@
198SED = @SED@ 201SED = @SED@
199SET_MAKE = @SET_MAKE@ 202SET_MAKE = @SET_MAKE@
200SHELL = @SHELL@ 203SHELL = @SHELL@
204SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
201SSL_CFLAGS = @SSL_CFLAGS@ 205SSL_CFLAGS = @SSL_CFLAGS@
202SSL_LIBS = @SSL_LIBS@ 206SSL_LIBS = @SSL_LIBS@
203STRIP = @STRIP@ 207STRIP = @STRIP@
diff --git a/libraries/ecore/ecore-win32.pc.in b/libraries/ecore/ecore-win32.pc.in
index 17dba6e..ac5ab32 100644
--- a/libraries/ecore/ecore-win32.pc.in
+++ b/libraries/ecore/ecore-win32.pc.in
@@ -8,5 +8,5 @@ Description: E core library, Win32 module
8@pkgconfig_requires_private@: @requirements_ecore_win32@ 8@pkgconfig_requires_private@: @requirements_ecore_win32@
9Version: @VERSION@ 9Version: @VERSION@
10Libs: -L${libdir} -lecore_win32 10Libs: -L${libdir} -lecore_win32
11Libs.private: 11Libs.private: @WIN32_LIBS@
12Cflags: -I${includedir}/ecore-@VMAJ@ 12Cflags: -I${includedir}/ecore-@VMAJ@
diff --git a/libraries/ecore/ecore.pc.in b/libraries/ecore/ecore.pc.in
index 950a96b..65c5a11 100644
--- a/libraries/ecore/ecore.pc.in
+++ b/libraries/ecore/ecore.pc.in
@@ -7,6 +7,6 @@ Name: ecore
7Description: Ecore event abstraction library 7Description: Ecore event abstraction library
8@pkgconfig_requires_private@: @requirements_ecore@ 8@pkgconfig_requires_private@: @requirements_ecore@
9Version: @VERSION@ 9Version: @VERSION@
10Libs: -L${libdir} -lecore 10Libs: -L${libdir} -lecore @EINA_LIBS@
11Libs.private: -lm 11Libs.private: -lm
12Cflags: -I${includedir}/ecore-@VMAJ@ 12Cflags: -I${includedir}/ecore-@VMAJ@ @EINA_CFLAGS@
diff --git a/libraries/ecore/ecore.spec b/libraries/ecore/ecore.spec
index 475a2d7..c88bf35 100644
--- a/libraries/ecore/ecore.spec
+++ b/libraries/ecore/ecore.spec
@@ -39,7 +39,7 @@
39 39
40Summary: Enlightened Core X interface library 40Summary: Enlightened Core X interface library
41Name: ecore 41Name: ecore
42Version: 1.1.99.67344 42Version: 1.2.0-alpha
43Release: %{_rel} 43Release: %{_rel}
44License: BSD 44License: BSD
45Group: User Interface/X 45Group: User Interface/X
diff --git a/libraries/ecore/ecore.supp b/libraries/ecore/ecore.supp
index 0b10a6c..31dd0e0 100644
--- a/libraries/ecore/ecore.supp
+++ b/libraries/ecore/ecore.supp
@@ -1,4 +1,4 @@
1# $Id: ecore.supp 11909 2004-10-19 16:40:25Z tsauerbeck $ 1# $Id: ecore.supp 35497 2008-08-17 07:44:18Z raster $
2# valgrind suppression file for Ecore 2# valgrind suppression file for Ecore
3# 3#
4{ 4{
diff --git a/libraries/ecore/ltmain.sh b/libraries/ecore/ltmain.sh
index 7ed280b..fa4b1e1 100755
--- a/libraries/ecore/ltmain.sh
+++ b/libraries/ecore/ltmain.sh
@@ -65,7 +65,7 @@
65# compiler: $LTCC 65# compiler: $LTCC
66# compiler flags: $LTCFLAGS 66# compiler flags: $LTCFLAGS
67# linker: $LD (gnu? $with_gnu_ld) 67# linker: $LD (gnu? $with_gnu_ld)
68# $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1 68# $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu3
69# automake: $automake_version 69# automake: $automake_version
70# autoconf: $autoconf_version 70# autoconf: $autoconf_version
71# 71#
@@ -73,7 +73,7 @@
73 73
74PROGRAM=ltmain.sh 74PROGRAM=ltmain.sh
75PACKAGE=libtool 75PACKAGE=libtool
76VERSION="2.2.6b Debian-2.2.6b-2ubuntu1" 76VERSION="2.2.6b Debian-2.2.6b-2ubuntu3"
77TIMESTAMP="" 77TIMESTAMP=""
78package_revision=1.3017 78package_revision=1.3017
79 79
diff --git a/libraries/ecore/m4/ecore_check_module.m4 b/libraries/ecore/m4/ecore_check_module.m4
index 658b42e..01c4e0e 100644
--- a/libraries/ecore/m4/ecore_check_module.m4
+++ b/libraries/ecore/m4/ecore_check_module.m4
@@ -73,9 +73,9 @@ AC_ARG_ENABLE(ecore-evas-$1,
73AC_MSG_CHECKING([whether ecore_evas $4 support is to be built]) 73AC_MSG_CHECKING([whether ecore_evas $4 support is to be built])
74AC_MSG_RESULT([${want_module}]) 74AC_MSG_RESULT([${want_module}])
75 75
76if test "x$5" = "xyes" -a \ 76if test "x$5" = "xyes" && \
77 "x$have_ecore_evas" = "xyes" -a \ 77 test "x$have_ecore_evas" = "xyes" && \
78 "x$want_module" = "xyes" ; then 78 test "x$want_module" = "xyes" ; then
79 PKG_CHECK_EXISTS([evas-$2], 79 PKG_CHECK_EXISTS([evas-$2],
80 [ 80 [
81 AC_DEFINE([BUILD_ECORE_EVAS_]m4_defn([UP]), [1], [Support for $4 Engine in Ecore_Evas]) 81 AC_DEFINE([BUILD_ECORE_EVAS_]m4_defn([UP]), [1], [Support for $4 Engine in Ecore_Evas])
diff --git a/libraries/ecore/m4/ecore_check_options.m4 b/libraries/ecore/m4/ecore_check_options.m4
index 36792a1..fb7031a 100644
--- a/libraries/ecore/m4/ecore_check_options.m4
+++ b/libraries/ecore/m4/ecore_check_options.m4
@@ -314,7 +314,7 @@ AC_ARG_ENABLE(cares,
314 ]) 314 ])
315 315
316if test "x${_ecore_want_cares}" = "xyes" -o "x${_ecore_want_cares}" = "xauto" ; then 316if test "x${_ecore_want_cares}" = "xyes" -o "x${_ecore_want_cares}" = "xauto" ; then
317 PKG_CHECK_MODULES([CARES], [libcares >= 1.6.1 libcares != 1.7.5], 317 PKG_CHECK_MODULES([CARES], [libcares >= 1.6.1],
318 [_ecore_have_cares="yes"], 318 [_ecore_have_cares="yes"],
319 [_ecore_have_cares="no"]) 319 [_ecore_have_cares="no"])
320fi 320fi
diff --git a/libraries/ecore/po/cs.gmo b/libraries/ecore/po/cs.gmo
index 44b8f00..4ba668c 100644
--- a/libraries/ecore/po/cs.gmo
+++ b/libraries/ecore/po/cs.gmo
Binary files differ
diff --git a/libraries/ecore/po/cs.po b/libraries/ecore/po/cs.po
index 436b1a7..4492269 100644
--- a/libraries/ecore/po/cs.po
+++ b/libraries/ecore/po/cs.po
@@ -5,170 +5,170 @@ msgid ""
5msgstr "" 5msgstr ""
6"Project-Id-Version: ecore\n" 6"Project-Id-Version: ecore\n"
7"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" 7"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
8"POT-Creation-Date: 2012-01-23 23:19+1000\n" 8"POT-Creation-Date: 2012-03-17 11:44+0900\n"
9"PO-Revision-Date: 2011-10-23 01:28+0100\n" 9"PO-Revision-Date: 2011-10-23 01:28+0100\n"
10"Last-Translator: Daniel Kolesa <quaker66@gmail.com>\n" 10"Last-Translator: Daniel Kolesa <quaker66@gmail.com>\n"
11"Language-Team: Czech <kde-i18n-doc@kde.org>\n" 11"Language-Team: Czech <kde-i18n-doc@kde.org>\n"
12"Language: \n"
12"MIME-Version: 1.0\n" 13"MIME-Version: 1.0\n"
13"Content-Type: text/plain; charset=UTF-8\n" 14"Content-Type: text/plain; charset=UTF-8\n"
14"Content-Transfer-Encoding: 8bit\n" 15"Content-Transfer-Encoding: 8bit\n"
15"Language: \n"
16"X-Generator: Lokalize 1.2\n" 16"X-Generator: Lokalize 1.2\n"
17"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" 17"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
18 18
19#: src/lib/ecore/ecore_getopt.c:91 19#: src/lib/ecore/ecore_getopt.c:95
20msgid "Version:" 20msgid "Version:"
21msgstr "Verze:" 21msgstr "Verze:"
22 22
23#: src/lib/ecore/ecore_getopt.c:100 23#: src/lib/ecore/ecore_getopt.c:104
24msgid "Usage:" 24msgid "Usage:"
25msgstr "Použití:" 25msgstr "Použití:"
26 26
27#: src/lib/ecore/ecore_getopt.c:105 27#: src/lib/ecore/ecore_getopt.c:109
28#, c-format 28#, c-format
29msgid "%s [options]\n" 29msgid "%s [options]\n"
30msgstr "%s [volby]\n" 30msgstr "%s [volby]\n"
31 31
32#: src/lib/ecore/ecore_getopt.c:260 32#: src/lib/ecore/ecore_getopt.c:264
33msgid "Copyright:" 33msgid "Copyright:"
34msgstr "Copyright:" 34msgstr "Copyright:"
35 35
36#: src/lib/ecore/ecore_getopt.c:272 36#: src/lib/ecore/ecore_getopt.c:276
37msgid "License:" 37msgid "License:"
38msgstr "Licence:" 38msgstr "Licence:"
39 39
40#: src/lib/ecore/ecore_getopt.c:453 40#: src/lib/ecore/ecore_getopt.c:457
41msgid "Type: " 41msgid "Type: "
42msgstr "Typ: " 42msgstr "Typ: "
43 43
44#: src/lib/ecore/ecore_getopt.c:529 44#: src/lib/ecore/ecore_getopt.c:533
45msgid "Default: " 45msgid "Default: "
46msgstr "Výchozí: " 46msgstr "Výchozí: "
47 47
48#: src/lib/ecore/ecore_getopt.c:556 48#: src/lib/ecore/ecore_getopt.c:560
49msgid "Choices: " 49msgid "Choices: "
50msgstr "Možnosti: " 50msgstr "Možnosti: "
51 51
52#: src/lib/ecore/ecore_getopt.c:657 52#: src/lib/ecore/ecore_getopt.c:661
53msgid "Options:\n" 53msgid "Options:\n"
54msgstr "Volby:\n" 54msgstr "Volby:\n"
55 55
56#: src/lib/ecore/ecore_getopt.c:782 56#: src/lib/ecore/ecore_getopt.c:786
57#, c-format 57#, c-format
58msgid "ERROR: unknown option --%s.\n" 58msgid "ERROR: unknown option --%s.\n"
59msgstr "CHYBA: neznámá volba --%s.\n" 59msgstr "CHYBA: neznámá volba --%s.\n"
60 60
61#: src/lib/ecore/ecore_getopt.c:784 61#: src/lib/ecore/ecore_getopt.c:788
62#, c-format 62#, c-format
63msgid "ERROR: unknown option -%c.\n" 63msgid "ERROR: unknown option -%c.\n"
64msgstr "CHYBA: neznámá volba -%c.\n" 64msgstr "CHYBA: neznámá volba -%c.\n"
65 65
66#: src/lib/ecore/ecore_getopt.c:842 66#: src/lib/ecore/ecore_getopt.c:846
67msgid "ERROR: " 67msgid "ERROR: "
68msgstr "CHYBA: " 68msgstr "CHYBA: "
69 69
70#: src/lib/ecore/ecore_getopt.c:925 src/lib/ecore/ecore_getopt.c:1062 70#: src/lib/ecore/ecore_getopt.c:929 src/lib/ecore/ecore_getopt.c:1066
71#: src/lib/ecore/ecore_getopt.c:1078 src/lib/ecore/ecore_getopt.c:1093 71#: src/lib/ecore/ecore_getopt.c:1082 src/lib/ecore/ecore_getopt.c:1097
72#: src/lib/ecore/ecore_getopt.c:1110 src/lib/ecore/ecore_getopt.c:1157 72#: src/lib/ecore/ecore_getopt.c:1114 src/lib/ecore/ecore_getopt.c:1161
73#: src/lib/ecore/ecore_getopt.c:1277 src/lib/ecore/ecore_getopt.c:1318 73#: src/lib/ecore/ecore_getopt.c:1281 src/lib/ecore/ecore_getopt.c:1322
74msgid "value has no pointer set.\n" 74msgid "value has no pointer set.\n"
75msgstr "hodnota nemá nastaven pointer.\n" 75msgstr "hodnota nemá nastaven pointer.\n"
76 76
77#: src/lib/ecore/ecore_getopt.c:957 src/lib/ecore/ecore_getopt.c:1177 77#: src/lib/ecore/ecore_getopt.c:961 src/lib/ecore/ecore_getopt.c:1181
78#, c-format 78#, c-format
79msgid "unknown boolean value %s.\n" 79msgid "unknown boolean value %s.\n"
80msgstr "neznámá boolean hodnota %s.\n" 80msgstr "neznámá boolean hodnota %s.\n"
81 81
82#: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1265 82#: src/lib/ecore/ecore_getopt.c:1012 src/lib/ecore/ecore_getopt.c:1269
83#, c-format 83#, c-format
84msgid "invalid number format %s\n" 84msgid "invalid number format %s\n"
85msgstr "neznámý číselný formát %s\n" 85msgstr "neznámý číselný formát %s\n"
86 86
87#: src/lib/ecore/ecore_getopt.c:1123 87#: src/lib/ecore/ecore_getopt.c:1127
88#, c-format 88#, c-format
89msgid "invalid choice \"%s\". Valid values are: " 89msgid "invalid choice \"%s\". Valid values are: "
90msgstr "neznámá volba \"%s\". Možné hodnoty jsou: " 90msgstr "neznámá volba \"%s\". Možné hodnoty jsou: "
91 91
92#: src/lib/ecore/ecore_getopt.c:1151 92#: src/lib/ecore/ecore_getopt.c:1155
93msgid "missing parameter to append.\n" 93msgid "missing parameter to append.\n"
94msgstr "chybějící parametr k připojení.\n" 94msgstr "chybějící parametr k připojení.\n"
95 95
96#: src/lib/ecore/ecore_getopt.c:1255 96#: src/lib/ecore/ecore_getopt.c:1259
97msgid "could not parse value.\n" 97msgid "could not parse value.\n"
98msgstr "nemůžu parsovat hodnotu.\n" 98msgstr "nemůžu parsovat hodnotu.\n"
99 99
100#: src/lib/ecore/ecore_getopt.c:1312 100#: src/lib/ecore/ecore_getopt.c:1316
101msgid "missing parameter.\n" 101msgid "missing parameter.\n"
102msgstr "chybějící parametr.\n" 102msgstr "chybějící parametr.\n"
103 103
104#: src/lib/ecore/ecore_getopt.c:1325 104#: src/lib/ecore/ecore_getopt.c:1329
105msgid "missing callback function!\n" 105msgid "missing callback function!\n"
106msgstr "chybějící callback funkce!\n" 106msgstr "chybějící callback funkce!\n"
107 107
108#: src/lib/ecore/ecore_getopt.c:1354 108#: src/lib/ecore/ecore_getopt.c:1358
109msgid "no version was defined.\n" 109msgid "no version was defined.\n"
110msgstr "nebyla definována verze.\n" 110msgstr "nebyla definována verze.\n"
111 111
112#: src/lib/ecore/ecore_getopt.c:1371 112#: src/lib/ecore/ecore_getopt.c:1375
113msgid "no copyright was defined.\n" 113msgid "no copyright was defined.\n"
114msgstr "nebyl definován copyright.\n" 114msgstr "nebyl definován copyright.\n"
115 115
116#: src/lib/ecore/ecore_getopt.c:1388 116#: src/lib/ecore/ecore_getopt.c:1392
117msgid "no license was defined.\n" 117msgid "no license was defined.\n"
118msgstr "nebyla definována licence.\n" 118msgstr "nebyla definována licence.\n"
119 119
120#: src/lib/ecore/ecore_getopt.c:1463 120#: src/lib/ecore/ecore_getopt.c:1467
121#, c-format 121#, c-format
122msgid "ERROR: unknown option --%s, ignored.\n" 122msgid "ERROR: unknown option --%s, ignored.\n"
123msgstr "CHYBA: neznámá volba --%s, ignoruji.\n" 123msgstr "CHYBA: neznámá volba --%s, ignoruji.\n"
124 124
125#: src/lib/ecore/ecore_getopt.c:1496 125#: src/lib/ecore/ecore_getopt.c:1500
126#, c-format 126#, c-format
127msgid "ERROR: option --%s requires an argument!\n" 127msgid "ERROR: option --%s requires an argument!\n"
128msgstr "CHYBA: volba --%s vyžaduje argument!\n" 128msgstr "CHYBA: volba --%s vyžaduje argument!\n"
129 129
130#: src/lib/ecore/ecore_getopt.c:1538 130#: src/lib/ecore/ecore_getopt.c:1542
131#, c-format 131#, c-format
132msgid "ERROR: unknown option -%c, ignored.\n" 132msgid "ERROR: unknown option -%c, ignored.\n"
133msgstr "CHYBA: neznámá volba -%c, ignoruji.\n" 133msgstr "CHYBA: neznámá volba -%c, ignoruji.\n"
134 134
135#: src/lib/ecore/ecore_getopt.c:1576 135#: src/lib/ecore/ecore_getopt.c:1580
136#, c-format 136#, c-format
137msgid "ERROR: option -%c requires an argument!\n" 137msgid "ERROR: option -%c requires an argument!\n"
138msgstr "CHYBA: volba -%c vyžaduje argument!\n" 138msgstr "CHYBA: volba -%c vyžaduje argument!\n"
139 139
140#: src/lib/ecore/ecore_getopt.c:1785 140#: src/lib/ecore/ecore_getopt.c:1789
141msgid "ERROR: no parser provided.\n" 141msgid "ERROR: no parser provided.\n"
142msgstr "CHYBA: nebyl poskytnut parser.\n" 142msgstr "CHYBA: nebyl poskytnut parser.\n"
143 143
144#: src/lib/ecore/ecore_getopt.c:1790 144#: src/lib/ecore/ecore_getopt.c:1794
145msgid "ERROR: no values provided.\n" 145msgid "ERROR: no values provided.\n"
146msgstr "CHYBA: nebyly poskytnuty hodnoty.\n" 146msgstr "CHYBA: nebyly poskytnuty hodnoty.\n"
147 147
148#: src/lib/ecore/ecore_getopt.c:1799 148#: src/lib/ecore/ecore_getopt.c:1803
149msgid "ERROR: no arguments provided.\n" 149msgid "ERROR: no arguments provided.\n"
150msgstr "CHYBA: nebyly poskytnuty argumenty.\n" 150msgstr "CHYBA: nebyly poskytnuty argumenty.\n"
151 151
152#: src/lib/ecore/ecore_getopt.c:1825 152#: src/lib/ecore/ecore_getopt.c:1829
153msgid "ERROR: invalid options found." 153msgid "ERROR: invalid options found."
154msgstr "CHYBA: nalezeny neplatné volby." 154msgstr "CHYBA: nalezeny neplatné volby."
155 155
156#: src/lib/ecore/ecore_getopt.c:1831 156#: src/lib/ecore/ecore_getopt.c:1835
157#, c-format 157#, c-format
158msgid " See --%s.\n" 158msgid " See --%s.\n"
159msgstr " Viz --%s.\n" 159msgstr " Viz --%s.\n"
160 160
161#: src/lib/ecore/ecore_getopt.c:1833 161#: src/lib/ecore/ecore_getopt.c:1837
162#, c-format 162#, c-format
163msgid " See -%c.\n" 163msgid " See -%c.\n"
164msgstr " Viz -%c.\n" 164msgstr " Viz -%c.\n"
165 165
166#: src/lib/ecore/ecore_getopt.c:1875 166#: src/lib/ecore/ecore_getopt.c:1879
167#, c-format 167#, c-format
168msgid "ERROR: incorrect geometry value '%s'\n" 168msgid "ERROR: incorrect geometry value '%s'\n"
169msgstr "CHYBA: neplatná hodnota geometrie '%s'\n" 169msgstr "CHYBA: neplatná hodnota geometrie '%s'\n"
170 170
171#: src/lib/ecore/ecore_getopt.c:1903 171#: src/lib/ecore/ecore_getopt.c:1907
172#, c-format 172#, c-format
173msgid "ERROR: incorrect size value '%s'\n" 173msgid "ERROR: incorrect size value '%s'\n"
174msgstr "CHYBA: neplatná hodnota velikosti '%s'\n" 174msgstr "CHYBA: neplatná hodnota velikosti '%s'\n"
diff --git a/libraries/ecore/po/de.gmo b/libraries/ecore/po/de.gmo
index b26411f..0507965 100644
--- a/libraries/ecore/po/de.gmo
+++ b/libraries/ecore/po/de.gmo
Binary files differ
diff --git a/libraries/ecore/po/de.po b/libraries/ecore/po/de.po
index c6072bc..9dacdbf 100644
--- a/libraries/ecore/po/de.po
+++ b/libraries/ecore/po/de.po
@@ -8,168 +8,168 @@ msgid ""
8msgstr "" 8msgstr ""
9"Project-Id-Version: ecore 0.9.9.063-2\n" 9"Project-Id-Version: ecore 0.9.9.063-2\n"
10"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" 10"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
11"POT-Creation-Date: 2012-01-23 23:19+1000\n" 11"POT-Creation-Date: 2012-03-17 11:44+0900\n"
12"PO-Revision-Date: 2010-01-03 21:52+GMT\n" 12"PO-Revision-Date: 2010-01-03 21:52+GMT\n"
13"Last-Translator: Fabian Nowak <timystery@arcor.de>\n" 13"Last-Translator: Fabian Nowak <timystery@arcor.de>\n"
14"Language-Team: German <debian-l10n-german@lists.debian.org>\n" 14"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
15"Language: de\n"
15"MIME-Version: 1.0\n" 16"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n" 17"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n" 18"Content-Transfer-Encoding: 8bit\n"
18"Language: de\n"
19 19
20#: src/lib/ecore/ecore_getopt.c:91 20#: src/lib/ecore/ecore_getopt.c:95
21msgid "Version:" 21msgid "Version:"
22msgstr "Version:" 22msgstr "Version:"
23 23
24#: src/lib/ecore/ecore_getopt.c:100 24#: src/lib/ecore/ecore_getopt.c:104
25msgid "Usage:" 25msgid "Usage:"
26msgstr "Aufruf:" 26msgstr "Aufruf:"
27 27
28#: src/lib/ecore/ecore_getopt.c:105 28#: src/lib/ecore/ecore_getopt.c:109
29#, c-format 29#, c-format
30msgid "%s [options]\n" 30msgid "%s [options]\n"
31msgstr "%s [Optionen]\n" 31msgstr "%s [Optionen]\n"
32 32
33#: src/lib/ecore/ecore_getopt.c:260 33#: src/lib/ecore/ecore_getopt.c:264
34msgid "Copyright:" 34msgid "Copyright:"
35msgstr "Copyright:" 35msgstr "Copyright:"
36 36
37#: src/lib/ecore/ecore_getopt.c:272 37#: src/lib/ecore/ecore_getopt.c:276
38msgid "License:" 38msgid "License:"
39msgstr "Lizenz:" 39msgstr "Lizenz:"
40 40
41#: src/lib/ecore/ecore_getopt.c:453 41#: src/lib/ecore/ecore_getopt.c:457
42msgid "Type: " 42msgid "Type: "
43msgstr "Typ: " 43msgstr "Typ: "
44 44
45#: src/lib/ecore/ecore_getopt.c:529 45#: src/lib/ecore/ecore_getopt.c:533
46msgid "Default: " 46msgid "Default: "
47msgstr "Standard: " 47msgstr "Standard: "
48 48
49#: src/lib/ecore/ecore_getopt.c:556 49#: src/lib/ecore/ecore_getopt.c:560
50msgid "Choices: " 50msgid "Choices: "
51msgstr "Auswahlmöglichkeiten: " 51msgstr "Auswahlmöglichkeiten: "
52 52
53#: src/lib/ecore/ecore_getopt.c:657 53#: src/lib/ecore/ecore_getopt.c:661
54msgid "Options:\n" 54msgid "Options:\n"
55msgstr "Optionen:\n" 55msgstr "Optionen:\n"
56 56
57#: src/lib/ecore/ecore_getopt.c:782 57#: src/lib/ecore/ecore_getopt.c:786
58#, c-format 58#, c-format
59msgid "ERROR: unknown option --%s.\n" 59msgid "ERROR: unknown option --%s.\n"
60msgstr "FEHLER: Unbekannte Option --%s\n" 60msgstr "FEHLER: Unbekannte Option --%s\n"
61 61
62#: src/lib/ecore/ecore_getopt.c:784 62#: src/lib/ecore/ecore_getopt.c:788
63#, c-format 63#, c-format
64msgid "ERROR: unknown option -%c.\n" 64msgid "ERROR: unknown option -%c.\n"
65msgstr "FEHLER: Unbekannte Option -%c\n" 65msgstr "FEHLER: Unbekannte Option -%c\n"
66 66
67#: src/lib/ecore/ecore_getopt.c:842 67#: src/lib/ecore/ecore_getopt.c:846
68msgid "ERROR: " 68msgid "ERROR: "
69msgstr "FEHLER: " 69msgstr "FEHLER: "
70 70
71#: src/lib/ecore/ecore_getopt.c:925 src/lib/ecore/ecore_getopt.c:1062 71#: src/lib/ecore/ecore_getopt.c:929 src/lib/ecore/ecore_getopt.c:1066
72#: src/lib/ecore/ecore_getopt.c:1078 src/lib/ecore/ecore_getopt.c:1093 72#: src/lib/ecore/ecore_getopt.c:1082 src/lib/ecore/ecore_getopt.c:1097
73#: src/lib/ecore/ecore_getopt.c:1110 src/lib/ecore/ecore_getopt.c:1157 73#: src/lib/ecore/ecore_getopt.c:1114 src/lib/ecore/ecore_getopt.c:1161
74#: src/lib/ecore/ecore_getopt.c:1277 src/lib/ecore/ecore_getopt.c:1318 74#: src/lib/ecore/ecore_getopt.c:1281 src/lib/ecore/ecore_getopt.c:1322
75msgid "value has no pointer set.\n" 75msgid "value has no pointer set.\n"
76msgstr "kein Zeiger auf Wert gesetzt\n" 76msgstr "kein Zeiger auf Wert gesetzt\n"
77 77
78#: src/lib/ecore/ecore_getopt.c:957 src/lib/ecore/ecore_getopt.c:1177 78#: src/lib/ecore/ecore_getopt.c:961 src/lib/ecore/ecore_getopt.c:1181
79#, c-format 79#, c-format
80msgid "unknown boolean value %s.\n" 80msgid "unknown boolean value %s.\n"
81msgstr "unbekannter boolescher Wert %s\n" 81msgstr "unbekannter boolescher Wert %s\n"
82 82
83#: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1265 83#: src/lib/ecore/ecore_getopt.c:1012 src/lib/ecore/ecore_getopt.c:1269
84#, c-format 84#, c-format
85msgid "invalid number format %s\n" 85msgid "invalid number format %s\n"
86msgstr "ungültiges Zahlenformat %s\n" 86msgstr "ungültiges Zahlenformat %s\n"
87 87
88#: src/lib/ecore/ecore_getopt.c:1123 88#: src/lib/ecore/ecore_getopt.c:1127
89#, c-format 89#, c-format
90msgid "invalid choice \"%s\". Valid values are: " 90msgid "invalid choice \"%s\". Valid values are: "
91msgstr "ungültige Auswahl \"%s\". Gültige Werte sind: " 91msgstr "ungültige Auswahl \"%s\". Gültige Werte sind: "
92 92
93#: src/lib/ecore/ecore_getopt.c:1151 93#: src/lib/ecore/ecore_getopt.c:1155
94msgid "missing parameter to append.\n" 94msgid "missing parameter to append.\n"
95msgstr "fehlender Parameter zum Anhängen.\n" 95msgstr "fehlender Parameter zum Anhängen.\n"
96 96
97#: src/lib/ecore/ecore_getopt.c:1255 97#: src/lib/ecore/ecore_getopt.c:1259
98msgid "could not parse value.\n" 98msgid "could not parse value.\n"
99msgstr "Wert kann nicht ausgewertet werden.\n" 99msgstr "Wert kann nicht ausgewertet werden.\n"
100 100
101#: src/lib/ecore/ecore_getopt.c:1312 101#: src/lib/ecore/ecore_getopt.c:1316
102msgid "missing parameter.\n" 102msgid "missing parameter.\n"
103msgstr "fehlender Parameter.\n" 103msgstr "fehlender Parameter.\n"
104 104
105#: src/lib/ecore/ecore_getopt.c:1325 105#: src/lib/ecore/ecore_getopt.c:1329
106msgid "missing callback function!\n" 106msgid "missing callback function!\n"
107msgstr "fehlende Rückruffunktion!\n" 107msgstr "fehlende Rückruffunktion!\n"
108 108
109#: src/lib/ecore/ecore_getopt.c:1354 109#: src/lib/ecore/ecore_getopt.c:1358
110msgid "no version was defined.\n" 110msgid "no version was defined.\n"
111msgstr "es wurde keine Version angegeben.\n" 111msgstr "es wurde keine Version angegeben.\n"
112 112
113#: src/lib/ecore/ecore_getopt.c:1371 113#: src/lib/ecore/ecore_getopt.c:1375
114msgid "no copyright was defined.\n" 114msgid "no copyright was defined.\n"
115msgstr "es wurde kein Copyright angegeben.\n" 115msgstr "es wurde kein Copyright angegeben.\n"
116 116
117#: src/lib/ecore/ecore_getopt.c:1388 117#: src/lib/ecore/ecore_getopt.c:1392
118msgid "no license was defined.\n" 118msgid "no license was defined.\n"
119msgstr "es wurde keine Lizenz angegeben.\n" 119msgstr "es wurde keine Lizenz angegeben.\n"
120 120
121#: src/lib/ecore/ecore_getopt.c:1463 121#: src/lib/ecore/ecore_getopt.c:1467
122#, c-format 122#, c-format
123msgid "ERROR: unknown option --%s, ignored.\n" 123msgid "ERROR: unknown option --%s, ignored.\n"
124msgstr "FEHLER: Unbekannte Option --%s, ignoriert\n" 124msgstr "FEHLER: Unbekannte Option --%s, ignoriert\n"
125 125
126#: src/lib/ecore/ecore_getopt.c:1496 126#: src/lib/ecore/ecore_getopt.c:1500
127#, c-format 127#, c-format
128msgid "ERROR: option --%s requires an argument!\n" 128msgid "ERROR: option --%s requires an argument!\n"
129msgstr "FEHLER: Option --%s benötigt ein Argument!\n" 129msgstr "FEHLER: Option --%s benötigt ein Argument!\n"
130 130
131#: src/lib/ecore/ecore_getopt.c:1538 131#: src/lib/ecore/ecore_getopt.c:1542
132#, c-format 132#, c-format
133msgid "ERROR: unknown option -%c, ignored.\n" 133msgid "ERROR: unknown option -%c, ignored.\n"
134msgstr "FEHLER: Unbekannte Option -%c, ignoriert\n" 134msgstr "FEHLER: Unbekannte Option -%c, ignoriert\n"
135 135
136#: src/lib/ecore/ecore_getopt.c:1576 136#: src/lib/ecore/ecore_getopt.c:1580
137#, c-format 137#, c-format
138msgid "ERROR: option -%c requires an argument!\n" 138msgid "ERROR: option -%c requires an argument!\n"
139msgstr "FEHLER: Option -%c benötigt ein Argument!\n" 139msgstr "FEHLER: Option -%c benötigt ein Argument!\n"
140 140
141#: src/lib/ecore/ecore_getopt.c:1785 141#: src/lib/ecore/ecore_getopt.c:1789
142msgid "ERROR: no parser provided.\n" 142msgid "ERROR: no parser provided.\n"
143msgstr "FEHLER: Kein Parser bereitgestellt.\n" 143msgstr "FEHLER: Kein Parser bereitgestellt.\n"
144 144
145#: src/lib/ecore/ecore_getopt.c:1790 145#: src/lib/ecore/ecore_getopt.c:1794
146msgid "ERROR: no values provided.\n" 146msgid "ERROR: no values provided.\n"
147msgstr "FEHLER: Keine Werte bereitgestellt.\n" 147msgstr "FEHLER: Keine Werte bereitgestellt.\n"
148 148
149#: src/lib/ecore/ecore_getopt.c:1799 149#: src/lib/ecore/ecore_getopt.c:1803
150msgid "ERROR: no arguments provided.\n" 150msgid "ERROR: no arguments provided.\n"
151msgstr "FEHLER: Keine Argumente bereitgestellt.\n" 151msgstr "FEHLER: Keine Argumente bereitgestellt.\n"
152 152
153#: src/lib/ecore/ecore_getopt.c:1825 153#: src/lib/ecore/ecore_getopt.c:1829
154msgid "ERROR: invalid options found." 154msgid "ERROR: invalid options found."
155msgstr "FEHLER: Ungültige Optionen gefunden." 155msgstr "FEHLER: Ungültige Optionen gefunden."
156 156
157#: src/lib/ecore/ecore_getopt.c:1831 157#: src/lib/ecore/ecore_getopt.c:1835
158#, c-format 158#, c-format
159msgid " See --%s.\n" 159msgid " See --%s.\n"
160msgstr " Siehe --%s\n" 160msgstr " Siehe --%s\n"
161 161
162#: src/lib/ecore/ecore_getopt.c:1833 162#: src/lib/ecore/ecore_getopt.c:1837
163#, c-format 163#, c-format
164msgid " See -%c.\n" 164msgid " See -%c.\n"
165msgstr " Siehe -%c\n" 165msgstr " Siehe -%c\n"
166 166
167#: src/lib/ecore/ecore_getopt.c:1875 167#: src/lib/ecore/ecore_getopt.c:1879
168#, c-format 168#, c-format
169msgid "ERROR: incorrect geometry value '%s'\n" 169msgid "ERROR: incorrect geometry value '%s'\n"
170msgstr "FEHLER: Falscher Geometriewert \"%s\"\n" 170msgstr "FEHLER: Falscher Geometriewert \"%s\"\n"
171 171
172#: src/lib/ecore/ecore_getopt.c:1903 172#: src/lib/ecore/ecore_getopt.c:1907
173#, c-format 173#, c-format
174msgid "ERROR: incorrect size value '%s'\n" 174msgid "ERROR: incorrect size value '%s'\n"
175msgstr "FEHLER: Falscher Größenwert \"%s\"\n" 175msgstr "FEHLER: Falscher Größenwert \"%s\"\n"
diff --git a/libraries/ecore/po/ecore.pot b/libraries/ecore/po/ecore.pot
index 69cbec8..b7e3500 100644
--- a/libraries/ecore/po/ecore.pot
+++ b/libraries/ecore/po/ecore.pot
@@ -6,169 +6,170 @@
6#, fuzzy 6#, fuzzy
7msgid "" 7msgid ""
8msgstr "" 8msgstr ""
9"Project-Id-Version: ecore 1.1.99.67344\n" 9"Project-Id-Version: ecore 1.2.0-alpha\n"
10"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" 10"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
11"POT-Creation-Date: 2012-01-23 23:19+1000\n" 11"POT-Creation-Date: 2012-03-17 11:44+0900\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n" 14"Language-Team: LANGUAGE <LL@li.org>\n"
15"Language: \n"
15"MIME-Version: 1.0\n" 16"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=CHARSET\n" 17"Content-Type: text/plain; charset=CHARSET\n"
17"Content-Transfer-Encoding: 8bit\n" 18"Content-Transfer-Encoding: 8bit\n"
18 19
19#: src/lib/ecore/ecore_getopt.c:91 20#: src/lib/ecore/ecore_getopt.c:95
20msgid "Version:" 21msgid "Version:"
21msgstr "" 22msgstr ""
22 23
23#: src/lib/ecore/ecore_getopt.c:100 24#: src/lib/ecore/ecore_getopt.c:104
24msgid "Usage:" 25msgid "Usage:"
25msgstr "" 26msgstr ""
26 27
27#: src/lib/ecore/ecore_getopt.c:105 28#: src/lib/ecore/ecore_getopt.c:109
28#, c-format 29#, c-format
29msgid "%s [options]\n" 30msgid "%s [options]\n"
30msgstr "" 31msgstr ""
31 32
32#: src/lib/ecore/ecore_getopt.c:260 33#: src/lib/ecore/ecore_getopt.c:264
33msgid "Copyright:" 34msgid "Copyright:"
34msgstr "" 35msgstr ""
35 36
36#: src/lib/ecore/ecore_getopt.c:272 37#: src/lib/ecore/ecore_getopt.c:276
37msgid "License:" 38msgid "License:"
38msgstr "" 39msgstr ""
39 40
40#: src/lib/ecore/ecore_getopt.c:453 41#: src/lib/ecore/ecore_getopt.c:457
41msgid "Type: " 42msgid "Type: "
42msgstr "" 43msgstr ""
43 44
44#: src/lib/ecore/ecore_getopt.c:529 45#: src/lib/ecore/ecore_getopt.c:533
45msgid "Default: " 46msgid "Default: "
46msgstr "" 47msgstr ""
47 48
48#: src/lib/ecore/ecore_getopt.c:556 49#: src/lib/ecore/ecore_getopt.c:560
49msgid "Choices: " 50msgid "Choices: "
50msgstr "" 51msgstr ""
51 52
52#: src/lib/ecore/ecore_getopt.c:657 53#: src/lib/ecore/ecore_getopt.c:661
53msgid "Options:\n" 54msgid "Options:\n"
54msgstr "" 55msgstr ""
55 56
56#: src/lib/ecore/ecore_getopt.c:782 57#: src/lib/ecore/ecore_getopt.c:786
57#, c-format 58#, c-format
58msgid "ERROR: unknown option --%s.\n" 59msgid "ERROR: unknown option --%s.\n"
59msgstr "" 60msgstr ""
60 61
61#: src/lib/ecore/ecore_getopt.c:784 62#: src/lib/ecore/ecore_getopt.c:788
62#, c-format 63#, c-format
63msgid "ERROR: unknown option -%c.\n" 64msgid "ERROR: unknown option -%c.\n"
64msgstr "" 65msgstr ""
65 66
66#: src/lib/ecore/ecore_getopt.c:842 67#: src/lib/ecore/ecore_getopt.c:846
67msgid "ERROR: " 68msgid "ERROR: "
68msgstr "" 69msgstr ""
69 70
70#: src/lib/ecore/ecore_getopt.c:925 src/lib/ecore/ecore_getopt.c:1062 71#: src/lib/ecore/ecore_getopt.c:929 src/lib/ecore/ecore_getopt.c:1066
71#: src/lib/ecore/ecore_getopt.c:1078 src/lib/ecore/ecore_getopt.c:1093 72#: src/lib/ecore/ecore_getopt.c:1082 src/lib/ecore/ecore_getopt.c:1097
72#: src/lib/ecore/ecore_getopt.c:1110 src/lib/ecore/ecore_getopt.c:1157 73#: src/lib/ecore/ecore_getopt.c:1114 src/lib/ecore/ecore_getopt.c:1161
73#: src/lib/ecore/ecore_getopt.c:1277 src/lib/ecore/ecore_getopt.c:1318 74#: src/lib/ecore/ecore_getopt.c:1281 src/lib/ecore/ecore_getopt.c:1322
74msgid "value has no pointer set.\n" 75msgid "value has no pointer set.\n"
75msgstr "" 76msgstr ""
76 77
77#: src/lib/ecore/ecore_getopt.c:957 src/lib/ecore/ecore_getopt.c:1177 78#: src/lib/ecore/ecore_getopt.c:961 src/lib/ecore/ecore_getopt.c:1181
78#, c-format 79#, c-format
79msgid "unknown boolean value %s.\n" 80msgid "unknown boolean value %s.\n"
80msgstr "" 81msgstr ""
81 82
82#: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1265 83#: src/lib/ecore/ecore_getopt.c:1012 src/lib/ecore/ecore_getopt.c:1269
83#, c-format 84#, c-format
84msgid "invalid number format %s\n" 85msgid "invalid number format %s\n"
85msgstr "" 86msgstr ""
86 87
87#: src/lib/ecore/ecore_getopt.c:1123 88#: src/lib/ecore/ecore_getopt.c:1127
88#, c-format 89#, c-format
89msgid "invalid choice \"%s\". Valid values are: " 90msgid "invalid choice \"%s\". Valid values are: "
90msgstr "" 91msgstr ""
91 92
92#: src/lib/ecore/ecore_getopt.c:1151 93#: src/lib/ecore/ecore_getopt.c:1155
93msgid "missing parameter to append.\n" 94msgid "missing parameter to append.\n"
94msgstr "" 95msgstr ""
95 96
96#: src/lib/ecore/ecore_getopt.c:1255 97#: src/lib/ecore/ecore_getopt.c:1259
97msgid "could not parse value.\n" 98msgid "could not parse value.\n"
98msgstr "" 99msgstr ""
99 100
100#: src/lib/ecore/ecore_getopt.c:1312 101#: src/lib/ecore/ecore_getopt.c:1316
101msgid "missing parameter.\n" 102msgid "missing parameter.\n"
102msgstr "" 103msgstr ""
103 104
104#: src/lib/ecore/ecore_getopt.c:1325 105#: src/lib/ecore/ecore_getopt.c:1329
105msgid "missing callback function!\n" 106msgid "missing callback function!\n"
106msgstr "" 107msgstr ""
107 108
108#: src/lib/ecore/ecore_getopt.c:1354 109#: src/lib/ecore/ecore_getopt.c:1358
109msgid "no version was defined.\n" 110msgid "no version was defined.\n"
110msgstr "" 111msgstr ""
111 112
112#: src/lib/ecore/ecore_getopt.c:1371 113#: src/lib/ecore/ecore_getopt.c:1375
113msgid "no copyright was defined.\n" 114msgid "no copyright was defined.\n"
114msgstr "" 115msgstr ""
115 116
116#: src/lib/ecore/ecore_getopt.c:1388 117#: src/lib/ecore/ecore_getopt.c:1392
117msgid "no license was defined.\n" 118msgid "no license was defined.\n"
118msgstr "" 119msgstr ""
119 120
120#: src/lib/ecore/ecore_getopt.c:1463 121#: src/lib/ecore/ecore_getopt.c:1467
121#, c-format 122#, c-format
122msgid "ERROR: unknown option --%s, ignored.\n" 123msgid "ERROR: unknown option --%s, ignored.\n"
123msgstr "" 124msgstr ""
124 125
125#: src/lib/ecore/ecore_getopt.c:1496 126#: src/lib/ecore/ecore_getopt.c:1500
126#, c-format 127#, c-format
127msgid "ERROR: option --%s requires an argument!\n" 128msgid "ERROR: option --%s requires an argument!\n"
128msgstr "" 129msgstr ""
129 130
130#: src/lib/ecore/ecore_getopt.c:1538 131#: src/lib/ecore/ecore_getopt.c:1542
131#, c-format 132#, c-format
132msgid "ERROR: unknown option -%c, ignored.\n" 133msgid "ERROR: unknown option -%c, ignored.\n"
133msgstr "" 134msgstr ""
134 135
135#: src/lib/ecore/ecore_getopt.c:1576 136#: src/lib/ecore/ecore_getopt.c:1580
136#, c-format 137#, c-format
137msgid "ERROR: option -%c requires an argument!\n" 138msgid "ERROR: option -%c requires an argument!\n"
138msgstr "" 139msgstr ""
139 140
140#: src/lib/ecore/ecore_getopt.c:1785 141#: src/lib/ecore/ecore_getopt.c:1789
141msgid "ERROR: no parser provided.\n" 142msgid "ERROR: no parser provided.\n"
142msgstr "" 143msgstr ""
143 144
144#: src/lib/ecore/ecore_getopt.c:1790 145#: src/lib/ecore/ecore_getopt.c:1794
145msgid "ERROR: no values provided.\n" 146msgid "ERROR: no values provided.\n"
146msgstr "" 147msgstr ""
147 148
148#: src/lib/ecore/ecore_getopt.c:1799 149#: src/lib/ecore/ecore_getopt.c:1803
149msgid "ERROR: no arguments provided.\n" 150msgid "ERROR: no arguments provided.\n"
150msgstr "" 151msgstr ""
151 152
152#: src/lib/ecore/ecore_getopt.c:1825 153#: src/lib/ecore/ecore_getopt.c:1829
153msgid "ERROR: invalid options found." 154msgid "ERROR: invalid options found."
154msgstr "" 155msgstr ""
155 156
156#: src/lib/ecore/ecore_getopt.c:1831 157#: src/lib/ecore/ecore_getopt.c:1835
157#, c-format 158#, c-format
158msgid " See --%s.\n" 159msgid " See --%s.\n"
159msgstr "" 160msgstr ""
160 161
161#: src/lib/ecore/ecore_getopt.c:1833 162#: src/lib/ecore/ecore_getopt.c:1837
162#, c-format 163#, c-format
163msgid " See -%c.\n" 164msgid " See -%c.\n"
164msgstr "" 165msgstr ""
165 166
166#: src/lib/ecore/ecore_getopt.c:1875 167#: src/lib/ecore/ecore_getopt.c:1879
167#, c-format 168#, c-format
168msgid "ERROR: incorrect geometry value '%s'\n" 169msgid "ERROR: incorrect geometry value '%s'\n"
169msgstr "" 170msgstr ""
170 171
171#: src/lib/ecore/ecore_getopt.c:1903 172#: src/lib/ecore/ecore_getopt.c:1907
172#, c-format 173#, c-format
173msgid "ERROR: incorrect size value '%s'\n" 174msgid "ERROR: incorrect size value '%s'\n"
174msgstr "" 175msgstr ""
diff --git a/libraries/ecore/po/el.gmo b/libraries/ecore/po/el.gmo
index 0f2bac2..2c9ce48 100644
--- a/libraries/ecore/po/el.gmo
+++ b/libraries/ecore/po/el.gmo
Binary files differ
diff --git a/libraries/ecore/po/el.po b/libraries/ecore/po/el.po
index cdf9cf3..0dd56bd 100644
--- a/libraries/ecore/po/el.po
+++ b/libraries/ecore/po/el.po
@@ -6,169 +6,169 @@ msgid ""
6msgstr "" 6msgstr ""
7"Project-Id-Version: Ecore\n" 7"Project-Id-Version: Ecore\n"
8"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" 8"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
9"POT-Creation-Date: 2012-01-23 23:19+1000\n" 9"POT-Creation-Date: 2012-03-17 11:44+0900\n"
10"PO-Revision-Date: 2011-11-20 22:42+0200\n" 10"PO-Revision-Date: 2011-11-20 22:42+0200\n"
11"Last-Translator: George Rizopoulos <george.rizopoulos.1@gmail.com>\n" 11"Last-Translator: George Rizopoulos <george.rizopoulos.1@gmail.com>\n"
12"Language-Team: Greek\n" 12"Language-Team: Greek\n"
13"Language: \n"
13"MIME-Version: 1.0\n" 14"MIME-Version: 1.0\n"
14"Content-Type: text/plain; charset=UTF-8\n" 15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Transfer-Encoding: 8bit\n" 16"Content-Transfer-Encoding: 8bit\n"
16"Language: \n"
17 17
18#: src/lib/ecore/ecore_getopt.c:91 18#: src/lib/ecore/ecore_getopt.c:95
19msgid "Version:" 19msgid "Version:"
20msgstr "Έκδοση:" 20msgstr "Έκδοση:"
21 21
22#: src/lib/ecore/ecore_getopt.c:100 22#: src/lib/ecore/ecore_getopt.c:104
23msgid "Usage:" 23msgid "Usage:"
24msgstr "Χρήση:" 24msgstr "Χρήση:"
25 25
26#: src/lib/ecore/ecore_getopt.c:105 26#: src/lib/ecore/ecore_getopt.c:109
27#, c-format 27#, c-format
28msgid "%s [options]\n" 28msgid "%s [options]\n"
29msgstr "%s [επιλογές]\n" 29msgstr "%s [επιλογές]\n"
30 30
31#: src/lib/ecore/ecore_getopt.c:260 31#: src/lib/ecore/ecore_getopt.c:264
32msgid "Copyright:" 32msgid "Copyright:"
33msgstr "Πνευματικά δικαιώματα:" 33msgstr "Πνευματικά δικαιώματα:"
34 34
35#: src/lib/ecore/ecore_getopt.c:272 35#: src/lib/ecore/ecore_getopt.c:276
36msgid "License:" 36msgid "License:"
37msgstr "Άδεια:" 37msgstr "Άδεια:"
38 38
39#: src/lib/ecore/ecore_getopt.c:453 39#: src/lib/ecore/ecore_getopt.c:457
40msgid "Type: " 40msgid "Type: "
41msgstr "Τύπος:" 41msgstr "Τύπος:"
42 42
43#: src/lib/ecore/ecore_getopt.c:529 43#: src/lib/ecore/ecore_getopt.c:533
44msgid "Default: " 44msgid "Default: "
45msgstr "Προκαθορισμένο:" 45msgstr "Προκαθορισμένο:"
46 46
47#: src/lib/ecore/ecore_getopt.c:556 47#: src/lib/ecore/ecore_getopt.c:560
48msgid "Choices: " 48msgid "Choices: "
49msgstr "Επιλογές:" 49msgstr "Επιλογές:"
50 50
51#: src/lib/ecore/ecore_getopt.c:657 51#: src/lib/ecore/ecore_getopt.c:661
52msgid "Options:\n" 52msgid "Options:\n"
53msgstr "Επιλογές:\n" 53msgstr "Επιλογές:\n"
54 54
55#: src/lib/ecore/ecore_getopt.c:782 55#: src/lib/ecore/ecore_getopt.c:786
56#, c-format 56#, c-format
57msgid "ERROR: unknown option --%s.\n" 57msgid "ERROR: unknown option --%s.\n"
58msgstr "ΣΦΑΛΜΑ: άγνωστη επιλογή --%s.\n" 58msgstr "ΣΦΑΛΜΑ: άγνωστη επιλογή --%s.\n"
59 59
60#: src/lib/ecore/ecore_getopt.c:784 60#: src/lib/ecore/ecore_getopt.c:788
61#, c-format 61#, c-format
62msgid "ERROR: unknown option -%c.\n" 62msgid "ERROR: unknown option -%c.\n"
63msgstr "ΣΦΑΛΜΑ: άγνωστη επιλογή -%c.\n" 63msgstr "ΣΦΑΛΜΑ: άγνωστη επιλογή -%c.\n"
64 64
65#: src/lib/ecore/ecore_getopt.c:842 65#: src/lib/ecore/ecore_getopt.c:846
66msgid "ERROR: " 66msgid "ERROR: "
67msgstr "ΣΦΑΛΜΑ:" 67msgstr "ΣΦΑΛΜΑ:"
68 68
69#: src/lib/ecore/ecore_getopt.c:925 src/lib/ecore/ecore_getopt.c:1062 69#: src/lib/ecore/ecore_getopt.c:929 src/lib/ecore/ecore_getopt.c:1066
70#: src/lib/ecore/ecore_getopt.c:1078 src/lib/ecore/ecore_getopt.c:1093 70#: src/lib/ecore/ecore_getopt.c:1082 src/lib/ecore/ecore_getopt.c:1097
71#: src/lib/ecore/ecore_getopt.c:1110 src/lib/ecore/ecore_getopt.c:1157 71#: src/lib/ecore/ecore_getopt.c:1114 src/lib/ecore/ecore_getopt.c:1161
72#: src/lib/ecore/ecore_getopt.c:1277 src/lib/ecore/ecore_getopt.c:1318 72#: src/lib/ecore/ecore_getopt.c:1281 src/lib/ecore/ecore_getopt.c:1322
73msgid "value has no pointer set.\n" 73msgid "value has no pointer set.\n"
74msgstr "η τιμή δεν έχει δείκτη ορισμένο.\n" 74msgstr "η τιμή δεν έχει δείκτη ορισμένο.\n"
75 75
76#: src/lib/ecore/ecore_getopt.c:957 src/lib/ecore/ecore_getopt.c:1177 76#: src/lib/ecore/ecore_getopt.c:961 src/lib/ecore/ecore_getopt.c:1181
77#, c-format 77#, c-format
78msgid "unknown boolean value %s.\n" 78msgid "unknown boolean value %s.\n"
79msgstr "άγνωστη τιμή boolean %s.\n" 79msgstr "άγνωστη τιμή boolean %s.\n"
80 80
81#: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1265 81#: src/lib/ecore/ecore_getopt.c:1012 src/lib/ecore/ecore_getopt.c:1269
82#, c-format 82#, c-format
83msgid "invalid number format %s\n" 83msgid "invalid number format %s\n"
84msgstr "άγνωστη μορφή αριθμού %s\n" 84msgstr "άγνωστη μορφή αριθμού %s\n"
85 85
86#: src/lib/ecore/ecore_getopt.c:1123 86#: src/lib/ecore/ecore_getopt.c:1127
87#, c-format 87#, c-format
88msgid "invalid choice \"%s\". Valid values are: " 88msgid "invalid choice \"%s\". Valid values are: "
89msgstr "μη έγκυρη επιλογή \"%s\". Οι έγκυρες τιμές είναι: " 89msgstr "μη έγκυρη επιλογή \"%s\". Οι έγκυρες τιμές είναι: "
90 90
91#: src/lib/ecore/ecore_getopt.c:1151 91#: src/lib/ecore/ecore_getopt.c:1155
92msgid "missing parameter to append.\n" 92msgid "missing parameter to append.\n"
93msgstr "ελλιπής παράμετρος προς επισύναψη.\n" 93msgstr "ελλιπής παράμετρος προς επισύναψη.\n"
94 94
95#: src/lib/ecore/ecore_getopt.c:1255 95#: src/lib/ecore/ecore_getopt.c:1259
96msgid "could not parse value.\n" 96msgid "could not parse value.\n"
97msgstr "αδυναμία ανάλυσης τιμών.\n" 97msgstr "αδυναμία ανάλυσης τιμών.\n"
98 98
99#: src/lib/ecore/ecore_getopt.c:1312 99#: src/lib/ecore/ecore_getopt.c:1316
100msgid "missing parameter.\n" 100msgid "missing parameter.\n"
101msgstr "ελλιπής παράμετρος.\n" 101msgstr "ελλιπής παράμετρος.\n"
102 102
103#: src/lib/ecore/ecore_getopt.c:1325 103#: src/lib/ecore/ecore_getopt.c:1329
104msgid "missing callback function!\n" 104msgid "missing callback function!\n"
105msgstr "λείπει η λειτουργία επανάκλησης!\n" 105msgstr "λείπει η λειτουργία επανάκλησης!\n"
106 106
107#: src/lib/ecore/ecore_getopt.c:1354 107#: src/lib/ecore/ecore_getopt.c:1358
108msgid "no version was defined.\n" 108msgid "no version was defined.\n"
109msgstr "δεν έχει οριστεί έκδοση.\n" 109msgstr "δεν έχει οριστεί έκδοση.\n"
110 110
111#: src/lib/ecore/ecore_getopt.c:1371 111#: src/lib/ecore/ecore_getopt.c:1375
112msgid "no copyright was defined.\n" 112msgid "no copyright was defined.\n"
113msgstr "δεν έχουν οριστεί πνευματικά δικαιώματα.\n" 113msgstr "δεν έχουν οριστεί πνευματικά δικαιώματα.\n"
114 114
115#: src/lib/ecore/ecore_getopt.c:1388 115#: src/lib/ecore/ecore_getopt.c:1392
116msgid "no license was defined.\n" 116msgid "no license was defined.\n"
117msgstr "δεν έχει οριστεί άδεια.\n" 117msgstr "δεν έχει οριστεί άδεια.\n"
118 118
119#: src/lib/ecore/ecore_getopt.c:1463 119#: src/lib/ecore/ecore_getopt.c:1467
120#, c-format 120#, c-format
121msgid "ERROR: unknown option --%s, ignored.\n" 121msgid "ERROR: unknown option --%s, ignored.\n"
122msgstr "ΣΦΑΛΜΑ:άγνωστη επιλογή --%s, αγνοήθηκε.\n" 122msgstr "ΣΦΑΛΜΑ:άγνωστη επιλογή --%s, αγνοήθηκε.\n"
123 123
124#: src/lib/ecore/ecore_getopt.c:1496 124#: src/lib/ecore/ecore_getopt.c:1500
125#, c-format 125#, c-format
126msgid "ERROR: option --%s requires an argument!\n" 126msgid "ERROR: option --%s requires an argument!\n"
127msgstr "ΣΦΑΛΜΑ: η επιλογή --%s απαιτεί παραμέτρους!\n" 127msgstr "ΣΦΑΛΜΑ: η επιλογή --%s απαιτεί παραμέτρους!\n"
128 128
129#: src/lib/ecore/ecore_getopt.c:1538 129#: src/lib/ecore/ecore_getopt.c:1542
130#, c-format 130#, c-format
131msgid "ERROR: unknown option -%c, ignored.\n" 131msgid "ERROR: unknown option -%c, ignored.\n"
132msgstr "ΣΦΑΛΜΑ: άγνωστη επιλογή -%c, αγνοήθηκε.\n" 132msgstr "ΣΦΑΛΜΑ: άγνωστη επιλογή -%c, αγνοήθηκε.\n"
133 133
134#: src/lib/ecore/ecore_getopt.c:1576 134#: src/lib/ecore/ecore_getopt.c:1580
135#, c-format 135#, c-format
136msgid "ERROR: option -%c requires an argument!\n" 136msgid "ERROR: option -%c requires an argument!\n"
137msgstr "ΣΦAΛΜΑ: η επιλογή -%c απαιτεί μία παράμετρο!\n" 137msgstr "ΣΦAΛΜΑ: η επιλογή -%c απαιτεί μία παράμετρο!\n"
138 138
139#: src/lib/ecore/ecore_getopt.c:1785 139#: src/lib/ecore/ecore_getopt.c:1789
140#, fuzzy 140#, fuzzy
141msgid "ERROR: no parser provided.\n" 141msgid "ERROR: no parser provided.\n"
142msgstr "ΣΦΑΛΜΑ:δεν παρέχεται αναλυτής.\n" 142msgstr "ΣΦΑΛΜΑ:δεν παρέχεται αναλυτής.\n"
143 143
144#: src/lib/ecore/ecore_getopt.c:1790 144#: src/lib/ecore/ecore_getopt.c:1794
145msgid "ERROR: no values provided.\n" 145msgid "ERROR: no values provided.\n"
146msgstr "ΣΦΑΛΜΑ:δεν έχουν δοθεί τιμές.\n" 146msgstr "ΣΦΑΛΜΑ:δεν έχουν δοθεί τιμές.\n"
147 147
148#: src/lib/ecore/ecore_getopt.c:1799 148#: src/lib/ecore/ecore_getopt.c:1803
149msgid "ERROR: no arguments provided.\n" 149msgid "ERROR: no arguments provided.\n"
150msgstr "ΣΦΑΛΜΑ:δεν έχουν δοθεί παράμετροι.\n" 150msgstr "ΣΦΑΛΜΑ:δεν έχουν δοθεί παράμετροι.\n"
151 151
152#: src/lib/ecore/ecore_getopt.c:1825 152#: src/lib/ecore/ecore_getopt.c:1829
153msgid "ERROR: invalid options found." 153msgid "ERROR: invalid options found."
154msgstr "ΣΦΑΛΜΑ: βρέθηκαν μη έγκυρες επιλογές." 154msgstr "ΣΦΑΛΜΑ: βρέθηκαν μη έγκυρες επιλογές."
155 155
156#: src/lib/ecore/ecore_getopt.c:1831 156#: src/lib/ecore/ecore_getopt.c:1835
157#, c-format 157#, c-format
158msgid " See --%s.\n" 158msgid " See --%s.\n"
159msgstr " Δείτε --%s.\n" 159msgstr " Δείτε --%s.\n"
160 160
161#: src/lib/ecore/ecore_getopt.c:1833 161#: src/lib/ecore/ecore_getopt.c:1837
162#, c-format 162#, c-format
163msgid " See -%c.\n" 163msgid " See -%c.\n"
164msgstr " Δείτε -%c.\n" 164msgstr " Δείτε -%c.\n"
165 165
166#: src/lib/ecore/ecore_getopt.c:1875 166#: src/lib/ecore/ecore_getopt.c:1879
167#, c-format 167#, c-format
168msgid "ERROR: incorrect geometry value '%s'\n" 168msgid "ERROR: incorrect geometry value '%s'\n"
169msgstr "ΣΦΑΛΜΑ: μη έγκυρη γεωμετρική τιμή '%s'\n" 169msgstr "ΣΦΑΛΜΑ: μη έγκυρη γεωμετρική τιμή '%s'\n"
170 170
171#: src/lib/ecore/ecore_getopt.c:1903 171#: src/lib/ecore/ecore_getopt.c:1907
172#, c-format 172#, c-format
173msgid "ERROR: incorrect size value '%s'\n" 173msgid "ERROR: incorrect size value '%s'\n"
174msgstr "ΣΦΑΛΜΑ: μη έγκυρη τιμή μεγέθους '%s'\n" 174msgstr "ΣΦΑΛΜΑ: μη έγκυρη τιμή μεγέθους '%s'\n"
diff --git a/libraries/ecore/po/fr.gmo b/libraries/ecore/po/fr.gmo
index 2669256..766db87 100644
--- a/libraries/ecore/po/fr.gmo
+++ b/libraries/ecore/po/fr.gmo
Binary files differ
diff --git a/libraries/ecore/po/fr.po b/libraries/ecore/po/fr.po
index 6c752c1..3435366 100644
--- a/libraries/ecore/po/fr.po
+++ b/libraries/ecore/po/fr.po
@@ -6,172 +6,172 @@ msgid ""
6msgstr "" 6msgstr ""
7"Project-Id-Version: Ecore\n" 7"Project-Id-Version: Ecore\n"
8"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" 8"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
9"POT-Creation-Date: 2012-01-23 23:19+1000\n" 9"POT-Creation-Date: 2012-03-17 11:44+0900\n"
10"PO-Revision-Date: 2010-07-11 11:01+0400\n" 10"PO-Revision-Date: 2010-07-11 11:01+0400\n"
11"Last-Translator: batden <batden@orange.fr>\n" 11"Last-Translator: batden <batden@orange.fr>\n"
12"Language-Team: Enlightenment French Team <pourunmondesansgourou@gmail.com>\n" 12"Language-Team: Enlightenment French Team <pourunmondesansgourou@gmail.com>\n"
13"Language: \n"
13"MIME-Version: 1.0\n" 14"MIME-Version: 1.0\n"
14"Content-Type: text/plain; charset=utf-8\n" 15"Content-Type: text/plain; charset=utf-8\n"
15"Content-Transfer-Encoding: 8bit\n" 16"Content-Transfer-Encoding: 8bit\n"
16"Language: \n"
17"Plural-Forms: nplurals=2; plural=n>1;\n" 17"Plural-Forms: nplurals=2; plural=n>1;\n"
18"X-Poedit-Language: French\n" 18"X-Poedit-Language: French\n"
19"X-Poedit-Country: FRANCE\n" 19"X-Poedit-Country: FRANCE\n"
20"X-Poedit-SourceCharset: utf-8\n" 20"X-Poedit-SourceCharset: utf-8\n"
21 21
22#: src/lib/ecore/ecore_getopt.c:91 22#: src/lib/ecore/ecore_getopt.c:95
23msgid "Version:" 23msgid "Version:"
24msgstr "Version :" 24msgstr "Version :"
25 25
26#: src/lib/ecore/ecore_getopt.c:100 26#: src/lib/ecore/ecore_getopt.c:104
27msgid "Usage:" 27msgid "Usage:"
28msgstr "Usage :" 28msgstr "Usage :"
29 29
30#: src/lib/ecore/ecore_getopt.c:105 30#: src/lib/ecore/ecore_getopt.c:109
31#, c-format 31#, c-format
32msgid "%s [options]\n" 32msgid "%s [options]\n"
33msgstr "%s [options]\n" 33msgstr "%s [options]\n"
34 34
35#: src/lib/ecore/ecore_getopt.c:260 35#: src/lib/ecore/ecore_getopt.c:264
36msgid "Copyright:" 36msgid "Copyright:"
37msgstr "Copyright :" 37msgstr "Copyright :"
38 38
39#: src/lib/ecore/ecore_getopt.c:272 39#: src/lib/ecore/ecore_getopt.c:276
40msgid "License:" 40msgid "License:"
41msgstr "Licence :" 41msgstr "Licence :"
42 42
43#: src/lib/ecore/ecore_getopt.c:453 43#: src/lib/ecore/ecore_getopt.c:457
44msgid "Type: " 44msgid "Type: "
45msgstr "Type : " 45msgstr "Type : "
46 46
47#: src/lib/ecore/ecore_getopt.c:529 47#: src/lib/ecore/ecore_getopt.c:533
48msgid "Default: " 48msgid "Default: "
49msgstr "Par défaut :" 49msgstr "Par défaut :"
50 50
51#: src/lib/ecore/ecore_getopt.c:556 51#: src/lib/ecore/ecore_getopt.c:560
52msgid "Choices: " 52msgid "Choices: "
53msgstr "Choix :" 53msgstr "Choix :"
54 54
55#: src/lib/ecore/ecore_getopt.c:657 55#: src/lib/ecore/ecore_getopt.c:661
56msgid "Options:\n" 56msgid "Options:\n"
57msgstr "Options :\n" 57msgstr "Options :\n"
58 58
59#: src/lib/ecore/ecore_getopt.c:782 59#: src/lib/ecore/ecore_getopt.c:786
60#, c-format 60#, c-format
61msgid "ERROR: unknown option --%s.\n" 61msgid "ERROR: unknown option --%s.\n"
62msgstr "ERREUR : option inconnue --%s.\n" 62msgstr "ERREUR : option inconnue --%s.\n"
63 63
64#: src/lib/ecore/ecore_getopt.c:784 64#: src/lib/ecore/ecore_getopt.c:788
65#, c-format 65#, c-format
66msgid "ERROR: unknown option -%c.\n" 66msgid "ERROR: unknown option -%c.\n"
67msgstr "ERREUR : option inconnue -%c.\n" 67msgstr "ERREUR : option inconnue -%c.\n"
68 68
69#: src/lib/ecore/ecore_getopt.c:842 69#: src/lib/ecore/ecore_getopt.c:846
70msgid "ERROR: " 70msgid "ERROR: "
71msgstr "ERREUR :" 71msgstr "ERREUR :"
72 72
73#: src/lib/ecore/ecore_getopt.c:925 src/lib/ecore/ecore_getopt.c:1062 73#: src/lib/ecore/ecore_getopt.c:929 src/lib/ecore/ecore_getopt.c:1066
74#: src/lib/ecore/ecore_getopt.c:1078 src/lib/ecore/ecore_getopt.c:1093 74#: src/lib/ecore/ecore_getopt.c:1082 src/lib/ecore/ecore_getopt.c:1097
75#: src/lib/ecore/ecore_getopt.c:1110 src/lib/ecore/ecore_getopt.c:1157 75#: src/lib/ecore/ecore_getopt.c:1114 src/lib/ecore/ecore_getopt.c:1161
76#: src/lib/ecore/ecore_getopt.c:1277 src/lib/ecore/ecore_getopt.c:1318 76#: src/lib/ecore/ecore_getopt.c:1281 src/lib/ecore/ecore_getopt.c:1322
77msgid "value has no pointer set.\n" 77msgid "value has no pointer set.\n"
78msgstr "la valeur n'a aucun pointeur défini.\n" 78msgstr "la valeur n'a aucun pointeur défini.\n"
79 79
80#: src/lib/ecore/ecore_getopt.c:957 src/lib/ecore/ecore_getopt.c:1177 80#: src/lib/ecore/ecore_getopt.c:961 src/lib/ecore/ecore_getopt.c:1181
81#, c-format 81#, c-format
82msgid "unknown boolean value %s.\n" 82msgid "unknown boolean value %s.\n"
83msgstr "valeur booléenne inconnue %s.\n" 83msgstr "valeur booléenne inconnue %s.\n"
84 84
85#: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1265 85#: src/lib/ecore/ecore_getopt.c:1012 src/lib/ecore/ecore_getopt.c:1269
86#, c-format 86#, c-format
87msgid "invalid number format %s\n" 87msgid "invalid number format %s\n"
88msgstr "format du nombre non valide %s\n" 88msgstr "format du nombre non valide %s\n"
89 89
90#: src/lib/ecore/ecore_getopt.c:1123 90#: src/lib/ecore/ecore_getopt.c:1127
91#, c-format 91#, c-format
92msgid "invalid choice \"%s\". Valid values are: " 92msgid "invalid choice \"%s\". Valid values are: "
93msgstr "choix non valide « %s ». Les valeurs valides sont : " 93msgstr "choix non valide « %s ». Les valeurs valides sont : "
94 94
95#: src/lib/ecore/ecore_getopt.c:1151 95#: src/lib/ecore/ecore_getopt.c:1155
96msgid "missing parameter to append.\n" 96msgid "missing parameter to append.\n"
97msgstr "paramètre manquant à ajouter.\n" 97msgstr "paramètre manquant à ajouter.\n"
98 98
99#: src/lib/ecore/ecore_getopt.c:1255 99#: src/lib/ecore/ecore_getopt.c:1259
100msgid "could not parse value.\n" 100msgid "could not parse value.\n"
101msgstr "analyse de la valeur impossible.\n" 101msgstr "analyse de la valeur impossible.\n"
102 102
103#: src/lib/ecore/ecore_getopt.c:1312 103#: src/lib/ecore/ecore_getopt.c:1316
104msgid "missing parameter.\n" 104msgid "missing parameter.\n"
105msgstr "paramètre manquant.\n" 105msgstr "paramètre manquant.\n"
106 106
107#: src/lib/ecore/ecore_getopt.c:1325 107#: src/lib/ecore/ecore_getopt.c:1329
108msgid "missing callback function!\n" 108msgid "missing callback function!\n"
109msgstr "fonction de rappel manquante !\n" 109msgstr "fonction de rappel manquante !\n"
110 110
111#: src/lib/ecore/ecore_getopt.c:1354 111#: src/lib/ecore/ecore_getopt.c:1358
112msgid "no version was defined.\n" 112msgid "no version was defined.\n"
113msgstr "aucune version n'est définie.\n" 113msgstr "aucune version n'est définie.\n"
114 114
115#: src/lib/ecore/ecore_getopt.c:1371 115#: src/lib/ecore/ecore_getopt.c:1375
116msgid "no copyright was defined.\n" 116msgid "no copyright was defined.\n"
117msgstr "aucun copyright n'est défini.\n" 117msgstr "aucun copyright n'est défini.\n"
118 118
119#: src/lib/ecore/ecore_getopt.c:1388 119#: src/lib/ecore/ecore_getopt.c:1392
120msgid "no license was defined.\n" 120msgid "no license was defined.\n"
121msgstr "aucune licence n'est définie.\n" 121msgstr "aucune licence n'est définie.\n"
122 122
123#: src/lib/ecore/ecore_getopt.c:1463 123#: src/lib/ecore/ecore_getopt.c:1467
124#, c-format 124#, c-format
125msgid "ERROR: unknown option --%s, ignored.\n" 125msgid "ERROR: unknown option --%s, ignored.\n"
126msgstr "ERREUR : option inconnue --%s, non prise en compte.\n" 126msgstr "ERREUR : option inconnue --%s, non prise en compte.\n"
127 127
128#: src/lib/ecore/ecore_getopt.c:1496 128#: src/lib/ecore/ecore_getopt.c:1500
129#, c-format 129#, c-format
130msgid "ERROR: option --%s requires an argument!\n" 130msgid "ERROR: option --%s requires an argument!\n"
131msgstr "ERREUR : l'option --%s requiert un argument !\n" 131msgstr "ERREUR : l'option --%s requiert un argument !\n"
132 132
133#: src/lib/ecore/ecore_getopt.c:1538 133#: src/lib/ecore/ecore_getopt.c:1542
134#, c-format 134#, c-format
135msgid "ERROR: unknown option -%c, ignored.\n" 135msgid "ERROR: unknown option -%c, ignored.\n"
136msgstr "ERREUR : option inconnue -%c, non prise en compte.\n" 136msgstr "ERREUR : option inconnue -%c, non prise en compte.\n"
137 137
138#: src/lib/ecore/ecore_getopt.c:1576 138#: src/lib/ecore/ecore_getopt.c:1580
139#, c-format 139#, c-format
140msgid "ERROR: option -%c requires an argument!\n" 140msgid "ERROR: option -%c requires an argument!\n"
141msgstr "ERREUR : l'option -%c requiert un argument !\n" 141msgstr "ERREUR : l'option -%c requiert un argument !\n"
142 142
143#: src/lib/ecore/ecore_getopt.c:1785 143#: src/lib/ecore/ecore_getopt.c:1789
144msgid "ERROR: no parser provided.\n" 144msgid "ERROR: no parser provided.\n"
145msgstr "ERREUR : aucun analyseur n'est fourni.\n" 145msgstr "ERREUR : aucun analyseur n'est fourni.\n"
146 146
147#: src/lib/ecore/ecore_getopt.c:1790 147#: src/lib/ecore/ecore_getopt.c:1794
148msgid "ERROR: no values provided.\n" 148msgid "ERROR: no values provided.\n"
149msgstr "ERREUR : aucune valeur n'est fournie.\n" 149msgstr "ERREUR : aucune valeur n'est fournie.\n"
150 150
151#: src/lib/ecore/ecore_getopt.c:1799 151#: src/lib/ecore/ecore_getopt.c:1803
152msgid "ERROR: no arguments provided.\n" 152msgid "ERROR: no arguments provided.\n"
153msgstr "ERREUR : aucun argument n'est fourni.\n" 153msgstr "ERREUR : aucun argument n'est fourni.\n"
154 154
155#: src/lib/ecore/ecore_getopt.c:1825 155#: src/lib/ecore/ecore_getopt.c:1829
156msgid "ERROR: invalid options found." 156msgid "ERROR: invalid options found."
157msgstr "ERREUR : options non valides détectées." 157msgstr "ERREUR : options non valides détectées."
158 158
159#: src/lib/ecore/ecore_getopt.c:1831 159#: src/lib/ecore/ecore_getopt.c:1835
160#, c-format 160#, c-format
161msgid " See --%s.\n" 161msgid " See --%s.\n"
162msgstr " Voir --%s.\n" 162msgstr " Voir --%s.\n"
163 163
164#: src/lib/ecore/ecore_getopt.c:1833 164#: src/lib/ecore/ecore_getopt.c:1837
165#, c-format 165#, c-format
166msgid " See -%c.\n" 166msgid " See -%c.\n"
167msgstr " Voir -%c.\n" 167msgstr " Voir -%c.\n"
168 168
169#: src/lib/ecore/ecore_getopt.c:1875 169#: src/lib/ecore/ecore_getopt.c:1879
170#, c-format 170#, c-format
171msgid "ERROR: incorrect geometry value '%s'\n" 171msgid "ERROR: incorrect geometry value '%s'\n"
172msgstr "ERREUR : valeur géométrique incorrecte « %s »\n" 172msgstr "ERREUR : valeur géométrique incorrecte « %s »\n"
173 173
174#: src/lib/ecore/ecore_getopt.c:1903 174#: src/lib/ecore/ecore_getopt.c:1907
175#, c-format 175#, c-format
176msgid "ERROR: incorrect size value '%s'\n" 176msgid "ERROR: incorrect size value '%s'\n"
177msgstr "ERREUR : valeur de taille incorrecte « %s »\n" 177msgstr "ERREUR : valeur de taille incorrecte « %s »\n"
diff --git a/libraries/ecore/po/it.gmo b/libraries/ecore/po/it.gmo
index 3361b47..3a83e76 100644
--- a/libraries/ecore/po/it.gmo
+++ b/libraries/ecore/po/it.gmo
Binary files differ
diff --git a/libraries/ecore/po/it.po b/libraries/ecore/po/it.po
index b4ff61d..45ceb9f 100644
--- a/libraries/ecore/po/it.po
+++ b/libraries/ecore/po/it.po
@@ -6,168 +6,168 @@ msgid ""
6msgstr "" 6msgstr ""
7"Project-Id-Version: Ecore\n" 7"Project-Id-Version: Ecore\n"
8"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" 8"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
9"POT-Creation-Date: 2012-01-23 23:19+1000\n" 9"POT-Creation-Date: 2012-03-17 11:44+0900\n"
10"PO-Revision-Date: 2009-10-27 19:36+0100\n" 10"PO-Revision-Date: 2009-10-27 19:36+0100\n"
11"Last-Translator: quaker66 <quaker66@gmail.com>\n" 11"Last-Translator: quaker66 <quaker66@gmail.com>\n"
12"Language-Team: none\n" 12"Language-Team: none\n"
13"Language: \n"
13"MIME-Version: 1.0\n" 14"MIME-Version: 1.0\n"
14"Content-Type: text/plain; charset=UTF-8\n" 15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Transfer-Encoding: 8bit\n" 16"Content-Transfer-Encoding: 8bit\n"
16"Language: \n"
17 17
18#: src/lib/ecore/ecore_getopt.c:91 18#: src/lib/ecore/ecore_getopt.c:95
19msgid "Version:" 19msgid "Version:"
20msgstr "Versione:" 20msgstr "Versione:"
21 21
22#: src/lib/ecore/ecore_getopt.c:100 22#: src/lib/ecore/ecore_getopt.c:104
23msgid "Usage:" 23msgid "Usage:"
24msgstr "Uso:" 24msgstr "Uso:"
25 25
26#: src/lib/ecore/ecore_getopt.c:105 26#: src/lib/ecore/ecore_getopt.c:109
27#, c-format 27#, c-format
28msgid "%s [options]\n" 28msgid "%s [options]\n"
29msgstr "%s [opzioni]\n" 29msgstr "%s [opzioni]\n"
30 30
31#: src/lib/ecore/ecore_getopt.c:260 31#: src/lib/ecore/ecore_getopt.c:264
32msgid "Copyright:" 32msgid "Copyright:"
33msgstr "Copyright:" 33msgstr "Copyright:"
34 34
35#: src/lib/ecore/ecore_getopt.c:272 35#: src/lib/ecore/ecore_getopt.c:276
36msgid "License:" 36msgid "License:"
37msgstr "Licenza:" 37msgstr "Licenza:"
38 38
39#: src/lib/ecore/ecore_getopt.c:453 39#: src/lib/ecore/ecore_getopt.c:457
40msgid "Type: " 40msgid "Type: "
41msgstr "Tipo: " 41msgstr "Tipo: "
42 42
43#: src/lib/ecore/ecore_getopt.c:529 43#: src/lib/ecore/ecore_getopt.c:533
44msgid "Default: " 44msgid "Default: "
45msgstr "Predefinito:" 45msgstr "Predefinito:"
46 46
47#: src/lib/ecore/ecore_getopt.c:556 47#: src/lib/ecore/ecore_getopt.c:560
48msgid "Choices: " 48msgid "Choices: "
49msgstr "Scelte:" 49msgstr "Scelte:"
50 50
51#: src/lib/ecore/ecore_getopt.c:657 51#: src/lib/ecore/ecore_getopt.c:661
52msgid "Options:\n" 52msgid "Options:\n"
53msgstr "Opzioni:\n" 53msgstr "Opzioni:\n"
54 54
55#: src/lib/ecore/ecore_getopt.c:782 55#: src/lib/ecore/ecore_getopt.c:786
56#, c-format 56#, c-format
57msgid "ERROR: unknown option --%s.\n" 57msgid "ERROR: unknown option --%s.\n"
58msgstr "ERRORE: opzione sconosciuta --%s.\n" 58msgstr "ERRORE: opzione sconosciuta --%s.\n"
59 59
60#: src/lib/ecore/ecore_getopt.c:784 60#: src/lib/ecore/ecore_getopt.c:788
61#, c-format 61#, c-format
62msgid "ERROR: unknown option -%c.\n" 62msgid "ERROR: unknown option -%c.\n"
63msgstr "ERRORE: opzione sconosciuta -%c.\n" 63msgstr "ERRORE: opzione sconosciuta -%c.\n"
64 64
65#: src/lib/ecore/ecore_getopt.c:842 65#: src/lib/ecore/ecore_getopt.c:846
66msgid "ERROR: " 66msgid "ERROR: "
67msgstr "ERRORE:" 67msgstr "ERRORE:"
68 68
69#: src/lib/ecore/ecore_getopt.c:925 src/lib/ecore/ecore_getopt.c:1062 69#: src/lib/ecore/ecore_getopt.c:929 src/lib/ecore/ecore_getopt.c:1066
70#: src/lib/ecore/ecore_getopt.c:1078 src/lib/ecore/ecore_getopt.c:1093 70#: src/lib/ecore/ecore_getopt.c:1082 src/lib/ecore/ecore_getopt.c:1097
71#: src/lib/ecore/ecore_getopt.c:1110 src/lib/ecore/ecore_getopt.c:1157 71#: src/lib/ecore/ecore_getopt.c:1114 src/lib/ecore/ecore_getopt.c:1161
72#: src/lib/ecore/ecore_getopt.c:1277 src/lib/ecore/ecore_getopt.c:1318 72#: src/lib/ecore/ecore_getopt.c:1281 src/lib/ecore/ecore_getopt.c:1322
73msgid "value has no pointer set.\n" 73msgid "value has no pointer set.\n"
74msgstr "il valore non ha puntatori impostati.\n" 74msgstr "il valore non ha puntatori impostati.\n"
75 75
76#: src/lib/ecore/ecore_getopt.c:957 src/lib/ecore/ecore_getopt.c:1177 76#: src/lib/ecore/ecore_getopt.c:961 src/lib/ecore/ecore_getopt.c:1181
77#, c-format 77#, c-format
78msgid "unknown boolean value %s.\n" 78msgid "unknown boolean value %s.\n"
79msgstr "valore booleano sconosciuto %s.\n" 79msgstr "valore booleano sconosciuto %s.\n"
80 80
81#: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1265 81#: src/lib/ecore/ecore_getopt.c:1012 src/lib/ecore/ecore_getopt.c:1269
82#, c-format 82#, c-format
83msgid "invalid number format %s\n" 83msgid "invalid number format %s\n"
84msgstr "formato numero non valido %s\n" 84msgstr "formato numero non valido %s\n"
85 85
86#: src/lib/ecore/ecore_getopt.c:1123 86#: src/lib/ecore/ecore_getopt.c:1127
87#, c-format 87#, c-format
88msgid "invalid choice \"%s\". Valid values are: " 88msgid "invalid choice \"%s\". Valid values are: "
89msgstr "scelta non valida \"%s\". I valori ammessi sono: " 89msgstr "scelta non valida \"%s\". I valori ammessi sono: "
90 90
91#: src/lib/ecore/ecore_getopt.c:1151 91#: src/lib/ecore/ecore_getopt.c:1155
92msgid "missing parameter to append.\n" 92msgid "missing parameter to append.\n"
93msgstr "parametro da appendere mancante.\n" 93msgstr "parametro da appendere mancante.\n"
94 94
95#: src/lib/ecore/ecore_getopt.c:1255 95#: src/lib/ecore/ecore_getopt.c:1259
96msgid "could not parse value.\n" 96msgid "could not parse value.\n"
97msgstr "impossibile il parsing del valore.\n" 97msgstr "impossibile il parsing del valore.\n"
98 98
99#: src/lib/ecore/ecore_getopt.c:1312 99#: src/lib/ecore/ecore_getopt.c:1316
100msgid "missing parameter.\n" 100msgid "missing parameter.\n"
101msgstr "parametro mancante.\n" 101msgstr "parametro mancante.\n"
102 102
103#: src/lib/ecore/ecore_getopt.c:1325 103#: src/lib/ecore/ecore_getopt.c:1329
104msgid "missing callback function!\n" 104msgid "missing callback function!\n"
105msgstr "funzione callback mancante!\n" 105msgstr "funzione callback mancante!\n"
106 106
107#: src/lib/ecore/ecore_getopt.c:1354 107#: src/lib/ecore/ecore_getopt.c:1358
108msgid "no version was defined.\n" 108msgid "no version was defined.\n"
109msgstr "nessuna versione definita.\n" 109msgstr "nessuna versione definita.\n"
110 110
111#: src/lib/ecore/ecore_getopt.c:1371 111#: src/lib/ecore/ecore_getopt.c:1375
112msgid "no copyright was defined.\n" 112msgid "no copyright was defined.\n"
113msgstr "nessun copyright definito.\n" 113msgstr "nessun copyright definito.\n"
114 114
115#: src/lib/ecore/ecore_getopt.c:1388 115#: src/lib/ecore/ecore_getopt.c:1392
116msgid "no license was defined.\n" 116msgid "no license was defined.\n"
117msgstr "nessuna licenza definita.\n" 117msgstr "nessuna licenza definita.\n"
118 118
119#: src/lib/ecore/ecore_getopt.c:1463 119#: src/lib/ecore/ecore_getopt.c:1467
120#, c-format 120#, c-format
121msgid "ERROR: unknown option --%s, ignored.\n" 121msgid "ERROR: unknown option --%s, ignored.\n"
122msgstr "ERRORE: opzione sconosciuta --%s, ignorata.\n" 122msgstr "ERRORE: opzione sconosciuta --%s, ignorata.\n"
123 123
124#: src/lib/ecore/ecore_getopt.c:1496 124#: src/lib/ecore/ecore_getopt.c:1500
125#, c-format 125#, c-format
126msgid "ERROR: option --%s requires an argument!\n" 126msgid "ERROR: option --%s requires an argument!\n"
127msgstr "ERRORE: l'opzione --%s richiede un argomento!\n" 127msgstr "ERRORE: l'opzione --%s richiede un argomento!\n"
128 128
129#: src/lib/ecore/ecore_getopt.c:1538 129#: src/lib/ecore/ecore_getopt.c:1542
130#, c-format 130#, c-format
131msgid "ERROR: unknown option -%c, ignored.\n" 131msgid "ERROR: unknown option -%c, ignored.\n"
132msgstr "ERRORE: opzione sconosciuta -%c, ignorata.\n" 132msgstr "ERRORE: opzione sconosciuta -%c, ignorata.\n"
133 133
134#: src/lib/ecore/ecore_getopt.c:1576 134#: src/lib/ecore/ecore_getopt.c:1580
135#, c-format 135#, c-format
136msgid "ERROR: option -%c requires an argument!\n" 136msgid "ERROR: option -%c requires an argument!\n"
137msgstr "ERRORE: l'opzione -%c richiede un argomento!\n" 137msgstr "ERRORE: l'opzione -%c richiede un argomento!\n"
138 138
139#: src/lib/ecore/ecore_getopt.c:1785 139#: src/lib/ecore/ecore_getopt.c:1789
140msgid "ERROR: no parser provided.\n" 140msgid "ERROR: no parser provided.\n"
141msgstr "ERRORE: nessun parser fornito.\n" 141msgstr "ERRORE: nessun parser fornito.\n"
142 142
143#: src/lib/ecore/ecore_getopt.c:1790 143#: src/lib/ecore/ecore_getopt.c:1794
144msgid "ERROR: no values provided.\n" 144msgid "ERROR: no values provided.\n"
145msgstr "ERRORE: nessun valore fornito.\n" 145msgstr "ERRORE: nessun valore fornito.\n"
146 146
147#: src/lib/ecore/ecore_getopt.c:1799 147#: src/lib/ecore/ecore_getopt.c:1803
148msgid "ERROR: no arguments provided.\n" 148msgid "ERROR: no arguments provided.\n"
149msgstr "ERRORE: nessun argomento fornito.\n" 149msgstr "ERRORE: nessun argomento fornito.\n"
150 150
151#: src/lib/ecore/ecore_getopt.c:1825 151#: src/lib/ecore/ecore_getopt.c:1829
152msgid "ERROR: invalid options found." 152msgid "ERROR: invalid options found."
153msgstr "ERRORE: trovate opzioni non valide." 153msgstr "ERRORE: trovate opzioni non valide."
154 154
155#: src/lib/ecore/ecore_getopt.c:1831 155#: src/lib/ecore/ecore_getopt.c:1835
156#, c-format 156#, c-format
157msgid " See --%s.\n" 157msgid " See --%s.\n"
158msgstr " Vedere --%s.\n" 158msgstr " Vedere --%s.\n"
159 159
160#: src/lib/ecore/ecore_getopt.c:1833 160#: src/lib/ecore/ecore_getopt.c:1837
161#, c-format 161#, c-format
162msgid " See -%c.\n" 162msgid " See -%c.\n"
163msgstr " Vedere -%c.\n" 163msgstr " Vedere -%c.\n"
164 164
165#: src/lib/ecore/ecore_getopt.c:1875 165#: src/lib/ecore/ecore_getopt.c:1879
166#, c-format 166#, c-format
167msgid "ERROR: incorrect geometry value '%s'\n" 167msgid "ERROR: incorrect geometry value '%s'\n"
168msgstr "ERRORE: valore geometrico non corretto '%s'\n" 168msgstr "ERRORE: valore geometrico non corretto '%s'\n"
169 169
170#: src/lib/ecore/ecore_getopt.c:1903 170#: src/lib/ecore/ecore_getopt.c:1907
171#, c-format 171#, c-format
172msgid "ERROR: incorrect size value '%s'\n" 172msgid "ERROR: incorrect size value '%s'\n"
173msgstr "ERRORE: valore dimensione non corretto '%s'\n" 173msgstr "ERRORE: valore dimensione non corretto '%s'\n"
diff --git a/libraries/ecore/po/nl.gmo b/libraries/ecore/po/nl.gmo
index 746f7df..babde95 100644
--- a/libraries/ecore/po/nl.gmo
+++ b/libraries/ecore/po/nl.gmo
Binary files differ
diff --git a/libraries/ecore/po/nl.po b/libraries/ecore/po/nl.po
index 04e3256..54785e2 100644
--- a/libraries/ecore/po/nl.po
+++ b/libraries/ecore/po/nl.po
@@ -6,170 +6,170 @@ msgid ""
6msgstr "" 6msgstr ""
7"Project-Id-Version: Ecore\n" 7"Project-Id-Version: Ecore\n"
8"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" 8"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
9"POT-Creation-Date: 2012-01-23 23:19+1000\n" 9"POT-Creation-Date: 2012-03-17 11:44+0900\n"
10"PO-Revision-Date: 2011-09-03 15:48+0100\n" 10"PO-Revision-Date: 2011-09-03 15:48+0100\n"
11"Last-Translator: Heimen Stoffels <vistausss@gmail.com>\n" 11"Last-Translator: Heimen Stoffels <vistausss@gmail.com>\n"
12"Language-Team: <vistausss@gmail.com>\n" 12"Language-Team: <vistausss@gmail.com>\n"
13"Language: \n"
13"MIME-Version: 1.0\n" 14"MIME-Version: 1.0\n"
14"Content-Type: text/plain; charset=UTF-8\n" 15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Transfer-Encoding: 8bit\n" 16"Content-Transfer-Encoding: 8bit\n"
16"Language: \n"
17"X-Poedit-Language: NL\n" 17"X-Poedit-Language: NL\n"
18"X-Poedit-Country: Nederland\n" 18"X-Poedit-Country: Nederland\n"
19 19
20#: src/lib/ecore/ecore_getopt.c:91 20#: src/lib/ecore/ecore_getopt.c:95
21msgid "Version:" 21msgid "Version:"
22msgstr "Versie:" 22msgstr "Versie:"
23 23
24#: src/lib/ecore/ecore_getopt.c:100 24#: src/lib/ecore/ecore_getopt.c:104
25msgid "Usage:" 25msgid "Usage:"
26msgstr "Gebruik:" 26msgstr "Gebruik:"
27 27
28#: src/lib/ecore/ecore_getopt.c:105 28#: src/lib/ecore/ecore_getopt.c:109
29#, c-format 29#, c-format
30msgid "%s [options]\n" 30msgid "%s [options]\n"
31msgstr "%s [opties]\n" 31msgstr "%s [opties]\n"
32 32
33#: src/lib/ecore/ecore_getopt.c:260 33#: src/lib/ecore/ecore_getopt.c:264
34msgid "Copyright:" 34msgid "Copyright:"
35msgstr "Copyright:" 35msgstr "Copyright:"
36 36
37#: src/lib/ecore/ecore_getopt.c:272 37#: src/lib/ecore/ecore_getopt.c:276
38msgid "License:" 38msgid "License:"
39msgstr "Licentie:" 39msgstr "Licentie:"
40 40
41#: src/lib/ecore/ecore_getopt.c:453 41#: src/lib/ecore/ecore_getopt.c:457
42msgid "Type: " 42msgid "Type: "
43msgstr "Type:" 43msgstr "Type:"
44 44
45#: src/lib/ecore/ecore_getopt.c:529 45#: src/lib/ecore/ecore_getopt.c:533
46msgid "Default: " 46msgid "Default: "
47msgstr "Standaard:" 47msgstr "Standaard:"
48 48
49#: src/lib/ecore/ecore_getopt.c:556 49#: src/lib/ecore/ecore_getopt.c:560
50msgid "Choices: " 50msgid "Choices: "
51msgstr "Keuzes:" 51msgstr "Keuzes:"
52 52
53#: src/lib/ecore/ecore_getopt.c:657 53#: src/lib/ecore/ecore_getopt.c:661
54msgid "Options:\n" 54msgid "Options:\n"
55msgstr "Opties:\n" 55msgstr "Opties:\n"
56 56
57#: src/lib/ecore/ecore_getopt.c:782 57#: src/lib/ecore/ecore_getopt.c:786
58#, c-format 58#, c-format
59msgid "ERROR: unknown option --%s.\n" 59msgid "ERROR: unknown option --%s.\n"
60msgstr "FOUT: onbekende optie --%s.\n" 60msgstr "FOUT: onbekende optie --%s.\n"
61 61
62#: src/lib/ecore/ecore_getopt.c:784 62#: src/lib/ecore/ecore_getopt.c:788
63#, c-format 63#, c-format
64msgid "ERROR: unknown option -%c.\n" 64msgid "ERROR: unknown option -%c.\n"
65msgstr "FOUT: onbekende optie -%c.\n" 65msgstr "FOUT: onbekende optie -%c.\n"
66 66
67#: src/lib/ecore/ecore_getopt.c:842 67#: src/lib/ecore/ecore_getopt.c:846
68msgid "ERROR: " 68msgid "ERROR: "
69msgstr "FOUT:" 69msgstr "FOUT:"
70 70
71#: src/lib/ecore/ecore_getopt.c:925 src/lib/ecore/ecore_getopt.c:1062 71#: src/lib/ecore/ecore_getopt.c:929 src/lib/ecore/ecore_getopt.c:1066
72#: src/lib/ecore/ecore_getopt.c:1078 src/lib/ecore/ecore_getopt.c:1093 72#: src/lib/ecore/ecore_getopt.c:1082 src/lib/ecore/ecore_getopt.c:1097
73#: src/lib/ecore/ecore_getopt.c:1110 src/lib/ecore/ecore_getopt.c:1157 73#: src/lib/ecore/ecore_getopt.c:1114 src/lib/ecore/ecore_getopt.c:1161
74#: src/lib/ecore/ecore_getopt.c:1277 src/lib/ecore/ecore_getopt.c:1318 74#: src/lib/ecore/ecore_getopt.c:1281 src/lib/ecore/ecore_getopt.c:1322
75msgid "value has no pointer set.\n" 75msgid "value has no pointer set.\n"
76msgstr "waarde heeft geen pointer ingsteld.\n" 76msgstr "waarde heeft geen pointer ingsteld.\n"
77 77
78#: src/lib/ecore/ecore_getopt.c:957 src/lib/ecore/ecore_getopt.c:1177 78#: src/lib/ecore/ecore_getopt.c:961 src/lib/ecore/ecore_getopt.c:1181
79#, c-format 79#, c-format
80msgid "unknown boolean value %s.\n" 80msgid "unknown boolean value %s.\n"
81msgstr "onbekende boolean-waarde %s.\n" 81msgstr "onbekende boolean-waarde %s.\n"
82 82
83#: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1265 83#: src/lib/ecore/ecore_getopt.c:1012 src/lib/ecore/ecore_getopt.c:1269
84#, c-format 84#, c-format
85msgid "invalid number format %s\n" 85msgid "invalid number format %s\n"
86msgstr "ongeldig nummerformaat %s\n" 86msgstr "ongeldig nummerformaat %s\n"
87 87
88#: src/lib/ecore/ecore_getopt.c:1123 88#: src/lib/ecore/ecore_getopt.c:1127
89#, c-format 89#, c-format
90msgid "invalid choice \"%s\". Valid values are: " 90msgid "invalid choice \"%s\". Valid values are: "
91msgstr "ongeldige keuze \"%s\". Geldige waardes zijn:" 91msgstr "ongeldige keuze \"%s\". Geldige waardes zijn:"
92 92
93#: src/lib/ecore/ecore_getopt.c:1151 93#: src/lib/ecore/ecore_getopt.c:1155
94msgid "missing parameter to append.\n" 94msgid "missing parameter to append.\n"
95msgstr "parameter om toe te wijzen ontbreekt.\n" 95msgstr "parameter om toe te wijzen ontbreekt.\n"
96 96
97#: src/lib/ecore/ecore_getopt.c:1255 97#: src/lib/ecore/ecore_getopt.c:1259
98msgid "could not parse value.\n" 98msgid "could not parse value.\n"
99msgstr "kon waarde niet doorvoeren.\n" 99msgstr "kon waarde niet doorvoeren.\n"
100 100
101#: src/lib/ecore/ecore_getopt.c:1312 101#: src/lib/ecore/ecore_getopt.c:1316
102msgid "missing parameter.\n" 102msgid "missing parameter.\n"
103msgstr "paramater ontbreekt.\n" 103msgstr "paramater ontbreekt.\n"
104 104
105#: src/lib/ecore/ecore_getopt.c:1325 105#: src/lib/ecore/ecore_getopt.c:1329
106msgid "missing callback function!\n" 106msgid "missing callback function!\n"
107msgstr "ontbrekende terugroep-functie!\n" 107msgstr "ontbrekende terugroep-functie!\n"
108 108
109#: src/lib/ecore/ecore_getopt.c:1354 109#: src/lib/ecore/ecore_getopt.c:1358
110msgid "no version was defined.\n" 110msgid "no version was defined.\n"
111msgstr "geen versie was gedefinieerd.\n" 111msgstr "geen versie was gedefinieerd.\n"
112 112
113#: src/lib/ecore/ecore_getopt.c:1371 113#: src/lib/ecore/ecore_getopt.c:1375
114msgid "no copyright was defined.\n" 114msgid "no copyright was defined.\n"
115msgstr "geen copyright was gedefinieerd.\n" 115msgstr "geen copyright was gedefinieerd.\n"
116 116
117#: src/lib/ecore/ecore_getopt.c:1388 117#: src/lib/ecore/ecore_getopt.c:1392
118msgid "no license was defined.\n" 118msgid "no license was defined.\n"
119msgstr "geen licentie was gedefinieerd.\n" 119msgstr "geen licentie was gedefinieerd.\n"
120 120
121#: src/lib/ecore/ecore_getopt.c:1463 121#: src/lib/ecore/ecore_getopt.c:1467
122#, c-format 122#, c-format
123msgid "ERROR: unknown option --%s, ignored.\n" 123msgid "ERROR: unknown option --%s, ignored.\n"
124msgstr "FOUT: onbekende optie --%s, genegeerd.\n" 124msgstr "FOUT: onbekende optie --%s, genegeerd.\n"
125 125
126#: src/lib/ecore/ecore_getopt.c:1496 126#: src/lib/ecore/ecore_getopt.c:1500
127#, c-format 127#, c-format
128msgid "ERROR: option --%s requires an argument!\n" 128msgid "ERROR: option --%s requires an argument!\n"
129msgstr "FOUT: optie --%s vereist een argument!\n" 129msgstr "FOUT: optie --%s vereist een argument!\n"
130 130
131#: src/lib/ecore/ecore_getopt.c:1538 131#: src/lib/ecore/ecore_getopt.c:1542
132#, c-format 132#, c-format
133msgid "ERROR: unknown option -%c, ignored.\n" 133msgid "ERROR: unknown option -%c, ignored.\n"
134msgstr "FOUT: onbekende opties -%c, genegeerd.\n" 134msgstr "FOUT: onbekende opties -%c, genegeerd.\n"
135 135
136#: src/lib/ecore/ecore_getopt.c:1576 136#: src/lib/ecore/ecore_getopt.c:1580
137#, c-format 137#, c-format
138msgid "ERROR: option -%c requires an argument!\n" 138msgid "ERROR: option -%c requires an argument!\n"
139msgstr "FOUT: optie -%c vereist een argument!\n" 139msgstr "FOUT: optie -%c vereist een argument!\n"
140 140
141#: src/lib/ecore/ecore_getopt.c:1785 141#: src/lib/ecore/ecore_getopt.c:1789
142msgid "ERROR: no parser provided.\n" 142msgid "ERROR: no parser provided.\n"
143msgstr "FOUT: geen doorvoerder beschikbaar gesteld.\n" 143msgstr "FOUT: geen doorvoerder beschikbaar gesteld.\n"
144 144
145#: src/lib/ecore/ecore_getopt.c:1790 145#: src/lib/ecore/ecore_getopt.c:1794
146msgid "ERROR: no values provided.\n" 146msgid "ERROR: no values provided.\n"
147msgstr "FOUT: geen waarden beschikbaar gesteld.\n" 147msgstr "FOUT: geen waarden beschikbaar gesteld.\n"
148 148
149#: src/lib/ecore/ecore_getopt.c:1799 149#: src/lib/ecore/ecore_getopt.c:1803
150msgid "ERROR: no arguments provided.\n" 150msgid "ERROR: no arguments provided.\n"
151msgstr "FOUT: geen argumenten beschibaar gesteld.\n" 151msgstr "FOUT: geen argumenten beschibaar gesteld.\n"
152 152
153#: src/lib/ecore/ecore_getopt.c:1825 153#: src/lib/ecore/ecore_getopt.c:1829
154msgid "ERROR: invalid options found." 154msgid "ERROR: invalid options found."
155msgstr "FOUT: ongeldige opties gevonden." 155msgstr "FOUT: ongeldige opties gevonden."
156 156
157#: src/lib/ecore/ecore_getopt.c:1831 157#: src/lib/ecore/ecore_getopt.c:1835
158#, c-format 158#, c-format
159msgid " See --%s.\n" 159msgid " See --%s.\n"
160msgstr "Zie --%s.\n" 160msgstr "Zie --%s.\n"
161 161
162#: src/lib/ecore/ecore_getopt.c:1833 162#: src/lib/ecore/ecore_getopt.c:1837
163#, c-format 163#, c-format
164msgid " See -%c.\n" 164msgid " See -%c.\n"
165msgstr "Zie -%c.\n" 165msgstr "Zie -%c.\n"
166 166
167#: src/lib/ecore/ecore_getopt.c:1875 167#: src/lib/ecore/ecore_getopt.c:1879
168#, c-format 168#, c-format
169msgid "ERROR: incorrect geometry value '%s'\n" 169msgid "ERROR: incorrect geometry value '%s'\n"
170msgstr "Fout: foutieve wiskundige waarde '%s'\n" 170msgstr "Fout: foutieve wiskundige waarde '%s'\n"
171 171
172#: src/lib/ecore/ecore_getopt.c:1903 172#: src/lib/ecore/ecore_getopt.c:1907
173#, c-format 173#, c-format
174msgid "ERROR: incorrect size value '%s'\n" 174msgid "ERROR: incorrect size value '%s'\n"
175msgstr "FOUT: foutieve grootte-waarden '%s'\n" 175msgstr "FOUT: foutieve grootte-waarden '%s'\n"
diff --git a/libraries/ecore/po/pt.gmo b/libraries/ecore/po/pt.gmo
index 617b5cb..ff7ef91 100644
--- a/libraries/ecore/po/pt.gmo
+++ b/libraries/ecore/po/pt.gmo
Binary files differ
diff --git a/libraries/ecore/po/pt.po b/libraries/ecore/po/pt.po
index b192be9..3892c6b 100644
--- a/libraries/ecore/po/pt.po
+++ b/libraries/ecore/po/pt.po
@@ -6,171 +6,171 @@ msgid ""
6msgstr "" 6msgstr ""
7"Project-Id-Version: ecore\n" 7"Project-Id-Version: ecore\n"
8"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" 8"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
9"POT-Creation-Date: 2012-01-23 23:19+1000\n" 9"POT-Creation-Date: 2012-03-17 11:44+0900\n"
10"PO-Revision-Date: 2010-10-06 12:37-0000\n" 10"PO-Revision-Date: 2010-10-06 12:37-0000\n"
11"Last-Translator: Sérgio Marques <smarquespt@gmail.com>\n" 11"Last-Translator: Sérgio Marques <smarquespt@gmail.com>\n"
12"Language-Team: \n" 12"Language-Team: \n"
13"Language: \n"
13"MIME-Version: 1.0\n" 14"MIME-Version: 1.0\n"
14"Content-Type: text/plain; charset=utf-8\n" 15"Content-Type: text/plain; charset=utf-8\n"
15"Content-Transfer-Encoding: 8bit\n" 16"Content-Transfer-Encoding: 8bit\n"
16"Language: \n"
17"Plural-Forms: nplurals=2; plural=(n > 1);\n" 17"Plural-Forms: nplurals=2; plural=(n > 1);\n"
18"X-Poedit-Language: Portuguese\n" 18"X-Poedit-Language: Portuguese\n"
19"X-Poedit-Country: Portugal\n" 19"X-Poedit-Country: Portugal\n"
20 20
21#: src/lib/ecore/ecore_getopt.c:91 21#: src/lib/ecore/ecore_getopt.c:95
22msgid "Version:" 22msgid "Version:"
23msgstr "Versão:" 23msgstr "Versão:"
24 24
25#: src/lib/ecore/ecore_getopt.c:100 25#: src/lib/ecore/ecore_getopt.c:104
26msgid "Usage:" 26msgid "Usage:"
27msgstr "Utilização:" 27msgstr "Utilização:"
28 28
29#: src/lib/ecore/ecore_getopt.c:105 29#: src/lib/ecore/ecore_getopt.c:109
30#, c-format 30#, c-format
31msgid "%s [options]\n" 31msgid "%s [options]\n"
32msgstr "%s [opções]\n" 32msgstr "%s [opções]\n"
33 33
34#: src/lib/ecore/ecore_getopt.c:260 34#: src/lib/ecore/ecore_getopt.c:264
35msgid "Copyright:" 35msgid "Copyright:"
36msgstr "Direitos de autor:" 36msgstr "Direitos de autor:"
37 37
38#: src/lib/ecore/ecore_getopt.c:272 38#: src/lib/ecore/ecore_getopt.c:276
39msgid "License:" 39msgid "License:"
40msgstr "Licença:" 40msgstr "Licença:"
41 41
42#: src/lib/ecore/ecore_getopt.c:453 42#: src/lib/ecore/ecore_getopt.c:457
43msgid "Type: " 43msgid "Type: "
44msgstr "Tipo:" 44msgstr "Tipo:"
45 45
46#: src/lib/ecore/ecore_getopt.c:529 46#: src/lib/ecore/ecore_getopt.c:533
47msgid "Default: " 47msgid "Default: "
48msgstr "Omissão:" 48msgstr "Omissão:"
49 49
50#: src/lib/ecore/ecore_getopt.c:556 50#: src/lib/ecore/ecore_getopt.c:560
51msgid "Choices: " 51msgid "Choices: "
52msgstr "Escolhas:" 52msgstr "Escolhas:"
53 53
54#: src/lib/ecore/ecore_getopt.c:657 54#: src/lib/ecore/ecore_getopt.c:661
55msgid "Options:\n" 55msgid "Options:\n"
56msgstr "Opções:\n" 56msgstr "Opções:\n"
57 57
58#: src/lib/ecore/ecore_getopt.c:782 58#: src/lib/ecore/ecore_getopt.c:786
59#, c-format 59#, c-format
60msgid "ERROR: unknown option --%s.\n" 60msgid "ERROR: unknown option --%s.\n"
61msgstr "ERRO: opção desconhecida --%s.\n" 61msgstr "ERRO: opção desconhecida --%s.\n"
62 62
63#: src/lib/ecore/ecore_getopt.c:784 63#: src/lib/ecore/ecore_getopt.c:788
64#, c-format 64#, c-format
65msgid "ERROR: unknown option -%c.\n" 65msgid "ERROR: unknown option -%c.\n"
66msgstr "ERRO: opção desconhecida -%c.\n" 66msgstr "ERRO: opção desconhecida -%c.\n"
67 67
68#: src/lib/ecore/ecore_getopt.c:842 68#: src/lib/ecore/ecore_getopt.c:846
69msgid "ERROR: " 69msgid "ERROR: "
70msgstr "ERRO: " 70msgstr "ERRO: "
71 71
72#: src/lib/ecore/ecore_getopt.c:925 src/lib/ecore/ecore_getopt.c:1062 72#: src/lib/ecore/ecore_getopt.c:929 src/lib/ecore/ecore_getopt.c:1066
73#: src/lib/ecore/ecore_getopt.c:1078 src/lib/ecore/ecore_getopt.c:1093 73#: src/lib/ecore/ecore_getopt.c:1082 src/lib/ecore/ecore_getopt.c:1097
74#: src/lib/ecore/ecore_getopt.c:1110 src/lib/ecore/ecore_getopt.c:1157 74#: src/lib/ecore/ecore_getopt.c:1114 src/lib/ecore/ecore_getopt.c:1161
75#: src/lib/ecore/ecore_getopt.c:1277 src/lib/ecore/ecore_getopt.c:1318 75#: src/lib/ecore/ecore_getopt.c:1281 src/lib/ecore/ecore_getopt.c:1322
76msgid "value has no pointer set.\n" 76msgid "value has no pointer set.\n"
77msgstr "o valor não está definido.\n" 77msgstr "o valor não está definido.\n"
78 78
79#: src/lib/ecore/ecore_getopt.c:957 src/lib/ecore/ecore_getopt.c:1177 79#: src/lib/ecore/ecore_getopt.c:961 src/lib/ecore/ecore_getopt.c:1181
80#, c-format 80#, c-format
81msgid "unknown boolean value %s.\n" 81msgid "unknown boolean value %s.\n"
82msgstr "valor booleano desconhecido %s.\n" 82msgstr "valor booleano desconhecido %s.\n"
83 83
84#: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1265 84#: src/lib/ecore/ecore_getopt.c:1012 src/lib/ecore/ecore_getopt.c:1269
85#, c-format 85#, c-format
86msgid "invalid number format %s\n" 86msgid "invalid number format %s\n"
87msgstr "formato do número inválido %s\n" 87msgstr "formato do número inválido %s\n"
88 88
89#: src/lib/ecore/ecore_getopt.c:1123 89#: src/lib/ecore/ecore_getopt.c:1127
90#, c-format 90#, c-format
91msgid "invalid choice \"%s\". Valid values are: " 91msgid "invalid choice \"%s\". Valid values are: "
92msgstr "escolha inválida \"%s\". O valores possíveis são:" 92msgstr "escolha inválida \"%s\". O valores possíveis são:"
93 93
94#: src/lib/ecore/ecore_getopt.c:1151 94#: src/lib/ecore/ecore_getopt.c:1155
95msgid "missing parameter to append.\n" 95msgid "missing parameter to append.\n"
96msgstr "faltam os parâmetros a anexar.\n" 96msgstr "faltam os parâmetros a anexar.\n"
97 97
98#: src/lib/ecore/ecore_getopt.c:1255 98#: src/lib/ecore/ecore_getopt.c:1259
99msgid "could not parse value.\n" 99msgid "could not parse value.\n"
100msgstr "incapaz de analisar o valor.\n" 100msgstr "incapaz de analisar o valor.\n"
101 101
102#: src/lib/ecore/ecore_getopt.c:1312 102#: src/lib/ecore/ecore_getopt.c:1316
103msgid "missing parameter.\n" 103msgid "missing parameter.\n"
104msgstr "parâmetro em falta.\n" 104msgstr "parâmetro em falta.\n"
105 105
106#: src/lib/ecore/ecore_getopt.c:1325 106#: src/lib/ecore/ecore_getopt.c:1329
107msgid "missing callback function!\n" 107msgid "missing callback function!\n"
108msgstr "função de chamada em falta!\n" 108msgstr "função de chamada em falta!\n"
109 109
110#: src/lib/ecore/ecore_getopt.c:1354 110#: src/lib/ecore/ecore_getopt.c:1358
111msgid "no version was defined.\n" 111msgid "no version was defined.\n"
112msgstr "nenhuma versão definida.\n" 112msgstr "nenhuma versão definida.\n"
113 113
114#: src/lib/ecore/ecore_getopt.c:1371 114#: src/lib/ecore/ecore_getopt.c:1375
115msgid "no copyright was defined.\n" 115msgid "no copyright was defined.\n"
116msgstr "direitos de autor não definidos.\n" 116msgstr "direitos de autor não definidos.\n"
117 117
118#: src/lib/ecore/ecore_getopt.c:1388 118#: src/lib/ecore/ecore_getopt.c:1392
119msgid "no license was defined.\n" 119msgid "no license was defined.\n"
120msgstr "licença não definida.\n" 120msgstr "licença não definida.\n"
121 121
122#: src/lib/ecore/ecore_getopt.c:1463 122#: src/lib/ecore/ecore_getopt.c:1467
123#, c-format 123#, c-format
124msgid "ERROR: unknown option --%s, ignored.\n" 124msgid "ERROR: unknown option --%s, ignored.\n"
125msgstr "ERRO: opção desconhecida --%s, ignorada.\n" 125msgstr "ERRO: opção desconhecida --%s, ignorada.\n"
126 126
127#: src/lib/ecore/ecore_getopt.c:1496 127#: src/lib/ecore/ecore_getopt.c:1500
128#, c-format 128#, c-format
129msgid "ERROR: option --%s requires an argument!\n" 129msgid "ERROR: option --%s requires an argument!\n"
130msgstr "ERRO: a opção --%s requer um argumento!\n" 130msgstr "ERRO: a opção --%s requer um argumento!\n"
131 131
132#: src/lib/ecore/ecore_getopt.c:1538 132#: src/lib/ecore/ecore_getopt.c:1542
133#, c-format 133#, c-format
134msgid "ERROR: unknown option -%c, ignored.\n" 134msgid "ERROR: unknown option -%c, ignored.\n"
135msgstr "ERRO: opção desconhecida --%c, ignorada.\n" 135msgstr "ERRO: opção desconhecida --%c, ignorada.\n"
136 136
137#: src/lib/ecore/ecore_getopt.c:1576 137#: src/lib/ecore/ecore_getopt.c:1580
138#, c-format 138#, c-format
139msgid "ERROR: option -%c requires an argument!\n" 139msgid "ERROR: option -%c requires an argument!\n"
140msgstr "ERRO: a opção --%c requer um argumento!\n" 140msgstr "ERRO: a opção --%c requer um argumento!\n"
141 141
142#: src/lib/ecore/ecore_getopt.c:1785 142#: src/lib/ecore/ecore_getopt.c:1789
143msgid "ERROR: no parser provided.\n" 143msgid "ERROR: no parser provided.\n"
144msgstr "ERRO: nenhum analisador fornecido.\n" 144msgstr "ERRO: nenhum analisador fornecido.\n"
145 145
146#: src/lib/ecore/ecore_getopt.c:1790 146#: src/lib/ecore/ecore_getopt.c:1794
147msgid "ERROR: no values provided.\n" 147msgid "ERROR: no values provided.\n"
148msgstr "ERRO: nenhum valor fornecido.\n" 148msgstr "ERRO: nenhum valor fornecido.\n"
149 149
150#: src/lib/ecore/ecore_getopt.c:1799 150#: src/lib/ecore/ecore_getopt.c:1803
151msgid "ERROR: no arguments provided.\n" 151msgid "ERROR: no arguments provided.\n"
152msgstr "ERRO: nenhum argumento fornecido.\n" 152msgstr "ERRO: nenhum argumento fornecido.\n"
153 153
154#: src/lib/ecore/ecore_getopt.c:1825 154#: src/lib/ecore/ecore_getopt.c:1829
155msgid "ERROR: invalid options found." 155msgid "ERROR: invalid options found."
156msgstr "ERRO: encontradas opções inválidas." 156msgstr "ERRO: encontradas opções inválidas."
157 157
158#: src/lib/ecore/ecore_getopt.c:1831 158#: src/lib/ecore/ecore_getopt.c:1835
159#, c-format 159#, c-format
160msgid " See --%s.\n" 160msgid " See --%s.\n"
161msgstr " Veja --%s.\n" 161msgstr " Veja --%s.\n"
162 162
163#: src/lib/ecore/ecore_getopt.c:1833 163#: src/lib/ecore/ecore_getopt.c:1837
164#, c-format 164#, c-format
165msgid " See -%c.\n" 165msgid " See -%c.\n"
166msgstr " Veja -%c.\n" 166msgstr " Veja -%c.\n"
167 167
168#: src/lib/ecore/ecore_getopt.c:1875 168#: src/lib/ecore/ecore_getopt.c:1879
169#, c-format 169#, c-format
170msgid "ERROR: incorrect geometry value '%s'\n" 170msgid "ERROR: incorrect geometry value '%s'\n"
171msgstr "ERRO: valor geométrico incorreto \"%s\"\n" 171msgstr "ERRO: valor geométrico incorreto \"%s\"\n"
172 172
173#: src/lib/ecore/ecore_getopt.c:1903 173#: src/lib/ecore/ecore_getopt.c:1907
174#, c-format 174#, c-format
175msgid "ERROR: incorrect size value '%s'\n" 175msgid "ERROR: incorrect size value '%s'\n"
176msgstr "ERRO: tamanho incorreto \"%s\"\n" 176msgstr "ERRO: tamanho incorreto \"%s\"\n"
diff --git a/libraries/ecore/po/sl.gmo b/libraries/ecore/po/sl.gmo
index b826ffc..4c4ca71 100644
--- a/libraries/ecore/po/sl.gmo
+++ b/libraries/ecore/po/sl.gmo
Binary files differ
diff --git a/libraries/ecore/po/sl.po b/libraries/ecore/po/sl.po
index fef52ac..f16b172 100644
--- a/libraries/ecore/po/sl.po
+++ b/libraries/ecore/po/sl.po
@@ -8,168 +8,168 @@ msgid ""
8msgstr "" 8msgstr ""
9"Project-Id-Version: ecore 1.0\n" 9"Project-Id-Version: ecore 1.0\n"
10"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" 10"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
11"POT-Creation-Date: 2012-01-23 23:19+1000\n" 11"POT-Creation-Date: 2012-03-17 11:44+0900\n"
12"PO-Revision-Date: 2011-02-24 16:54+0100\n" 12"PO-Revision-Date: 2011-02-24 16:54+0100\n"
13"Last-Translator: r1to <renato.rener@gmail.com>\n" 13"Last-Translator: r1to <renato.rener@gmail.com>\n"
14"Language-Team: Slovenian <sl@li.org>\n" 14"Language-Team: Slovenian <sl@li.org>\n"
15"Language: sl\n"
15"MIME-Version: 1.0\n" 16"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n" 17"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n" 18"Content-Transfer-Encoding: 8bit\n"
18"Language: sl\n"
19 19
20#: src/lib/ecore/ecore_getopt.c:91 20#: src/lib/ecore/ecore_getopt.c:95
21msgid "Version:" 21msgid "Version:"
22msgstr "Različica" 22msgstr "Različica"
23 23
24#: src/lib/ecore/ecore_getopt.c:100 24#: src/lib/ecore/ecore_getopt.c:104
25msgid "Usage:" 25msgid "Usage:"
26msgstr "Uporaba:" 26msgstr "Uporaba:"
27 27
28#: src/lib/ecore/ecore_getopt.c:105 28#: src/lib/ecore/ecore_getopt.c:109
29#, c-format 29#, c-format
30msgid "%s [options]\n" 30msgid "%s [options]\n"
31msgstr "%s·[možnosti]\n" 31msgstr "%s·[možnosti]\n"
32 32
33#: src/lib/ecore/ecore_getopt.c:260 33#: src/lib/ecore/ecore_getopt.c:264
34msgid "Copyright:" 34msgid "Copyright:"
35msgstr "Avtorstvo:" 35msgstr "Avtorstvo:"
36 36
37#: src/lib/ecore/ecore_getopt.c:272 37#: src/lib/ecore/ecore_getopt.c:276
38msgid "License:" 38msgid "License:"
39msgstr "Licenca:" 39msgstr "Licenca:"
40 40
41#: src/lib/ecore/ecore_getopt.c:453 41#: src/lib/ecore/ecore_getopt.c:457
42msgid "Type: " 42msgid "Type: "
43msgstr "Vrsta:·" 43msgstr "Vrsta:·"
44 44
45#: src/lib/ecore/ecore_getopt.c:529 45#: src/lib/ecore/ecore_getopt.c:533
46msgid "Default: " 46msgid "Default: "
47msgstr "Privzeto:·" 47msgstr "Privzeto:·"
48 48
49#: src/lib/ecore/ecore_getopt.c:556 49#: src/lib/ecore/ecore_getopt.c:560
50msgid "Choices: " 50msgid "Choices: "
51msgstr "Izbire:·" 51msgstr "Izbire:·"
52 52
53#: src/lib/ecore/ecore_getopt.c:657 53#: src/lib/ecore/ecore_getopt.c:661
54msgid "Options:\n" 54msgid "Options:\n"
55msgstr "Možnosti:\n" 55msgstr "Možnosti:\n"
56 56
57#: src/lib/ecore/ecore_getopt.c:782 57#: src/lib/ecore/ecore_getopt.c:786
58#, c-format 58#, c-format
59msgid "ERROR: unknown option --%s.\n" 59msgid "ERROR: unknown option --%s.\n"
60msgstr "NAPAKA:·Neznana možnost·--%s.\n" 60msgstr "NAPAKA:·Neznana možnost·--%s.\n"
61 61
62#: src/lib/ecore/ecore_getopt.c:784 62#: src/lib/ecore/ecore_getopt.c:788
63#, c-format 63#, c-format
64msgid "ERROR: unknown option -%c.\n" 64msgid "ERROR: unknown option -%c.\n"
65msgstr "NAPAKA:·neznana možnost·-%c.\n" 65msgstr "NAPAKA:·neznana možnost·-%c.\n"
66 66
67#: src/lib/ecore/ecore_getopt.c:842 67#: src/lib/ecore/ecore_getopt.c:846
68msgid "ERROR: " 68msgid "ERROR: "
69msgstr "NAPAKA:" 69msgstr "NAPAKA:"
70 70
71#: src/lib/ecore/ecore_getopt.c:925 src/lib/ecore/ecore_getopt.c:1062 71#: src/lib/ecore/ecore_getopt.c:929 src/lib/ecore/ecore_getopt.c:1066
72#: src/lib/ecore/ecore_getopt.c:1078 src/lib/ecore/ecore_getopt.c:1093 72#: src/lib/ecore/ecore_getopt.c:1082 src/lib/ecore/ecore_getopt.c:1097
73#: src/lib/ecore/ecore_getopt.c:1110 src/lib/ecore/ecore_getopt.c:1157 73#: src/lib/ecore/ecore_getopt.c:1114 src/lib/ecore/ecore_getopt.c:1161
74#: src/lib/ecore/ecore_getopt.c:1277 src/lib/ecore/ecore_getopt.c:1318 74#: src/lib/ecore/ecore_getopt.c:1281 src/lib/ecore/ecore_getopt.c:1322
75msgid "value has no pointer set.\n" 75msgid "value has no pointer set.\n"
76msgstr "vrednost nima nastavljenega kazalnika.\n" 76msgstr "vrednost nima nastavljenega kazalnika.\n"
77 77
78#: src/lib/ecore/ecore_getopt.c:957 src/lib/ecore/ecore_getopt.c:1177 78#: src/lib/ecore/ecore_getopt.c:961 src/lib/ecore/ecore_getopt.c:1181
79#, c-format 79#, c-format
80msgid "unknown boolean value %s.\n" 80msgid "unknown boolean value %s.\n"
81msgstr "neznana Boolova vrednost·%s.\n" 81msgstr "neznana Boolova vrednost·%s.\n"
82 82
83#: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1265 83#: src/lib/ecore/ecore_getopt.c:1012 src/lib/ecore/ecore_getopt.c:1269
84#, c-format 84#, c-format
85msgid "invalid number format %s\n" 85msgid "invalid number format %s\n"
86msgstr "napačen·format števila·%s\n" 86msgstr "napačen·format števila·%s\n"
87 87
88#: src/lib/ecore/ecore_getopt.c:1123 88#: src/lib/ecore/ecore_getopt.c:1127
89#, c-format 89#, c-format
90msgid "invalid choice \"%s\". Valid values are: " 90msgid "invalid choice \"%s\". Valid values are: "
91msgstr "napačna izbira·\"%s\".·Pravilne izbire so:·" 91msgstr "napačna izbira·\"%s\".·Pravilne izbire so:·"
92 92
93#: src/lib/ecore/ecore_getopt.c:1151 93#: src/lib/ecore/ecore_getopt.c:1155
94msgid "missing parameter to append.\n" 94msgid "missing parameter to append.\n"
95msgstr "manjka·parameter·za dodajo.\n" 95msgstr "manjka·parameter·za dodajo.\n"
96 96
97#: src/lib/ecore/ecore_getopt.c:1255 97#: src/lib/ecore/ecore_getopt.c:1259
98msgid "could not parse value.\n" 98msgid "could not parse value.\n"
99msgstr "vrednosti ni bilo možno razčleniti.\n" 99msgstr "vrednosti ni bilo možno razčleniti.\n"
100 100
101#: src/lib/ecore/ecore_getopt.c:1312 101#: src/lib/ecore/ecore_getopt.c:1316
102msgid "missing parameter.\n" 102msgid "missing parameter.\n"
103msgstr "manjkajoči·parameter.\n" 103msgstr "manjkajoči·parameter.\n"
104 104
105#: src/lib/ecore/ecore_getopt.c:1325 105#: src/lib/ecore/ecore_getopt.c:1329
106msgid "missing callback function!\n" 106msgid "missing callback function!\n"
107msgstr "manjkajoča povratno-zasilna funkcija !\n" 107msgstr "manjkajoča povratno-zasilna funkcija !\n"
108 108
109#: src/lib/ecore/ecore_getopt.c:1354 109#: src/lib/ecore/ecore_getopt.c:1358
110msgid "no version was defined.\n" 110msgid "no version was defined.\n"
111msgstr "definirana ni bila nobena različica.\n" 111msgstr "definirana ni bila nobena različica.\n"
112 112
113#: src/lib/ecore/ecore_getopt.c:1371 113#: src/lib/ecore/ecore_getopt.c:1375
114msgid "no copyright was defined.\n" 114msgid "no copyright was defined.\n"
115msgstr "definirano ni bilo nobeno avtorstvo.\n" 115msgstr "definirano ni bilo nobeno avtorstvo.\n"
116 116
117#: src/lib/ecore/ecore_getopt.c:1388 117#: src/lib/ecore/ecore_getopt.c:1392
118msgid "no license was defined.\n" 118msgid "no license was defined.\n"
119msgstr "definirana ni bila nobena licenca.\n" 119msgstr "definirana ni bila nobena licenca.\n"
120 120
121#: src/lib/ecore/ecore_getopt.c:1463 121#: src/lib/ecore/ecore_getopt.c:1467
122#, c-format 122#, c-format
123msgid "ERROR: unknown option --%s, ignored.\n" 123msgid "ERROR: unknown option --%s, ignored.\n"
124msgstr "NAPAKA:·neznana možnost·--%s,·prezrto.\n" 124msgstr "NAPAKA:·neznana možnost·--%s,·prezrto.\n"
125 125
126#: src/lib/ecore/ecore_getopt.c:1496 126#: src/lib/ecore/ecore_getopt.c:1500
127#, c-format 127#, c-format
128msgid "ERROR: option --%s requires an argument!\n" 128msgid "ERROR: option --%s requires an argument!\n"
129msgstr "NAPAKA:·možnost·--%s·zahteva argument!\n" 129msgstr "NAPAKA:·možnost·--%s·zahteva argument!\n"
130 130
131#: src/lib/ecore/ecore_getopt.c:1538 131#: src/lib/ecore/ecore_getopt.c:1542
132#, c-format 132#, c-format
133msgid "ERROR: unknown option -%c, ignored.\n" 133msgid "ERROR: unknown option -%c, ignored.\n"
134msgstr "NAPAKA:·neznana možnost·-%c,·prezrto.\n" 134msgstr "NAPAKA:·neznana možnost·-%c,·prezrto.\n"
135 135
136#: src/lib/ecore/ecore_getopt.c:1576 136#: src/lib/ecore/ecore_getopt.c:1580
137#, c-format 137#, c-format
138msgid "ERROR: option -%c requires an argument!\n" 138msgid "ERROR: option -%c requires an argument!\n"
139msgstr "NAPAKA:·možnost·-%c zahteva argument!\n" 139msgstr "NAPAKA:·možnost·-%c zahteva argument!\n"
140 140
141#: src/lib/ecore/ecore_getopt.c:1785 141#: src/lib/ecore/ecore_getopt.c:1789
142msgid "ERROR: no parser provided.\n" 142msgid "ERROR: no parser provided.\n"
143msgstr "NAPAKA:·ni podan razčlenjevalnik.\n" 143msgstr "NAPAKA:·ni podan razčlenjevalnik.\n"
144 144
145#: src/lib/ecore/ecore_getopt.c:1790 145#: src/lib/ecore/ecore_getopt.c:1794
146msgid "ERROR: no values provided.\n" 146msgid "ERROR: no values provided.\n"
147msgstr "NAPAKA::·ni podanih vrednosti.\n" 147msgstr "NAPAKA::·ni podanih vrednosti.\n"
148 148
149#: src/lib/ecore/ecore_getopt.c:1799 149#: src/lib/ecore/ecore_getopt.c:1803
150msgid "ERROR: no arguments provided.\n" 150msgid "ERROR: no arguments provided.\n"
151msgstr "NAPAKA::·ni podanih argumentov.\n" 151msgstr "NAPAKA::·ni podanih argumentov.\n"
152 152
153#: src/lib/ecore/ecore_getopt.c:1825 153#: src/lib/ecore/ecore_getopt.c:1829
154msgid "ERROR: invalid options found." 154msgid "ERROR: invalid options found."
155msgstr "NAPAKA::·najdene nepravilne možnosti" 155msgstr "NAPAKA::·najdene nepravilne možnosti"
156 156
157#: src/lib/ecore/ecore_getopt.c:1831 157#: src/lib/ecore/ecore_getopt.c:1835
158#, c-format 158#, c-format
159msgid " See --%s.\n" 159msgid " See --%s.\n"
160msgstr "·Glej·--%s.\n" 160msgstr "·Glej·--%s.\n"
161 161
162#: src/lib/ecore/ecore_getopt.c:1833 162#: src/lib/ecore/ecore_getopt.c:1837
163#, c-format 163#, c-format
164msgid " See -%c.\n" 164msgid " See -%c.\n"
165msgstr "·Glej·-%c.\n" 165msgstr "·Glej·-%c.\n"
166 166
167#: src/lib/ecore/ecore_getopt.c:1875 167#: src/lib/ecore/ecore_getopt.c:1879
168#, c-format 168#, c-format
169msgid "ERROR: incorrect geometry value '%s'\n" 169msgid "ERROR: incorrect geometry value '%s'\n"
170msgstr "NAPAKA::·nepravilna geometrijska vrednost·'%s'\n" 170msgstr "NAPAKA::·nepravilna geometrijska vrednost·'%s'\n"
171 171
172#: src/lib/ecore/ecore_getopt.c:1903 172#: src/lib/ecore/ecore_getopt.c:1907
173#, c-format 173#, c-format
174msgid "ERROR: incorrect size value '%s'\n" 174msgid "ERROR: incorrect size value '%s'\n"
175msgstr "NAPAKA::·nepravilna vrednost velikosti·'%s'\n" 175msgstr "NAPAKA::·nepravilna vrednost velikosti·'%s'\n"
diff --git a/libraries/ecore/src/Makefile.in b/libraries/ecore/src/Makefile.in
index bf6f05c..51ad5e0 100644
--- a/libraries/ecore/src/Makefile.in
+++ b/libraries/ecore/src/Makefile.in
@@ -49,16 +49,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
49 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 49 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
50 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 50 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
51 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 51 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
52 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 52 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
53 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 53 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
54 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 54 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
55 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 55 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
56 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 56 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
57 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 57 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
58 $(top_srcdir)/configure.ac
59am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 58am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
60 $(ACLOCAL_M4) 59 $(ACLOCAL_M4)
61mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 60mkinstalldirs = $(install_sh) -d
62CONFIG_HEADER = $(top_builddir)/config.h 61CONFIG_HEADER = $(top_builddir)/config.h
63CONFIG_CLEAN_FILES = 62CONFIG_CLEAN_FILES =
64CONFIG_CLEAN_VPATH_FILES = 63CONFIG_CLEAN_VPATH_FILES =
@@ -174,6 +173,8 @@ EVAS_LIBS = @EVAS_LIBS@
174EVIL_CFLAGS = @EVIL_CFLAGS@ 173EVIL_CFLAGS = @EVIL_CFLAGS@
175EVIL_LIBS = @EVIL_LIBS@ 174EVIL_LIBS = @EVIL_LIBS@
176EXEEXT = @EXEEXT@ 175EXEEXT = @EXEEXT@
176EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
177EXOTIC_LIBS = @EXOTIC_LIBS@
177FGREP = @FGREP@ 178FGREP = @FGREP@
178GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 179GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
179GLIB_CFLAGS = @GLIB_CFLAGS@ 180GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -229,6 +230,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
229PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 230PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
230PIXMAN_LIBS = @PIXMAN_LIBS@ 231PIXMAN_LIBS = @PIXMAN_LIBS@
231PKG_CONFIG = @PKG_CONFIG@ 232PKG_CONFIG = @PKG_CONFIG@
233PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
234PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
232POSUB = @POSUB@ 235POSUB = @POSUB@
233RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
234SCIM_CFLAGS = @SCIM_CFLAGS@ 237SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -239,6 +242,7 @@ SDL_LIBS = @SDL_LIBS@
239SED = @SED@ 242SED = @SED@
240SET_MAKE = @SET_MAKE@ 243SET_MAKE = @SET_MAKE@
241SHELL = @SHELL@ 244SHELL = @SHELL@
245SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
242SSL_CFLAGS = @SSL_CFLAGS@ 246SSL_CFLAGS = @SSL_CFLAGS@
243SSL_LIBS = @SSL_LIBS@ 247SSL_LIBS = @SSL_LIBS@
244STRIP = @STRIP@ 248STRIP = @STRIP@
diff --git a/libraries/ecore/src/bin/Makefile.in b/libraries/ecore/src/bin/Makefile.in
index 72d2bfd..aabc6ab 100644
--- a/libraries/ecore/src/bin/Makefile.in
+++ b/libraries/ecore/src/bin/Makefile.in
@@ -49,16 +49,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
49 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 49 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
50 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 50 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
51 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 51 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
52 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 52 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
53 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 53 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
54 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 54 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
55 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 55 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
56 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 56 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
57 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 57 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
58 $(top_srcdir)/configure.ac
59am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 58am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
60 $(ACLOCAL_M4) 59 $(ACLOCAL_M4)
61mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 60mkinstalldirs = $(install_sh) -d
62CONFIG_HEADER = $(top_builddir)/config.h 61CONFIG_HEADER = $(top_builddir)/config.h
63CONFIG_CLEAN_FILES = 62CONFIG_CLEAN_FILES =
64CONFIG_CLEAN_VPATH_FILES = 63CONFIG_CLEAN_VPATH_FILES =
@@ -168,6 +167,8 @@ EVAS_LIBS = @EVAS_LIBS@
168EVIL_CFLAGS = @EVIL_CFLAGS@ 167EVIL_CFLAGS = @EVIL_CFLAGS@
169EVIL_LIBS = @EVIL_LIBS@ 168EVIL_LIBS = @EVIL_LIBS@
170EXEEXT = @EXEEXT@ 169EXEEXT = @EXEEXT@
170EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
171EXOTIC_LIBS = @EXOTIC_LIBS@
171FGREP = @FGREP@ 172FGREP = @FGREP@
172GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 173GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
173GLIB_CFLAGS = @GLIB_CFLAGS@ 174GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -223,6 +224,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
223PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 224PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
224PIXMAN_LIBS = @PIXMAN_LIBS@ 225PIXMAN_LIBS = @PIXMAN_LIBS@
225PKG_CONFIG = @PKG_CONFIG@ 226PKG_CONFIG = @PKG_CONFIG@
227PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
228PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
226POSUB = @POSUB@ 229POSUB = @POSUB@
227RANLIB = @RANLIB@ 230RANLIB = @RANLIB@
228SCIM_CFLAGS = @SCIM_CFLAGS@ 231SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -233,6 +236,7 @@ SDL_LIBS = @SDL_LIBS@
233SED = @SED@ 236SED = @SED@
234SET_MAKE = @SET_MAKE@ 237SET_MAKE = @SET_MAKE@
235SHELL = @SHELL@ 238SHELL = @SHELL@
239SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
236SSL_CFLAGS = @SSL_CFLAGS@ 240SSL_CFLAGS = @SSL_CFLAGS@
237SSL_LIBS = @SSL_LIBS@ 241SSL_LIBS = @SSL_LIBS@
238STRIP = @STRIP@ 242STRIP = @STRIP@
diff --git a/libraries/ecore/src/examples/Makefile.in b/libraries/ecore/src/examples/Makefile.in
index 7fac88c..5b984ed 100644
--- a/libraries/ecore/src/examples/Makefile.in
+++ b/libraries/ecore/src/examples/Makefile.in
@@ -81,16 +81,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
81 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 81 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
82 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 82 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
83 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 83 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
84 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 84 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
85 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 85 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
86 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 86 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
87 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 87 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
88 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 88 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
89 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 89 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
90 $(top_srcdir)/configure.ac
91am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 90am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
92 $(ACLOCAL_M4) 91 $(ACLOCAL_M4)
93mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 92mkinstalldirs = $(install_sh) -d
94CONFIG_HEADER = $(top_builddir)/config.h 93CONFIG_HEADER = $(top_builddir)/config.h
95CONFIG_CLEAN_FILES = 94CONFIG_CLEAN_FILES =
96CONFIG_CLEAN_VPATH_FILES = 95CONFIG_CLEAN_VPATH_FILES =
@@ -408,6 +407,8 @@ EVAS_LIBS = @EVAS_LIBS@
408EVIL_CFLAGS = @EVIL_CFLAGS@ 407EVIL_CFLAGS = @EVIL_CFLAGS@
409EVIL_LIBS = @EVIL_LIBS@ 408EVIL_LIBS = @EVIL_LIBS@
410EXEEXT = @EXEEXT@ 409EXEEXT = @EXEEXT@
410EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
411EXOTIC_LIBS = @EXOTIC_LIBS@
411FGREP = @FGREP@ 412FGREP = @FGREP@
412GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 413GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
413GLIB_CFLAGS = @GLIB_CFLAGS@ 414GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -463,6 +464,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
463PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 464PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
464PIXMAN_LIBS = @PIXMAN_LIBS@ 465PIXMAN_LIBS = @PIXMAN_LIBS@
465PKG_CONFIG = @PKG_CONFIG@ 466PKG_CONFIG = @PKG_CONFIG@
467PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
468PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
466POSUB = @POSUB@ 469POSUB = @POSUB@
467RANLIB = @RANLIB@ 470RANLIB = @RANLIB@
468SCIM_CFLAGS = @SCIM_CFLAGS@ 471SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -473,6 +476,7 @@ SDL_LIBS = @SDL_LIBS@
473SED = @SED@ 476SED = @SED@
474SET_MAKE = @SET_MAKE@ 477SET_MAKE = @SET_MAKE@
475SHELL = @SHELL@ 478SHELL = @SHELL@
479SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
476SSL_CFLAGS = @SSL_CFLAGS@ 480SSL_CFLAGS = @SSL_CFLAGS@
477SSL_LIBS = @SSL_LIBS@ 481SSL_LIBS = @SSL_LIBS@
478STRIP = @STRIP@ 482STRIP = @STRIP@
diff --git a/libraries/ecore/src/examples/ecore_evas_basics_example.c b/libraries/ecore/src/examples/ecore_evas_basics_example.c
index 5f0231f..942f9c6 100644
--- a/libraries/ecore/src/examples/ecore_evas_basics_example.c
+++ b/libraries/ecore/src/examples/ecore_evas_basics_example.c
@@ -77,10 +77,7 @@ main(void)
77 evas_object_show(bg); 77 evas_object_show(bg);
78 ecore_evas_object_associate(ee, bg, ECORE_EVAS_OBJECT_ASSOCIATE_BASE); 78 ecore_evas_object_associate(ee, bg, ECORE_EVAS_OBJECT_ASSOCIATE_BASE);
79 79
80 ecore_main_fd_handler_add(STDIN_FILENO, 80 ecore_main_fd_handler_add(STDIN_FILENO, ECORE_FD_READ, _stdin_cb, NULL, NULL, NULL);
81 ECORE_FD_READ | ECORE_FD_ERROR,
82 _stdin_cb,
83 NULL, NULL, NULL);
84 81
85 ecore_main_loop_begin(); 82 ecore_main_loop_begin();
86 83
diff --git a/libraries/ecore/src/lib/Makefile.in b/libraries/ecore/src/lib/Makefile.in
index 09271c2..a5fd01f 100644
--- a/libraries/ecore/src/lib/Makefile.in
+++ b/libraries/ecore/src/lib/Makefile.in
@@ -65,16 +65,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
65 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 65 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
66 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 66 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
67 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 67 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
68 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 68 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
69 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 69 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
70 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 70 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
71 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 71 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
72 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 72 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
73 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 73 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
74 $(top_srcdir)/configure.ac
75am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 74am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
76 $(ACLOCAL_M4) 75 $(ACLOCAL_M4)
77mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 76mkinstalldirs = $(install_sh) -d
78CONFIG_HEADER = $(top_builddir)/config.h 77CONFIG_HEADER = $(top_builddir)/config.h
79CONFIG_CLEAN_FILES = 78CONFIG_CLEAN_FILES =
80CONFIG_CLEAN_VPATH_FILES = 79CONFIG_CLEAN_VPATH_FILES =
@@ -193,6 +192,8 @@ EVAS_LIBS = @EVAS_LIBS@
193EVIL_CFLAGS = @EVIL_CFLAGS@ 192EVIL_CFLAGS = @EVIL_CFLAGS@
194EVIL_LIBS = @EVIL_LIBS@ 193EVIL_LIBS = @EVIL_LIBS@
195EXEEXT = @EXEEXT@ 194EXEEXT = @EXEEXT@
195EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
196EXOTIC_LIBS = @EXOTIC_LIBS@
196FGREP = @FGREP@ 197FGREP = @FGREP@
197GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 198GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
198GLIB_CFLAGS = @GLIB_CFLAGS@ 199GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -248,6 +249,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
248PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 249PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
249PIXMAN_LIBS = @PIXMAN_LIBS@ 250PIXMAN_LIBS = @PIXMAN_LIBS@
250PKG_CONFIG = @PKG_CONFIG@ 251PKG_CONFIG = @PKG_CONFIG@
252PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
253PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
251POSUB = @POSUB@ 254POSUB = @POSUB@
252RANLIB = @RANLIB@ 255RANLIB = @RANLIB@
253SCIM_CFLAGS = @SCIM_CFLAGS@ 256SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -258,6 +261,7 @@ SDL_LIBS = @SDL_LIBS@
258SED = @SED@ 261SED = @SED@
259SET_MAKE = @SET_MAKE@ 262SET_MAKE = @SET_MAKE@
260SHELL = @SHELL@ 263SHELL = @SHELL@
264SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
261SSL_CFLAGS = @SSL_CFLAGS@ 265SSL_CFLAGS = @SSL_CFLAGS@
262SSL_LIBS = @SSL_LIBS@ 266SSL_LIBS = @SSL_LIBS@
263STRIP = @STRIP@ 267STRIP = @STRIP@
diff --git a/libraries/ecore/src/lib/ecore/Ecore.h b/libraries/ecore/src/lib/ecore/Ecore.h
index fbe4dda..eace560 100644
--- a/libraries/ecore/src/lib/ecore/Ecore.h
+++ b/libraries/ecore/src/lib/ecore/Ecore.h
@@ -9,7 +9,7 @@
9 @mainpage Ecore 9 @mainpage Ecore
10 10
11 @version 1.1 11 @version 1.1
12 @date 2000-2011 12 @date 2000-2012
13 13
14 Please see the @ref authors page for contact details. 14 Please see the @ref authors page for contact details.
15 15
@@ -22,7 +22,7 @@
22 @li @ref Ecore_Main_Loop_Group 22 @li @ref Ecore_Main_Loop_Group
23 @li @ref Ecore_File_Group 23 @li @ref Ecore_File_Group
24 @li @ref Ecore_Con_Group 24 @li @ref Ecore_Con_Group
25 @li @link Ecore_Evas.h Ecore_Evas - Evas convenience functions. @endlink 25 @li @ref Ecore_Evas_Group
26 @li @ref Ecore_FB_Group 26 @li @ref Ecore_FB_Group
27 @li @link Ecore_Ipc.h Ecore_IPC - Inter Process Communication functions. @endlink 27 @li @link Ecore_Ipc.h Ecore_IPC - Inter Process Communication functions. @endlink
28 @li @link Ecore_X.h Ecore_X - X Windows System wrapper. @endlink 28 @li @link Ecore_X.h Ecore_X - X Windows System wrapper. @endlink
@@ -35,21 +35,31 @@
35 pkgconfig (.pc) files are installed for every ecore module. 35 pkgconfig (.pc) files are installed for every ecore module.
36 Thus, to compile using any of them, you can use something like the following: 36 Thus, to compile using any of them, you can use something like the following:
37 37
38 @verbatim 38@verbatim
39 gcc *.c $(pkg-config ecore ecore-$x ecore-$y [...] --cflags --libs) 39gcc *.c $(pkg-config ecore ecore-$x ecore-$y [...] --cflags --libs)
40 @endverbatim 40@endverbatim
41 41
42 @section install How is it installed? 42 @section install How is it installed?
43 43
44 Suggested configure options for evas for a Linux desktop X display: 44 Suggested configure options for ecore for a Linux desktop X display
45 with OpenGL and Software support, communication (networking) and
46 IPC (inter process communication):
45 47
46 @verbatim 48@verbatim
47 ./configure \ 49./configure \
48 make 50 --enable-ecore-con \
49 su - 51 --enable-ecore-ipc \
50 ... 52 --enable-ecore-file \
51 make install 53 --enable-ecore-input \
52 @endverbatim 54 --enable-ecore-input-evas \
55 --enable-ecore-x \
56 --enable-ecore-evas \
57 --enable-ecore-evas-software-buffer \
58 --enable-ecore-evas-software-x11 \
59 --enable-ecore-evas-opengl-x11
60make
61sudo make install
62@endverbatim
53 63
54 */ 64 */
55 65
@@ -112,140 +122,175 @@
112 */ 122 */
113 123
114/** 124/**
115 @page Ecore_Main_Loop_Page The Ecore Main Loop 125 * @page Ecore_Main_Loop_Page The Ecore Main Loop
116 126 *
117 @section intro What is Ecore? 127 * @section intro What is Ecore?
118 128 *
119 Ecore is a clean and tiny event loop library with many modules to do lots of 129 * Ecore is a clean and tiny event loop library with many modules to do lots of
120 convenient things for a programmer, to save time and effort. 130 * convenient things for a programmer, to save time and effort. It's small and
121 131 * lean, designed to work from embedded systems all the way up to large and
122 It's small and lean, designed to work on embedded systems all the way to 132 * powerful multi-cpu workstations. The main loop has a number of primitives to
123 large and powerful multi-cpu workstations. It serialises all system signals, 133 * be used with its main loop. It serializes all the primitives and allows for
124 events etc. into a single event queue, that is easily processed without 134 * great responsiveness without the need for threads(or any other concurrency).
125 needing to worry about concurrency. A properly written, event-driven program 135 *
126 using this kind of programming doesn't need threads, nor has to worry about 136 * @subsection timers Timers
127 concurrency. It turns a program into a state machine, and makes it very 137 *
128 robust and easy to follow. 138 * Timers serve two main purposes: doing something at a specified time and
129 139 * repeatedly doing something with a set interval.
130 Ecore gives you other handy primitives, such as timers to tick over for you 140 * @see Ecore_Timer_Group
131 and call specified functions at particular times so the programmer can use 141 *
132 this to do things, like animate, or time out on connections or tasks that take 142 * @subsection poolers Poolers
133 too long etc. 143 *
134 144 * Poolers allow for pooling to be centralized into a single place therefore
135 Idle handlers are provided too, as well as calls on entering an idle state 145 * alleviating the need for different parts of the program to wake up at
136 (often a very good time to update the state of the program). All events that 146 * different times to do pooling, thereby making the code simpler and more
137 enter the system are passed to specific callback functions that the program 147 * efficient.
138 sets up to handle those events. Handling them is simple and other Ecore 148 * @see Ecore_Poller_Group
139 modules produce more events on the queue, coming from other sources such as 149 *
140 file descriptors etc. 150 * @subsection idler Idlers
141 151 *
142 Ecore also lets you have functions called when file descriptors become active 152 * There are three types of idlers, enterers, idlers(proper) and exiters, they
143 for reading or writing, allowing for streamlined, non-blocking IO. 153 * are called, respectively, when the program is about to enter an idle state,
144 154 * when the program is idle and when the program is leaving an idle state. Idler
145 Here is an example of a simple program and its basic event loop flow: 155 * enterers are usually a good place to update the program state. Proper idlers
146 156 * are the appropriate place to do heavy computational tasks thereby using what
147 @image html prog_flow.png 157 * would otherwise be wasted CPU cycles. Exiters are the perfect place to do
148 @image latex prog_flow.eps width=\textwidth 158 * anything your program should do just before processing events(also timers,
149 159 * poolers, file descriptor handlers and animators)
150 160 * @see Ecore_Idle_Group
151 161 *
152 @section work How does Ecore work? 162 * @subsection fd_handler File descriptor handlers
153 163 *
154 Ecore is very easy to learn and use. All the function calls are designed to 164 * File descriptor handlers allow you to monitor when there is data available to
155 be easy to remember, explicit in describing what they do, and heavily 165 * read on file descriptors, when writing will not block or if there was an
156 name-spaced. Ecore programs can start and be very simple. 166 * error. Any valid file descriptor can be used with this API, regardless of if
157 167 * was gotten with an OS specific API or from ecore.
158 For example: 168 * @see Ecore_FD_Handler_Group
159 169 *
160 @code 170 * @subsection animators Animators
161 #include <Ecore.h> 171 *
162 172 * Ecore provides a facility called animators, so named since the intended use
163 int 173 * was in animations, that facilitates knowing what percentage of a given
164 main(int argc, const char **argv) 174 * interval has elapsed. This is perfect for performing animations, but is not
165 { 175 * limited to that use, it can, for example, also be used to create a progress
166 ecore_init(); 176 * bar.
167 ecore_app_args_set(argc, argv); 177 * @see Ecore_Animator_Group
168 ecore_main_loop_begin(); 178 *
169 ecore_shutdown(); 179 * @subsection ev_handlers Event handlers
170 return 0; 180 *
171 } 181 * Event handlers are, arguably, the most important feature of the ecore main
172 @endcode 182 * loop, they are what allows the programmer to easily handle user interaction.
173 183 * Events however are not only things the user does, events can represent
174 This program is very simple and doesn't check for errors, but it does start up 184 * anything for which a type is created.
175 and begin a main loop waiting for events or timers to tick off. This program 185 * @see Ecore_Event_Group
176 doesn't set up any, but now we can expand on this simple program a little 186 *
177 more by adding some event handlers and timers. 187 * All of these primitives are discussed in more detail in their respective
178 188 * pages linked above.
179 @code 189 *
180 #include <Ecore.h> 190 * Here is a diagram of the main loop flow of a simple program:
181 191 *
182 Ecore_Timer *timer1 = NULL; 192 * @image html prog_flow.png
183 Ecore_Event_Handler *handler1 = NULL; 193 * @image latex prog_flow.eps width=\textwidth
184 double start_time = 0.0; 194 *
185 195 *
186 int 196 *
187 timer_func(void *data) 197 * @section work How does Ecore work?
188 { 198 *
189 printf("Tick timer. Sec: %3.2f\n", ecore_time_get() - start_time); 199 * Ecore is very easy to learn and use. All the function calls are designed to
190 return 1; 200 * be easy to remember, explicit in describing what they do, and heavily
191 } 201 * name-spaced. Ecore programs can start and be very simple.
192 202 *
193 int 203 * For example:
194 exit_func(void *data, int ev_type, void *ev) 204 *
195 { 205 * @code
196 Ecore_Event_Signal_Exit *e; 206 * #include <Ecore.h>
197 207 *
198 e = (Ecore_Event_Signal_Exit *)ev; 208 * int
199 if (e->interrupt) printf("Exit: interrupt\n"); 209 * main(int argc, const char **argv)
200 else if (e->quit) printf("Exit: quit\n"); 210 * {
201 else if (e->terminate) printf("Exit: terminate\n"); 211 * ecore_init();
202 ecore_main_loop_quit(); 212 * ecore_app_args_set(argc, argv);
203 return 1; 213 * ecore_main_loop_begin();
204 } 214 * ecore_shutdown();
205 215 * return 0;
206 int 216 * }
207 main(int argc, const char **argv) 217 * @endcode
208 { 218 *
209 ecore_init(); 219 * This program is very simple and doesn't check for errors, but it does start up
210 ecore_app_args_set(argc, argv); 220 * and begin a main loop waiting for events or timers to tick off. This program
211 start_time = ecore_time_get(); 221 * doesn't set up any, but now we can expand on this simple program a little
212 handler1 = ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, exit_func, NULL); 222 * more by adding some event handlers and timers.
213 timer1 = ecore_timer_add(0.5, timer_func, NULL); 223 *
214 ecore_main_loop_begin(); 224 * @code
215 ecore_shutdown(); 225 * #include <Ecore.h>
216 return 0; 226 *
217 } 227 * Ecore_Timer *timer1 = NULL;
218 @endcode 228 * Ecore_Event_Handler *handler1 = NULL;
219 229 * double start_time = 0.0;
220 In the previous example, we initialize our application and get the time at 230 *
221 which our program has started so we can calculate an offset. We set 231 * int
222 up a timer to tick off in 0.5 seconds, and since it returns 1, will 232 * timer_func(void *data)
223 keep ticking off every 0.5 seconds until it returns 0, or is deleted 233 * {
224 by hand. An event handler is set up to call a function - 234 * printf("Tick timer. Sec: %3.2f\n", ecore_time_get() - start_time);
225 exit_func(), 235 * return 1;
226 whenever an event of type ECORE_EVENT_SIGNAL_EXIT is received (CTRL-C 236 * }
227 on the command line will cause such an event to happen). If this event 237 *
228 occurs it tells you what kind of exit signal was received, and asks 238 * int
229 the main loop to quit when it is finished by calling 239 * exit_func(void *data, int ev_type, void *ev)
230 ecore_main_loop_quit(). 240 * {
231 241 * Ecore_Event_Signal_Exit *e;
232 The handles returned by ecore_timer_add() and 242 *
233 ecore_event_handler_add() are 243 * e = (Ecore_Event_Signal_Exit *)ev;
234 only stored here as an example. If you don't need to address the timer or 244 * if (e->interrupt) printf("Exit: interrupt\n");
235 event handler again you don't need to store the result, so just call the 245 * else if (e->quit) printf("Exit: quit\n");
236 function, and don't assign the result to any variable. 246 * else if (e->terminate) printf("Exit: terminate\n");
237 247 * ecore_main_loop_quit();
238 This program looks slightly more complex than needed to do these simple 248 * return 1;
239 things, but in principle, programs don't get any more complex. You add more 249 * }
240 event handlers, for more events, will have more timers and such, BUT it all 250 *
241 follows the same principles as shown in this example. 251 * int
242 252 * main(int argc, const char **argv)
253 * {
254 * ecore_init();
255 * ecore_app_args_set(argc, argv);
256 * start_time = ecore_time_get();
257 * handler1 = ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, exit_func, NULL);
258 * timer1 = ecore_timer_add(0.5, timer_func, NULL);
259 * ecore_main_loop_begin();
260 * ecore_shutdown();
261 * return 0;
262 * }
263 * @endcode
264 *
265 * In the previous example, we initialize our application and get the time at
266 * which our program has started so we can calculate an offset. We set
267 * up a timer to tick off in 0.5 seconds, and since it returns 1, will
268 * keep ticking off every 0.5 seconds until it returns 0, or is deleted
269 * by hand. An event handler is set up to call a function -
270 * exit_func(),
271 * whenever an event of type ECORE_EVENT_SIGNAL_EXIT is received (CTRL-C
272 * on the command line will cause such an event to happen). If this event
273 * occurs it tells you what kind of exit signal was received, and asks
274 * the main loop to quit when it is finished by calling
275 * ecore_main_loop_quit().
276 *
277 * The handles returned by ecore_timer_add() and
278 * ecore_event_handler_add() are
279 * only stored here as an example. If you don't need to address the timer or
280 * event handler again you don't need to store the result, so just call the
281 * function, and don't assign the result to any variable.
282 *
283 * This program looks slightly more complex than needed to do these simple
284 * things, but in principle, programs don't get any more complex. You add more
285 * event handlers, for more events, will have more timers and such, BUT it all
286 * follows the same principles as shown in this example.
287 *
243 */ 288 */
244 289
245/* 290/*
246 @page Ecore_Config_Page The Enlightened Property Library 291 @page Ecore_Config_Page The Enlightened Property Library
247 292
248 The Enlightened Property Library (Ecore_Config) is an adbstraction 293 The Enlightened Property Library (Ecore_Config) is an abstraction
249 from the complexities of writing your own configuration. It provides 294 from the complexities of writing your own configuration. It provides
250 many features using the Enlightenment 17 development libraries. 295 many features using the Enlightenment 17 development libraries.
251 296
@@ -310,7 +355,9 @@
310# include <signal.h> 355# include <signal.h>
311#else 356#else
312# include <sys/time.h> 357# include <sys/time.h>
313# include <signal.h> 358# if !defined (EXOTIC_NO_SIGNAL)
359# include <signal.h>
360# endif
314#endif 361#endif
315 362
316#include <sys/types.h> 363#include <sys/types.h>
@@ -333,47 +380,21 @@ EAPI int ecore_shutdown(void);
333 */ 380 */
334 381
335/** 382/**
383 * @defgroup Ecore_Main_Loop_Group Ecore main loop
336 * 384 *
337 * @defgroup Ecore_Main_Loop_Group Ecore main loop functions 385 * This group discusses functions that are acting on Ecore's main loop itself or
338 * 386 * on events and infrastructure directly linked to it. Most programs only need
339 * These are functions acting on Ecore's main loop itself or on 387 * to start and end the main loop, the rest of the function discussed here are
340 * events and infrastructure directly linked to it. This loop is 388 * meant to be used in special situations, and with great care.
341 * designed to work on embedded systems all the way to large and
342 * powerful multi-cpu workstations.
343 * 389 *
344 * It serialises all system signals and events into a single event 390 * For details on the usage of ecore's main loop and how it interacts with other
345 * queue, that can be easily processed without needing to worry 391 * ecore facilities see: @ref Ecore_Main_Loop_Page.
346 * about concurrency. A properly written, event-driven program
347 * using this kind of programming does not need threads. It makes
348 * the program very robust and easy to follow.
349 *
350 * For example, for the main loop to be of any use, you need to be
351 * able to add @b events and event handlers on it. Events for file
352 * descriptor events are covered in @ref Ecore_FD_Handler_Group.
353 *
354 * Timer functions are covered in @ref Ecore_Time_Group.
355 *
356 * There is also provision for callbacks for when the loop enters or
357 * exits an @b idle state. See @ref Ecore_Idle_Group for more
358 * information on it.
359 *
360 * Functions are also provided for spawning child processes using
361 * @c fork(). See @ref Ecore_Exe_Group for more details on it.
362 *
363 * Here is an example of simple program and its basic event loop
364 * flow:
365 *
366 * @image html prog_flow.png
367 * @image latex prog_flow.eps width=\textwidth
368 *
369 * For examples of setting up and using a main loop, see
370 * @ref Ecore_Main_Loop_Page.
371 * 392 *
372 * @{ 393 * @{
373 */ 394 */
374 395
375#define ECORE_VERSION_MAJOR 1 396#define ECORE_VERSION_MAJOR 1
376#define ECORE_VERSION_MINOR 0 397#define ECORE_VERSION_MINOR 2
377 398
378typedef struct _Ecore_Version 399typedef struct _Ecore_Version
379{ 400{
@@ -469,7 +490,7 @@ EAPI void *ecore_main_loop_thread_safe_call_sync(Ecore_Data_Cb callback, void *d
469 * in this thread, if the main loop was suspended correctly. If not, it return @c -1. 490 * in this thread, if the main loop was suspended correctly. If not, it return @c -1.
470 * 491 *
471 * This function suspend the main loop in a know state, this let you 492 * This function suspend the main loop in a know state, this let you
472 * use any EFL call you want after it return. Be carefull, the main loop 493 * use any EFL call you want after it return. Be carefully, the main loop
473 * is blocked until you call ecore_thread_main_loop_end(). This is 494 * is blocked until you call ecore_thread_main_loop_end(). This is
474 * the only sane way to achieve pseudo thread safety. 495 * the only sane way to achieve pseudo thread safety.
475 * 496 *
@@ -489,7 +510,7 @@ EAPI int ecore_thread_main_loop_begin(void);
489 * the main loop is unlocked again. @c -1 will be returned if you are trying to unlock 510 * the main loop is unlocked again. @c -1 will be returned if you are trying to unlock
490 * when there wasn't enough call to ecore_thread_main_loop_begin(). 511 * when there wasn't enough call to ecore_thread_main_loop_begin().
491 * 512 *
492 * After a call to ecore_thread_main_loop_begin(), you need to absolutly 513 * After a call to ecore_thread_main_loop_begin(), you need to absolutely
493 * call ecore_thread_main_loop_end(), or you application will stay frozen. 514 * call ecore_thread_main_loop_end(), or you application will stay frozen.
494 */ 515 */
495EAPI int ecore_thread_main_loop_end(void); 516EAPI int ecore_thread_main_loop_end(void);
@@ -501,34 +522,51 @@ EAPI int ecore_thread_main_loop_end(void);
501/** 522/**
502 * @defgroup Ecore_Event_Group Ecore Event functions 523 * @defgroup Ecore_Event_Group Ecore Event functions
503 * 524 *
504 * Ecore events are used to wake up the Ecore main loop to warn 525 * Ecore events provide two main features that are of use to those using ecore:
505 * about state changes, tasks completed, data available for reading 526 * creating events and being notified of events. Those two will usually be used
506 * or writing, etc. They are the base of the event oriented 527 * in different contexts, creating events is mainly done by libraries wrapping
507 * programming. 528 * some system functionality while being notified of events is mainly a
508 * 529 * necessity of applications.
509 * The idea is to write many functions (callbacks) that will be 530 *
510 * registered to specific events, and called when these events 531 * For a program to be notified of events it's interested in it needs to have a
511 * happen. This way, when the system state changes (a mouse click is 532 * function to process the event and to register that function as the callback
512 * detected, a key is pressed, or the content of a file changes, for 533 * to the event, that's all:
513 * example), the respective callbacks will be called with some 534 * @code
514 * information about that event. Usually the function/callback will 535 * ecore_event_handler_add(EVENT_TYPE, _my_event_handler, some_data);
515 * have a data pointer to the event info (the position in the screen 536 * ...
516 * where the mouse was clicked, the name of the key that was 537 * static Eina_Bool
517 * pressed, or the name of the file that has changed). 538 * _my_event_handler(void *data, int type, void *event)
518 * 539 * {
519 * The basic usage, when one needs to watch for an existing event, 540 * //data is some_data
520 * is to register a callback to it using ecore_event_add(). Of 541 * //event is provided by whoever created the event
521 * course it's necessary to know beforehand what are the types of 542 * //Do really cool stuff with event
522 * events that the system/library will emmit. This should be 543 * }
523 * available with the documentation from that system/library. 544 * @endcode
524 * 545 *
525 * When writing a library or group of functions that need to inform 546 * One very important thing to note here is the @c EVENT_TYPE, to register a
526 * about something, and you already are running on top of a main 547 * handler for an event you must know it's type before hand. This information
527 * loop, it is usually a good approach to use events. This way you 548 * can be found on the documentation of the library emitting the signal, so,
528 * allow others to register as many callbacks as necessary to this 549 * for example, for events related to windowing one would look in @ref
529 * event, and don't have to care about who is registering to it. The 550 * Ecore_Evas_Group.
530 * functions ecore_event_type_new() and ecore_event_add() are 551 *
531 * available for this purpose. 552 * Examples of libraries that integrate into ecore's main loop by providing
553 * events are @ref Ecore_Con_Group, @ref Ecore_Evas_Group and @ref
554 * Ecore_Exe_Group amongst others. This usage can be divided into two parts,
555 * setup and adding events. The setup is very simple, all that needs doing is
556 * getting a type id for the event:
557 * @code
558 * int MY_EV_TYPE = ecore_event_type_new();
559 * @endcode
560 * @note This variable should be declared in the header since it'll be needed by
561 * anyone wishing to register a handler to your event.
562 *
563 * The complexity of adding of an event to the queue depends on whether that
564 * event sends uses @c event, if it doesn't it a one-liner:
565 * @code
566 * ecore_event_add(MY_EV_TYPE, NULL, NULL, NULL);
567 * @endcode
568 * The usage when an @c event is needed is not that much more complex and can be
569 * seen in @ref ecore_event_add.
532 * 570 *
533 * Example that deals with events: 571 * Example that deals with events:
534 * 572 *
@@ -582,7 +620,7 @@ struct _Ecore_Event_Signal_User /** User signal event */
582 int number; /**< The signal number. Either 1 or 2 */ 620 int number; /**< The signal number. Either 1 or 2 */
583 void *ext_data; /**< Extension data - not used */ 621 void *ext_data; /**< Extension data - not used */
584 622
585#if !defined (_WIN32) && !defined (__lv2ppu__) 623#if !defined (_WIN32) && !defined (__lv2ppu__) && !defined (EXOTIC_NO_SIGNAL)
586 siginfo_t data; /**< Signal info */ 624 siginfo_t data; /**< Signal info */
587#endif 625#endif
588}; 626};
@@ -591,7 +629,7 @@ struct _Ecore_Event_Signal_Hup /** Hup signal event */
591{ 629{
592 void *ext_data; /**< Extension data - not used */ 630 void *ext_data; /**< Extension data - not used */
593 631
594#if !defined (_WIN32) && !defined (__lv2ppu__) 632#if !defined (_WIN32) && !defined (__lv2ppu__) && !defined (EXOTIC_NO_SIGNAL)
595 siginfo_t data; /**< Signal info */ 633 siginfo_t data; /**< Signal info */
596#endif 634#endif
597}; 635};
@@ -600,10 +638,10 @@ struct _Ecore_Event_Signal_Exit /** Exit request event */
600{ 638{
601 Eina_Bool interrupt : 1; /**< Set if the exit request was an interrupt signal*/ 639 Eina_Bool interrupt : 1; /**< Set if the exit request was an interrupt signal*/
602 Eina_Bool quit : 1; /**< set if the exit request was a quit signal */ 640 Eina_Bool quit : 1; /**< set if the exit request was a quit signal */
603 Eina_Bool terminate : 1; /**< Set if the exit request was a terminate singal */ 641 Eina_Bool terminate : 1; /**< Set if the exit request was a terminate signal */
604 void *ext_data; /**< Extension data - not used */ 642 void *ext_data; /**< Extension data - not used */
605 643
606#if !defined (_WIN32) && !defined (__lv2ppu__) 644#if !defined (_WIN32) && !defined (__lv2ppu__) && !defined (EXOTIC_NO_SIGNAL)
607 siginfo_t data; /**< Signal info */ 645 siginfo_t data; /**< Signal info */
608#endif 646#endif
609}; 647};
@@ -612,7 +650,7 @@ struct _Ecore_Event_Signal_Power /** Power event */
612{ 650{
613 void *ext_data; /**< Extension data - not used */ 651 void *ext_data; /**< Extension data - not used */
614 652
615#if !defined (_WIN32) && !defined (__lv2ppu__) 653#if !defined (_WIN32) && !defined (__lv2ppu__) && !defined (EXOTIC_NO_SIGNAL)
616 siginfo_t data; /**< Signal info */ 654 siginfo_t data; /**< Signal info */
617#endif 655#endif
618}; 656};
@@ -621,21 +659,161 @@ struct _Ecore_Event_Signal_Realtime /** Realtime event */
621{ 659{
622 int num; /**< The realtime signal's number */ 660 int num; /**< The realtime signal's number */
623 661
624#if !defined (_WIN32) && !defined (__lv2ppu__) 662#if !defined (_WIN32) && !defined (__lv2ppu__) && !defined (EXOTIC_NO_SIGNAL)
625 siginfo_t data; /**< Signal info */ 663 siginfo_t data; /**< Signal info */
626#endif 664#endif
627}; 665};
628 666
667/**
668 * @brief Add an event handler.
669 * @param type The type of the event this handler will get called for
670 * @param func The function to call when the event is found in the queue
671 * @param data A data pointer to pass to the called function @p func
672 * @return A new Event handler, or NULL on failure
673 *
674 * Add an event handler to the list of handlers. This will, on success, return
675 * a handle to the event handler object that was created, that can be used
676 * later to remove the handler using ecore_event_handler_del(). The @p type
677 * parameter is the integer of the event type that will trigger this callback
678 * to be called. The callback @p func is called when this event is processed
679 * and will be passed the event type, a pointer to the private event
680 * structure that is specific to that event type, and a data pointer that is
681 * provided in this call as the @p data parameter.
682 *
683 * When the callback @p func is called, it must return 1 or 0. If it returns
684 * 1 (or ECORE_CALLBACK_PASS_ON), It will keep being called as per normal, for
685 * each handler set up for that event type. If it returns 0 (or
686 * ECORE_CALLBACK_DONE), it will cease processing handlers for that particular
687 * event, so all handler set to handle that event type that have not already
688 * been called, will not be.
689 */
629EAPI Ecore_Event_Handler *ecore_event_handler_add(int type, Ecore_Event_Handler_Cb func, const void *data); 690EAPI Ecore_Event_Handler *ecore_event_handler_add(int type, Ecore_Event_Handler_Cb func, const void *data);
691/**
692 * @brief Delete an event handler.
693 * @param event_handler Event handler handle to delete
694 * @return Data passed to handler
695 *
696 * Delete a specified event handler from the handler list. On success this will
697 * delete the event handler and return the pointer passed as @p data when the
698 * handler was added by ecore_event_handler_add(). On failure NULL will be
699 * returned. Once a handler is deleted it will no longer be called.
700 */
630EAPI void *ecore_event_handler_del(Ecore_Event_Handler *event_handler); 701EAPI void *ecore_event_handler_del(Ecore_Event_Handler *event_handler);
702/**
703 * @brief Add an event to the event queue.
704 * @param type The event type to add to the end of the event queue
705 * @param ev The data structure passed as @c event to event handlers
706 * @param func_free The function to be called to free @a ev
707 * @param data The data pointer to be passed to the free function
708 * @return A Handle for that event on success, otherwise NULL
709 *
710 * If it succeeds, an event of type @a type will be added to the queue for
711 * processing by event handlers added by ecore_event_handler_add(). The @a ev
712 * parameter will be passed as the @c event parameter of the handler. When the
713 * event is no longer needed, @a func_free will be called and passed @a ev for
714 * cleaning up. If @p func_free is NULL, free() will be called with the private
715 * structure pointer.
716 */
631EAPI Ecore_Event *ecore_event_add(int type, void *ev, Ecore_End_Cb func_free, void *data); 717EAPI Ecore_Event *ecore_event_add(int type, void *ev, Ecore_End_Cb func_free, void *data);
718/**
719 * @brief Delete an event from the queue.
720 * @param event The event handle to delete
721 * @return The data pointer originally set for the event free function
722 *
723 * This deletes the event @p event from the event queue, and returns the
724 * @p data parameter originally set when adding it with ecore_event_add(). This
725 * does not immediately call the free function, and it may be called later on
726 * cleanup, and so if the free function depends on the data pointer to work,
727 * you should defer cleaning of this till the free function is called later.
728 */
632EAPI void *ecore_event_del(Ecore_Event *event); 729EAPI void *ecore_event_del(Ecore_Event *event);
730/**
731 * @brief Get the data associated with an #Ecore_Event_Handler
732 * @param eh The event handler
733 * @return The data
734 *
735 * This function returns the data previously associated with @p eh by
736 * ecore_event_handler_add().
737 */
633EAPI void *ecore_event_handler_data_get(Ecore_Event_Handler *eh); 738EAPI void *ecore_event_handler_data_get(Ecore_Event_Handler *eh);
739/**
740 * @brief Set the data associated with an #Ecore_Event_Handler
741 * @param eh The event handler
742 * @param data The data to associate
743 * @return The previous data
744 *
745 * This function sets @p data to @p eh and returns the old data pointer
746 * which was previously associated with @p eh by ecore_event_handler_add().
747 */
634EAPI void *ecore_event_handler_data_set(Ecore_Event_Handler *eh, const void *data); 748EAPI void *ecore_event_handler_data_set(Ecore_Event_Handler *eh, const void *data);
749/**
750 * @brief Allocate a new event type id sensibly and return the new id.
751 * @return A new event type id.
752 *
753 * This function allocates a new event type id and returns it. Once an event
754 * type has been allocated it can never be de-allocated during the life of
755 * the program. There is no guarantee of the contents of this event ID, or how
756 * it is calculated, except that the ID will be unique to the current instance
757 * of the process.
758 */
635EAPI int ecore_event_type_new(void); 759EAPI int ecore_event_type_new(void);
760/**
761 * @brief Add a filter the current event queue.
762 *
763 * @param func_start Function to call just before filtering and return data
764 * @param func_filter Function to call on each event
765 * @param func_end Function to call after the queue has been filtered
766 * @param data Data to pass to the filter functions
767 * @return A filter handle on success, NULL otherwise
768 *
769 * Adds a callback to filter events from the event queue. Filters are called on
770 * the queue just before Event handler processing to try and remove redundant
771 * events. Just as processing is about to start @a func_start is called and
772 * passed the @a data pointer, the return value of this functions is passed to
773 * @a func_filter as loop_data. @a func_filter is also passed @a data and the
774 * event type and event structure. If this @a func_filter returns #EINA_FALSE,
775 * the event is removed from the queue, if it returns #EINA_TRUE, the event is
776 * kept. When processing is finished @p func_end is called and is passed the
777 * loop_data(returned by @c func_start) and @p data pointer to clean up.
778 */
636EAPI Ecore_Event_Filter *ecore_event_filter_add(Ecore_Data_Cb func_start, Ecore_Filter_Cb func_filter, Ecore_End_Cb func_end, const void *data); 779EAPI Ecore_Event_Filter *ecore_event_filter_add(Ecore_Data_Cb func_start, Ecore_Filter_Cb func_filter, Ecore_End_Cb func_end, const void *data);
780/**
781 * @brief Delete an event filter.
782 * @param ef The event filter handle
783 * @return The data set for the filter on success, NULL otherwise
784 *
785 * Delete a filter that has been added by its @p ef handle.
786 */
637EAPI void *ecore_event_filter_del(Ecore_Event_Filter *ef); 787EAPI void *ecore_event_filter_del(Ecore_Event_Filter *ef);
788/**
789 * @brief Return the current event type being handled.
790 * @return The current event type being handled if inside a handler callback,
791 * ECORE_EVENT_NONE otherwise
792 *
793 * If the program is currently inside an Ecore event handler callback this
794 * will return the type of the current event being processed.
795 *
796 * This is useful when certain Ecore modules such as Ecore_Evas "swallow"
797 * events and not all the original information is passed on. In special cases
798 * this extra information may be useful or needed and using this call can let
799 * the program know if the event type being handled is one it wants to get more
800 * information about.
801 */
638EAPI int ecore_event_current_type_get(void); 802EAPI int ecore_event_current_type_get(void);
803/**
804 * @brief Return the current event type pointer handled.
805 * @return The current event pointer being handled if inside a handler callback,
806 * NULL otherwise
807 *
808 * If the program is currently inside an Ecore event handler callback this
809 * will return the pointer of the current event being processed.
810 *
811 * This is useful when certain Ecore modules such as Ecore_Evas "swallow"
812 * events and not all the original information is passed on. In special cases
813 * this extra information may be useful or needed and using this call can let
814 * the program access the event data if the type of the event is handled by
815 * the program.
816 */
639EAPI void *ecore_event_current_event_get(void); 817EAPI void *ecore_event_current_event_get(void);
640 818
641/** 819/**
@@ -652,7 +830,8 @@ EAPI void *ecore_event_current_event_get(void);
652 * @{ 830 * @{
653 */ 831 */
654 832
655 #define ECORE_EXE_PRIORITY_INHERIT 9999 833/** Inherit priority from parent process */
834#define ECORE_EXE_PRIORITY_INHERIT 9999
656 835
657EAPI extern int ECORE_EXE_EVENT_ADD; /**< A child process has been added */ 836EAPI extern int ECORE_EXE_EVENT_ADD; /**< A child process has been added */
658EAPI extern int ECORE_EXE_EVENT_DEL; /**< A child process has been deleted (it exited, naming consistent with the rest of ecore). */ 837EAPI extern int ECORE_EXE_EVENT_DEL; /**< A child process has been deleted (it exited, naming consistent with the rest of ecore). */
@@ -715,7 +894,7 @@ struct _Ecore_Exe_Event_Del /** Process exit event */
715 Eina_Bool exited : 1; /** < set to 1 if the process exited of its own accord */ 894 Eina_Bool exited : 1; /** < set to 1 if the process exited of its own accord */
716 Eina_Bool signalled : 1; /** < set to 1 id the process exited due to uncaught signal */ 895 Eina_Bool signalled : 1; /** < set to 1 id the process exited due to uncaught signal */
717 void *ext_data; /**< Extension data - not used */ 896 void *ext_data; /**< Extension data - not used */
718#if !defined (_WIN32) && !defined (__lv2ppu__) 897#if !defined (_WIN32) && !defined (__lv2ppu__) && !defined (EXOTIC_NO_SIGNAL)
719 siginfo_t data; /**< Signal info */ 898 siginfo_t data; /**< Signal info */
720#endif 899#endif
721}; 900};
@@ -768,24 +947,30 @@ EAPI void ecore_exe_hup(Ecore_Exe *exe);
768/** 947/**
769 * @defgroup Ecore_FD_Handler_Group File Event Handling Functions 948 * @defgroup Ecore_FD_Handler_Group File Event Handling Functions
770 * 949 *
771 * Functions that deal with file descriptor handlers. 950 * @brief Functions that deal with file descriptor handlers.
951 *
952 * File descriptor handlers facilitate reading, writing and checking for errors
953 * without blocking the program or doing expensive pooling. This can be used to
954 * monitor a socket, pipe, or other stream for which an FD can be had.
772 * 955 *
773 * The @ref Ecore_Fd_Handler can be used to watch a file descriptor 956 * @warning This function @b can't be used for monitoring to regular files!
774 * for data available for reading, for the availability to write
775 * without blocking, and for errors on the file descriptor.
776 * 957 *
777 *ecore_main_fd_handler_add() is used to setup a handler for a 958 * One common FD to be monitored is the standard input(stdin), monitoring it for
778 * given file descriptor. This file descriptor can be the standard 959 * reading requires a single call:
779 * input, a network socket, a stream received through some driver 960 * @code
780 * of a hardware decoder, etc. Thus it can contain errors, like a 961 * static Eina_Bool
781 * disconnection, a broken pipe, and so, and that's why it's 962 * _my_cb_func(void *data, Ecore_Fd_Handler *handler)
782 * possible to check for these errors with the @ref ECORE_FD_ERROR 963 * {
783 * flag. 964 * char c;
965 * scanf("%c", &c); //Guaranteed not to block
966 * ... do stuff with c ...
967 * }
968 * ecore_main_fd_handler_add(STDIN_FILENO, ECORE_FD_READ, _my_cb_func, NULL, NULL, NULL);
969 * @endcode
784 * 970 *
785 * An @ref Ecore_Fd_Handler can be used to watch on a file 971 * When using a socket, pipe or other stream it's important to remember that
786 * descriptor without blocking, still being able to receive events, 972 * errors may occur and as such to monitor not only for reading/writing but also
787 * expire timers, and other watch for other things that happen in 973 * for errors using the @ref ECORE_FD_ERROR flag.
788 * the Ecore main loop.
789 * 974 *
790 * Example of use of a file descriptor handler: 975 * Example of use of a file descriptor handler:
791 * @li @ref ecore_fd_handler_example_c 976 * @li @ref ecore_fd_handler_example_c
@@ -823,11 +1008,93 @@ typedef void (*Ecore_Fd_Prep_Cb)(void *data, Ecore_Fd_Handler *fd_handler);
823 */ 1008 */
824typedef Eina_Bool (*Ecore_Win32_Handle_Cb)(void *data, Ecore_Win32_Handler *wh); 1009typedef Eina_Bool (*Ecore_Win32_Handle_Cb)(void *data, Ecore_Win32_Handler *wh);
825 1010
1011/**
1012 * @brief Adds a callback for activity on the given file descriptor.
1013 *
1014 * @param fd The file descriptor to watch.
1015 * @param flags To monitor it for reading use @c ECORE_FD_READ, for writing @c
1016 * ECORE_FD_WRITE, and for error @c ECORE_FD_ERROR. Values bay |(ored).
1017 * @param func The callback function.
1018 * @param data The data to pass to the callback.
1019 * @param buf_func The function to call to check if any data has been buffered
1020 * and already read from the fd. May be @c NULL.
1021 * @param buf_data The data to pass to the @p buf_func function.
1022 * @return A fd handler handle on success, @c NULL otherwise.
1023 *
1024 * @a func will be called during the execution of @ref Ecore_Main_Loop_Page
1025 * when the file descriptor is available for reading, writing, or there has been
1026 * an error(depending on the given @a flags).
1027 *
1028 * When @a func returns ECORE_CALLBACK_CANCEL, it indicates that the
1029 * handler should be marked for deletion (identical to calling @ref
1030 * ecore_main_fd_handler_del).
1031 *
1032 * @warning @a buf_func is meant for @b internal use only and should be @b
1033 * avoided.
1034 *
1035 * The return value of @a buf_func has a different meaning, when it returns
1036 * ECORE_CALLBACK_CANCEL, it indicates that @a func @b shouldn't be called, and
1037 * when it returns ECORE_CALLBACK_RENEW it indicates @a func should be called.
1038 * The return value of @a buf_func will not cause the FD handler to be deleted.
1039 *
1040 * @a buf_func is called during event loop handling to check if data that has
1041 * been read from the file descriptor is in a buffer and is available to read.
1042 * Some systems, notably xlib, handle their own buffering, and would otherwise
1043 * not work with select(). These systems should use a @a buf_func. This is a
1044 * most annoying hack, only ecore_x uses it, so refer to that for an example.
1045 */
826EAPI Ecore_Fd_Handler *ecore_main_fd_handler_add(int fd, Ecore_Fd_Handler_Flags flags, Ecore_Fd_Cb func, const void *data, Ecore_Fd_Cb buf_func, const void *buf_data); 1046EAPI Ecore_Fd_Handler *ecore_main_fd_handler_add(int fd, Ecore_Fd_Handler_Flags flags, Ecore_Fd_Cb func, const void *data, Ecore_Fd_Cb buf_func, const void *buf_data);
1047/**
1048 * @brief Set the prepare callback with data for a given #Ecore_Fd_Handler
1049 *
1050 * @param fd_handler The fd handler
1051 * @param func The prep function
1052 * @param data The data to pass to the prep function
1053 *
1054 * This function will be called prior to any fd handler's callback function
1055 * (even the other fd handlers), before entering the main loop select function.
1056 *
1057 * @note Once a prepare callback is set for a fd handler, it cannot be changed.
1058 * You need to delete the fd handler and create a new one, to set another
1059 * callback.
1060 * @note You probably don't need this function. It is only necessary for very
1061 * uncommon cases that need special behavior.
1062 */
827EAPI void ecore_main_fd_handler_prepare_callback_set(Ecore_Fd_Handler *fd_handler, Ecore_Fd_Prep_Cb func, const void *data); 1063EAPI void ecore_main_fd_handler_prepare_callback_set(Ecore_Fd_Handler *fd_handler, Ecore_Fd_Prep_Cb func, const void *data);
1064/**
1065 * @brief Marks an FD handler for deletion.
1066 * @param fd_handler The FD handler.
1067 * @return The data pointer set using @ref ecore_main_fd_handler_add, for @a
1068 * fd_handler on success, @c NULL otherwise.
1069 * This function marks an fd handler to be deleted during an iteration of the
1070 * main loop. It does NOT close the associated fd!
1071 *
1072 * @warning If the underlying fd is already closed ecore may complain if the
1073 * main loop is using epoll internally, and also in some rare cases this may
1074 * cause crashes and instability. Remember to delete your fd handlers before the
1075 * fds they listen to are closed.
1076 */
828EAPI void *ecore_main_fd_handler_del(Ecore_Fd_Handler *fd_handler); 1077EAPI void *ecore_main_fd_handler_del(Ecore_Fd_Handler *fd_handler);
1078/**
1079 * @brief Retrieves the file descriptor that the given handler is handling.
1080 * @param fd_handler The given FD handler.
1081 * @return The file descriptor the handler is watching.
1082 */
829EAPI int ecore_main_fd_handler_fd_get(Ecore_Fd_Handler *fd_handler); 1083EAPI int ecore_main_fd_handler_fd_get(Ecore_Fd_Handler *fd_handler);
1084/**
1085 * @brief Gets which flags are active on an FD handler.
1086 * @param fd_handler The given FD handler.
1087 * @param flags The flags, @c ECORE_FD_READ, @c ECORE_FD_WRITE or @c
1088 * ECORE_FD_ERROR to query.
1089 * @return #EINA_TRUE if any of the given flags are active, #EINA_FALSE
1090 * otherwise.
1091 */
830EAPI Eina_Bool ecore_main_fd_handler_active_get(Ecore_Fd_Handler *fd_handler, Ecore_Fd_Handler_Flags flags); 1092EAPI Eina_Bool ecore_main_fd_handler_active_get(Ecore_Fd_Handler *fd_handler, Ecore_Fd_Handler_Flags flags);
1093/**
1094 * @brief Set what active streams the given FD handler should be monitoring.
1095 * @param fd_handler The given FD handler.
1096 * @param flags The flags to be watching.
1097 */
831EAPI void ecore_main_fd_handler_active_set(Ecore_Fd_Handler *fd_handler, Ecore_Fd_Handler_Flags flags); 1098EAPI void ecore_main_fd_handler_active_set(Ecore_Fd_Handler *fd_handler, Ecore_Fd_Handler_Flags flags);
832 1099
833EAPI Ecore_Win32_Handler *ecore_main_win32_handler_add(void *h, Ecore_Win32_Handle_Cb func, const void *data); 1100EAPI Ecore_Win32_Handler *ecore_main_win32_handler_add(void *h, Ecore_Win32_Handle_Cb func, const void *data);
@@ -840,13 +1107,30 @@ EAPI void *ecore_main_win32_handler_del(Ecore_Win32_Handler *win32_handler);
840/** 1107/**
841 * @defgroup Ecore_Poller_Group Ecore Poll functions 1108 * @defgroup Ecore_Poller_Group Ecore Poll functions
842 * 1109 *
843 * These functions are for the need to poll information, but provide 1110 * Ecore poller provides infrastructure for the creation of pollers. Pollers
844 * a shared abstracted API to pool such polling to minimise wakeup 1111 * are, in essence, callbacks that share a single timer per type. Because not
845 * and ensure all the polling happens in as few spots as possible 1112 * all pollers need to be called at the same frequency the user may specify the
846 * areound a core poll interval. For now only 1 core poller type is 1113 * frequency in ticks(each expiration of the shared timer is called a tick, in
847 * supprted: ECORE_POLLER_CORE 1114 * ecore poller parlance) for each added poller. Ecore pollers should only be
1115 * used when the poller doesn't have specific requirements on the exact times
1116 * to poll.
848 * 1117 *
849 * Example of @ref Ecore_Poller : 1118 * This architecture means that the main loop is only woken up once to handle
1119 * all pollers of that type, this will save power as the CPU has more of a
1120 * chance to go into a low power state the longer it is asleep for, so this
1121 * should be used in situations where power usage is a concern.
1122 *
1123 * For now only 1 core poller type is supported: ECORE_POLLER_CORE, the default
1124 * interval for ECORE_POLLER_CORE is 0.125(or 1/8th) second.
1125 *
1126 * The creation of a poller is extremely simple and only required one line:
1127 * @code
1128 * ecore_poller_add(ECORE_POLLER_CORE, 1, my_poller_function, NULL);
1129 * @endcode
1130 * This sample creates a poller to call @c my_poller_function at every tick with
1131 * @c NULL as data.
1132 *
1133 * Example:
850 * @li @ref ecore_poller_example_c 1134 * @li @ref ecore_poller_example_c
851 * 1135 *
852 * @ingroup Ecore_Main_Loop_Group 1136 * @ingroup Ecore_Main_Loop_Group
@@ -862,11 +1146,76 @@ typedef enum _Ecore_Poller_Type Ecore_Poller_Type;
862 1146
863typedef struct _Ecore_Poller Ecore_Poller; /**< A handle for pollers */ 1147typedef struct _Ecore_Poller Ecore_Poller; /**< A handle for pollers */
864 1148
1149/**
1150 * @brief Sets the time(in seconds) between ticks for the given poller type.
1151 * @param type The poller type to adjust.
1152 * @param poll_time The time(in seconds) between ticks of the timer.
1153 *
1154 * This will adjust the time between ticks of the given timer type defined by
1155 * @p type to the time period defined by @p poll_time.
1156 */
865EAPI void ecore_poller_poll_interval_set(Ecore_Poller_Type type, double poll_time); 1157EAPI void ecore_poller_poll_interval_set(Ecore_Poller_Type type, double poll_time);
1158/**
1159 * @brief Gets the time(in seconds) between ticks for the given poller type.
1160 * @param type The poller type to query.
1161 * @return The time in seconds between ticks of the poller timer.
1162 *
1163 * This will get the time between ticks of the specified poller timer.
1164 */
866EAPI double ecore_poller_poll_interval_get(Ecore_Poller_Type type); 1165EAPI double ecore_poller_poll_interval_get(Ecore_Poller_Type type);
1166/**
1167 * @brief Changes the polling interval rate of @p poller.
1168 * @param poller The Ecore_Poller to change the interval of.
1169 * @param interval The tick interval to set; must be a power of 2 and <= 32768.
1170 * @return Returns true on success, false on failure.
1171 *
1172 * This allows the changing of a poller's polling interval. It is useful when
1173 * you want to alter a poll rate without deleting and re-creating a poller.
1174 */
867EAPI Eina_Bool ecore_poller_poller_interval_set(Ecore_Poller *poller, int interval); 1175EAPI Eina_Bool ecore_poller_poller_interval_set(Ecore_Poller *poller, int interval);
1176/**
1177 * @brief Gets the polling interval rate of @p poller.
1178 * @param poller The Ecore_Poller to change the interval of.
1179 * @return Returns the interval, in ticks, that @p poller polls at.
1180 *
1181 * This returns a poller's polling interval, or 0 on error.
1182 */
868EAPI int ecore_poller_poller_interval_get(Ecore_Poller *poller); 1183EAPI int ecore_poller_poller_interval_get(Ecore_Poller *poller);
1184/**
1185 * @brief Creates a poller to call the given function at a particular tick interval.
1186 * @param type The ticker type to attach the poller to. Must be ECORE_POLLER_CORE.
1187 * @param interval The poll interval.
1188 * @param func The poller function.
1189 * @param data Data to pass to @a func when it is called.
1190 * @return A poller object on success, @c NULL otherwise.
1191 *
1192 * This function adds @a func as a poller callback that will be called every @a
1193 * interval ticks together with other pollers of type @a type. @a func will be
1194 * passed the @p data pointer as a parameter.
1195 *
1196 * The @p interval must be between 1 and 32768 inclusive, and must be a power of
1197 * 2 (i.e. 1, 2, 4, 8, 16, ... 16384, 32768). The exact tick in which @a func
1198 * will be called is undefined, as only the interval between calls can be
1199 * defined. Ecore will endeavor to keep pollers synchronized and to call as
1200 * many in 1 wakeup event as possible. If @a interval is not a power of two, the
1201 * closest power of 2 greater than @a interval will be used.
1202 *
1203 * When the poller @p func is called, it must return a value of either
1204 * ECORE_CALLBACK_RENEW(or 1) or ECORE_CALLBACK_CANCEL(or 0). If it
1205 * returns 1, it will be called again at the next tick, or if it returns
1206 * 0 it will be deleted automatically making any references/handles for it
1207 * invalid.
1208 */
869EAPI Ecore_Poller *ecore_poller_add(Ecore_Poller_Type type, int interval, Ecore_Task_Cb func, const void *data); 1209EAPI Ecore_Poller *ecore_poller_add(Ecore_Poller_Type type, int interval, Ecore_Task_Cb func, const void *data);
1210/**
1211 * @brief Delete the specified poller from the timer list.
1212 * @param poller The poller to delete.
1213 * @return The data pointer set for the timer when @ref ecore_poller_add was
1214 * called on success, @c NULL otherwise.
1215 *
1216 * @note @a poller must be a valid handle. If the poller function has already
1217 * returned 0, the handle is no longer valid (and does not need to be deleted).
1218 */
870EAPI void *ecore_poller_del(Ecore_Poller *poller); 1219EAPI void *ecore_poller_del(Ecore_Poller *poller);
871 1220
872/** 1221/**
@@ -941,7 +1290,7 @@ typedef enum _Ecore_Animator_Source Ecore_Animator_Source;
941typedef Eina_Bool (*Ecore_Timeline_Cb)(void *data, double pos); 1290typedef Eina_Bool (*Ecore_Timeline_Cb)(void *data, double pos);
942 1291
943/** 1292/**
944 * @brief Add an animator to call @p func at every animaton tick during main 1293 * @brief Add an animator to call @p func at every animation tick during main
945 * loop execution. 1294 * loop execution.
946 * 1295 *
947 * @param func The function to call when it ticks off 1296 * @param func The function to call when it ticks off
@@ -1011,7 +1360,7 @@ EAPI void *ecore_animator_del(Ecore_Animator *animator);
1011 * 1360 *
1012 * @param animator The animator to delete 1361 * @param animator The animator to delete
1013 * 1362 *
1014 * The specified @p animator will be temporarly removed from the set of 1363 * The specified @p animator will be temporarily removed from the set of
1015 * animators that are executed during main loop. 1364 * animators that are executed during main loop.
1016 * 1365 *
1017 * @warning Freezing an animator doesn't freeze accounting of how long that 1366 * @warning Freezing an animator doesn't freeze accounting of how long that
@@ -1069,7 +1418,7 @@ EAPI double ecore_animator_frametime_get(void);
1069 * has "overshot" the mark) using some interpolation (mapping) algorithm. 1418 * has "overshot" the mark) using some interpolation (mapping) algorithm.
1070 * 1419 *
1071 * This function useful to create non-linear animations. It offers a variety 1420 * This function useful to create non-linear animations. It offers a variety
1072 * of possible animaton curves to be used: 1421 * of possible animation curves to be used:
1073 * @li ECORE_POS_MAP_LINEAR - Linear, returns @p pos 1422 * @li ECORE_POS_MAP_LINEAR - Linear, returns @p pos
1074 * @li ECORE_POS_MAP_ACCELERATE - Start slow then speed up 1423 * @li ECORE_POS_MAP_ACCELERATE - Start slow then speed up
1075 * @li ECORE_POS_MAP_DECELERATE - Start fast then slow down 1424 * @li ECORE_POS_MAP_DECELERATE - Start fast then slow down
@@ -1107,7 +1456,7 @@ EAPI double ecore_animator_frametime_get(void);
1107 * y = (y1 * out) + (y2 * (1.0 - out)); 1456 * y = (y1 * out) + (y2 * (1.0 - out));
1108 * move_my_object_to(myobject, x, y); 1457 * move_my_object_to(myobject, x, y);
1109 * @endcode 1458 * @endcode
1110 * This will make an animaton that bounces 7 each times diminishing by a 1459 * This will make an animation that bounces 7 each times diminishing by a
1111 * factor of 1.8. 1460 * factor of 1.8.
1112 * 1461 *
1113 * @see _Ecore_Pos_Map 1462 * @see _Ecore_Pos_Map
@@ -1205,16 +1554,39 @@ EAPI void ecore_animator_custom_tick(void);
1205 */ 1554 */
1206 1555
1207/** 1556/**
1208 * @defgroup Ecore_Time_Group Ecore Time functions 1557 * @defgroup Ecore_Time_Group Ecore time functions
1209 *
1210 * Functions that deal with time. These functions include those
1211 * that simply retrieve it in a given format, and those that create
1212 * events based on it.
1213 * 1558 *
1214 * The timer allows callbacks to be called at specific intervals. 1559 * These are function to retrieve time in a given format.
1215 * 1560 *
1216 * Examples with functions that deal with time: 1561 * Examples:
1217 * @li @ref ecore_time_functions_example_c 1562 * @li @ref ecore_time_functions_example_c
1563 * @{
1564 */
1565EAPI double ecore_time_get(void);
1566EAPI double ecore_time_unix_get(void);
1567EAPI double ecore_loop_time_get(void);
1568
1569/**
1570 * @}
1571 */
1572
1573/**
1574 * @defgroup Ecore_Timer_Group Ecore Timer functions
1575 *
1576 * Ecore provides very flexible timer functionality. The basic usage of timers,
1577 * to call a certain function at a certain interval can be achieved with a
1578 * single line:
1579 * @code
1580 * Eina_Bool my_func(void *data) {
1581 * do_funky_stuff_with_data(data);
1582 * return EINA_TRUE;
1583 * }
1584 * ecore_timer_add(interval_in_seconds, my_func, data_given_to_function);
1585 * @endcode
1586 * @note If the function was to be executed only once simply return EINA_FALSE
1587 * instead.
1588 *
1589 * An example that shows the usage of a lot of these:
1218 * @li @ref ecore_timer_example_c 1590 * @li @ref ecore_timer_example_c
1219 * 1591 *
1220 * @ingroup Ecore_Main_Loop_Group 1592 * @ingroup Ecore_Main_Loop_Group
@@ -1224,10 +1596,6 @@ EAPI void ecore_animator_custom_tick(void);
1224 1596
1225typedef struct _Ecore_Timer Ecore_Timer; /**< A handle for timers */ 1597typedef struct _Ecore_Timer Ecore_Timer; /**< A handle for timers */
1226 1598
1227EAPI double ecore_time_get(void);
1228EAPI double ecore_time_unix_get(void);
1229EAPI double ecore_loop_time_get(void);
1230
1231EAPI Ecore_Timer *ecore_timer_add(double in, Ecore_Task_Cb func, const void *data); 1599EAPI Ecore_Timer *ecore_timer_add(double in, Ecore_Task_Cb func, const void *data);
1232EAPI Ecore_Timer *ecore_timer_loop_add(double in, Ecore_Task_Cb func, const void *data); 1600EAPI Ecore_Timer *ecore_timer_loop_add(double in, Ecore_Task_Cb func, const void *data);
1233EAPI void *ecore_timer_del(Ecore_Timer *timer); 1601EAPI void *ecore_timer_del(Ecore_Timer *timer);
@@ -1249,14 +1617,15 @@ EAPI char *ecore_timer_dump(void);
1249/** 1617/**
1250 * @defgroup Ecore_Idle_Group Ecore Idle functions 1618 * @defgroup Ecore_Idle_Group Ecore Idle functions
1251 * 1619 *
1252 * Callbacks that are called when the program enters or exits an 1620 * The idler functionality in Ecore allows for callbacks to be called when the
1253 * idle state. 1621 * program isn't handling @ref Ecore_Event_Group "events", @ref Ecore_Timer_Group
1622 * "timers" or @ref Ecore_FD_Handler_Group "fd handlers".
1254 * 1623 *
1255 * The ecore main loop enters an idle state when it is waiting for 1624 * There are three types of idlers: Enterers, Idlers(proper) and Exiters. They
1256 * timers to time out, data to come in on a file descriptor or any 1625 * are called, respectively, when the program is about to enter an idle state,
1257 * other event to occur. You can set callbacks to be called when 1626 * when the program is in an idle state and when the program has just left an
1258 * the main loop enters an idle state, during an idle state or just 1627 * idle state and will begin processing @ref Ecore_Event_Group "events", @ref
1259 * after the program wakes up. 1628 * Ecore_Timer_Group "timers" or @ref Ecore_FD_Handler_Group "fd handlers".
1260 * 1629 *
1261 * Enterer callbacks are good for updating your program's state, if 1630 * Enterer callbacks are good for updating your program's state, if
1262 * it has a state engine. Once all of the enterer handlers are 1631 * it has a state engine. Once all of the enterer handlers are
@@ -1266,14 +1635,13 @@ EAPI char *ecore_timer_dump(void);
1266 * enterer handlers. They are useful for interfaces that require 1635 * enterer handlers. They are useful for interfaces that require
1267 * polling and timers would be too slow to use. 1636 * polling and timers would be too slow to use.
1268 * 1637 *
1638 * Exiter callbacks are called when the main loop wakes up from an idle state.
1639 *
1269 * If no idler callbacks are specified, then the process literally 1640 * If no idler callbacks are specified, then the process literally
1270 * goes to sleep. Otherwise, the idler callbacks are called 1641 * goes to sleep. Otherwise, the idler callbacks are called
1271 * continuously while the loop is "idle", using as much CPU as is 1642 * continuously while the loop is "idle", using as much CPU as is
1272 * available to the process. 1643 * available to the process.
1273 * 1644 *
1274 * Exiter callbacks are called when the main loop wakes up from an
1275 * idle state.
1276 *
1277 * @note Idle state doesn't mean that the @b program is idle, but 1645 * @note Idle state doesn't mean that the @b program is idle, but
1278 * that the <b>main loop</b> is idle. It doesn't have any timers, 1646 * that the <b>main loop</b> is idle. It doesn't have any timers,
1279 * events, fd handlers or anything else to process (which in most 1647 * events, fd handlers or anything else to process (which in most
@@ -1343,7 +1711,7 @@ EAPI void *ecore_idle_exiter_del(Ecore_Idle_Exiter *idle_exiter);
1343 * thread, the one running the main loop. This problem can be solved 1711 * thread, the one running the main loop. This problem can be solved
1344 * by running a thread that sends messages to the main one using an 1712 * by running a thread that sends messages to the main one using an
1345 * @ref Ecore_Pipe_Group "Ecore_Pipe", but when you need to handle other 1713 * @ref Ecore_Pipe_Group "Ecore_Pipe", but when you need to handle other
1346 * things like cancelling the thread, your code grows in coplexity and gets 1714 * things like cancelling the thread, your code grows in complexity and gets
1347 * much harder to maintain. 1715 * much harder to maintain.
1348 * 1716 *
1349 * Ecore Thread is here to solve that problem. It is @b not a simple wrapper 1717 * Ecore Thread is here to solve that problem. It is @b not a simple wrapper
@@ -1514,7 +1882,7 @@ EAPI Ecore_Thread *ecore_thread_run(Ecore_Thread_Cb func_blocking, Ecore_Thread_
1514 * with ecore_thread_feedback(). 1882 * with ecore_thread_feedback().
1515 * 1883 *
1516 * Like with ecore_thread_run(), a new thread will be launched to run 1884 * Like with ecore_thread_run(), a new thread will be launched to run
1517 * @p func_heavy unless the maximum number of simultaneous threadas has been 1885 * @p func_heavy unless the maximum number of simultaneous threads has been
1518 * reached, in which case the function will be scheduled to run whenever a 1886 * reached, in which case the function will be scheduled to run whenever a
1519 * running task ends and a thread becomes free. But if @p try_no_queue is 1887 * running task ends and a thread becomes free. But if @p try_no_queue is
1520 * set, Ecore will first try to launch a thread outside of the pool to run 1888 * set, Ecore will first try to launch a thread outside of the pool to run
@@ -2076,7 +2444,7 @@ EAPI int ecore_pipe_wait(Ecore_Pipe *p, int message_count, double wait);
2076 * also will be executed in the order in which they were added. 2444 * also will be executed in the order in which they were added.
2077 * 2445 *
2078 * A good use for them is when you don't want to execute an action 2446 * A good use for them is when you don't want to execute an action
2079 * immeditately, but want to give the control back to the main loop 2447 * immediately, but want to give the control back to the main loop
2080 * so that it will call your job callback when jobs start being 2448 * so that it will call your job callback when jobs start being
2081 * processed (and if there are other jobs added before yours, they 2449 * processed (and if there are other jobs added before yours, they
2082 * will be processed first). This also gives the chance to other 2450 * will be processed first). This also gives the chance to other
diff --git a/libraries/ecore/src/lib/ecore/Makefile.am b/libraries/ecore/src/lib/ecore/Makefile.am
index ec3d99f..6f14387 100644
--- a/libraries/ecore/src/lib/ecore/Makefile.am
+++ b/libraries/ecore/src/lib/ecore/Makefile.am
@@ -47,6 +47,12 @@ libecore_la_SOURCES += ecore_exe_ps3.c
47 47
48else 48else
49 49
50if ECORE_HAVE_EXOTIC
51
52libecore_la_SOURCES +=
53
54else
55
50libecore_la_SOURCES += ecore_signal.c ecore_exe.c 56libecore_la_SOURCES += ecore_signal.c ecore_exe.c
51 57
52endif 58endif
@@ -55,6 +61,8 @@ endif
55 61
56endif 62endif
57 63
64endif
65
58libecore_la_LIBADD = @dlopen_libs@ @EINA_LIBS@ @EVIL_LIBS@ @GLIB_LIBS@ @WIN32_LIBS@ @LTLIBINTL@ @EFL_PTHREAD_LIBS@ @rt_libs@ -lm 66libecore_la_LIBADD = @dlopen_libs@ @EINA_LIBS@ @EVIL_LIBS@ @GLIB_LIBS@ @WIN32_LIBS@ @LTLIBINTL@ @EFL_PTHREAD_LIBS@ @rt_libs@ -lm
59libecore_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@ @EFL_PTHREAD_LIBS@ 67libecore_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@ @EFL_PTHREAD_LIBS@
60 68
diff --git a/libraries/ecore/src/lib/ecore/Makefile.in b/libraries/ecore/src/lib/ecore/Makefile.in
index 66a25cd..71e2ac4 100644
--- a/libraries/ecore/src/lib/ecore/Makefile.in
+++ b/libraries/ecore/src/lib/ecore/Makefile.in
@@ -38,7 +38,8 @@ host_triplet = @host@
38@ECORE_HAVE_WIN32_TRUE@am__append_1 = ecore_exe_win32.c 38@ECORE_HAVE_WIN32_TRUE@am__append_1 = ecore_exe_win32.c
39@ECORE_HAVE_WIN32_FALSE@@ECORE_HAVE_WINCE_TRUE@am__append_2 = ecore_exe_wince.c 39@ECORE_HAVE_WIN32_FALSE@@ECORE_HAVE_WINCE_TRUE@am__append_2 = ecore_exe_wince.c
40@ECORE_HAVE_PS3_TRUE@@ECORE_HAVE_WIN32_FALSE@@ECORE_HAVE_WINCE_FALSE@am__append_3 = ecore_exe_ps3.c 40@ECORE_HAVE_PS3_TRUE@@ECORE_HAVE_WIN32_FALSE@@ECORE_HAVE_WINCE_FALSE@am__append_3 = ecore_exe_ps3.c
41@ECORE_HAVE_PS3_FALSE@@ECORE_HAVE_WIN32_FALSE@@ECORE_HAVE_WINCE_FALSE@am__append_4 = ecore_signal.c ecore_exe.c 41@ECORE_HAVE_EXOTIC_TRUE@@ECORE_HAVE_PS3_FALSE@@ECORE_HAVE_WIN32_FALSE@@ECORE_HAVE_WINCE_FALSE@am__append_4 =
42@ECORE_HAVE_EXOTIC_FALSE@@ECORE_HAVE_PS3_FALSE@@ECORE_HAVE_WIN32_FALSE@@ECORE_HAVE_WINCE_FALSE@am__append_5 = ecore_signal.c ecore_exe.c
42subdir = src/lib/ecore 43subdir = src/lib/ecore
43DIST_COMMON = $(includes_HEADERS) $(srcdir)/Makefile.am \ 44DIST_COMMON = $(includes_HEADERS) $(srcdir)/Makefile.am \
44 $(srcdir)/Makefile.in 45 $(srcdir)/Makefile.in
@@ -54,16 +55,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
54 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 55 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
55 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 56 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
56 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 57 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
57 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 58 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
58 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 59 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
59 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 60 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
60 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 61 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
61 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 62 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
62 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 63 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
63 $(top_srcdir)/configure.ac
64am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 64am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
65 $(ACLOCAL_M4) 65 $(ACLOCAL_M4)
66mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 66mkinstalldirs = $(install_sh) -d
67CONFIG_HEADER = $(top_builddir)/config.h 67CONFIG_HEADER = $(top_builddir)/config.h
68CONFIG_CLEAN_FILES = 68CONFIG_CLEAN_FILES =
69CONFIG_CLEAN_VPATH_FILES = 69CONFIG_CLEAN_VPATH_FILES =
@@ -100,15 +100,16 @@ am__libecore_la_SOURCES_DIST = ecore.c ecore_alloc.c ecore_anim.c \
100@ECORE_HAVE_WIN32_TRUE@am__objects_1 = ecore_exe_win32.lo 100@ECORE_HAVE_WIN32_TRUE@am__objects_1 = ecore_exe_win32.lo
101@ECORE_HAVE_WIN32_FALSE@@ECORE_HAVE_WINCE_TRUE@am__objects_2 = ecore_exe_wince.lo 101@ECORE_HAVE_WIN32_FALSE@@ECORE_HAVE_WINCE_TRUE@am__objects_2 = ecore_exe_wince.lo
102@ECORE_HAVE_PS3_TRUE@@ECORE_HAVE_WIN32_FALSE@@ECORE_HAVE_WINCE_FALSE@am__objects_3 = ecore_exe_ps3.lo 102@ECORE_HAVE_PS3_TRUE@@ECORE_HAVE_WIN32_FALSE@@ECORE_HAVE_WINCE_FALSE@am__objects_3 = ecore_exe_ps3.lo
103@ECORE_HAVE_PS3_FALSE@@ECORE_HAVE_WIN32_FALSE@@ECORE_HAVE_WINCE_FALSE@am__objects_4 = ecore_signal.lo \ 103am__objects_4 =
104@ECORE_HAVE_PS3_FALSE@@ECORE_HAVE_WIN32_FALSE@@ECORE_HAVE_WINCE_FALSE@ ecore_exe.lo 104@ECORE_HAVE_EXOTIC_FALSE@@ECORE_HAVE_PS3_FALSE@@ECORE_HAVE_WIN32_FALSE@@ECORE_HAVE_WINCE_FALSE@am__objects_5 = ecore_signal.lo \
105@ECORE_HAVE_EXOTIC_FALSE@@ECORE_HAVE_PS3_FALSE@@ECORE_HAVE_WIN32_FALSE@@ECORE_HAVE_WINCE_FALSE@ ecore_exe.lo
105am_libecore_la_OBJECTS = ecore.lo ecore_alloc.lo ecore_anim.lo \ 106am_libecore_la_OBJECTS = ecore.lo ecore_alloc.lo ecore_anim.lo \
106 ecore_app.lo ecore_events.lo ecore_getopt.lo \ 107 ecore_app.lo ecore_events.lo ecore_getopt.lo \
107 ecore_idle_enterer.lo ecore_idle_exiter.lo ecore_idler.lo \ 108 ecore_idle_enterer.lo ecore_idle_exiter.lo ecore_idler.lo \
108 ecore_job.lo ecore_main.lo ecore_pipe.lo ecore_poll.lo \ 109 ecore_job.lo ecore_main.lo ecore_pipe.lo ecore_poll.lo \
109 ecore_time.lo ecore_timer.lo ecore_thread.lo ecore_glib.lo \ 110 ecore_time.lo ecore_timer.lo ecore_thread.lo ecore_glib.lo \
110 ecore_throttle.lo $(am__objects_1) $(am__objects_2) \ 111 ecore_throttle.lo $(am__objects_1) $(am__objects_2) \
111 $(am__objects_3) $(am__objects_4) 112 $(am__objects_3) $(am__objects_4) $(am__objects_5)
112libecore_la_OBJECTS = $(am_libecore_la_OBJECTS) 113libecore_la_OBJECTS = $(am_libecore_la_OBJECTS)
113AM_V_lt = $(am__v_lt_$(V)) 114AM_V_lt = $(am__v_lt_$(V))
114am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) 115am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
@@ -211,6 +212,8 @@ EVAS_LIBS = @EVAS_LIBS@
211EVIL_CFLAGS = @EVIL_CFLAGS@ 212EVIL_CFLAGS = @EVIL_CFLAGS@
212EVIL_LIBS = @EVIL_LIBS@ 213EVIL_LIBS = @EVIL_LIBS@
213EXEEXT = @EXEEXT@ 214EXEEXT = @EXEEXT@
215EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
216EXOTIC_LIBS = @EXOTIC_LIBS@
214FGREP = @FGREP@ 217FGREP = @FGREP@
215GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 218GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
216GLIB_CFLAGS = @GLIB_CFLAGS@ 219GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -266,6 +269,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
266PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 269PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
267PIXMAN_LIBS = @PIXMAN_LIBS@ 270PIXMAN_LIBS = @PIXMAN_LIBS@
268PKG_CONFIG = @PKG_CONFIG@ 271PKG_CONFIG = @PKG_CONFIG@
272PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
273PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
269POSUB = @POSUB@ 274POSUB = @POSUB@
270RANLIB = @RANLIB@ 275RANLIB = @RANLIB@
271SCIM_CFLAGS = @SCIM_CFLAGS@ 276SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -276,6 +281,7 @@ SDL_LIBS = @SDL_LIBS@
276SED = @SED@ 281SED = @SED@
277SET_MAKE = @SET_MAKE@ 282SET_MAKE = @SET_MAKE@
278SHELL = @SHELL@ 283SHELL = @SHELL@
284SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
279SSL_CFLAGS = @SSL_CFLAGS@ 285SSL_CFLAGS = @SSL_CFLAGS@
280SSL_LIBS = @SSL_LIBS@ 286SSL_LIBS = @SSL_LIBS@
281STRIP = @STRIP@ 287STRIP = @STRIP@
@@ -503,7 +509,8 @@ libecore_la_SOURCES = ecore.c ecore_alloc.c ecore_anim.c ecore_app.c \
503 ecore_idle_exiter.c ecore_idler.c ecore_job.c ecore_main.c \ 509 ecore_idle_exiter.c ecore_idler.c ecore_job.c ecore_main.c \
504 ecore_pipe.c ecore_poll.c ecore_time.c ecore_timer.c \ 510 ecore_pipe.c ecore_poll.c ecore_time.c ecore_timer.c \
505 ecore_thread.c ecore_glib.c ecore_throttle.c $(am__append_1) \ 511 ecore_thread.c ecore_glib.c ecore_throttle.c $(am__append_1) \
506 $(am__append_2) $(am__append_3) $(am__append_4) 512 $(am__append_2) $(am__append_3) $(am__append_4) \
513 $(am__append_5)
507libecore_la_LIBADD = @dlopen_libs@ @EINA_LIBS@ @EVIL_LIBS@ @GLIB_LIBS@ @WIN32_LIBS@ @LTLIBINTL@ @EFL_PTHREAD_LIBS@ @rt_libs@ -lm 514libecore_la_LIBADD = @dlopen_libs@ @EINA_LIBS@ @EVIL_LIBS@ @GLIB_LIBS@ @WIN32_LIBS@ @LTLIBINTL@ @EFL_PTHREAD_LIBS@ @rt_libs@ -lm
508libecore_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@ @EFL_PTHREAD_LIBS@ 515libecore_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@ @EFL_PTHREAD_LIBS@
509EXTRA_DIST = ecore_private.h 516EXTRA_DIST = ecore_private.h
diff --git a/libraries/ecore/src/lib/ecore/ecore.c b/libraries/ecore/src/lib/ecore/ecore.c
index 7e0f973..d8b8723 100644
--- a/libraries/ecore/src/lib/ecore/ecore.c
+++ b/libraries/ecore/src/lib/ecore/ecore.c
@@ -163,8 +163,10 @@ ecore_init(void)
163 if (!ecore_mempool_init()) goto shutdown_mempool; 163 if (!ecore_mempool_init()) goto shutdown_mempool;
164 _ecore_main_loop_init(); 164 _ecore_main_loop_init();
165 _ecore_signal_init(); 165 _ecore_signal_init();
166 _ecore_thread_init(); 166#ifndef HAVE_EXOTIC
167 _ecore_exe_init(); 167 _ecore_exe_init();
168#endif
169 _ecore_thread_init();
168 _ecore_glib_init(); 170 _ecore_glib_init();
169 _ecore_job_init(); 171 _ecore_job_init();
170 _ecore_time_init(); 172 _ecore_time_init();
@@ -252,7 +254,9 @@ ecore_shutdown(void)
252 _ecore_glib_shutdown(); 254 _ecore_glib_shutdown();
253 _ecore_job_shutdown(); 255 _ecore_job_shutdown();
254 _ecore_thread_shutdown(); 256 _ecore_thread_shutdown();
257#ifndef HAVE_EXOTIC
255 _ecore_exe_shutdown(); 258 _ecore_exe_shutdown();
259#endif
256 _ecore_idle_enterer_shutdown(); 260 _ecore_idle_enterer_shutdown();
257 _ecore_idle_exiter_shutdown(); 261 _ecore_idle_exiter_shutdown();
258 _ecore_idler_shutdown(); 262 _ecore_idler_shutdown();
diff --git a/libraries/ecore/src/lib/ecore/ecore_anim.c b/libraries/ecore/src/lib/ecore/ecore_anim.c
index 78abad7..22c1f8c 100644
--- a/libraries/ecore/src/lib/ecore/ecore_anim.c
+++ b/libraries/ecore/src/lib/ecore/ecore_anim.c
@@ -272,11 +272,11 @@ ecore_animator_pos_map(double pos,
272 return pos; 272 return pos;
273 273
274 case ECORE_POS_MAP_ACCELERATE: 274 case ECORE_POS_MAP_ACCELERATE:
275 pos = 1.0 - _pos_map_sin((M_PI / 2.0) + ((pos * M_PI) / 2.0)); 275 pos = 1.0 - _pos_map_sin(M_PI_2 + pos * M_PI_2);
276 return pos; 276 return pos;
277 277
278 case ECORE_POS_MAP_DECELERATE: 278 case ECORE_POS_MAP_DECELERATE:
279 pos = _pos_map_sin((pos * M_PI) / 2.0); 279 pos = _pos_map_sin(pos * M_PI_2);
280 return pos; 280 return pos;
281 281
282 case ECORE_POS_MAP_SINUSOIDAL: 282 case ECORE_POS_MAP_SINUSOIDAL:
diff --git a/libraries/ecore/src/lib/ecore/ecore_events.c b/libraries/ecore/src/lib/ecore/ecore_events.c
index 0550224..500cf74 100644
--- a/libraries/ecore/src/lib/ecore/ecore_events.c
+++ b/libraries/ecore/src/lib/ecore/ecore_events.c
@@ -72,35 +72,6 @@ static void *ecore_raw_event_event = NULL;
72static void _ecore_event_purge_deleted(void); 72static void _ecore_event_purge_deleted(void);
73static void *_ecore_event_del(Ecore_Event *event); 73static void *_ecore_event_del(Ecore_Event *event);
74 74
75/**
76 * @addtogroup Ecore_Event_Group
77 *
78 * @{
79 */
80
81/**
82 * Add an event handler.
83 * @param type The type of the event this handler will get called for
84 * @param func The function to call when the event is found in the queue
85 * @param data A data pointer to pass to the called function @p func
86 * @return A new Event handler, or NULL on failure
87 *
88 * Add an event handler to the list of handlers. This will, on success, return
89 * a handle to the event handler object that was created, that can be used
90 * later to remove the handler using ecore_event_handler_del(). The @p type
91 * parameter is the integer of the event type that will trigger this callback
92 * to be called. The callback @p func is called when this event is processed
93 * and will be passed the event type, a pointer to the private event
94 * structure that is specific to that event type, and a data pointer that is
95 * provided in this call as the @p data parameter.
96 *
97 * When the callback @p func is called, it must return 1 or 0. If it returns
98 * 1 (or ECORE_CALLBACK_PASS_ON), It will keep being called as per normal, for
99 * each handler set up for that event type. If it returns 0 (or
100 * ECORE_CALLBACK_DONE), it will cease processing handlers for that particular
101 * event, so all handler set to handle that event type that have not already
102 * been called, will not be.
103 */
104EAPI Ecore_Event_Handler * 75EAPI Ecore_Event_Handler *
105ecore_event_handler_add(int type, 76ecore_event_handler_add(int type,
106 Ecore_Event_Handler_Cb func, 77 Ecore_Event_Handler_Cb func,
@@ -151,16 +122,6 @@ unlock:
151 return eh; 122 return eh;
152} 123}
153 124
154/**
155 * Delete an event handler.
156 * @param event_handler Event handler handle to delete
157 * @return Data passed to handler
158 *
159 * Delete a specified event handler from the handler list. On success this will
160 * delete the event handler and return the pointer passed as @p data when the
161 * handler was added by ecore_event_handler_add(). On failure NULL will be
162 * returned. Once a handler is deleted it will no longer be called.
163 */
164EAPI void * 125EAPI void *
165ecore_event_handler_del(Ecore_Event_Handler *event_handler) 126ecore_event_handler_del(Ecore_Event_Handler *event_handler)
166{ 127{
@@ -180,14 +141,6 @@ unlock:
180 return data; 141 return data;
181} 142}
182 143
183/**
184 * @brief Get the data associated with an #Ecore_Event_Handler
185 * @param eh The event handler
186 * @return The data
187 *
188 * This function returns the data previously associated with @p eh by
189 * ecore_event_handler_add().
190 */
191EAPI void * 144EAPI void *
192ecore_event_handler_data_get(Ecore_Event_Handler *eh) 145ecore_event_handler_data_get(Ecore_Event_Handler *eh)
193{ 146{
@@ -205,15 +158,6 @@ unlock:
205 return data; 158 return data;
206} 159}
207 160
208/**
209 * @brief Set the data associated with an #Ecore_Event_Handler
210 * @param eh The event handler
211 * @param data The data to associate
212 * @return The previous data
213 *
214 * This function sets @p data to @p eh and returns the old data pointer
215 * which was previously associated with @p eh by ecore_event_handler_add().
216 */
217EAPI void * 161EAPI void *
218ecore_event_handler_data_set(Ecore_Event_Handler *eh, 162ecore_event_handler_data_set(Ecore_Event_Handler *eh,
219 const void *data) 163 const void *data)
@@ -238,27 +182,9 @@ static void
238_ecore_event_generic_free(void *data __UNUSED__, 182_ecore_event_generic_free(void *data __UNUSED__,
239 void *event) 183 void *event)
240{ /* DO NOT MEMPOOL FREE THIS */ 184{ /* DO NOT MEMPOOL FREE THIS */
241 free (event); 185 free(event);
242} 186}
243 187
244/**
245 * Add an event to the event queue.
246 * @param type The event type to add to the end of the event queue
247 * @param ev The private data structure for this event type
248 * @param func_free The function to be called to free this private structure
249 * @param data The data pointer to be passed to the free function
250 * @return A Handle for that event
251 *
252 * On success this function returns a handle to an event on the event queue, or
253 * NULL if it fails. If it succeeds, an event of type @p type will be added
254 * to the queue for processing by event handlers added by
255 * ecore_event_handler_add(). The @p ev parameter will be a pointer to the event
256 * private data that is specific to that event type. When the event is no
257 * longer needed, @p func_free will be called and passed the private structure
258 * pointer for cleaning up. If @p func_free is NULL, free() will be called
259 * with the private structure pointer.
260 * func_free is passed @p data as its data parameter.
261 */
262EAPI Ecore_Event * 188EAPI Ecore_Event *
263ecore_event_add(int type, 189ecore_event_add(int type,
264 void *ev, 190 void *ev,
@@ -279,17 +205,6 @@ unlock:
279 return event; 205 return event;
280} 206}
281 207
282/**
283 * Delete an event from the queue.
284 * @param event The event handle to delete
285 * @return The data pointer originally set for the event free function
286 *
287 * This deletes the event @p event from the event queue, and returns the
288 * @p data parameer originally set when adding it with ecore_event_add(). This
289 * does not immediately call the free function, and it may be called later on
290 * cleanup, and so if the free function depends on the data pointer to work,
291 * you should defer cleaning of this till the free function is called later.
292 */
293EAPI void * 208EAPI void *
294ecore_event_del(Ecore_Event *event) 209ecore_event_del(Ecore_Event *event)
295{ 210{
@@ -309,16 +224,6 @@ unlock:
309 return data; 224 return data;
310} 225}
311 226
312/**
313 * Allocate a new event type id sensibly and return the new id.
314 * @return A new event type id.
315 *
316 * This function allocates a new event type id and returns it. Once an event
317 * type has been allocated it can never be de-allocated during the life of
318 * the program. There is no guarantee of the contents of this event ID, or how
319 * it is calculated, except that the ID will be unique to the current instance
320 * of the process.
321 */
322EAPI int 227EAPI int
323ecore_event_type_new(void) 228ecore_event_type_new(void)
324{ 229{
@@ -331,26 +236,6 @@ ecore_event_type_new(void)
331 return id; 236 return id;
332} 237}
333 238
334/**
335 * Add a filter the current event queue.
336 * @param func_start Function to call just before filtering and return data
337 * @param func_filter Function to call on each event
338 * @param func_end Function to call after the queu has been filtered
339 * @param data Data to pass to the filter functions
340 * @return A filter handle
341 *
342 * This adds a filter to call callbacks to loop through the event queue and
343 * filter events out of the queue. On failure NULL is returned. On success a
344 * Filter handle is returned. Filters are called on the queue just before
345 * Event handler processing to try and remove redundant events. Just as
346 * processing starts @p func_start is called and passed the @p data pointer.
347 * This function returns a pointer that is used as loop_data that is now passed to
348 * @p func_filter as loop_data. @p func_filter is also passed @p data and the
349 * event type and private event structure. If this callback returns 0, the
350 * event is removed from the queue. If it returns 1, the event is kept. When
351 * processing is finished @p func_end is called and is passed the loop_data
352 * and @p data pointer to clean up.
353 */
354EAPI Ecore_Event_Filter * 239EAPI Ecore_Event_Filter *
355ecore_event_filter_add(Ecore_Data_Cb func_start, 240ecore_event_filter_add(Ecore_Data_Cb func_start,
356 Ecore_Filter_Cb func_filter, 241 Ecore_Filter_Cb func_filter,
@@ -374,15 +259,6 @@ unlock:
374 return ef; 259 return ef;
375} 260}
376 261
377/**
378 * Delete an event filter.
379 * @param ef The event filter handle
380 * @return The data set for the filter
381 *
382 * Delete a filter that has been added by its @p ef handle. On success this
383 * will return the data pointer set when this filter was added. On failure
384 * NULL is returned.
385 */
386EAPI void * 262EAPI void *
387ecore_event_filter_del(Ecore_Event_Filter *ef) 263ecore_event_filter_del(Ecore_Event_Filter *ef)
388{ 264{
@@ -404,50 +280,18 @@ unlock:
404 return data; 280 return data;
405} 281}
406 282
407/**
408 * Return the current event type being handled.
409 * @return The current event type being handled if inside a handler callback
410 *
411 * If the program is currently inside an Ecore event handler callback this
412 * will return the type of the current event being processed. If Ecore is
413 * not inside an event handler, ECORE_EVENT_NONE is returned.
414 *
415 * This is useful when certain Ecore modules such as Ecore_Evas "swallow"
416 * events and not all the original information is passed on. In special cases
417 * this extra information may be useful or needed and using this call can let
418 * the program know if the event type being handled is one it wants to get more
419 * information about.
420 */
421EAPI int 283EAPI int
422ecore_event_current_type_get(void) 284ecore_event_current_type_get(void)
423{ 285{
424 return ecore_raw_event_type; 286 return ecore_raw_event_type;
425} 287}
426 288
427/**
428 * Return the current event type pointer handled.
429 * @return The current event pointer being handled if inside a handler callback
430 *
431 * If the program is currently inside an Ecore event handler callback this
432 * will return the pointer of the current event being processed. If Ecore is
433 * not inside an event handler, NULL will be returned.
434 *
435 * This is useful when certain Ecore modules such as Ecore_Evas "swallow"
436 * events and not all the original information is passed on. In special cases
437 * this extra information may be useful or needed and using this call can let
438 * the program access the event data if the type of the event is handled by
439 * the program.
440 */
441EAPI void * 289EAPI void *
442ecore_event_current_event_get(void) 290ecore_event_current_event_get(void)
443{ 291{
444 return ecore_raw_event_event; 292 return ecore_raw_event_event;
445} 293}
446 294
447/**
448 * @}
449 */
450
451EAPI void * 295EAPI void *
452_ecore_event_handler_del(Ecore_Event_Handler *event_handler) 296_ecore_event_handler_del(Ecore_Event_Handler *event_handler)
453{ 297{
diff --git a/libraries/ecore/src/lib/ecore/ecore_exe.c b/libraries/ecore/src/lib/ecore/ecore_exe.c
index d5465fc..47f8dc9 100644
--- a/libraries/ecore/src/lib/ecore/ecore_exe.c
+++ b/libraries/ecore/src/lib/ecore/ecore_exe.c
@@ -331,15 +331,15 @@ static int run_pri = ECORE_EXE_PRIORITY_INHERIT;
331 * This sets the priority of processes run by ecore_exe_run() and 331 * This sets the priority of processes run by ecore_exe_run() and
332 * ecore_exe_pipe_run(). 332 * ecore_exe_pipe_run().
333 * @li On Windows, the child process is created by default with the 333 * @li On Windows, the child process is created by default with the
334 * #ECORE_EXE_WIN32_PRIORITY_NORMAL priority, unless the calling 334 * @ref ECORE_EXE_WIN32_PRIORITY_NORMAL priority, unless the calling
335 * process is in #ECORE_EXE_WIN32_PRIORITY_IDLE or 335 * process is in @ref ECORE_EXE_WIN32_PRIORITY_IDLE or
336 * #ECORE_EXE_WIN32_PRIORITY_BELOW_NORMAL priority. In that case, the 336 * @ref ECORE_EXE_WIN32_PRIORITY_BELOW_NORMAL priority. In that case, the
337 * child process inherits this priority. 337 * child process inherits this priority.
338 * @li On other platforms, if set to #ECORE_EXE_PRIORITY_INHERIT child 338 * @li On other platforms, if set to @ref ECORE_EXE_PRIORITY_INHERIT child
339 * processes inherits the priority of their parent. This is the default. 339 * processes inherits the priority of their parent. This is the default.
340 * 340 *
341 * @param pri value a Ecore_Exe_Win32_Priority value on Windows, -20 341 * @param pri value a Ecore_Exe_Win32_Priority value on Windows, -20
342 * to 19 or ECORE_EXE_PRIORITY_INHERIT on other OS. 342 * to 19 or @ref ECORE_EXE_PRIORITY_INHERIT on other OS.
343 */ 343 */
344EAPI void 344EAPI void
345ecore_exe_run_priority_set(int pri) 345ecore_exe_run_priority_set(int pri)
diff --git a/libraries/ecore/src/lib/ecore/ecore_getopt.c b/libraries/ecore/src/lib/ecore/ecore_getopt.c
index 76272d3..cd68189 100644
--- a/libraries/ecore/src/lib/ecore/ecore_getopt.c
+++ b/libraries/ecore/src/lib/ecore/ecore_getopt.c
@@ -38,6 +38,10 @@ void *alloca(size_t);
38# include <Evil.h> 38# include <Evil.h>
39#endif 39#endif
40 40
41#ifdef HAVE_EXOTIC
42# include <Exotic.h>
43#endif
44
41#include "Ecore.h" 45#include "Ecore.h"
42#include "Ecore_Getopt.h" 46#include "Ecore_Getopt.h"
43 47
diff --git a/libraries/ecore/src/lib/ecore/ecore_main.c b/libraries/ecore/src/lib/ecore/ecore_main.c
index 76aced6..587c83b 100644
--- a/libraries/ecore/src/lib/ecore/ecore_main.c
+++ b/libraries/ecore/src/lib/ecore/ecore_main.c
@@ -229,10 +229,14 @@ static Eina_Bool win32_handlers_delete_me = EINA_FALSE;
229#ifdef _WIN32 229#ifdef _WIN32
230Ecore_Select_Function main_loop_select = _ecore_main_win32_select; 230Ecore_Select_Function main_loop_select = _ecore_main_win32_select;
231#else 231#else
232# ifdef HAVE_SYS_SELECT_H 232# if !defined EXOTIC_NO_SELECT
233# include <sys/select.h> 233# ifdef HAVE_SYS_SELECT_H
234# endif 234# include <sys/select.h>
235# endif
235Ecore_Select_Function main_loop_select = select; 236Ecore_Select_Function main_loop_select = select;
237# else
238Ecore_Select_Function main_loop_select = NULL;
239# endif
236#endif 240#endif
237 241
238#ifndef USE_G_MAIN_LOOP 242#ifndef USE_G_MAIN_LOOP
@@ -848,6 +852,21 @@ _ecore_main_fd_handler_del(Ecore_Fd_Handler *fd_handler)
848 * DO NOT use this function unless you are the person God comes to ask for 852 * DO NOT use this function unless you are the person God comes to ask for
849 * advice when He has trouble managing the Universe. 853 * advice when He has trouble managing the Universe.
850 */ 854 */
855
856EAPI int
857ecore_main_loop_iterate_may_block(int may_block)
858{
859#ifndef USE_G_MAIN_LOOP
860 _ecore_lock();
861in_main_loop++;
862 _ecore_main_loop_iterate_internal(!may_block);
863in_main_loop--;
864 _ecore_unlock();
865 return _ecore_event_exist();
866#else
867 return g_main_context_iteration(NULL, may_block);
868#endif
869}
851EAPI void 870EAPI void
852ecore_main_loop_iterate(void) 871ecore_main_loop_iterate(void)
853{ 872{
@@ -945,39 +964,6 @@ ecore_main_loop_select_func_get(void)
945 return main_loop_select; 964 return main_loop_select;
946} 965}
947 966
948/**
949 * Adds a callback for activity on the given file descriptor.
950 *
951 * @p func will be called during the execution of @ref ecore_main_loop_begin
952 * when the file descriptor is available for reading, or writing, or both.
953 *
954 * Normally when @p func returns ECORE_CALLBACK_CANCEL, it indicates that the
955 * handler should be marked for deletion (identical to calling @ref ecore_main_fd_handler_del).
956 * However, if the @p buf_func is supplied, then the return value from the @p func indicates that
957 * @p func should be called repeatedly until it returns ECORE_CALLBACK_CANCEL.
958 *
959 * @p buf_func is called during event loop handling to check if data that has
960 * been read from the file descriptor is in a buffer and is available to
961 * read. Some systems (notably xlib) handle their own buffering, and would
962 * otherwise not work with select(). These systems should use a @p buf_func.
963 * This is a most annoying hack, only ecore_x uses it, so refer to that for
964 * an example. NOTE - @p func should probably return ECORE_CALLBACK_RENEW always if
965 * @p buf_func is used, to avoid confusion with the other return value
966 * semantics.
967 *
968 * @param fd The file descriptor to watch.
969 * @param flags To watch it for read (@c ECORE_FD_READ) and/or
970 * (@c ECORE_FD_WRITE) write ability. @c ECORE_FD_ERROR
971 *
972 * @param func The callback function.
973 * @param data The data to pass to the callback.
974 * @param buf_func The function to call to check if any data has been
975 * buffered and already read from the fd. Can be @c NULL.
976 * @param buf_data The data to pass to the @p buf_func function.
977 * @return A fd handler handle if successful. @c NULL otherwise.
978 * @note This function CANNOT be used for reading/writing to regular files!
979 * @ingroup Ecore_FD_Handler_Group
980 */
981EAPI Ecore_Fd_Handler * 967EAPI Ecore_Fd_Handler *
982ecore_main_fd_handler_add(int fd, 968ecore_main_fd_handler_add(int fd,
983 Ecore_Fd_Handler_Flags flags, 969 Ecore_Fd_Handler_Flags flags,
@@ -1059,20 +1045,6 @@ ecore_main_win32_handler_add(void *h __UNUSED__,
1059 1045
1060#endif 1046#endif
1061 1047
1062/**
1063 * Marks an FD handler for deletion.
1064 * @param fd_handler The FD handler.
1065 * @return The data pointer set using @ref ecore_main_fd_handler_add,
1066 * for @p fd_handler on success. @c NULL otherwise.
1067 * @ingroup Ecore_FD_Handler_Group
1068 * This function marks an fd handler to be deleted during an iteration of the main loop.
1069 * It does NOT close the associated fd!
1070 *
1071 * @note If the underlying fd is already closed ecore may complain if the main loop
1072 * is using epoll internally, and also in some rare cases this may cause
1073 * crashes and instability. Remember to delete your fd handlers before the
1074 * fds they listen to are closed.
1075 */
1076EAPI void * 1048EAPI void *
1077ecore_main_fd_handler_del(Ecore_Fd_Handler *fd_handler) 1049ecore_main_fd_handler_del(Ecore_Fd_Handler *fd_handler)
1078{ 1050{
@@ -1116,24 +1088,6 @@ ecore_main_win32_handler_del(Ecore_Win32_Handler *win32_handler __UNUSED__)
1116 1088
1117#endif 1089#endif
1118 1090
1119/**
1120 * @brief Set the prepare callback with data for a given #Ecore_Fd_Handler
1121 *
1122 * @param fd_handler The fd handler
1123 * @param func The prep function
1124 * @param data The data to pass to the prep function
1125 *
1126 * This function will be called prior to any fd handler's callback function
1127 * (even the other fd handlers), before entering the main loop select function.
1128 *
1129 * @note Once a prepare callback is set for a fd handler, it cannot be changed.
1130 * You need to delete the fd handler and create a new one, to set another
1131 * callback.
1132 * @note You probably don't need this function. It is only necessary for very
1133 * uncommon cases that need special behavior.
1134 *
1135 * @ingroup Ecore_FD_Handler_Group
1136 */
1137EAPI void 1091EAPI void
1138ecore_main_fd_handler_prepare_callback_set(Ecore_Fd_Handler *fd_handler, 1092ecore_main_fd_handler_prepare_callback_set(Ecore_Fd_Handler *fd_handler,
1139 Ecore_Fd_Prep_Cb func, 1093 Ecore_Fd_Prep_Cb func,
@@ -1157,12 +1111,6 @@ unlock:
1157 _ecore_unlock(); 1111 _ecore_unlock();
1158} 1112}
1159 1113
1160/**
1161 * Retrieves the file descriptor that the given handler is handling.
1162 * @param fd_handler The given FD handler.
1163 * @return The file descriptor the handler is watching.
1164 * @ingroup Ecore_FD_Handler_Group
1165 */
1166EAPI int 1114EAPI int
1167ecore_main_fd_handler_fd_get(Ecore_Fd_Handler *fd_handler) 1115ecore_main_fd_handler_fd_get(Ecore_Fd_Handler *fd_handler)
1168{ 1116{
@@ -1182,15 +1130,6 @@ unlock:
1182 return fd; 1130 return fd;
1183} 1131}
1184 1132
1185/**
1186 * Return if read, write or error, or a combination thereof, is active on the
1187 * file descriptor of the given FD handler.
1188 * @param fd_handler The given FD handler.
1189 * @param flags The flags, @c ECORE_FD_READ, @c ECORE_FD_WRITE or
1190 * @c ECORE_FD_ERROR to query.
1191 * @return #EINA_TRUE if any of the given flags are active. #EINA_FALSE otherwise.
1192 * @ingroup Ecore_FD_Handler_Group
1193 */
1194EAPI Eina_Bool 1133EAPI Eina_Bool
1195ecore_main_fd_handler_active_get(Ecore_Fd_Handler *fd_handler, 1134ecore_main_fd_handler_active_get(Ecore_Fd_Handler *fd_handler,
1196 Ecore_Fd_Handler_Flags flags) 1135 Ecore_Fd_Handler_Flags flags)
@@ -1213,12 +1152,6 @@ unlock:
1213 return ret; 1152 return ret;
1214} 1153}
1215 1154
1216/**
1217 * Set what active streams the given FD handler should be monitoring.
1218 * @param fd_handler The given FD handler.
1219 * @param flags The flags to be watching.
1220 * @ingroup Ecore_FD_Handler_Group
1221 */
1222EAPI void 1155EAPI void
1223ecore_main_fd_handler_active_set(Ecore_Fd_Handler *fd_handler, 1156ecore_main_fd_handler_active_set(Ecore_Fd_Handler *fd_handler,
1224 Ecore_Fd_Handler_Flags flags) 1157 Ecore_Fd_Handler_Flags flags)
@@ -1742,14 +1675,14 @@ _ecore_main_loop_iterate_internal(int once_only)
1742 if (_ecore_event_exist()) 1675 if (_ecore_event_exist())
1743 { 1676 {
1744 /* but first conceptually enter an idle state */ 1677 /* but first conceptually enter an idle state */
1745 _ecore_idle_enterer_call(); 1678 _ecore_idle_enterer_call();
1746 _ecore_throttle(); 1679 _ecore_throttle();
1747 /* now quickly poll to see which input fd's are active */ 1680 /* now quickly poll to see which input fd's are active */
1748 _ecore_main_select(0.0); 1681 _ecore_main_select(0.0);
1749 /* allow newly queued timers to expire from now on */ 1682 /* allow newly queued timers to expire from now on */
1750 _ecore_timer_enable_new(); 1683 _ecore_timer_enable_new();
1751 /* go straight to processing the events we had queued */ 1684 /* go straight to processing the events we had queued */
1752 goto process_all; 1685 goto process_all;
1753 } 1686 }
1754 1687
1755 if (once_only) 1688 if (once_only)
@@ -1758,17 +1691,17 @@ _ecore_main_loop_iterate_internal(int once_only)
1758 * if we got any events or signals, allow new timers to process. 1691 * if we got any events or signals, allow new timers to process.
1759 * use bitwise or to force both conditions to be tested and 1692 * use bitwise or to force both conditions to be tested and
1760 * merged together */ 1693 * merged together */
1761 if (_ecore_main_select(0.0) | _ecore_signal_count_get()) 1694 if (_ecore_main_select(0.0) | _ecore_signal_count_get())
1762 { 1695 {
1763 _ecore_timer_enable_new(); 1696 _ecore_timer_enable_new();
1764 goto process_all; 1697 goto process_all;
1765 } 1698 }
1766 } 1699 }
1767 else 1700 else
1768 { 1701 {
1769 /* call idle enterers ... */ 1702 /* call idle enterers ... */
1770 _ecore_idle_enterer_call(); 1703 _ecore_idle_enterer_call();
1771 _ecore_throttle(); 1704 _ecore_throttle();
1772 } 1705 }
1773 1706
1774 /* if these calls caused any buffered events to appear - deal with them */ 1707 /* if these calls caused any buffered events to appear - deal with them */
@@ -1787,10 +1720,10 @@ _ecore_main_loop_iterate_internal(int once_only)
1787 if (once_only) 1720 if (once_only)
1788 { 1721 {
1789 /* in once_only mode enter idle here instead and then return */ 1722 /* in once_only mode enter idle here instead and then return */
1790 _ecore_idle_enterer_call(); 1723 _ecore_idle_enterer_call();
1791 _ecore_throttle(); 1724 _ecore_throttle();
1792 _ecore_timer_enable_new(); 1725 _ecore_timer_enable_new();
1793 goto done; 1726 goto done;
1794 } 1727 }
1795 1728
1796 _ecore_fps_marker_1(); 1729 _ecore_fps_marker_1();
@@ -1808,23 +1741,23 @@ start_loop: /***************************************************************/
1808 if (!_ecore_event_exist()) 1741 if (!_ecore_event_exist())
1809 { 1742 {
1810 /* init flags */ 1743 /* init flags */
1811 next_time = _ecore_timer_next_get(); 1744 next_time = _ecore_timer_next_get();
1812 /* no idlers */ 1745 /* no idlers */
1813 if (!_ecore_idler_exist()) 1746 if (!_ecore_idler_exist())
1814 { 1747 {
1815 /* sleep until timeout or forever (-1.0) waiting for on fds */ 1748 /* sleep until timeout or forever (-1.0) waiting for on fds */
1816 _ecore_main_select(next_time); 1749 _ecore_main_select(next_time);
1817 } 1750 }
1818 else 1751 else
1819 { 1752 {
1820 int action = LOOP_CONTINUE; 1753 int action = LOOP_CONTINUE;
1821 1754
1822 /* no timers - spin */ 1755 /* no timers - spin */
1823 if (next_time < 0) action = _ecore_main_loop_spin_no_timers(); 1756 if (next_time < 0) action = _ecore_main_loop_spin_no_timers();
1824 /* timers - spin */ 1757 /* timers - spin */
1825 else action = _ecore_main_loop_spin_timers(); 1758 else action = _ecore_main_loop_spin_timers();
1826 if (action == SPIN_RESTART) goto start_loop; 1759 if (action == SPIN_RESTART) goto start_loop;
1827 } 1760 }
1828 } 1761 }
1829 _ecore_fps_marker_2(); 1762 _ecore_fps_marker_2();
1830 1763
@@ -1847,8 +1780,8 @@ process_all: /***********************************************************/
1847 if (once_only) 1780 if (once_only)
1848 { 1781 {
1849 /* if in once_only mode handle idle exiting */ 1782 /* if in once_only mode handle idle exiting */
1850 _ecore_idle_enterer_call(); 1783 _ecore_idle_enterer_call();
1851 _ecore_throttle(); 1784 _ecore_throttle();
1852 } 1785 }
1853 1786
1854done: /*******************************************************************/ 1787done: /*******************************************************************/
diff --git a/libraries/ecore/src/lib/ecore/ecore_pipe.c b/libraries/ecore/src/lib/ecore/ecore_pipe.c
index aa640cd..ea7453e 100644
--- a/libraries/ecore/src/lib/ecore/ecore_pipe.c
+++ b/libraries/ecore/src/lib/ecore/ecore_pipe.c
@@ -36,15 +36,13 @@
36# include <Escape.h> 36# include <Escape.h>
37#endif 37#endif
38 38
39#ifdef HAVE_EXOTIC
40# include <Exotic.h>
41#endif
42
39#include "Ecore.h" 43#include "Ecore.h"
40#include "ecore_private.h" 44#include "ecore_private.h"
41 45
42#ifdef _WIN32
43# define FMT_SSIZE_T "%Id"
44#else
45# define FMT_SSIZE_T "%zd"
46#endif
47
48/* How of then we should retry to write to the pipe */ 46/* How of then we should retry to write to the pipe */
49#define ECORE_PIPE_WRITE_RETRY 6 47#define ECORE_PIPE_WRITE_RETRY 6
50 48
@@ -80,6 +78,9 @@
80 78
81#endif /* ! _WIN32 */ 79#endif /* ! _WIN32 */
82 80
81#include <Ecore.h>
82#include "ecore_private.h"
83
83struct _Ecore_Pipe 84struct _Ecore_Pipe
84{ 85{
85 ECORE_MAGIC; 86 ECORE_MAGIC;
@@ -414,7 +415,7 @@ ecore_pipe_write(Ecore_Pipe *p,
414 ; 415 ;
415 else 416 else
416 { 417 {
417 ERR("An unhandled error (ret: " FMT_SSIZE_T " errno: %d)" 418 ERR("An unhandled error (ret: %zd errno: %d)"
418 "occurred while writing to the pipe the length", 419 "occurred while writing to the pipe the length",
419 ret, errno); 420 ret, errno);
420 } 421 }
@@ -448,7 +449,7 @@ ecore_pipe_write(Ecore_Pipe *p,
448 ; 449 ;
449 else 450 else
450 { 451 {
451 ERR("An unhandled error (ret: " FMT_SSIZE_T " errno: %d)" 452 ERR("An unhandled error (ret: %zd errno: %d)"
452 "occurred while writing to the pipe the length", 453 "occurred while writing to the pipe the length",
453 ret, errno); 454 ret, errno);
454 } 455 }
diff --git a/libraries/ecore/src/lib/ecore/ecore_poll.c b/libraries/ecore/src/lib/ecore/ecore_poll.c
index 732850b..bf4da6a 100644
--- a/libraries/ecore/src/lib/ecore/ecore_poll.c
+++ b/libraries/ecore/src/lib/ecore/ecore_poll.c
@@ -189,20 +189,6 @@ _ecore_poller_cb_timer(void *data __UNUSED__)
189 return ECORE_CALLBACK_RENEW; 189 return ECORE_CALLBACK_RENEW;
190} 190}
191 191
192/**
193 * @addtogroup Ecore_Poller_Group
194 *
195 * @{
196 */
197
198/**
199 * Sets the time between ticks (in seconds) for the given ticker clock.
200 * @param type The ticker type to adjust
201 * @param poll_time The time (in seconds) between ticks of the clock
202 *
203 * This will adjust the time between ticks of the given ticker type defined
204 * by @p type to the time period defined by @p poll_time.
205 */
206EAPI void 192EAPI void
207ecore_poller_poll_interval_set(Ecore_Poller_Type type __UNUSED__, 193ecore_poller_poll_interval_set(Ecore_Poller_Type type __UNUSED__,
208 double poll_time) 194 double poll_time)
@@ -211,65 +197,12 @@ ecore_poller_poll_interval_set(Ecore_Poller_Type type __UNUSED__,
211 _ecore_poller_next_tick_eval(); 197 _ecore_poller_next_tick_eval();
212} 198}
213 199
214/**
215 * Gets the time between ticks (in seconds) for the given ticker clock.
216 * @param type The ticker type to query
217 * @return The time in seconds between ticks of the ticker clock
218 *
219 * This will get the time between ticks of the specified ticker clock.
220 */
221EAPI double 200EAPI double
222ecore_poller_poll_interval_get(Ecore_Poller_Type type __UNUSED__) 201ecore_poller_poll_interval_get(Ecore_Poller_Type type __UNUSED__)
223{ 202{
224 return poll_interval; 203 return poll_interval;
225} 204}
226 205
227/**
228 * Creates a poller to call the given function at a particular tick interval.
229 * @param type The ticker type to attach the poller to
230 * @param interval The poll interval
231 * @param func The given function. If @p func returns 1, the poller is
232 * rescheduled for the next tick interval.
233 * @param data Data to pass to @p func when it is called.
234 * @return A poller object on success. @c NULL on failure.
235 *
236 * This function adds a poller callback that is to be called regularly
237 * along with all other poller callbacks so the pollers are synchronized with
238 * all other pollers running off the same poller type and at the same tick
239 * interval. This should be used for polling things when polling is desired
240 * or required, and you do not have specific requirements on the exact times
241 * to poll and want to avoid extra process wakeups for polling. This will
242 * save power as the CPU has more of a chance to go into a low power state
243 * the longer it is asleep for, so this should be used if you are at all
244 * power conscious.
245 *
246 * The @p type parameter defines the poller tick type (there is a virtual
247 * clock ticking all the time - though ecore avoids making it tick when
248 * there will not be any work to do at that tick point). There is only one
249 * ticker at the moment - that is ECORE_POLLER_CORE. This is here for future
250 * expansion if multiple clocks with different frequencies are really required.
251 * The default time between ticks for the ECORE_POLLER_CORE ticker is 0.125
252 * seconds.
253 *
254 * The @p interval is the number of ticker ticks that will pass by in between
255 * invocations of the @p func callback. This must be between 1 and 32768
256 * inclusive, and must be a power of 2 (i.e. 1, 2, 4, 8, 16, ... 16384, 32768).
257 * If it is 1, then the function will be called every tick. if it is 2, then it
258 * will be called every 2nd tick, if it is 8, then every 8th tick etc. Exactly
259 * which tick is undefined, as only the interval between calls can be defined.
260 * Ecore will endeavour to keep pollers synchronised and to call as many in
261 * 1 wakeup event as possible.
262 *
263 * This function adds a poller and returns its handle on success and NULL on
264 * failure. The function @p func will be called at tick intervals described
265 * above. The function will be passed the @p data pointer as its parameter.
266 *
267 * When the poller @p func is called, it must return a value of either
268 * 1 (or ECORE_CALLBACK_RENEW) or 0 (or ECORE_CALLBACK_CANCEL). If it
269 * returns 1, it will be called again at the next tick, or if it returns
270 * 0 it will be deleted automatically making any references/handles for it
271 * invalid.
272 */
273EAPI Ecore_Poller * 206EAPI Ecore_Poller *
274ecore_poller_add(Ecore_Poller_Type type __UNUSED__, 207ecore_poller_add(Ecore_Poller_Type type __UNUSED__,
275 int interval, 208 int interval,
@@ -307,16 +240,6 @@ ecore_poller_add(Ecore_Poller_Type type __UNUSED__,
307 return poller; 240 return poller;
308} 241}
309 242
310/**
311 * Changes the polling interval rate of @p poller.
312 *
313 * @param poller The Ecore_Poller to change the interval of
314 * @param interval The tick interval to set; must be a power of 2 but <= 32768
315 * @return Returns true on success, false on failure
316 *
317 * This allows the changing of a poller's polling interval. It is useful when you want to alter
318 * a poll rate without deleting and re-creating a poller.
319 */
320EAPI Eina_Bool 243EAPI Eina_Bool
321ecore_poller_poller_interval_set(Ecore_Poller *poller, 244ecore_poller_poller_interval_set(Ecore_Poller *poller,
322 int interval) 245 int interval)
@@ -353,14 +276,6 @@ ecore_poller_poller_interval_set(Ecore_Poller *poller,
353 return EINA_TRUE; 276 return EINA_TRUE;
354} 277}
355 278
356/**
357 * Gets the polling interval rate of @p poller.
358 *
359 * @param poller The Ecore_Poller to change the interval of
360 * @return Returns the interval, in ticks, that @p poller polls at
361 *
362 * This returns a poller's polling interval, or 0 on error.
363 */
364EAPI int 279EAPI int
365ecore_poller_poller_interval_get(Ecore_Poller *poller) 280ecore_poller_poller_interval_get(Ecore_Poller *poller)
366{ 281{
@@ -382,15 +297,6 @@ ecore_poller_poller_interval_get(Ecore_Poller *poller)
382 return interval; 297 return interval;
383} 298}
384 299
385/**
386 * Delete the specified poller from the timer list.
387 * @param poller The poller to delete.
388 * @return The data pointer set for the timer when @ref ecore_poller_add was
389 * called. @c NULL is returned if the function is unsuccessful.
390 *
391 * Note: @p poller must be a valid handle. If the poller function has already
392 * returned 0, the handle is no longer valid (and does not need to be delete).
393 */
394EAPI void * 300EAPI void *
395ecore_poller_del(Ecore_Poller *poller) 301ecore_poller_del(Ecore_Poller *poller)
396{ 302{
diff --git a/libraries/ecore/src/lib/ecore/ecore_private.h b/libraries/ecore/src/lib/ecore/ecore_private.h
index 50d502c..f0c5d6b 100644
--- a/libraries/ecore/src/lib/ecore/ecore_private.h
+++ b/libraries/ecore/src/lib/ecore/ecore_private.h
@@ -174,7 +174,7 @@ void *_ecore_main_fd_handler_del(Ecore_Fd_Handler *fd_handler);
174 174
175void _ecore_main_shutdown(void); 175void _ecore_main_shutdown(void);
176 176
177#if defined (_WIN32) || defined (__lv2ppu__) 177#if defined (_WIN32) || defined (__lv2ppu__) || defined (HAVE_EXOTIC)
178static inline void _ecore_signal_shutdown(void) { } 178static inline void _ecore_signal_shutdown(void) { }
179 179
180static inline void _ecore_signal_init(void) { } 180static inline void _ecore_signal_init(void) { }
@@ -237,14 +237,14 @@ _ecore_lock(void)
237 EINA_MAIN_LOOP_CHECK_RETURN; 237 EINA_MAIN_LOOP_CHECK_RETURN;
238#endif 238#endif
239 _ecore_main_lock_count++; 239 _ecore_main_lock_count++;
240 assert(_ecore_main_lock_count == 1); 240 /* assert(_ecore_main_lock_count == 1); */
241} 241}
242 242
243static inline void 243static inline void
244_ecore_unlock(void) 244_ecore_unlock(void)
245{ 245{
246 _ecore_main_lock_count--; 246 _ecore_main_lock_count--;
247 assert(_ecore_main_lock_count == 0); 247 /* assert(_ecore_main_lock_count == 0); */
248#ifdef HAVE_THREAD_SAFETY 248#ifdef HAVE_THREAD_SAFETY
249 eina_lock_release(&_ecore_main_loop_lock); 249 eina_lock_release(&_ecore_main_loop_lock);
250#endif 250#endif
diff --git a/libraries/ecore/src/lib/ecore/ecore_thread.c b/libraries/ecore/src/lib/ecore/ecore_thread.c
index 4444ad4..85fbe64 100644
--- a/libraries/ecore/src/lib/ecore/ecore_thread.c
+++ b/libraries/ecore/src/lib/ecore/ecore_thread.c
@@ -17,6 +17,25 @@
17 17
18#ifdef EFL_HAVE_THREADS 18#ifdef EFL_HAVE_THREADS
19 19
20# define LK(x) Eina_Lock x
21# define LKI(x) eina_lock_new(&(x))
22# define LKD(x) eina_lock_free(&(x))
23# define LKL(x) eina_lock_take(&(x))
24# define LKU(x) eina_lock_release(&(x))
25
26# define CD(x) Eina_Condition x
27# define CDI(x, m) eina_condition_new(&(x), &(m))
28# define CDD(x) eina_condition_free(&(x))
29# define CDB(x) eina_condition_broadcast(&(x))
30# define CDW(x, t) eina_condition_timedwait(&(x), t)
31
32# define LRWK(x) Eina_RWLock x
33# define LRWKI(x) eina_rwlock_new(&(x));
34# define LRWKD(x) eina_rwlock_free(&(x));
35# define LRWKWL(x) eina_rwlock_take_write(&(x));
36# define LRWKRL(x) eina_rwlock_take_read(&(x));
37# define LRWKU(x) eina_rwlock_release(&(x));
38
20# ifdef EFL_HAVE_POSIX_THREADS 39# ifdef EFL_HAVE_POSIX_THREADS
21# include <pthread.h> 40# include <pthread.h>
22# ifdef __linux__ 41# ifdef __linux__
@@ -31,28 +50,9 @@
31# define PHE(x, y) pthread_equal(x, y) 50# define PHE(x, y) pthread_equal(x, y)
32# define PHS() pthread_self() 51# define PHS() pthread_self()
33# define PHC(x, f, d) pthread_create(&(x), NULL, (void *)f, d) 52# define PHC(x, f, d) pthread_create(&(x), NULL, (void *)f, d)
34# define PHJ(x, p) pthread_join(x, (void **)(&(p))) 53# define PHJ(x) pthread_join(x, NULL)
35# define PHA(x) pthread_cancel(x) 54# define PHA(x) pthread_cancel(x)
36 55
37# define CD(x) pthread_cond_t x
38# define CDI(x) pthread_cond_init(&(x), NULL);
39# define CDD(x) pthread_cond_destroy(&(x));
40# define CDB(x) pthread_cond_broadcast(&(x));
41# define CDW(x, y, t) pthread_cond_timedwait(&(x), &(y), t);
42
43# define LK(x) pthread_mutex_t x
44# define LKI(x) pthread_mutex_init(&(x), NULL);
45# define LKD(x) pthread_mutex_destroy(&(x));
46# define LKL(x) pthread_mutex_lock(&(x));
47# define LKU(x) pthread_mutex_unlock(&(x));
48
49# define LRWK(x) pthread_rwlock_t x
50# define LRWKI(x) pthread_rwlock_init(&(x), NULL);
51# define LRWKD(x) pthread_rwlock_destroy(&(x));
52# define LRWKWL(x) pthread_rwlock_wrlock(&(x));
53# define LRWKRL(x) pthread_rwlock_rdlock(&(x));
54# define LRWKU(x) pthread_rwlock_unlock(&(x));
55
56# else /* EFL_HAVE_WIN32_THREADS */ 56# else /* EFL_HAVE_WIN32_THREADS */
57 57
58# define WIN32_LEAN_AND_MEAN 58# define WIN32_LEAN_AND_MEAN
@@ -108,209 +108,9 @@ _ecore_thread_win32_join(win32_thread *x,
108 return 0; 108 return 0;
109} 109}
110 110
111# define PHJ(x, p) _ecore_thread_win32_join(x, (void **)(&(p))) 111# define PHJ(x) _ecore_thread_win32_join(x, NULL)
112# define PHA(x) TerminateThread(x->thread, 0) 112# define PHA(x) TerminateThread(x->thread, 0)
113 113
114# define LK(x) HANDLE x
115# define LKI(x) x = CreateMutex(NULL, FALSE, NULL)
116# define LKD(x) CloseHandle(x)
117# define LKL(x) WaitForSingleObject(x, INFINITE)
118# define LKU(x) ReleaseMutex(x)
119
120typedef struct
121{
122 HANDLE semaphore;
123 LONG threads_count;
124 CRITICAL_SECTION threads_count_lock;
125} win32_cond;
126
127# define CD(x) win32_cond * x
128
129# define CDI(x) \
130 do { \
131 x = (win32_cond *)calloc(1, sizeof(win32_cond)); \
132 if (x) \
133 { \
134 x->semaphore = CreateSemaphore(NULL, 0, 0x7fffffff, NULL); \
135 if (x->semaphore) \
136 InitializeCriticalSection(&x->threads_count_lock); \
137 else \
138 { \
139 free(x); \
140 x = NULL; \
141 } \
142 } \
143 } while (0)
144
145# define CDD(x) \
146 do { \
147 CloseHandle(x->semaphore); \
148 free(x); \
149 x = NULL; \
150 } while (0)
151
152# define CDB(x) \
153 do { \
154 EnterCriticalSection(&x->threads_count_lock); \
155 if (x->threads_count > 0) \
156 ReleaseSemaphore(x->semaphore, x->threads_count, NULL); \
157 LeaveCriticalSection (&x->threads_count_lock); \
158 } while (0)
159
160int
161_ecore_thread_win32_cond_timedwait(win32_cond *c,
162 HANDLE *external_mutex,
163 struct timeval *t)
164{
165 DWORD res;
166 DWORD val = t->tv_sec * 1000 + (t->tv_usec / 1000);
167 LKL(external_mutex);
168 EnterCriticalSection (&c->threads_count_lock);
169 c->threads_count++;
170 LeaveCriticalSection (&c->threads_count_lock);
171 LKU(external_mutex);
172 res = WaitForSingleObject(c->semaphore, val);
173 if (res == WAIT_OBJECT_0)
174 return 0;
175 else
176 return -1;
177}
178
179# define CDW(x, y, t) _ecore_thread_win32_cond_timedwait(x, y, t)
180
181typedef struct
182{
183 LONG readers_count;
184 LONG writers_count;
185 int readers;
186 int writers;
187 LK(mutex);
188 CD(cond_read);
189 CD(cond_write);
190} win32_rwl;
191
192# define LRWK(x) win32_rwl * x
193# define LRWKI(x) \
194 do { \
195 x = (win32_rwl *)calloc(1, sizeof(win32_rwl)); \
196 if (x) \
197 { \
198 LKI(x->mutex); \
199 if (x->mutex) \
200 { \
201 CDI(x->cond_read); \
202 if (x->cond_read) \
203 { \
204 CDI(x->cond_write); \
205 if (!x->cond_write) \
206 { \
207 CDD(x->cond_read); \
208 LKD(x->mutex); \
209 free(x); \
210 x = NULL; \
211 } \
212 } \
213 else \
214 { \
215 LKD(x->mutex); \
216 free(x); \
217 x = NULL; \
218 } \
219 } \
220 else \
221 { \
222 free(x); \
223 x = NULL; \
224 } \
225 } \
226 } while (0)
227
228# define LRWKD(x) \
229 do { \
230 LKU(x->mutex); \
231 LKD(x->mutex); \
232 CDD(x->cond_write); \
233 CDD(x->cond_read); \
234 free(x); \
235 } while (0)
236# define LRWKWL(x) \
237 do { \
238 DWORD res; \
239 LKU(x->mutex); \
240 if (x->writers || x->readers > 0) \
241 { \
242 x->writers_count++; \
243 while (x->writers || x->readers > 0) \
244 { \
245 EnterCriticalSection(&x->cond_write->threads_count_lock); \
246 x->cond_read->threads_count++; \
247 LeaveCriticalSection(&x->cond_write->threads_count_lock); \
248 res = WaitForSingleObject(x->cond_write->semaphore, INFINITE); \
249 if (res != WAIT_OBJECT_0) break; \
250 } \
251 x->writers_count--; \
252 } \
253 if (res == 0) x->writers_count = 1; \
254 LKU(x->mutex); \
255 } while (0)
256# define LRWKRL(x) \
257 do { \
258 DWORD res; \
259 LKL(x->mutex); \
260 if (x->writers) \
261 { \
262 x->readers_count++; \
263 while (x->writers) \
264 { \
265 EnterCriticalSection(&x->cond_write->threads_count_lock); \
266 x->cond_read->threads_count++; \
267 LeaveCriticalSection(&x->cond_write->threads_count_lock); \
268 res = WaitForSingleObject(x->cond_write->semaphore, INFINITE); \
269 if (res != WAIT_OBJECT_0) break; \
270 } \
271 x->readers_count--; \
272 } \
273 if (res == 0) \
274 x->readers++; \
275 LKU(x->mutex); \
276 } while (0)
277# define LRWKU(x) \
278 do { \
279 LKL(x->mutex); \
280 if (x->writers) \
281 { \
282 x->writers = 0; \
283 if (x->readers_count == 1) \
284 { \
285 EnterCriticalSection(&x->cond_read->threads_count_lock); \
286 if (x->cond_read->threads_count > 0) \
287 ReleaseSemaphore(x->cond_read->semaphore, 1, 0); \
288 LeaveCriticalSection(&x->cond_read->threads_count_lock); \
289 } \
290 else if (x->readers_count > 0) \
291 CDB(x->cond_read); \
292 else if (x->writers_count > 0) \
293 { \
294 EnterCriticalSection (&x->cond_write->threads_count_lock); \
295 if (x->cond_write->threads_count > 0) \
296 ReleaseSemaphore(x->cond_write->semaphore, 1, 0); \
297 LeaveCriticalSection (&x->cond_write->threads_count_lock); \
298 } \
299 } \
300 else if (x->readers > 0) \
301 { \
302 x->readers--; \
303 if (x->readers == 0 && x->writers_count > 0) \
304 { \
305 EnterCriticalSection (&x->cond_write->threads_count_lock); \
306 if (x->cond_write->threads_count > 0) \
307 ReleaseSemaphore(x->cond_write->semaphore, 1, 0); \
308 LeaveCriticalSection (&x->cond_write->threads_count_lock); \
309 } \
310 } \
311 LKU(x->mutex); \
312 } while (0)
313
314# endif 114# endif
315 115
316#endif 116#endif
@@ -336,14 +136,24 @@ struct _Ecore_Pthread_Worker
336 { 136 {
337 Ecore_Thread_Cb func_heavy; 137 Ecore_Thread_Cb func_heavy;
338 Ecore_Thread_Notify_Cb func_notify; 138 Ecore_Thread_Notify_Cb func_notify;
339 Ecore_Pipe *notify;
340 139
341 Ecore_Pipe *direct_pipe;
342 Ecore_Pthread_Worker *direct_worker; 140 Ecore_Pthread_Worker *direct_worker;
343 141
344 int send; 142 int send;
345 int received; 143 int received;
346 } feedback_run; 144 } feedback_run;
145 struct {
146 Ecore_Thread_Cb func_main;
147 Ecore_Thread_Notify_Cb func_notify;
148
149 Ecore_Pipe *send;
150 Ecore_Pthread_Worker *direct_worker;
151
152 struct {
153 int send;
154 int received;
155 } from, to;
156 } message_run;
347 } u; 157 } u;
348 158
349 Ecore_Thread_Cb func_cancel; 159 Ecore_Thread_Cb func_cancel;
@@ -357,47 +167,63 @@ struct _Ecore_Pthread_Worker
357 167
358 const void *data; 168 const void *data;
359 169
360 Eina_Bool cancel : 1; 170 volatile int cancel;
361 Eina_Bool feedback_run : 1; 171
362 Eina_Bool kill : 1; 172#ifdef EFL_HAVE_THREADS
363 Eina_Bool reschedule : 1; 173 LK(cancel_mutex);
364 Eina_Bool no_queue : 1; 174#endif
175
176 Eina_Bool message_run : 1;
177 Eina_Bool feedback_run : 1;
178 Eina_Bool kill : 1;
179 Eina_Bool reschedule : 1;
180 Eina_Bool no_queue : 1;
365}; 181};
366 182
367#ifdef EFL_HAVE_THREADS 183#ifdef EFL_HAVE_THREADS
368typedef struct _Ecore_Pthread_Data Ecore_Pthread_Data; 184typedef struct _Ecore_Pthread_Data Ecore_Pthread_Data;
369
370struct _Ecore_Pthread_Data 185struct _Ecore_Pthread_Data
371{ 186{
372 Ecore_Pthread_Worker *death_job; 187 Ecore_Pthread_Worker *death_job;
373 Ecore_Pipe *p;
374 void *data; 188 void *data;
375 PH(thread); 189 PH(thread);
376}; 190};
191
192typedef struct _Ecore_Pthread_Notify Ecore_Pthread_Notify;
193struct _Ecore_Pthread_Notify
194{
195 Ecore_Pthread_Worker *work;
196 const void *user_data;
197};
198
199typedef void *(*Ecore_Thread_Sync_Cb)(void* data, Ecore_Thread *thread);
200
201typedef struct _Ecore_Pthread_Message Ecore_Pthread_Message;
202struct _Ecore_Pthread_Message
203{
204 union {
205 Ecore_Thread_Cb async;
206 Ecore_Thread_Sync_Cb sync;
207 } u;
208
209 const void *data;
210
211 int code;
212
213 Eina_Bool callback : 1;
214 Eina_Bool sync : 1;
215};
216
377#endif 217#endif
378 218
379static int _ecore_thread_count_max = 0; 219static int _ecore_thread_count_max = 0;
380static int ECORE_THREAD_PIPE_DEL = 0;
381static Eina_Array *_ecore_thread_pipe = NULL;
382 220
383#ifdef EFL_HAVE_THREADS 221#ifdef EFL_HAVE_THREADS
384 222
385static void _ecore_thread_handler(void *data __UNUSED__, 223static void _ecore_thread_handler(void *data);
386 void *buffer,
387 unsigned int nbyte);
388
389static Ecore_Pipe *
390_ecore_thread_pipe_get(void)
391{
392 if (eina_array_count(_ecore_thread_pipe) > 0)
393 return eina_array_pop(_ecore_thread_pipe);
394
395 return ecore_pipe_add(_ecore_thread_handler, NULL);
396}
397 224
398static int _ecore_thread_count = 0; 225static int _ecore_thread_count = 0;
399 226
400static Ecore_Event_Handler *del_handler = NULL;
401static Eina_List *_ecore_active_job_threads = NULL; 227static Eina_List *_ecore_active_job_threads = NULL;
402static Eina_List *_ecore_pending_job_threads = NULL; 228static Eina_List *_ecore_pending_job_threads = NULL;
403static Eina_List *_ecore_pending_job_threads_feedback = NULL; 229static Eina_List *_ecore_pending_job_threads_feedback = NULL;
@@ -435,6 +261,10 @@ static PH(get_main_loop_thread) (void)
435static void 261static void
436_ecore_thread_worker_free(Ecore_Pthread_Worker *worker) 262_ecore_thread_worker_free(Ecore_Pthread_Worker *worker)
437{ 263{
264 LKD(worker->cancel_mutex);
265 CDD(worker->cond);
266 LKD(worker->mutex);
267
438 if (_ecore_thread_worker_count > (_ecore_thread_count_max + 1) * 16) 268 if (_ecore_thread_worker_count > (_ecore_thread_count_max + 1) * 16)
439 { 269 {
440 free(worker); 270 free(worker);
@@ -454,38 +284,15 @@ _ecore_thread_data_free(void *data)
454} 284}
455 285
456static void 286static void
457_ecore_thread_pipe_free(void *data __UNUSED__,
458 void *event)
459{
460 Ecore_Pipe *p = event;
461
462 if (eina_array_count(_ecore_thread_pipe) < 50)
463 eina_array_push(_ecore_thread_pipe, p);
464 else
465 ecore_pipe_del(p);
466 eina_threads_shutdown();
467}
468
469static Eina_Bool
470_ecore_thread_pipe_del(void *data __UNUSED__,
471 int type __UNUSED__,
472 void *event __UNUSED__)
473{
474 /* This is a hack to delay pipe destruction until we are out of its internal loop. */
475 return ECORE_CALLBACK_CANCEL;
476}
477
478static void
479_ecore_thread_end(Ecore_Pthread_Data *pth, 287_ecore_thread_end(Ecore_Pthread_Data *pth,
480 Ecore_Thread *work) 288 Ecore_Thread *work)
481{ 289{
482 Ecore_Pthread_Worker *worker = (Ecore_Pthread_Worker *)work; 290 Ecore_Pthread_Worker *worker = (Ecore_Pthread_Worker *)work;
483 Ecore_Pipe *p;
484 291
485 if (!worker->feedback_run || (worker->feedback_run && !worker->no_queue)) 292 if (!worker->message_run || !worker->feedback_run || (worker->feedback_run && !worker->no_queue))
486 _ecore_thread_count--; 293 _ecore_thread_count--;
487 294
488 if (PHJ(pth->thread, p) != 0) 295 if (PHJ(pth->thread) != 0)
489 return; 296 return;
490 297
491 if (eina_list_count(_ecore_pending_job_threads) > 0 298 if (eina_list_count(_ecore_pending_job_threads) > 0
@@ -496,7 +303,7 @@ _ecore_thread_end(Ecore_Pthread_Data *pth,
496 INF("spawning threads because of still pending jobs."); 303 INF("spawning threads because of still pending jobs.");
497 304
498 pth->death_job = _ecore_thread_worker_new(); 305 pth->death_job = _ecore_thread_worker_new();
499 if (!pth->p || !pth->death_job) goto end; 306 if (!pth->death_job) goto end;
500 307
501 eina_threads_init(); 308 eina_threads_init();
502 309
@@ -514,7 +321,6 @@ end:
514 321
515 _ecore_active_job_threads = eina_list_remove(_ecore_active_job_threads, pth); 322 _ecore_active_job_threads = eina_list_remove(_ecore_active_job_threads, pth);
516 323
517 ecore_event_add(ECORE_THREAD_PIPE_DEL, pth->p, _ecore_thread_pipe_free, NULL);
518 free(pth); 324 free(pth);
519} 325}
520 326
@@ -534,30 +340,18 @@ _ecore_thread_kill(Ecore_Pthread_Worker *work)
534 340
535 if (work->feedback_run) 341 if (work->feedback_run)
536 { 342 {
537 ecore_pipe_del(work->u.feedback_run.notify);
538
539 if (work->u.feedback_run.direct_pipe)
540 eina_array_push(_ecore_thread_pipe, work->u.feedback_run.direct_pipe);
541 if (work->u.feedback_run.direct_worker) 343 if (work->u.feedback_run.direct_worker)
542 _ecore_thread_worker_free(work->u.feedback_run.direct_worker); 344 _ecore_thread_worker_free(work->u.feedback_run.direct_worker);
543 } 345 }
544 CDD(work->cond);
545 LKD(work->mutex);
546 if (work->hash) 346 if (work->hash)
547 eina_hash_free(work->hash); 347 eina_hash_free(work->hash);
548 _ecore_thread_worker_free(work); 348 _ecore_thread_worker_free(work);
549} 349}
550 350
551static void 351static void
552_ecore_thread_handler(void *data __UNUSED__, 352_ecore_thread_handler(void *data)
553 void *buffer,
554 unsigned int nbyte)
555{ 353{
556 Ecore_Pthread_Worker *work; 354 Ecore_Pthread_Worker *work = data;
557
558 if (nbyte != sizeof (Ecore_Pthread_Worker *)) return;
559
560 work = *(Ecore_Pthread_Worker **)buffer;
561 355
562 if (work->feedback_run) 356 if (work->feedback_run)
563 { 357 {
@@ -571,17 +365,20 @@ _ecore_thread_handler(void *data __UNUSED__,
571 _ecore_thread_kill(work); 365 _ecore_thread_kill(work);
572} 366}
573 367
368#if 0
574static void 369static void
575_ecore_notify_handler(void *data, 370_ecore_nothing_handler(void *data __UNUSED__, void *buffer __UNUSED__, unsigned int nbyte __UNUSED__)
576 void *buffer,
577 unsigned int nbyte)
578{ 371{
579 Ecore_Pthread_Worker *work = data; 372}
580 void *user_data; 373#endif
581 374
582 if (nbyte != sizeof (Ecore_Pthread_Worker *)) return; 375static void
376_ecore_notify_handler(void *data)
377{
378 Ecore_Pthread_Notify *notify = data;
379 Ecore_Pthread_Worker *work = notify->work;
380 void *user_data = (void*) notify->user_data;
583 381
584 user_data = *(void **)buffer;
585 work->u.feedback_run.received++; 382 work->u.feedback_run.received++;
586 383
587 if (work->u.feedback_run.func_notify) 384 if (work->u.feedback_run.func_notify)
@@ -592,16 +389,64 @@ _ecore_notify_handler(void *data,
592 { 389 {
593 _ecore_thread_kill(work); 390 _ecore_thread_kill(work);
594 } 391 }
392
393 free(notify);
394}
395
396static void
397_ecore_message_notify_handler(void *data)
398{
399 Ecore_Pthread_Notify *notify = data;
400 Ecore_Pthread_Worker *work = notify->work;
401 Ecore_Pthread_Message *user_data = (void *) notify->user_data;
402 Eina_Bool delete = EINA_TRUE;
403
404 work->u.message_run.from.received++;
405
406 if (!user_data->callback)
407 {
408 if (work->u.message_run.func_notify)
409 work->u.message_run.func_notify((void *) work->data, (Ecore_Thread *) work, (void *) user_data->data);
410 }
411 else
412 {
413 if (user_data->sync)
414 {
415 user_data->data = user_data->u.sync((void*) user_data->data, (Ecore_Thread *) work);
416 user_data->callback = EINA_FALSE;
417 user_data->code = INT_MAX;
418 ecore_pipe_write(work->u.message_run.send, &user_data, sizeof (Ecore_Pthread_Message *));
419
420 delete = EINA_FALSE;
421 }
422 else
423 {
424 user_data->u.async((void*) user_data->data, (Ecore_Thread *) work);
425 }
426 }
427
428 if (delete)
429 {
430 free(user_data);
431 }
432
433 /* Force reading all notify event before killing the thread */
434 if (work->kill && work->u.message_run.from.send == work->u.message_run.from.received)
435 {
436 _ecore_thread_kill(work);
437 }
438 free(notify);
595} 439}
596 440
597static void 441static void
598_ecore_short_job(Ecore_Pipe *end_pipe, 442_ecore_short_job(PH(thread))
599 PH(thread))
600{ 443{
601 Ecore_Pthread_Worker *work; 444 Ecore_Pthread_Worker *work;
602 445
603 while (_ecore_pending_job_threads) 446 while (_ecore_pending_job_threads)
604 { 447 {
448 int cancel;
449
605 LKL(_ecore_pending_job_threads_mutex); 450 LKL(_ecore_pending_job_threads_mutex);
606 451
607 if (!_ecore_pending_job_threads) 452 if (!_ecore_pending_job_threads)
@@ -616,9 +461,12 @@ _ecore_short_job(Ecore_Pipe *end_pipe,
616 461
617 LKU(_ecore_pending_job_threads_mutex); 462 LKU(_ecore_pending_job_threads_mutex);
618 463
464 LKL(work->cancel_mutex);
465 cancel = work->cancel;
466 LKU(work->cancel_mutex);
619 work->self = thread; 467 work->self = thread;
620 if (!work->cancel) 468 if (!cancel)
621 work->u.short_run.func_blocking((void *)work->data, (Ecore_Thread *)work); 469 work->u.short_run.func_blocking((void *) work->data, (Ecore_Thread*) work);
622 470
623 if (work->reschedule) 471 if (work->reschedule)
624 { 472 {
@@ -630,19 +478,20 @@ _ecore_short_job(Ecore_Pipe *end_pipe,
630 } 478 }
631 else 479 else
632 { 480 {
633 ecore_pipe_write(end_pipe, &work, sizeof (Ecore_Pthread_Worker *)); 481 ecore_main_loop_thread_safe_call_async(_ecore_thread_handler, work);
634 } 482 }
635 } 483 }
636} 484}
637 485
638static void 486static void
639_ecore_feedback_job(Ecore_Pipe *end_pipe, 487_ecore_feedback_job(PH(thread))
640 PH(thread))
641{ 488{
642 Ecore_Pthread_Worker *work; 489 Ecore_Pthread_Worker *work;
643 490
644 while (_ecore_pending_job_threads_feedback) 491 while (_ecore_pending_job_threads_feedback)
645 { 492 {
493 int cancel;
494
646 LKL(_ecore_pending_job_threads_mutex); 495 LKL(_ecore_pending_job_threads_mutex);
647 496
648 if (!_ecore_pending_job_threads_feedback) 497 if (!_ecore_pending_job_threads_feedback)
@@ -657,9 +506,12 @@ _ecore_feedback_job(Ecore_Pipe *end_pipe,
657 506
658 LKU(_ecore_pending_job_threads_mutex); 507 LKU(_ecore_pending_job_threads_mutex);
659 508
509 LKL(work->cancel_mutex);
510 cancel = work->cancel;
511 LKU(work->cancel_mutex);
660 work->self = thread; 512 work->self = thread;
661 if (!work->cancel) 513 if (!cancel)
662 work->u.feedback_run.func_heavy((void *)work->data, (Ecore_Thread *)work); 514 work->u.feedback_run.func_heavy((void *) work->data, (Ecore_Thread *) work);
663 515
664 if (work->reschedule) 516 if (work->reschedule)
665 { 517 {
@@ -671,7 +523,7 @@ _ecore_feedback_job(Ecore_Pipe *end_pipe,
671 } 523 }
672 else 524 else
673 { 525 {
674 ecore_pipe_write(end_pipe, &work, sizeof (Ecore_Pthread_Worker *)); 526 ecore_main_loop_thread_safe_call_async(_ecore_thread_handler, work);
675 } 527 }
676 } 528 }
677} 529}
@@ -679,6 +531,7 @@ _ecore_feedback_job(Ecore_Pipe *end_pipe,
679static void * 531static void *
680_ecore_direct_worker(Ecore_Pthread_Worker *work) 532_ecore_direct_worker(Ecore_Pthread_Worker *work)
681{ 533{
534 Ecore_Pthread_Worker *end;
682 Ecore_Pthread_Data *pth; 535 Ecore_Pthread_Data *pth;
683 536
684#ifdef EFL_POSIX_THREADS 537#ifdef EFL_POSIX_THREADS
@@ -691,40 +544,49 @@ _ecore_direct_worker(Ecore_Pthread_Worker *work)
691 pth = malloc(sizeof (Ecore_Pthread_Data)); 544 pth = malloc(sizeof (Ecore_Pthread_Data));
692 if (!pth) return NULL; 545 if (!pth) return NULL;
693 546
694 pth->p = work->u.feedback_run.direct_pipe;
695 if (!pth->p)
696 {
697 free(pth);
698 return NULL;
699 }
700 pth->thread = PHS(); 547 pth->thread = PHS();
701 548
702 work->self = pth->thread; 549 work->self = pth->thread;
703 work->u.feedback_run.func_heavy((void *)work->data, (Ecore_Thread *)work); 550 if (work->message_run)
551 work->u.message_run.func_main((void *) work->data, (Ecore_Thread *) work);
552 else
553 work->u.feedback_run.func_heavy((void *) work->data, (Ecore_Thread *) work);
704 554
705 ecore_pipe_write(pth->p, &work, sizeof (Ecore_Pthread_Worker *)); 555 if (work->message_run)
556 {
557 end = work->u.message_run.direct_worker;
558 work->u.message_run.direct_worker = NULL;
559 }
560 else
561 {
562 end = work->u.feedback_run.direct_worker;
563 work->u.feedback_run.direct_worker = NULL;
564 }
706 565
707 work = work->u.feedback_run.direct_worker; 566 ecore_main_loop_thread_safe_call_async(_ecore_thread_handler, work);
708 if (!work) 567
568 if (!end)
709 { 569 {
710 free(pth); 570 free(pth);
711 return NULL; 571 return NULL;
712 } 572 }
713 573
714 work->data = pth; 574 end->data = pth;
715 work->u.short_run.func_blocking = NULL; 575 end->u.short_run.func_blocking = NULL;
716 work->func_end = (void *)_ecore_thread_end; 576 end->func_end = (void *)_ecore_thread_end;
717 work->func_cancel = NULL; 577 end->func_cancel = NULL;
718 work->cancel = EINA_FALSE; 578 end->cancel = EINA_FALSE;
719 work->feedback_run = EINA_FALSE; 579 end->feedback_run = EINA_FALSE;
720 work->kill = EINA_FALSE; 580 end->message_run = EINA_FALSE;
721 work->hash = NULL; 581 end->no_queue = EINA_FALSE;
722 CDI(work->cond); 582 end->kill = EINA_FALSE;
723 LKI(work->mutex); 583 end->hash = NULL;
724 584 LKI(end->mutex);
725 ecore_pipe_write(pth->p, &work, sizeof (Ecore_Pthread_Worker *)); 585 CDI(end->cond, end->mutex);
586
587 ecore_main_loop_thread_safe_call_async(_ecore_thread_handler, end);
726 588
727 return pth->p; 589 return NULL;
728} 590}
729 591
730static void * 592static void *
@@ -740,8 +602,8 @@ _ecore_thread_worker(Ecore_Pthread_Data *pth)
740 eina_sched_prio_drop(); 602 eina_sched_prio_drop();
741 603
742restart: 604restart:
743 if (_ecore_pending_job_threads) _ecore_short_job(pth->p, pth->thread); 605 if (_ecore_pending_job_threads) _ecore_short_job(pth->thread);
744 if (_ecore_pending_job_threads_feedback) _ecore_feedback_job(pth->p, pth->thread); 606 if (_ecore_pending_job_threads_feedback) _ecore_feedback_job(pth->thread);
745 607
746 /* FIXME: Check if there is feedback running task todo, and switch to feedback run handler. */ 608 /* FIXME: Check if there is feedback running task todo, and switch to feedback run handler. */
747 609
@@ -777,14 +639,14 @@ restart:
777 work->func_cancel = NULL; 639 work->func_cancel = NULL;
778 work->cancel = EINA_FALSE; 640 work->cancel = EINA_FALSE;
779 work->feedback_run = EINA_FALSE; 641 work->feedback_run = EINA_FALSE;
642 work->message_run = EINA_FALSE;
780 work->kill = EINA_FALSE; 643 work->kill = EINA_FALSE;
644 work->no_queue = EINA_FALSE;
781 work->hash = NULL; 645 work->hash = NULL;
782 CDI(work->cond);
783 LKI(work->mutex);
784 646
785 ecore_pipe_write(pth->p, &work, sizeof (Ecore_Pthread_Worker *)); 647 ecore_main_loop_thread_safe_call_async(_ecore_thread_handler, work);
786 648
787 return pth->p; 649 return NULL;
788} 650}
789 651
790#endif 652#endif
@@ -800,6 +662,10 @@ _ecore_thread_worker_new(void)
800 if (!result) result = malloc(sizeof (Ecore_Pthread_Worker)); 662 if (!result) result = malloc(sizeof (Ecore_Pthread_Worker));
801 else _ecore_thread_worker_count--; 663 else _ecore_thread_worker_count--;
802 664
665 LKI(result->cancel_mutex);
666 LKI(result->mutex);
667 CDI(result->cond, result->mutex);
668
803 return result; 669 return result;
804#else 670#else
805 return malloc(sizeof (Ecore_Pthread_Worker)); 671 return malloc(sizeof (Ecore_Pthread_Worker));
@@ -813,16 +679,11 @@ _ecore_thread_init(void)
813 if (_ecore_thread_count_max <= 0) 679 if (_ecore_thread_count_max <= 0)
814 _ecore_thread_count_max = 1; 680 _ecore_thread_count_max = 1;
815 681
816 ECORE_THREAD_PIPE_DEL = ecore_event_type_new();
817 _ecore_thread_pipe = eina_array_new(8);
818
819#ifdef EFL_HAVE_THREADS 682#ifdef EFL_HAVE_THREADS
820 del_handler = ecore_event_handler_add(ECORE_THREAD_PIPE_DEL, _ecore_thread_pipe_del, NULL);
821
822 LKI(_ecore_pending_job_threads_mutex); 683 LKI(_ecore_pending_job_threads_mutex);
823 LRWKI(_ecore_thread_global_hash_lock); 684 LRWKI(_ecore_thread_global_hash_lock);
824 LKI(_ecore_thread_global_hash_mutex); 685 LKI(_ecore_thread_global_hash_mutex);
825 CDI(_ecore_thread_global_hash_cond); 686 CDI(_ecore_thread_global_hash_cond, _ecore_thread_global_hash_mutex);
826#endif 687#endif
827} 688}
828 689
@@ -830,10 +691,6 @@ void
830_ecore_thread_shutdown(void) 691_ecore_thread_shutdown(void)
831{ 692{
832 /* FIXME: If function are still running in the background, should we kill them ? */ 693 /* FIXME: If function are still running in the background, should we kill them ? */
833 Ecore_Pipe *p;
834 Eina_Array_Iterator it;
835 unsigned int i;
836
837#ifdef EFL_HAVE_THREADS 694#ifdef EFL_HAVE_THREADS
838 Ecore_Pthread_Worker *work; 695 Ecore_Pthread_Worker *work;
839 Ecore_Pthread_Data *pth; 696 Ecore_Pthread_Data *pth;
@@ -843,46 +700,39 @@ _ecore_thread_shutdown(void)
843 EINA_LIST_FREE(_ecore_pending_job_threads, work) 700 EINA_LIST_FREE(_ecore_pending_job_threads, work)
844 { 701 {
845 if (work->func_cancel) 702 if (work->func_cancel)
846 work->func_cancel((void *)work->data, (Ecore_Thread *)work); 703 work->func_cancel((void *)work->data, (Ecore_Thread *) work);
847 free(work); 704 free(work);
848 } 705 }
849 706
850 EINA_LIST_FREE(_ecore_pending_job_threads_feedback, work) 707 EINA_LIST_FREE(_ecore_pending_job_threads_feedback, work)
851 { 708 {
852 if (work->func_cancel) 709 if (work->func_cancel)
853 work->func_cancel((void *)work->data, (Ecore_Thread *)work); 710 work->func_cancel((void *)work->data, (Ecore_Thread *) work);
854 free(work); 711 free(work);
855 } 712 }
856 713
857 LKU(_ecore_pending_job_threads_mutex); 714 LKU(_ecore_pending_job_threads_mutex);
858 715
859 /* Improve emergency shutdown */ 716 /* FIXME: Improve emergency shutdown, now that we use async call, we can do something */
860 EINA_LIST_FREE(_ecore_active_job_threads, pth) 717 EINA_LIST_FREE(_ecore_active_job_threads, pth)
861 { 718 {
862 Ecore_Pipe *ep;
863
864 PHA(pth->thread); 719 PHA(pth->thread);
865 PHJ(pth->thread, ep); 720 PHJ(pth->thread);
866
867 ecore_pipe_del(pth->p);
868 } 721 }
869 if (_ecore_thread_global_hash) 722 if (_ecore_thread_global_hash)
870 eina_hash_free(_ecore_thread_global_hash); 723 eina_hash_free(_ecore_thread_global_hash);
871 _ecore_event_handler_del(del_handler);
872 have_main_loop_thread = 0; 724 have_main_loop_thread = 0;
873 del_handler = NULL; 725
726 while ((work = eina_trash_pop(&_ecore_thread_worker_trash)))
727 {
728 free(work);
729 }
874 730
875 LKD(_ecore_pending_job_threads_mutex); 731 LKD(_ecore_pending_job_threads_mutex);
876 LRWKD(_ecore_thread_global_hash_lock); 732 LRWKD(_ecore_thread_global_hash_lock);
877 LKD(_ecore_thread_global_hash_mutex); 733 LKD(_ecore_thread_global_hash_mutex);
878 CDD(_ecore_thread_global_hash_cond); 734 CDD(_ecore_thread_global_hash_cond);
879#endif 735#endif
880
881 EINA_ARRAY_ITER_NEXT(_ecore_thread_pipe, i, p, it)
882 ecore_pipe_del(p);
883
884 eina_array_free(_ecore_thread_pipe);
885 _ecore_thread_pipe = NULL;
886} 736}
887 737
888void 738void
@@ -927,15 +777,15 @@ ecore_thread_run(Ecore_Thread_Cb func_blocking,
927 work->func_cancel = func_cancel; 777 work->func_cancel = func_cancel;
928 work->cancel = EINA_FALSE; 778 work->cancel = EINA_FALSE;
929 work->feedback_run = EINA_FALSE; 779 work->feedback_run = EINA_FALSE;
780 work->message_run = EINA_FALSE;
930 work->kill = EINA_FALSE; 781 work->kill = EINA_FALSE;
931 work->reschedule = EINA_FALSE; 782 work->reschedule = EINA_FALSE;
783 work->no_queue = EINA_FALSE;
932 work->data = data; 784 work->data = data;
933 785
934#ifdef EFL_HAVE_THREADS 786#ifdef EFL_HAVE_THREADS
935 work->self = 0; 787 work->self = 0;
936 work->hash = NULL; 788 work->hash = NULL;
937 CDI(work->cond);
938 LKI(work->mutex);
939 789
940 LKL(_ecore_pending_job_threads_mutex); 790 LKL(_ecore_pending_job_threads_mutex);
941 _ecore_pending_job_threads = eina_list_append(_ecore_pending_job_threads, work); 791 _ecore_pending_job_threads = eina_list_append(_ecore_pending_job_threads, work);
@@ -952,9 +802,8 @@ ecore_thread_run(Ecore_Thread_Cb func_blocking,
952 pth = malloc(sizeof (Ecore_Pthread_Data)); 802 pth = malloc(sizeof (Ecore_Pthread_Data));
953 if (!pth) goto on_error; 803 if (!pth) goto on_error;
954 804
955 pth->p = _ecore_thread_pipe_get();
956 pth->death_job = _ecore_thread_worker_new(); 805 pth->death_job = _ecore_thread_worker_new();
957 if (!pth->p || !pth->death_job) goto on_error; 806 if (!pth->death_job) goto on_error;
958 807
959 eina_threads_init(); 808 eina_threads_init();
960 809
@@ -969,7 +818,6 @@ ecore_thread_run(Ecore_Thread_Cb func_blocking,
969on_error: 818on_error:
970 if (pth) 819 if (pth)
971 { 820 {
972 if (pth->p) eina_array_push(_ecore_thread_pipe, pth->p);
973 if (pth->death_job) _ecore_thread_worker_free(pth->death_job); 821 if (pth->death_job) _ecore_thread_worker_free(pth->death_job);
974 free(pth); 822 free(pth);
975 } 823 }
@@ -981,7 +829,11 @@ on_error:
981 LKU(_ecore_pending_job_threads_mutex); 829 LKU(_ecore_pending_job_threads_mutex);
982 830
983 if (work->func_cancel) 831 if (work->func_cancel)
984 work->func_cancel((void *)work->data, (Ecore_Thread *)work); 832 work->func_cancel((void *) work->data, (Ecore_Thread *) work);
833
834 CDD(work->cond);
835 LKD(work->mutex);
836 LKD(work->cancel_mutex);
985 free(work); 837 free(work);
986 work = NULL; 838 work = NULL;
987 } 839 }
@@ -1013,12 +865,16 @@ EAPI Eina_Bool
1013ecore_thread_cancel(Ecore_Thread *thread) 865ecore_thread_cancel(Ecore_Thread *thread)
1014{ 866{
1015#ifdef EFL_HAVE_THREADS 867#ifdef EFL_HAVE_THREADS
1016 Ecore_Pthread_Worker *work = (Ecore_Pthread_Worker *)thread; 868 Ecore_Pthread_Worker *volatile work = (Ecore_Pthread_Worker *)thread;
1017 Eina_List *l; 869 Eina_List *l;
870 int cancel;
1018 871
1019 if (!work) 872 if (!work)
1020 return EINA_TRUE; 873 return EINA_TRUE;
1021 if (work->cancel) 874 LKL(work->cancel_mutex);
875 cancel = work->cancel;
876 LKU(work->cancel_mutex);
877 if (cancel)
1022 return EINA_FALSE; 878 return EINA_FALSE;
1023 879
1024 if (work->feedback_run) 880 if (work->feedback_run)
@@ -1070,9 +926,14 @@ ecore_thread_cancel(Ecore_Thread *thread)
1070 926
1071 LKU(_ecore_pending_job_threads_mutex); 927 LKU(_ecore_pending_job_threads_mutex);
1072 928
929 work = (Ecore_Pthread_Worker *)thread;
930
1073 /* Delay the destruction */ 931 /* Delay the destruction */
1074on_exit: 932 on_exit:
1075 ((Ecore_Pthread_Worker *)thread)->cancel = EINA_TRUE; 933 LKL(work->cancel_mutex);
934 work->cancel = EINA_TRUE;
935 LKU(work->cancel_mutex);
936
1076 return EINA_FALSE; 937 return EINA_FALSE;
1077#else 938#else
1078 (void) thread; 939 (void) thread;
@@ -1083,10 +944,23 @@ on_exit:
1083EAPI Eina_Bool 944EAPI Eina_Bool
1084ecore_thread_check(Ecore_Thread *thread) 945ecore_thread_check(Ecore_Thread *thread)
1085{ 946{
1086 Ecore_Pthread_Worker *worker = (Ecore_Pthread_Worker *)thread; 947 Ecore_Pthread_Worker *volatile worker = (Ecore_Pthread_Worker *) thread;
948 int cancel;
1087 949
1088 if (!worker) return EINA_TRUE; 950 if (!worker) return EINA_TRUE;
1089 return worker->cancel; 951#ifdef EFL_HAVE_THREADS
952 LKL(worker->cancel_mutex);
953#endif
954 cancel = worker->cancel;
955 /* FIXME: there is an insane bug driving me nuts here. I don't know if
956 it's a race condition, some cache issue or some alien attack on our software.
957 But ecore_thread_check will only work correctly with a printf, all the volatile,
958 lock and even usleep don't help here... */
959 /* fprintf(stderr, "wc: %i\n", cancel); */
960#ifdef EFL_HAVE_THREADS
961 LKU(worker->cancel_mutex);
962#endif
963 return cancel;
1090} 964}
1091 965
1092EAPI Ecore_Thread * 966EAPI Ecore_Thread *
@@ -1109,12 +983,11 @@ ecore_thread_feedback_run(Ecore_Thread_Cb func_heavy,
1109 worker->u.feedback_run.func_heavy = func_heavy; 983 worker->u.feedback_run.func_heavy = func_heavy;
1110 worker->u.feedback_run.func_notify = func_notify; 984 worker->u.feedback_run.func_notify = func_notify;
1111 worker->hash = NULL; 985 worker->hash = NULL;
1112 CDI(worker->cond);
1113 LKI(worker->mutex);
1114 worker->func_cancel = func_cancel; 986 worker->func_cancel = func_cancel;
1115 worker->func_end = func_end; 987 worker->func_end = func_end;
1116 worker->data = data; 988 worker->data = data;
1117 worker->cancel = EINA_FALSE; 989 worker->cancel = EINA_FALSE;
990 worker->message_run = EINA_FALSE;
1118 worker->feedback_run = EINA_TRUE; 991 worker->feedback_run = EINA_TRUE;
1119 worker->kill = EINA_FALSE; 992 worker->kill = EINA_FALSE;
1120 worker->reschedule = EINA_FALSE; 993 worker->reschedule = EINA_FALSE;
@@ -1123,15 +996,12 @@ ecore_thread_feedback_run(Ecore_Thread_Cb func_heavy,
1123 worker->u.feedback_run.send = 0; 996 worker->u.feedback_run.send = 0;
1124 worker->u.feedback_run.received = 0; 997 worker->u.feedback_run.received = 0;
1125 998
1126 worker->u.feedback_run.notify = ecore_pipe_add(_ecore_notify_handler, worker);
1127 worker->u.feedback_run.direct_pipe = NULL;
1128 worker->u.feedback_run.direct_worker = NULL; 999 worker->u.feedback_run.direct_worker = NULL;
1129 1000
1130 if (!try_no_queue) 1001 if (try_no_queue)
1131 { 1002 {
1132 PH(t); 1003 PH(t);
1133 1004
1134 worker->u.feedback_run.direct_pipe = _ecore_thread_pipe_get();
1135 worker->u.feedback_run.direct_worker = _ecore_thread_worker_new(); 1005 worker->u.feedback_run.direct_worker = _ecore_thread_worker_new();
1136 worker->no_queue = EINA_TRUE; 1006 worker->no_queue = EINA_TRUE;
1137 1007
@@ -1140,6 +1010,12 @@ ecore_thread_feedback_run(Ecore_Thread_Cb func_heavy,
1140 if (PHC(t, _ecore_direct_worker, worker) == 0) 1010 if (PHC(t, _ecore_direct_worker, worker) == 0)
1141 return (Ecore_Thread *)worker; 1011 return (Ecore_Thread *)worker;
1142 1012
1013 if (worker->u.feedback_run.direct_worker)
1014 {
1015 _ecore_thread_worker_free(worker->u.feedback_run.direct_worker);
1016 worker->u.feedback_run.direct_worker = NULL;
1017 }
1018
1143 eina_threads_shutdown(); 1019 eina_threads_shutdown();
1144 } 1020 }
1145 1021
@@ -1160,9 +1036,8 @@ ecore_thread_feedback_run(Ecore_Thread_Cb func_heavy,
1160 pth = malloc(sizeof (Ecore_Pthread_Data)); 1036 pth = malloc(sizeof (Ecore_Pthread_Data));
1161 if (!pth) goto on_error; 1037 if (!pth) goto on_error;
1162 1038
1163 pth->p = _ecore_thread_pipe_get();
1164 pth->death_job = _ecore_thread_worker_new(); 1039 pth->death_job = _ecore_thread_worker_new();
1165 if (!pth->p || !pth->death_job) goto on_error; 1040 if (!pth->death_job) goto on_error;
1166 1041
1167 eina_threads_init(); 1042 eina_threads_init();
1168 1043
@@ -1177,7 +1052,6 @@ ecore_thread_feedback_run(Ecore_Thread_Cb func_heavy,
1177on_error: 1052on_error:
1178 if (pth) 1053 if (pth)
1179 { 1054 {
1180 if (pth->p) eina_array_push(_ecore_thread_pipe, pth->p);
1181 if (pth->death_job) _ecore_thread_worker_free(pth->death_job); 1055 if (pth->death_job) _ecore_thread_worker_free(pth->death_job);
1182 free(pth); 1056 free(pth);
1183 } 1057 }
@@ -1193,7 +1067,8 @@ on_error:
1193 1067
1194 if (worker) 1068 if (worker)
1195 { 1069 {
1196 ecore_pipe_del(worker->u.feedback_run.notify); 1070 CDD(worker->cond);
1071 LKD(worker->mutex);
1197 free(worker); 1072 free(worker);
1198 worker = NULL; 1073 worker = NULL;
1199 } 1074 }
@@ -1211,7 +1086,6 @@ on_error:
1211 */ 1086 */
1212 worker.u.feedback_run.func_heavy = func_heavy; 1087 worker.u.feedback_run.func_heavy = func_heavy;
1213 worker.u.feedback_run.func_notify = func_notify; 1088 worker.u.feedback_run.func_notify = func_notify;
1214 worker.u.feedback_run.notify = NULL;
1215 worker.u.feedback_run.send = 0; 1089 worker.u.feedback_run.send = 0;
1216 worker.u.feedback_run.received = 0; 1090 worker.u.feedback_run.received = 0;
1217 worker.func_cancel = func_cancel; 1091 worker.func_cancel = func_cancel;
@@ -1219,6 +1093,7 @@ on_error:
1219 worker.data = data; 1093 worker.data = data;
1220 worker.cancel = EINA_FALSE; 1094 worker.cancel = EINA_FALSE;
1221 worker.feedback_run = EINA_TRUE; 1095 worker.feedback_run = EINA_TRUE;
1096 worker.message_run = EINA_FALSE;
1222 worker.kill = EINA_FALSE; 1097 worker.kill = EINA_FALSE;
1223 1098
1224 do { 1099 do {
@@ -1241,13 +1116,48 @@ ecore_thread_feedback(Ecore_Thread *thread,
1241 Ecore_Pthread_Worker *worker = (Ecore_Pthread_Worker *)thread; 1116 Ecore_Pthread_Worker *worker = (Ecore_Pthread_Worker *)thread;
1242 1117
1243 if (!worker) return EINA_FALSE; 1118 if (!worker) return EINA_FALSE;
1244 if (!worker->feedback_run) return EINA_FALSE;
1245 1119
1246#ifdef EFL_HAVE_THREADS 1120#ifdef EFL_HAVE_THREADS
1247 if (!PHE(worker->self, PHS())) return EINA_FALSE; 1121 if (!PHE(worker->self, PHS())) return EINA_FALSE;
1248 1122
1249 worker->u.feedback_run.send++; 1123 if (worker->feedback_run)
1250 ecore_pipe_write(worker->u.feedback_run.notify, &data, sizeof (void *)); 1124 {
1125 Ecore_Pthread_Notify *notify;
1126
1127 notify = malloc(sizeof (Ecore_Pthread_Notify));
1128 if (!notify) return EINA_FALSE;
1129
1130 notify->user_data = data;
1131 notify->work = worker;
1132 worker->u.feedback_run.send++;
1133
1134 ecore_main_loop_thread_safe_call_async(_ecore_notify_handler, notify);
1135 }
1136 else if (worker->message_run)
1137 {
1138 Ecore_Pthread_Message *msg;
1139 Ecore_Pthread_Notify *notify;
1140
1141 msg = malloc(sizeof (Ecore_Pthread_Message*));
1142 if (!msg) return EINA_FALSE;
1143 msg->data = data;
1144 msg->callback = EINA_FALSE;
1145 msg->sync = EINA_FALSE;
1146
1147 notify = malloc(sizeof (Ecore_Pthread_Notify));
1148 if (!notify)
1149 {
1150 free(msg);
1151 return EINA_FALSE;
1152 }
1153 notify->work = worker;
1154 notify->user_data = msg;
1155
1156 worker->u.message_run.from.send++;
1157 ecore_main_loop_thread_safe_call_async(_ecore_message_notify_handler, notify);
1158 }
1159 else
1160 return EINA_FALSE;
1251 1161
1252 return EINA_TRUE; 1162 return EINA_TRUE;
1253#else 1163#else
@@ -1257,6 +1167,71 @@ ecore_thread_feedback(Ecore_Thread *thread,
1257#endif 1167#endif
1258} 1168}
1259 1169
1170#if 0
1171EAPI Ecore_Thread *
1172ecore_thread_message_run(Ecore_Thread_Cb func_main,
1173 Ecore_Thread_Notify_Cb func_notify,
1174 Ecore_Thread_Cb func_end,
1175 Ecore_Thread_Cb func_cancel,
1176 const void *data)
1177{
1178#ifdef EFL_HAVE_THREADS
1179 Ecore_Pthread_Worker *worker;
1180 PH(t);
1181
1182 if (!func_main) return NULL;
1183
1184 worker = _ecore_thread_worker_new();
1185 if (!worker) return NULL;
1186
1187 worker->u.message_run.func_main = func_main;
1188 worker->u.message_run.func_notify = func_notify;
1189 worker->u.message_run.direct_worker = _ecore_thread_worker_new();
1190 worker->u.message_run.send = ecore_pipe_add(_ecore_nothing_handler, worker);
1191 worker->u.message_run.from.send = 0;
1192 worker->u.message_run.from.received = 0;
1193 worker->u.message_run.to.send = 0;
1194 worker->u.message_run.to.received = 0;
1195
1196 ecore_pipe_freeze(worker->u.message_run.send);
1197
1198 worker->func_cancel = func_cancel;
1199 worker->func_end = func_end;
1200 worker->hash = NULL;
1201 worker->data = data;
1202
1203 worker->cancel = EINA_FALSE;
1204 worker->message_run = EINA_TRUE;
1205 worker->feedback_run = EINA_FALSE;
1206 worker->kill = EINA_FALSE;
1207 worker->reschedule = EINA_FALSE;
1208 worker->no_queue = EINA_FALSE;
1209 worker->self = 0;
1210
1211 eina_threads_init();
1212
1213 if (PHC(t, _ecore_direct_worker, worker) == 0)
1214 return (Ecore_Thread*) worker;
1215
1216 eina_threads_shutdown();
1217
1218 if (worker->u.message_run.direct_worker) _ecore_thread_worker_free(worker->u.message_run.direct_worker);
1219 if (worker->u.message_run.send) ecore_pipe_del(worker->u.message_run.send);
1220
1221 CDD(worker->cond);
1222 LKD(worker->mutex);
1223#else
1224 /* Note: This type of thread can't and never will work without thread support */
1225 WRN("ecore_thread_message_run called, but threads disable in Ecore, things will go wrong. Starting now !");
1226# warning "You disabled threads support in ecore, I hope you know what you are doing !"
1227#endif
1228
1229 func_cancel((void *) data, NULL);
1230
1231 return NULL;
1232}
1233#endif
1234
1260EAPI Eina_Bool 1235EAPI Eina_Bool
1261ecore_thread_reschedule(Ecore_Thread *thread) 1236ecore_thread_reschedule(Ecore_Thread *thread)
1262{ 1237{
@@ -1641,24 +1616,13 @@ ecore_thread_global_data_wait(const char *key,
1641 1616
1642 while (1) 1617 while (1)
1643 { 1618 {
1644#ifndef _WIN32
1645 struct timespec t = { 0, 0 };
1646
1647 t.tv_sec = (long int)tm;
1648 t.tv_nsec = (long int)((tm - (double)t.tv_sec) * 1000000000);
1649#else
1650 struct timeval t = { 0, 0 };
1651
1652 t.tv_sec = (long int)tm;
1653 t.tv_usec = (long int)((tm - (double)t.tv_sec) * 1000000);
1654#endif
1655 LRWKRL(_ecore_thread_global_hash_lock); 1619 LRWKRL(_ecore_thread_global_hash_lock);
1656 ret = eina_hash_find(_ecore_thread_global_hash, key); 1620 ret = eina_hash_find(_ecore_thread_global_hash, key);
1657 LRWKU(_ecore_thread_global_hash_lock); 1621 LRWKU(_ecore_thread_global_hash_lock);
1658 if ((ret) || (!seconds) || ((seconds > 0) && (tm <= ecore_time_get()))) 1622 if ((ret) || (!seconds) || ((seconds > 0) && (tm <= ecore_time_get())))
1659 break; 1623 break;
1660 LKL(_ecore_thread_global_hash_mutex); 1624 LKL(_ecore_thread_global_hash_mutex);
1661 CDW(_ecore_thread_global_hash_cond, _ecore_thread_global_hash_mutex, &t); 1625 CDW(_ecore_thread_global_hash_cond, tm);
1662 LKU(_ecore_thread_global_hash_mutex); 1626 LKU(_ecore_thread_global_hash_mutex);
1663 } 1627 }
1664 if (ret) return ret->data; 1628 if (ret) return ret->data;
diff --git a/libraries/ecore/src/lib/ecore/ecore_time.c b/libraries/ecore/src/lib/ecore/ecore_time.c
index 8e7611b..0eeb1d6 100644
--- a/libraries/ecore/src/lib/ecore/ecore_time.c
+++ b/libraries/ecore/src/lib/ecore/ecore_time.c
@@ -21,7 +21,7 @@
21 21
22#include <time.h> 22#include <time.h>
23 23
24#ifdef HAVE_CLOCK_GETTIME 24#if defined (HAVE_CLOCK_GETTIME) || defined (EXOTIC_PROVIDE_CLOCK_GETTIME)
25static clockid_t _ecore_time_clock_id = -1; 25static clockid_t _ecore_time_clock_id = -1;
26#elif defined(__APPLE__) && defined(__MACH__) 26#elif defined(__APPLE__) && defined(__MACH__)
27static double _ecore_time_clock_conversion = 1e-9; 27static double _ecore_time_clock_conversion = 1e-9;
@@ -52,7 +52,7 @@ double _ecore_time_loop_time = -1.0;
52EAPI double 52EAPI double
53ecore_time_get(void) 53ecore_time_get(void)
54{ 54{
55#ifdef HAVE_CLOCK_GETTIME 55#if defined (HAVE_CLOCK_GETTIME) || defined (EXOTIC_PROVIDE_CLOCK_GETTIME)
56 struct timespec t; 56 struct timespec t;
57 57
58 if (EINA_UNLIKELY(_ecore_time_clock_id < 0)) 58 if (EINA_UNLIKELY(_ecore_time_clock_id < 0))
@@ -136,7 +136,7 @@ ecore_loop_time_get(void)
136void 136void
137_ecore_time_init(void) 137_ecore_time_init(void)
138{ 138{
139#ifdef HAVE_CLOCK_GETTIME 139#if defined (HAVE_CLOCK_GETTIME) || defined (EXOTIC_PROVIDE_CLOCK_GETTIME)
140 struct timespec t; 140 struct timespec t;
141 141
142 if (_ecore_time_clock_id != -1) return; 142 if (_ecore_time_clock_id != -1) return;
diff --git a/libraries/ecore/src/lib/ecore/ecore_timer.c b/libraries/ecore/src/lib/ecore/ecore_timer.c
index cc19e3f..d76733b 100644
--- a/libraries/ecore/src/lib/ecore/ecore_timer.c
+++ b/libraries/ecore/src/lib/ecore/ecore_timer.c
@@ -56,7 +56,7 @@ static double last_check = 0.0;
56static double precision = 10.0 / 1000000.0; 56static double precision = 10.0 / 1000000.0;
57 57
58/** 58/**
59 * @addtogroup Ecore_Time_Group 59 * @addtogroup Ecore_Timer_Group
60 * 60 *
61 * @{ 61 * @{
62 */ 62 */
@@ -73,12 +73,15 @@ ecore_timer_precision_get(void)
73} 73}
74 74
75/** 75/**
76 * Sets the precision to be used by timer infrastructure. 76 * @brief Sets the precision to be used by timer infrastructure.
77 * 77 *
78 * When system calculates time to expire the next timer we'll be able 78 * @param value allowed introduced timeout delay, in seconds.
79 * to delay the timer by the given amount so more timers will fit in 79 *
80 * the same dispatch, waking up the system less often and thus being 80 * This sets the precision for @b all timers. The precision determines how much
81 * able to save power. 81 * of an difference from the requested interval is acceptable. One common reason
82 * to use this function is to @b increase the allowed timeout and thus @b
83 * decrease precision of the timers, this is because less precise the timers
84 * result in the system waking up less often and thus consuming less resources.
82 * 85 *
83 * Be aware that kernel may delay delivery even further, these delays 86 * Be aware that kernel may delay delivery even further, these delays
84 * are always possible due other tasks having higher priorities or 87 * are always possible due other tasks having higher priorities or
@@ -93,8 +96,6 @@ ecore_timer_precision_get(void)
93 * @note Ecore is smart enough to see if there are timers in the 96 * @note Ecore is smart enough to see if there are timers in the
94 * precision range, if it does not, in our example if no second timer 97 * precision range, if it does not, in our example if no second timer
95 * in (T + precision) existed, then it would use the minimum timeout. 98 * in (T + precision) existed, then it would use the minimum timeout.
96 *
97 * @param value allowed introduced timeout delay, in seconds.
98 */ 99 */
99EAPI void 100EAPI void
100ecore_timer_precision_set(double value) 101ecore_timer_precision_set(double value)
@@ -322,7 +323,7 @@ ecore_timer_reset(Ecore_Timer *timer)
322 * Get the pending time regarding a timer. 323 * Get the pending time regarding a timer.
323 * 324 *
324 * @param timer The timer to learn from. 325 * @param timer The timer to learn from.
325 * @ingroup Ecore_Time_Group 326 * @ingroup Ecore_Timer_Group
326 */ 327 */
327EAPI double 328EAPI double
328ecore_timer_pending_get(Ecore_Timer *timer) 329ecore_timer_pending_get(Ecore_Timer *timer)
diff --git a/libraries/ecore/src/lib/ecore_cocoa/Makefile.in b/libraries/ecore/src/lib/ecore_cocoa/Makefile.in
index 15ce879..447c3ef 100644
--- a/libraries/ecore/src/lib/ecore_cocoa/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_cocoa/Makefile.in
@@ -50,16 +50,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
53 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 53 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
54 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 54 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
55 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 55 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
56 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 56 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
57 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 57 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
58 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 58 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
59 $(top_srcdir)/configure.ac
60am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 59am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4) 60 $(ACLOCAL_M4)
62mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 61mkinstalldirs = $(install_sh) -d
63CONFIG_HEADER = $(top_builddir)/config.h 62CONFIG_HEADER = $(top_builddir)/config.h
64CONFIG_CLEAN_FILES = 63CONFIG_CLEAN_FILES =
65CONFIG_CLEAN_VPATH_FILES = 64CONFIG_CLEAN_VPATH_FILES =
@@ -192,6 +191,8 @@ EVAS_LIBS = @EVAS_LIBS@
192EVIL_CFLAGS = @EVIL_CFLAGS@ 191EVIL_CFLAGS = @EVIL_CFLAGS@
193EVIL_LIBS = @EVIL_LIBS@ 192EVIL_LIBS = @EVIL_LIBS@
194EXEEXT = @EXEEXT@ 193EXEEXT = @EXEEXT@
194EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
195EXOTIC_LIBS = @EXOTIC_LIBS@
195FGREP = @FGREP@ 196FGREP = @FGREP@
196GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 197GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
197GLIB_CFLAGS = @GLIB_CFLAGS@ 198GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -247,6 +248,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
247PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 248PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
248PIXMAN_LIBS = @PIXMAN_LIBS@ 249PIXMAN_LIBS = @PIXMAN_LIBS@
249PKG_CONFIG = @PKG_CONFIG@ 250PKG_CONFIG = @PKG_CONFIG@
251PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
252PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
250POSUB = @POSUB@ 253POSUB = @POSUB@
251RANLIB = @RANLIB@ 254RANLIB = @RANLIB@
252SCIM_CFLAGS = @SCIM_CFLAGS@ 255SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -257,6 +260,7 @@ SDL_LIBS = @SDL_LIBS@
257SED = @SED@ 260SED = @SED@
258SET_MAKE = @SET_MAKE@ 261SET_MAKE = @SET_MAKE@
259SHELL = @SHELL@ 262SHELL = @SHELL@
263SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
260SSL_CFLAGS = @SSL_CFLAGS@ 264SSL_CFLAGS = @SSL_CFLAGS@
261SSL_LIBS = @SSL_LIBS@ 265SSL_LIBS = @SSL_LIBS@
262STRIP = @STRIP@ 266STRIP = @STRIP@
diff --git a/libraries/ecore/src/lib/ecore_con/Ecore_Con.h b/libraries/ecore/src/lib/ecore_con/Ecore_Con.h
index c3af46a..d0ca6f6 100644
--- a/libraries/ecore/src/lib/ecore_con/Ecore_Con.h
+++ b/libraries/ecore/src/lib/ecore_con/Ecore_Con.h
@@ -723,10 +723,13 @@ EAPI Eina_Bool ecore_con_ssl_client_upgrade(Ecore_Con_Client *cl, Ecore_
723 */ 723 */
724 724
725EAPI Ecore_Con_Socks *ecore_con_socks4_remote_add(const char *ip, int port, const char *username); 725EAPI Ecore_Con_Socks *ecore_con_socks4_remote_add(const char *ip, int port, const char *username);
726EAPI void ecore_con_socks4_lookup_set(Ecore_Con_Socks *ecs, Eina_Bool enable);
727EAPI Eina_Bool ecore_con_socks4_lookup_get(Ecore_Con_Socks *ecs);
728EAPI Eina_Bool ecore_con_socks4_remote_exists(const char *ip, int port, const char *username); 726EAPI Eina_Bool ecore_con_socks4_remote_exists(const char *ip, int port, const char *username);
729EAPI void ecore_con_socks4_remote_del(const char *ip, int port, const char *username); 727EAPI void ecore_con_socks4_remote_del(const char *ip, int port, const char *username);
728EAPI Ecore_Con_Socks *ecore_con_socks5_remote_add(const char *ip, int port, const char *username, const char *password);
729EAPI Eina_Bool ecore_con_socks5_remote_exists(const char *ip, int port, const char *username, const char *password);
730EAPI void ecore_con_socks5_remote_del(const char *ip, int port, const char *username, const char *password);
731EAPI void ecore_con_socks_lookup_set(Ecore_Con_Socks *ecs, Eina_Bool enable);
732EAPI Eina_Bool ecore_con_socks_lookup_get(Ecore_Con_Socks *ecs);
730EAPI void ecore_con_socks_bind_set(Ecore_Con_Socks *ecs, Eina_Bool is_bind); 733EAPI void ecore_con_socks_bind_set(Ecore_Con_Socks *ecs, Eina_Bool is_bind);
731EAPI Eina_Bool ecore_con_socks_bind_get(Ecore_Con_Socks *ecs); 734EAPI Eina_Bool ecore_con_socks_bind_get(Ecore_Con_Socks *ecs);
732EAPI unsigned int ecore_con_socks_version_get(Ecore_Con_Socks *ecs); 735EAPI unsigned int ecore_con_socks_version_get(Ecore_Con_Socks *ecs);
@@ -744,8 +747,8 @@ EAPI void ecore_con_socks_apply_always(Ecore_Con_Socks *ecs);
744 * 747 *
745 * Setting up a server is very simple: you just need to start it with 748 * Setting up a server is very simple: you just need to start it with
746 * ecore_con_server_add() and setup some callbacks to the events 749 * ecore_con_server_add() and setup some callbacks to the events
747 * #ECORE_CON_EVENT_CLIENT_ADD, #ECORE_CON_EVENT_CLIENT_DEL and 750 * @ref ECORE_CON_EVENT_CLIENT_ADD, @ref ECORE_CON_EVENT_CLIENT_DEL and
748 * #ECORE_CON_EVENT_CLIENT_DATA, that will be called when a client is 751 * @ref ECORE_CON_EVENT_CLIENT_DATA, that will be called when a client is
749 * communicating with the server: 752 * communicating with the server:
750 * 753 *
751 * @code 754 * @code
@@ -867,8 +870,8 @@ EAPI Ecore_Con_Server *ecore_con_server_add(Ecore_Con_Type type,
867 * 870 *
868 * However, even if this call returns a valid @ref Ecore_Con_Server, the 871 * However, even if this call returns a valid @ref Ecore_Con_Server, the
869 * connection will only be successfully completed if an event of type 872 * connection will only be successfully completed if an event of type
870 * #ECORE_CON_EVENT_SERVER_ADD is received. If it fails to complete, an 873 * @ref ECORE_CON_EVENT_SERVER_ADD is received. If it fails to complete, an
871 * #ECORE_CON_EVENT_SERVER_DEL will be received. 874 * @ref ECORE_CON_EVENT_SERVER_DEL will be received.
872 * 875 *
873 * The @p data parameter can be fetched later using ecore_con_server_data_get() 876 * The @p data parameter can be fetched later using ecore_con_server_data_get()
874 * or changed with ecore_con_server_data_set(). 877 * or changed with ecore_con_server_data_set().
@@ -1335,6 +1338,35 @@ typedef enum _Ecore_Con_Url_Time
1335} Ecore_Con_Url_Time; 1338} Ecore_Con_Url_Time;
1336 1339
1337/** 1340/**
1341 * @typedef Ecore_Con_Url_Http_Version
1342 * @enum _Ecore_Con_Url_Http_Version
1343 * The http version to use
1344 * @since 1.2
1345 */
1346typedef enum _Ecore_Con_Url_Http_Version
1347{
1348 /**
1349 * HTTP version 1.0
1350 * @since 1.2
1351 */
1352 ECORE_CON_URL_HTTP_VERSION_1_0,
1353 /**
1354 * HTTP version 1.1 (default)
1355 * @since 1.2
1356 */
1357 ECORE_CON_URL_HTTP_VERSION_1_1
1358} Ecore_Con_Url_Http_Version;
1359
1360/**
1361 * Change the HTTP version used for the request
1362 * @param version The version to be used
1363 * @return EINA_TRUE on success, EINA_FALSE on failure to change version
1364 * @since 1.2
1365 * @see ecore_con_url_pipeline_get()
1366 */
1367EAPI Eina_Bool ecore_con_url_http_version_set(Ecore_Con_Url *url_con, Ecore_Con_Url_Http_Version version);
1368
1369/**
1338 * Initialises the Ecore_Con_Url library. 1370 * Initialises the Ecore_Con_Url library.
1339 * @return Number of times the library has been initialised without being 1371 * @return Number of times the library has been initialised without being
1340 * shut down. 1372 * shut down.
@@ -1554,33 +1586,6 @@ EAPI Eina_Bool ecore_con_url_httpauth_set(Ecore_Con_Url *url_con,
1554 const char *password, 1586 const char *password,
1555 Eina_Bool safe); 1587 Eina_Bool safe);
1556/** 1588/**
1557 * Sends a request.
1558 *
1559 * @param url_con Connection object to perform a request on, previously created
1560 * with ecore_con_url_new() or ecore_con_url_custom_new().
1561 * @param data Payload (data sent on the request)
1562 * @param length Payload length. If @c -1, rely on automatic length
1563 * calculation via @c strlen() on @p data.
1564 * @param content_type Content type of the payload (e.g. text/xml)
1565 *
1566 * @return #EINA_TRUE on success, #EINA_FALSE on error.
1567 *
1568 * @see ecore_con_url_custom_new()
1569 * @see ecore_con_url_additional_headers_clear()
1570 * @see ecore_con_url_additional_header_add()
1571 * @see ecore_con_url_data_set()
1572 * @see ecore_con_url_data_get()
1573 * @see ecore_con_url_response_headers_get()
1574 * @see ecore_con_url_time()
1575 * @see ecore_con_url_get()
1576 * @see ecore_con_url_post()
1577 *
1578 * @deprecated Use ecore_con_url_post() instead of this.
1579 */
1580EINA_DEPRECATED EAPI Eina_Bool ecore_con_url_send(Ecore_Con_Url *url_con,
1581 const void *data, long length,
1582 const char *content_type);
1583/**
1584 * Sends a get request. 1589 * Sends a get request.
1585 * 1590 *
1586 * @param url_con Connection object to perform a request on, previously created 1591 * @param url_con Connection object to perform a request on, previously created
@@ -1913,6 +1918,16 @@ EAPI Eina_Bool ecore_con_url_proxy_password_set(Ecore_Con_Url *url_con, const ch
1913EAPI void ecore_con_url_timeout_set(Ecore_Con_Url *url_con, double timeout); 1918EAPI void ecore_con_url_timeout_set(Ecore_Con_Url *url_con, double timeout);
1914 1919
1915/** 1920/**
1921 * Get the returned HTTP STATUS code
1922 *
1923 * This is used to, at any time, try to return the status code for a transmission.
1924 * @param url_con Connection object
1925 * @return A valid HTTP STATUS code, or 0 on failure
1926 *
1927 * @since 1.2
1928 */
1929EAPI int ecore_con_url_status_code_get(Ecore_Con_Url *url_con);
1930/**
1916 * @} 1931 * @}
1917 */ 1932 */
1918 1933
diff --git a/libraries/ecore/src/lib/ecore_con/Makefile.in b/libraries/ecore/src/lib/ecore_con/Makefile.in
index 58811da..c35b08e 100644
--- a/libraries/ecore/src/lib/ecore_con/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_con/Makefile.in
@@ -54,16 +54,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
54 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 54 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
55 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 55 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
56 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 56 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
57 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 57 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
58 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 58 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
59 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 59 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
60 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 60 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
61 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 61 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
62 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 62 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
63 $(top_srcdir)/configure.ac
64am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 63am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
65 $(ACLOCAL_M4) 64 $(ACLOCAL_M4)
66mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 65mkinstalldirs = $(install_sh) -d
67CONFIG_HEADER = $(top_builddir)/config.h 66CONFIG_HEADER = $(top_builddir)/config.h
68CONFIG_CLEAN_FILES = 67CONFIG_CLEAN_FILES =
69CONFIG_CLEAN_VPATH_FILES = 68CONFIG_CLEAN_VPATH_FILES =
@@ -210,6 +209,8 @@ EVAS_LIBS = @EVAS_LIBS@
210EVIL_CFLAGS = @EVIL_CFLAGS@ 209EVIL_CFLAGS = @EVIL_CFLAGS@
211EVIL_LIBS = @EVIL_LIBS@ 210EVIL_LIBS = @EVIL_LIBS@
212EXEEXT = @EXEEXT@ 211EXEEXT = @EXEEXT@
212EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
213EXOTIC_LIBS = @EXOTIC_LIBS@
213FGREP = @FGREP@ 214FGREP = @FGREP@
214GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 215GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
215GLIB_CFLAGS = @GLIB_CFLAGS@ 216GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -265,6 +266,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
265PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 266PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
266PIXMAN_LIBS = @PIXMAN_LIBS@ 267PIXMAN_LIBS = @PIXMAN_LIBS@
267PKG_CONFIG = @PKG_CONFIG@ 268PKG_CONFIG = @PKG_CONFIG@
269PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
270PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
268POSUB = @POSUB@ 271POSUB = @POSUB@
269RANLIB = @RANLIB@ 272RANLIB = @RANLIB@
270SCIM_CFLAGS = @SCIM_CFLAGS@ 273SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -275,6 +278,7 @@ SDL_LIBS = @SDL_LIBS@
275SED = @SED@ 278SED = @SED@
276SET_MAKE = @SET_MAKE@ 279SET_MAKE = @SET_MAKE@
277SHELL = @SHELL@ 280SHELL = @SHELL@
281SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
278SSL_CFLAGS = @SSL_CFLAGS@ 282SSL_CFLAGS = @SSL_CFLAGS@
279SSL_LIBS = @SSL_LIBS@ 283SSL_LIBS = @SSL_LIBS@
280STRIP = @STRIP@ 284STRIP = @STRIP@
diff --git a/libraries/ecore/src/lib/ecore_con/ecore_con.c b/libraries/ecore/src/lib/ecore_con/ecore_con.c
index de291b3..fe83478 100644
--- a/libraries/ecore/src/lib/ecore_con/ecore_con.c
+++ b/libraries/ecore/src/lib/ecore_con/ecore_con.c
@@ -110,7 +110,10 @@ _ecore_con_client_kill(Ecore_Con_Client *cl)
110 if (cl->delete_me) 110 if (cl->delete_me)
111 DBG("Multi kill request for client %p", cl); 111 DBG("Multi kill request for client %p", cl);
112 else 112 else
113 ecore_con_event_client_del(cl); 113 {
114 ecore_con_event_client_del(cl);
115 if (cl->buf) return;
116 }
114 INF("Lost client %s", (cl->ip) ? cl->ip : ""); 117 INF("Lost client %s", (cl->ip) ? cl->ip : "");
115 if (cl->fd_handler) 118 if (cl->fd_handler)
116 ecore_main_fd_handler_del(cl->fd_handler); 119 ecore_main_fd_handler_del(cl->fd_handler);
@@ -461,7 +464,7 @@ ecore_con_server_connect(Ecore_Con_Type compl_type,
461 (!ecore_con_lookup(svr->name, (Ecore_Con_Dns_Cb)ecore_con_socks_dns_cb, svr))) 464 (!ecore_con_lookup(svr->name, (Ecore_Con_Dns_Cb)ecore_con_socks_dns_cb, svr)))
462 goto error; 465 goto error;
463 if (svr->ecs->lookup) 466 if (svr->ecs->lookup)
464 svr->ecs_state = ECORE_CON_SOCKS_STATE_RESOLVED; 467 svr->ecs_state = ECORE_CON_PROXY_STATE_RESOLVED;
465 } 468 }
466 } 469 }
467 if (ecore_con_ssl_server_prepare(svr, compl_type & ECORE_CON_SSL)) 470 if (ecore_con_ssl_server_prepare(svr, compl_type & ECORE_CON_SSL))
@@ -1031,7 +1034,7 @@ ecore_con_event_server_del(Ecore_Con_Server *svr)
1031 e->server = svr; 1034 e->server = svr;
1032 if (svr->ecs) 1035 if (svr->ecs)
1033 { 1036 {
1034 svr->ecs_state = svr->ecs->lookup ? ECORE_CON_SOCKS_STATE_RESOLVED : ECORE_CON_SOCKS_STATE_DONE; 1037 svr->ecs_state = svr->ecs->lookup ? ECORE_CON_PROXY_STATE_RESOLVED : ECORE_CON_PROXY_STATE_DONE;
1035 eina_stringshare_replace(&svr->proxyip, NULL); 1038 eina_stringshare_replace(&svr->proxyip, NULL);
1036 svr->proxyport = 0; 1039 svr->proxyport = 0;
1037 } 1040 }
@@ -1320,7 +1323,7 @@ _ecore_con_client_free(Ecore_Con_Client *cl)
1320 if (cl->event_count) return; 1323 if (cl->event_count) return;
1321 ECORE_MAGIC_SET(cl, ECORE_MAGIC_NONE); 1324 ECORE_MAGIC_SET(cl, ECORE_MAGIC_NONE);
1322 1325
1323 free(cl->buf); 1326 if (cl->buf) eina_binbuf_free(cl->buf);
1324 1327
1325 if (cl->host_server->type & ECORE_CON_SSL) 1328 if (cl->host_server->type & ECORE_CON_SSL)
1326 ecore_con_ssl_client_shutdown(cl); 1329 ecore_con_ssl_client_shutdown(cl);
@@ -1736,7 +1739,7 @@ svr_try_connect_plain(Ecore_Con_Server *svr)
1736 if (so_err) 1739 if (so_err)
1737 { 1740 {
1738 /* we lost our server! */ 1741 /* we lost our server! */
1739 ecore_con_event_server_error(svr, strerror(errno)); 1742 ecore_con_event_server_error(svr, strerror(so_err));
1740 ERR("Connection lost: %s", strerror(so_err)); 1743 ERR("Connection lost: %s", strerror(so_err));
1741 _ecore_con_server_kill(svr); 1744 _ecore_con_server_kill(svr);
1742 return ECORE_CON_DISCONNECTED; 1745 return ECORE_CON_DISCONNECTED;
@@ -1971,9 +1974,9 @@ _ecore_con_cl_handler(void *data,
1971 ecore_con_event_server_add(svr); 1974 ecore_con_event_server_add(svr);
1972 return ECORE_CALLBACK_RENEW; 1975 return ECORE_CALLBACK_RENEW;
1973 } 1976 }
1974 if (svr->ecs && svr->ecs_state && (svr->ecs_state < ECORE_CON_SOCKS_STATE_READ) && (!svr->ecs_buf)) 1977 if (svr->ecs && svr->ecs_state && (svr->ecs_state < ECORE_CON_PROXY_STATE_READ) && (!svr->ecs_buf))
1975 { 1978 {
1976 if (svr->ecs_state < ECORE_CON_SOCKS_STATE_INIT) 1979 if (svr->ecs_state < ECORE_CON_PROXY_STATE_INIT)
1977 { 1980 {
1978 INF("PROXY STATE++"); 1981 INF("PROXY STATE++");
1979 svr->ecs_state++; 1982 svr->ecs_state++;
@@ -2271,7 +2274,7 @@ _ecore_con_server_flush(Ecore_Con_Server *svr)
2271static void 2274static void
2272_ecore_con_client_flush(Ecore_Con_Client *cl) 2275_ecore_con_client_flush(Ecore_Con_Client *cl)
2273{ 2276{
2274 int num, count = 0; 2277 int num = 0, count = 0;
2275 2278
2276#ifdef _WIN32 2279#ifdef _WIN32
2277 if (ecore_con_local_win32_client_flush(cl)) 2280 if (ecore_con_local_win32_client_flush(cl))
@@ -2314,7 +2317,7 @@ _ecore_con_client_flush(Ecore_Con_Client *cl)
2314 } 2317 }
2315 2318
2316 if (count) ecore_con_event_client_write(cl, count); 2319 if (count) ecore_con_event_client_write(cl, count);
2317 cl->buf_offset += count; 2320 cl->buf_offset += count, num -= count;
2318 if (cl->buf_offset >= eina_binbuf_length_get(cl->buf)) 2321 if (cl->buf_offset >= eina_binbuf_length_get(cl->buf))
2319 { 2322 {
2320 cl->buf_offset = 0; 2323 cl->buf_offset = 0;
@@ -2332,7 +2335,7 @@ _ecore_con_client_flush(Ecore_Con_Client *cl)
2332 if (cl->fd_handler) 2335 if (cl->fd_handler)
2333 ecore_main_fd_handler_active_set(cl->fd_handler, ECORE_FD_READ); 2336 ecore_main_fd_handler_active_set(cl->fd_handler, ECORE_FD_READ);
2334 } 2337 }
2335 else if ((count < num) && cl->fd_handler) 2338 else if (cl->fd_handler && (num >= 0))
2336 ecore_main_fd_handler_active_set(cl->fd_handler, ECORE_FD_WRITE); 2339 ecore_main_fd_handler_active_set(cl->fd_handler, ECORE_FD_WRITE);
2337} 2340}
2338 2341
diff --git a/libraries/ecore/src/lib/ecore_con/ecore_con_private.h b/libraries/ecore/src/lib/ecore_con/ecore_con_private.h
index 35f2310..91f5d39 100644
--- a/libraries/ecore/src/lib/ecore_con/ecore_con_private.h
+++ b/libraries/ecore/src/lib/ecore_con/ecore_con_private.h
@@ -56,7 +56,7 @@ extern int _ecore_con_log_dom;
56 56
57typedef struct _Ecore_Con_Lookup Ecore_Con_Lookup; 57typedef struct _Ecore_Con_Lookup Ecore_Con_Lookup;
58typedef struct _Ecore_Con_Info Ecore_Con_Info; 58typedef struct _Ecore_Con_Info Ecore_Con_Info;
59typedef struct Ecore_Con_Socks_v4 Ecore_Con_Socks_v4; 59typedef struct Ecore_Con_Socks Ecore_Con_Socks_v4;
60typedef struct Ecore_Con_Socks_v5 Ecore_Con_Socks_v5; 60typedef struct Ecore_Con_Socks_v5 Ecore_Con_Socks_v5;
61typedef void (*Ecore_Con_Info_Cb)(void *data, Ecore_Con_Info *infos); 61typedef void (*Ecore_Con_Info_Cb)(void *data, Ecore_Con_Info *infos);
62 62
@@ -83,13 +83,18 @@ typedef enum _Ecore_Con_Ssl_Handshake
83 ECORE_CON_SSL_STATE_INIT 83 ECORE_CON_SSL_STATE_INIT
84} Ecore_Con_Ssl_State; 84} Ecore_Con_Ssl_State;
85 85
86typedef enum Ecore_Con_Socks_State 86typedef enum Ecore_Con_Proxy_State
87{ 87{ /* named PROXY instead of SOCKS in case some handsome and enterprising
88 ECORE_CON_SOCKS_STATE_DONE = 0, 88 * developer decides to add HTTP CONNECT support
89 ECORE_CON_SOCKS_STATE_RESOLVED, 89 */
90 ECORE_CON_SOCKS_STATE_INIT, 90 ECORE_CON_PROXY_STATE_DONE = 0,
91 ECORE_CON_SOCKS_STATE_READ 91 ECORE_CON_PROXY_STATE_RESOLVED,
92} Ecore_Con_Socks_State; 92 ECORE_CON_PROXY_STATE_INIT,
93 ECORE_CON_PROXY_STATE_READ,
94 ECORE_CON_PROXY_STATE_AUTH,
95 ECORE_CON_PROXY_STATE_REQUEST,
96 ECORE_CON_PROXY_STATE_CONFIRM,
97} Ecore_Con_Proxy_State;
93 98
94struct _Ecore_Con_Client 99struct _Ecore_Con_Client
95{ 100{
@@ -140,7 +145,7 @@ struct _Ecore_Con_Server
140 pid_t ppid; 145 pid_t ppid;
141 /* socks */ 146 /* socks */
142 Ecore_Con_Socks *ecs; 147 Ecore_Con_Socks *ecs;
143 Ecore_Con_Socks_State ecs_state; 148 Ecore_Con_Proxy_State ecs_state;
144 int ecs_addrlen; 149 int ecs_addrlen;
145 unsigned char ecs_addr[16]; 150 unsigned char ecs_addr[16];
146 unsigned int ecs_buf_offset; 151 unsigned int ecs_buf_offset;
@@ -202,6 +207,7 @@ struct _Ecore_Con_Url
202 Eina_List *response_headers; 207 Eina_List *response_headers;
203 const char *url; 208 const char *url;
204 long proxy_type; 209 long proxy_type;
210 int status;
205 211
206 Ecore_Timer *timer; 212 Ecore_Timer *timer;
207 213
@@ -213,6 +219,10 @@ struct _Ecore_Con_Url
213 219
214 int received; 220 int received;
215 int write_fd; 221 int write_fd;
222
223 unsigned int event_count;
224 Eina_Bool dead : 1;
225 Eina_Bool multi : 1;
216}; 226};
217#endif 227#endif
218 228
@@ -239,24 +249,14 @@ struct _Ecore_Con_Lookup
239 v5 = (Ecore_Con_Socks_v5*)(X); \ 249 v5 = (Ecore_Con_Socks_v5*)(X); \
240 else 250 else
241 251
242struct Ecore_Con_Socks 252struct Ecore_Con_Socks /* v4 */
243{
244 unsigned char version;
245
246 const char *ip;
247 int port;
248 const char *username;
249 Eina_Bool lookup : 1;
250 Eina_Bool bind : 1;
251};
252
253struct Ecore_Con_Socks_v4
254{ 253{
255 unsigned char version; 254 unsigned char version;
256 255
257 const char *ip; 256 const char *ip;
258 int port; 257 int port;
259 const char *username; 258 const char *username;
259 unsigned int ulen;
260 Eina_Bool lookup : 1; 260 Eina_Bool lookup : 1;
261 Eina_Bool bind : 1; 261 Eina_Bool bind : 1;
262}; 262};
@@ -268,8 +268,13 @@ struct Ecore_Con_Socks_v5
268 const char *ip; 268 const char *ip;
269 int port; 269 int port;
270 const char *username; 270 const char *username;
271 unsigned int ulen;
271 Eina_Bool lookup : 1; 272 Eina_Bool lookup : 1;
272 Eina_Bool bind : 1; 273 Eina_Bool bind : 1;
274 /* v5 only */
275 unsigned char method;
276 const char *password;
277 unsigned int plen;
273}; 278};
274 279
275extern Ecore_Con_Socks *_ecore_con_proxy_once; 280extern Ecore_Con_Socks *_ecore_con_proxy_once;
diff --git a/libraries/ecore/src/lib/ecore_con/ecore_con_socks.c b/libraries/ecore/src/lib/ecore_con/ecore_con_socks.c
index aecaff0..686f73b 100644
--- a/libraries/ecore/src/lib/ecore_con/ecore_con_socks.c
+++ b/libraries/ecore/src/lib/ecore_con/ecore_con_socks.c
@@ -10,6 +10,10 @@
10#include <unistd.h> 10#include <unistd.h>
11#include <fcntl.h> 11#include <fcntl.h>
12 12
13#ifdef HAVE_SYS_SOCKET_H
14# include <sys/socket.h>
15#endif
16
13#ifdef HAVE_NETINET_TCP_H 17#ifdef HAVE_NETINET_TCP_H
14# include <netinet/tcp.h> 18# include <netinet/tcp.h>
15#endif 19#endif
@@ -36,10 +40,6 @@
36# include <arpa/inet.h> 40# include <arpa/inet.h>
37#endif 41#endif
38 42
39#ifdef HAVE_SYS_SOCKET_H
40# include <sys/socket.h>
41#endif
42
43#ifdef HAVE_SYS_UN_H 43#ifdef HAVE_SYS_UN_H
44# include <sys/un.h> 44# include <sys/un.h>
45#endif 45#endif
@@ -57,6 +57,27 @@
57#include "Ecore_Con.h" 57#include "Ecore_Con.h"
58#include "ecore_con_private.h" 58#include "ecore_con_private.h"
59 59
60/* http://tools.ietf.org/html/rfc1928
61 o X'00' NO AUTHENTICATION REQUIRED
62 o X'01' GSSAPI
63 o X'02' USERNAME/PASSWORD
64 o X'03' to X'7F' IANA ASSIGNED
65 o X'80' to X'FE' RESERVED FOR PRIVATE METHODS
66 o X'FF' NO ACCEPTABLE METHODS
67*/
68#define ECORE_CON_SOCKS_V5_METHOD_NONE 0
69#define ECORE_CON_SOCKS_V5_METHOD_GSSAPI 1
70#define ECORE_CON_SOCKS_V5_METHOD_USERPASS 2
71
72static int ECORE_CON_SOCKS_V5_METHODS[] =
73{
74 ECORE_CON_SOCKS_V5_METHOD_NONE,
75// ECORE_CON_SOCKS_V5_METHOD_GSSAPI, TODO
76 ECORE_CON_SOCKS_V5_METHOD_USERPASS
77};
78
79#define ECORE_CON_SOCKS_V5_TOTAL_METHODS sizeof(ECORE_CON_SOCKS_V5_METHODS)
80
60#define _ecore_con_server_kill(svr) do { \ 81#define _ecore_con_server_kill(svr) do { \
61 DBG("KILL %p", (svr)); \ 82 DBG("KILL %p", (svr)); \
62 _ecore_con_server_kill((svr)); \ 83 _ecore_con_server_kill((svr)); \
@@ -65,10 +86,10 @@
65Eina_List *ecore_con_socks_proxies = NULL; 86Eina_List *ecore_con_socks_proxies = NULL;
66 87
67static Ecore_Con_Socks * 88static Ecore_Con_Socks *
68_ecore_con_socks_find(unsigned char version, const char *ip, int port, const char *username) 89_ecore_con_socks_find(unsigned char version, const char *ip, int port, const char *username, size_t ulen, const char *password, size_t plen)
69{ 90{
70 Eina_List *l; 91 Eina_List *l;
71 Ecore_Con_Socks *ecs; 92 Ecore_Con_Socks_v5 *ecs;
72 93
73 if (!ecore_con_socks_proxies) return NULL; 94 if (!ecore_con_socks_proxies) return NULL;
74 95
@@ -77,8 +98,14 @@ _ecore_con_socks_find(unsigned char version, const char *ip, int port, const cha
77 if (ecs->version != version) continue; 98 if (ecs->version != version) continue;
78 if (strcmp(ecs->ip, ip)) continue; 99 if (strcmp(ecs->ip, ip)) continue;
79 if ((port != -1) && (port != ecs->port)) continue; 100 if ((port != -1) && (port != ecs->port)) continue;
101 if (ulen != ecs->ulen) continue;
80 if (username && strcmp(ecs->username, username)) continue; 102 if (username && strcmp(ecs->username, username)) continue;
81 return ecs; 103 if (version == 5)
104 {
105 if (plen != ecs->plen) continue;
106 if (password && strcmp(ecs->password, password)) continue;
107 }
108 return (Ecore_Con_Socks*)ecs;
82 } 109 }
83 return NULL; 110 return NULL;
84} 111}
@@ -94,146 +121,424 @@ _ecore_con_socks_free(Ecore_Con_Socks *ecs)
94 eina_stringshare_del(ecs->username); 121 eina_stringshare_del(ecs->username);
95 free(ecs); 122 free(ecs);
96} 123}
97///////////////////////////////////////////////////////////////////////////////////// 124
98void 125static Eina_Bool
99ecore_con_socks_shutdown(void) 126_ecore_con_socks_svr_init_v4(Ecore_Con_Server *svr, Ecore_Con_Socks_v4 *v4)
100{ 127{
101 Ecore_Con_Socks *ecs; 128 size_t addrlen, buflen, ulen = 1;
102 EINA_LIST_FREE(ecore_con_socks_proxies, ecs) 129 unsigned char *sbuf;
103 _ecore_con_socks_free(ecs); 130
104 _ecore_con_proxy_once = NULL; 131 addrlen = v4->lookup ? strlen(svr->name) + 1 : 0;
105 _ecore_con_proxy_global = NULL; 132 if (v4->username) ulen += v4->ulen;
133 buflen = sizeof(char) * (8 + ulen + addrlen);
134 sbuf = malloc(buflen);
135 if (!sbuf)
136 {
137 ecore_con_event_server_error(svr, "Memory allocation failure!");
138 _ecore_con_server_kill(svr);
139 return EINA_FALSE;
140 }
141 /* http://en.wikipedia.org/wiki/SOCKS */
142 sbuf[0] = 4;
143 sbuf[1] = v4->bind ? 2 : 1;
144 sbuf[2] = svr->port >> 8;
145 sbuf[3] = svr->port & 0xff;
146 if (addrlen)
147 {
148 sbuf[4] = sbuf[5] = sbuf[6] = 0;
149 sbuf[7] = 1;
150 }
151 else
152 /* SOCKSv4 only handles IPV4, so addrlen is always 4 */
153 memcpy(sbuf + 4, svr->ecs_addr, 4);
154 if (v4->username)
155 memcpy(sbuf + 8, v4->username, ulen);
156 else
157 sbuf[8] = 0;
158 if (addrlen) memcpy(sbuf + 8 + ulen, svr->name, addrlen);
159
160 svr->ecs_buf = eina_binbuf_manage_new_length(sbuf, buflen);
161 return EINA_TRUE;
106} 162}
107 163
108void 164static Eina_Bool
109ecore_con_socks_read(Ecore_Con_Server *svr, unsigned char *buf, int num) 165_ecore_con_socks_svr_init_v5(Ecore_Con_Server *svr, Ecore_Con_Socks_v5 *v5)
166{
167 size_t buflen;
168 unsigned int x;
169 unsigned char *sbuf;
170
171 if (v5->username)
172 buflen = sizeof(char) * (2 + ECORE_CON_SOCKS_V5_TOTAL_METHODS);
173 else
174 buflen = 3;
175 sbuf = malloc(buflen);
176 if (!sbuf)
177 {
178 ecore_con_event_server_error(svr, "Memory allocation failure!");
179 _ecore_con_server_kill(svr);
180 return EINA_FALSE;
181 }
182 /* http://en.wikipedia.org/wiki/SOCKS
183 * http://tools.ietf.org/html/rfc1928
184 */
185 sbuf[0] = 5;
186 if (v5->username)
187 {
188 sbuf[1] = ECORE_CON_SOCKS_V5_TOTAL_METHODS;
189 for (x = 2; x < 2 + ECORE_CON_SOCKS_V5_TOTAL_METHODS; x++)
190 sbuf[x] = ECORE_CON_SOCKS_V5_METHODS[x - 2];
191 }
192 else
193 {
194 sbuf[1] = 1;
195 sbuf[2] = ECORE_CON_SOCKS_V5_METHOD_NONE;
196 }
197
198 svr->ecs_buf = eina_binbuf_manage_new_length(sbuf, buflen);
199 return EINA_TRUE;
200}
201
202#define ECORE_CON_SOCKS_READ(EXACT) \
203 if (num < EXACT) \
204 { \
205 if (!svr->ecs_recvbuf) svr->ecs_recvbuf = eina_binbuf_new(); \
206 if (!svr->ecs_recvbuf) goto error; \
207 eina_binbuf_append_length(svr->ecs_recvbuf, buf, num); \
208 /* the slowest connection on earth */ \
209 if (eina_binbuf_length_get(svr->ecs_recvbuf) != EXACT) return; \
210 data = eina_binbuf_string_get(svr->ecs_recvbuf); \
211 } \
212 else if (num > EXACT) goto error; \
213 else \
214 data = buf
215
216static void
217_ecore_con_socks_read_v4(Ecore_Con_Server *svr, Ecore_Con_Socks_v4 *v4 __UNUSED__, const unsigned char *buf, unsigned int num)
110{ 218{
111 const unsigned char *data; 219 const unsigned char *data;
112 ECORE_CON_SOCKS_CAST_ELSE(svr->ecs) return; 220 DBG("SOCKS: %d bytes", num);
221 ECORE_CON_SOCKS_READ(8);
113 222
114 if (svr->ecs_state != ECORE_CON_SOCKS_STATE_READ) return; 223/* http://ufasoft.com/doc/socks4_protocol.htm */
224 if (data[0]) goto error;
225 switch (data[1])
226 {
227 case 90:
228 /* success! */
229 break;
230 case 91:
231 ecore_con_event_server_error(svr, "proxy request rejected or failed");
232 goto error;
233 case 92:
234 ecore_con_event_server_error(svr, "proxying SOCKS server could not perform authentication");
235 goto error;
236 case 93:
237 ecore_con_event_server_error(svr, "proxy request authentication rejected");
238 goto error;
239 default:
240 ecore_con_event_server_error(svr, "garbage data from proxy");
241 goto error;
242 }
243 if (svr->ecs->bind)
244 {
245 unsigned int nport;
246 char naddr[IF_NAMESIZE];
115 247
116 if (v4) 248 memcpy(&nport, &data[2], 2);
249 svr->proxyport = ntohl(nport);
250
251 if (!inet_ntop(AF_INET, &data[4], naddr, sizeof(naddr))) goto error;
252 svr->proxyip = eina_stringshare_add(naddr);
253 ecore_con_event_proxy_bind(svr);
254 }
255 svr->ecs_state = ECORE_CON_PROXY_STATE_DONE;
256 INF("PROXY CONNECTED");
257 if (svr->ecs_recvbuf) eina_binbuf_free(svr->ecs_recvbuf);
258 svr->ecs_recvbuf = NULL;
259 svr->ecs_buf_offset = svr->ecs_addrlen = 0;
260 memset(svr->ecs_addr, 0, sizeof(svr->ecs_addr));
261 if (!svr->ssl_state)
262 ecore_con_event_server_add(svr);
263 if (svr->ssl_state || (svr->buf && eina_binbuf_length_get(svr->buf)))
264 ecore_main_fd_handler_active_set(svr->fd_handler, ECORE_FD_READ | ECORE_FD_WRITE);
265 return;
266error:
267 _ecore_con_server_kill(svr);
268}
269
270static Eina_Bool
271_ecore_con_socks_auth_v5(Ecore_Con_Server *svr, Ecore_Con_Socks_v5 *v5)
272{
273 size_t size;
274 unsigned char *data;
275 switch (v5->method)
276 {
277 case ECORE_CON_SOCKS_V5_METHOD_NONE:
278 svr->ecs_state = ECORE_CON_PROXY_STATE_REQUEST;
279 return EINA_TRUE;
280 case ECORE_CON_SOCKS_V5_METHOD_GSSAPI:
281 return EINA_TRUE;
282 case ECORE_CON_SOCKS_V5_METHOD_USERPASS:
283 if (!v5->username) return EINA_FALSE;
284 if (!v5->password) v5->plen = 1;
285 /* http://tools.ietf.org/html/rfc1929 */
286 size = sizeof(char) * (3 + v5->ulen + v5->plen);
287 data = malloc(size);
288 if (!data) break;
289 data[0] = 1;
290 data[1] = v5->ulen;
291 memcpy(&data[2], v5->username, v5->ulen);
292 data[1 + v5->ulen] = v5->plen;
293 if (v5->password)
294 memcpy(&data[2 + v5->ulen], v5->password, v5->plen);
295 else
296 data[2 + v5->ulen] = 0;
297 svr->ecs_buf = eina_binbuf_manage_new_length(data, size);
298 return EINA_TRUE;
299 default:
300 break;
301 }
302 return EINA_FALSE;
303}
304
305static void
306_ecore_con_socks_read_v5(Ecore_Con_Server *svr, Ecore_Con_Socks_v5 *v5, const unsigned char *buf, unsigned int num)
307{
308 const unsigned char *data;
309
310 DBG("SOCKS: %d bytes", num);
311 switch (svr->ecs_state)
117 { 312 {
118 DBG("SOCKS: %d bytes", num);
119 if (num < 8)
120 {
121 if (!svr->ecs_recvbuf) svr->ecs_recvbuf = eina_binbuf_new();
122 if (!svr->ecs_recvbuf) goto error;
123 eina_binbuf_append_length(svr->ecs_recvbuf, buf, num);
124 /* the slowest connection on earth */
125 if (eina_binbuf_length_get(svr->ecs_recvbuf) != 8) return;
126 data = eina_binbuf_string_get(svr->ecs_recvbuf);
127 }
128 else if (num > 8) goto error;
129 else
130 data = buf;
131 313
132 /* http://ufasoft.com/doc/socks4_protocol.htm */ 314 case ECORE_CON_PROXY_STATE_READ:
133 if (data[0]) goto error; 315 ECORE_CON_SOCKS_READ(2);
134 switch (data[1]) 316 /* http://en.wikipedia.org/wiki/SOCKS */
317 if (data[0] != 5) goto error;
318 if (data[1] == 0xFF)
319 {
320 ecore_con_event_server_error(svr, "proxy authentication methods rejected");
321 goto error;
322 }
323 v5->method = data[1];
324 if (!_ecore_con_socks_auth_v5(svr, v5)) goto error;
325 if (svr->ecs_state == ECORE_CON_PROXY_STATE_REQUEST)
326 {
327 /* run again to skip auth reading */
328 _ecore_con_socks_read_v5(svr, v5, NULL, 0);
329 return;
330 }
331 ecore_main_fd_handler_active_set(svr->fd_handler, ECORE_FD_WRITE);
332 svr->ecs_state = ECORE_CON_PROXY_STATE_AUTH;
333 break;
334 case ECORE_CON_PROXY_STATE_AUTH:
335 ECORE_CON_SOCKS_READ(2);
336 switch (v5->method)
337 {
338 case ECORE_CON_SOCKS_V5_METHOD_NONE:
339 CRIT("HOW DID THIS HAPPEN?????????");
340 goto error;
341 case ECORE_CON_SOCKS_V5_METHOD_GSSAPI:
342 /* TODO: this */
343 break;
344 case ECORE_CON_SOCKS_V5_METHOD_USERPASS:
345 if (data[0] != 1)
346 {
347 ecore_con_event_server_error(svr, "protocol error");
348 goto error; /* wrong version */
349 }
350 if (data[1])
351 {
352 ecore_con_event_server_error(svr, "proxy request authentication rejected");
353 goto error;
354 }
355 default:
356 break;
357 }
358 case ECORE_CON_PROXY_STATE_REQUEST:
135 { 359 {
136 case 90: 360 size_t addrlen, buflen;
137 /* success! */ 361 unsigned char *sbuf;
138 break; 362 addrlen = v5->lookup ? strlen(svr->name) + 1 : (unsigned int)svr->ecs_addrlen;
139 case 91: 363 buflen = sizeof(char) * (6 + addrlen);
140 ecore_con_event_server_error(svr, "proxy request rejected or failed"); 364 sbuf = malloc(buflen);
141 goto error; 365 if (!sbuf)
142 case 92: 366 {
143 ecore_con_event_server_error(svr, "proxying SOCKS server could not perform authentication"); 367 ecore_con_event_server_error(svr, "Memory allocation failure!");
144 goto error; 368 goto error;
145 case 93: 369 }
146 ecore_con_event_server_error(svr, "proxy request authentication rejected"); 370 sbuf[0] = 5;
147 goto error; 371 sbuf[1] = v5->bind ? 2 : 1; /* TODO: 0x03 for UDP port association */
148 default: 372 sbuf[2] = 0;
149 ecore_con_event_server_error(svr, "garbage data from proxy"); 373 if (v5->lookup) /* domain name */
150 goto error; 374 {
375 sbuf[3] = 3;
376 sbuf[4] = addrlen - 1;
377 memcpy(sbuf + 5, svr->name, addrlen - 1);
378 }
379 else
380 {
381 sbuf[3] = (svr->ecs_addrlen == 4) ? 1 : 4;
382 memcpy(sbuf + 4, svr->ecs_addr, addrlen);
383 }
384 sbuf[addrlen + 4] = svr->port >> 8;
385 sbuf[addrlen + 5] = svr->port & 0xff;
386
387 svr->ecs_buf = eina_binbuf_manage_new_length(sbuf, buflen);
388 ecore_main_fd_handler_active_set(svr->fd_handler, ECORE_FD_WRITE);
389 break;
151 } 390 }
152 if (svr->ecs->bind) 391 case ECORE_CON_PROXY_STATE_CONFIRM:
153 { 392 {
154 unsigned int nport; 393 /* this is ugly because we have to read an exact number of bytes,
155 char naddr[IF_NAMESIZE]; 394 * but we don't know what that number is until we've already read
156 395 * at least 5 bytes to determine the length of the unknown stream.
157 memcpy(&nport, &data[2], 2); 396 * yep.
158 svr->proxyport = ntohl(nport); 397 */
159 398 size_t to_read, len = svr->ecs_recvbuf ? eina_binbuf_length_get(svr->ecs_recvbuf) : 0;
160 if (!inet_ntop(AF_INET, &data[4], naddr, sizeof(naddr))) goto error; 399 if (num + len < 5)
161 svr->proxyip = eina_stringshare_add(naddr); 400 {
162 ecore_con_event_proxy_bind(svr); 401 /* guarantees we get called again */
402 ECORE_CON_SOCKS_READ(5);
403 }
404 if (len >= 5)
405 {
406 data = eina_binbuf_string_get(svr->ecs_recvbuf);
407 data += 3;
408 }
409 else
410 data = buf + 3 - len;
411 switch (data[0])
412 {
413 case 1:
414 to_read = 4;
415 break;
416 case 3:
417 to_read = data[1] + 1;
418 break;
419 case 4:
420 to_read = 16;
421 /* lazy debugging stub comment */
422 break;
423 default:
424 ecore_con_event_server_error(svr, "protocol error");
425 goto error;
426 }
427 /* at this point, we finally know exactly how much we need to read */
428 ECORE_CON_SOCKS_READ(6 + to_read);
429
430 if (data[0] != 5)
431 {
432 ecore_con_event_server_error(svr, "protocol error");
433 goto error; /* wrong version */
434 }
435 switch (data[1])
436 {
437 case 0:
438 break;
439 case 1:
440 ecore_con_event_server_error(svr, "general proxy failure");
441 goto error;
442 case 2:
443 ecore_con_event_server_error(svr, "connection not allowed by ruleset");
444 goto error;
445 case 3:
446 ecore_con_event_server_error(svr, "network unreachable");
447 goto error;
448 case 4:
449 ecore_con_event_server_error(svr, "host unreachable");
450 goto error;
451 case 5:
452 ecore_con_event_server_error(svr, "connection refused by destination host");
453 goto error;
454 case 6:
455 ecore_con_event_server_error(svr, "TTL expired");
456 goto error;
457 case 7:
458 ecore_con_event_server_error(svr, "command not supported / protocol error");
459 goto error;
460 case 8:
461 ecore_con_event_server_error(svr, "address type not supported");
462 default:
463 goto error;
464 }
465 if (data[2])
466 {
467 ecore_con_event_server_error(svr, "protocol error");
468 goto error;
469 }
470 memset(svr->ecs_addr, 0, sizeof(svr->ecs_addr));
471 if (!svr->ssl_state)
472 ecore_con_event_server_add(svr);
473 if (svr->ssl_state || (svr->buf && eina_binbuf_length_get(svr->buf)))
474 ecore_main_fd_handler_active_set(svr->fd_handler, ECORE_FD_READ | ECORE_FD_WRITE);
475 svr->ecs_buf_offset = svr->ecs_addrlen = 0;
476 svr->ecs_state = ECORE_CON_PROXY_STATE_DONE;
477 INF("PROXY CONNECTED");
478 break;
163 } 479 }
164 svr->ecs_state = ECORE_CON_SOCKS_STATE_DONE; 480 default:
165 INF("PROXY CONNECTED"); 481 break;
166 if (svr->ecs_recvbuf) eina_binbuf_free(svr->ecs_recvbuf);
167 svr->ecs_recvbuf = NULL;
168 svr->ecs_buf_offset = svr->ecs_addrlen = 0;
169 memset(svr->ecs_addr, 0, sizeof(svr->ecs_addr));
170 if (!svr->ssl_state)
171 ecore_con_event_server_add(svr);
172 if (svr->ssl_state || (svr->buf && eina_binbuf_length_get(svr->buf)))
173 ecore_main_fd_handler_active_set(svr->fd_handler, ECORE_FD_READ | ECORE_FD_WRITE);
174 } 482 }
483 if (svr->ecs_recvbuf) eina_binbuf_free(svr->ecs_recvbuf);
484 svr->ecs_recvbuf = NULL;
485
175 return; 486 return;
176error: 487error:
177 _ecore_con_server_kill(svr); 488 _ecore_con_server_kill(svr);
178} 489}
179 490
491/////////////////////////////////////////////////////////////////////////////////////
492void
493ecore_con_socks_shutdown(void)
494{
495 Ecore_Con_Socks *ecs;
496 EINA_LIST_FREE(ecore_con_socks_proxies, ecs)
497 _ecore_con_socks_free(ecs);
498 _ecore_con_proxy_once = NULL;
499 _ecore_con_proxy_global = NULL;
500}
501
502void
503ecore_con_socks_read(Ecore_Con_Server *svr, unsigned char *buf, int num)
504{
505 ECORE_CON_SOCKS_CAST_ELSE(svr->ecs) return;
506
507 if (svr->ecs_state < ECORE_CON_PROXY_STATE_READ) return;
508
509 if (v4) _ecore_con_socks_read_v4(svr, v4, buf, (unsigned int)num);
510 else _ecore_con_socks_read_v5(svr, v5, buf, (unsigned int)num);
511}
512
180Eina_Bool 513Eina_Bool
181ecore_con_socks_svr_init(Ecore_Con_Server *svr) 514ecore_con_socks_svr_init(Ecore_Con_Server *svr)
182{ 515{
183 unsigned char *sbuf;
184 ECORE_CON_SOCKS_CAST_ELSE(svr->ecs) return EINA_FALSE; 516 ECORE_CON_SOCKS_CAST_ELSE(svr->ecs) return EINA_FALSE;
185 517
186 if (!svr->ip) return EINA_FALSE; 518 if (!svr->ip) return EINA_FALSE;
187 if (svr->ecs_buf) return EINA_FALSE; 519 if (svr->ecs_buf) return EINA_FALSE;
188 if (svr->ecs_state != ECORE_CON_SOCKS_STATE_INIT) return EINA_FALSE; 520 if (svr->ecs_state != ECORE_CON_PROXY_STATE_INIT) return EINA_FALSE;
189 ecore_main_fd_handler_active_set(svr->fd_handler, ECORE_FD_WRITE); 521 ecore_main_fd_handler_active_set(svr->fd_handler, ECORE_FD_WRITE);
190 if (v4) 522 if (v4) return _ecore_con_socks_svr_init_v4(svr, v4);
191 { 523 return _ecore_con_socks_svr_init_v5(svr, v5);
192 size_t addrlen, buflen, ulen = 1;
193 addrlen = svr->ecs->lookup ? strlen(svr->name) + 1: 0;
194 if (svr->ecs->username) ulen += strlen(svr->ecs->username);
195 buflen = sizeof(char) * (8 + ulen + addrlen);
196 sbuf = malloc(buflen);
197 if (!sbuf)
198 {
199 ecore_con_event_server_error(svr, "Memory allocation failure!");
200 _ecore_con_server_kill(svr);
201 return EINA_FALSE;
202 }
203 /* http://en.wikipedia.org/wiki/SOCKS */
204 sbuf[0] = 4;
205 sbuf[1] = v4->bind ? 2 : 1;
206 sbuf[2] = svr->port >> 8;
207 sbuf[3] = svr->port & 0xff;
208 if (addrlen)
209 {
210 sbuf[4] = sbuf[5] = sbuf[6] = 0;
211 sbuf[7] = 1;
212 }
213 else
214 memcpy(sbuf + 4, svr->ecs_addr, 4);
215 if (svr->ecs->username)
216 memcpy(sbuf + 8, svr->ecs->username, ulen);
217 else
218 sbuf[8] = 0;
219 if (addrlen) memcpy(sbuf + 8 + ulen, svr->name, addrlen);
220
221 svr->ecs_buf = eina_binbuf_manage_new_length(sbuf, buflen);
222 }
223 return EINA_TRUE;
224} 524}
225 525
226void 526void
227ecore_con_socks_dns_cb(const char *canonname __UNUSED__, const char *ip, struct sockaddr *addr, int addrlen, Ecore_Con_Server *svr) 527ecore_con_socks_dns_cb(const char *canonname __UNUSED__, const char *ip, struct sockaddr *addr, int addrlen __UNUSED__, Ecore_Con_Server *svr)
228{ 528{
229 svr->ip = eina_stringshare_add(ip); 529 svr->ip = eina_stringshare_add(ip);
230 svr->ecs_addrlen = addrlen;
231 svr->ecs_state++; 530 svr->ecs_state++;
232 if (addr->sa_family == AF_INET) 531 if (addr->sa_family == AF_INET)
233 memcpy(svr->ecs_addr, &((struct sockaddr_in *)addr)->sin_addr.s_addr, 4); 532 {
533 memcpy(svr->ecs_addr, &((struct sockaddr_in *)addr)->sin_addr.s_addr, 4);
534 svr->ecs_addrlen = 4;
535 }
234#ifdef HAVE_IPV6 536#ifdef HAVE_IPV6
235 else 537 else
236 memcpy(svr->ecs_addr, &((struct sockaddr_in6 *)addr)->sin6_addr.s6_addr, addrlen); 538 {
539 memcpy(svr->ecs_addr, &((struct sockaddr_in6 *)addr)->sin6_addr.s6_addr, 16);
540 svr->ecs_addrlen = 16;
541 }
237#endif 542#endif
238 ecore_con_socks_svr_init(svr); 543 ecore_con_socks_svr_init(svr);
239} 544}
@@ -242,36 +547,57 @@ void
242ecore_con_socks_init(void) 547ecore_con_socks_init(void)
243{ 548{
244 const char *socks; 549 const char *socks;
245 char *u, *h, *p, *l; 550 char *h, *p, *l, *u = NULL;
246 char buf[64]; 551 char buf[512];
247 int port, lookup = 0; 552 int port, lookup = 0;
553 Eina_Bool v5 = EINA_FALSE;
248 Ecore_Con_Socks *ecs; 554 Ecore_Con_Socks *ecs;
249 unsigned char addr[sizeof(struct in_addr)]; 555 unsigned char addr[sizeof(struct in_addr)];
556#ifdef HAVE_IPV6
557 unsigned char addr6[sizeof(struct in6_addr)];
558#endif
250 559
251 /* ECORE_CON_SOCKS_V4=user@host:port:[1|0] */ 560 /* ECORE_CON_SOCKS_V4=[user@]host:port-[1|0] */
252 socks = getenv("ECORE_CON_SOCKS_V4"); 561 socks = getenv("ECORE_CON_SOCKS_V4");
253 if ((!socks) || (!socks[0]) || (strlen(socks) > 64)) return; 562 if (!socks)
563 {
564 /* ECORE_CON_SOCKS_V5=[user@]host-port:[1|0] */
565 socks = getenv("ECORE_CON_SOCKS_V5");
566 v5 = EINA_TRUE;
567 }
568 if ((!socks) || (!socks[0]) || (strlen(socks) > 512)) return;
254 strncpy(buf, socks, sizeof(buf)); 569 strncpy(buf, socks, sizeof(buf));
255 h = strchr(buf, '@'); 570 h = strchr(buf, '@');
256 u = NULL;
257 /* username */ 571 /* username */
258 if (h && (h - buf > 0)) *h++ = 0, u = buf; 572 if (h && (h - buf > 0)) *h++ = 0, u = buf;
259 else h = buf; 573 else h = buf;
260 574
261 /* host ip; I ain't resolvin shit here */ 575 /* host ip; I ain't resolvin shit here */
262 p = strchr(h, ':'); 576 p = strchr(h, '-');
263 if (!p) return; 577 if (!p) return;
264 *p++ = 0; 578 *p++ = 0;
265 if (!inet_pton(AF_INET, h, addr)) return; 579 if (!inet_pton(AF_INET, h, addr))
580#ifdef HAVE_IPV6
581 {
582 if (!v5) return;
583 if (!inet_pton(AF_INET6, h, addr6))
584 return;
585 }
586#else
587 return;
588#endif
266 589
267 errno = 0; 590 errno = 0;
268 port = strtol(p, &l, 10); 591 port = strtol(p, &l, 10);
269 if (errno || (port < 0) || (port > 65535)) return; 592 if (errno || (port < 0) || (port > 65535)) return;
270 if (l && (l[0] == ':')) 593 if (l && (l[0] == ':'))
271 lookup = (l[1] == '1'); 594 lookup = (l[1] == '1');
272 ecs = ecore_con_socks4_remote_add(h, port, u); 595 if (v5)
596 ecs = ecore_con_socks5_remote_add(h, port, u, NULL);
597 else
598 ecs = ecore_con_socks4_remote_add(h, port, u);
273 if (!ecs) return; 599 if (!ecs) return;
274 ecore_con_socks4_lookup_set(ecs, lookup); 600 ecore_con_socks_lookup_set(ecs, lookup);
275 ecore_con_socks_apply_always(ecs); 601 ecore_con_socks_apply_always(ecs);
276 INF("Added global proxy server %s%s%s:%d - DNS lookup %s", 602 INF("Added global proxy server %s%s%s:%d - DNS lookup %s",
277 u ?: "", u ? "@" : "", h, port, lookup ? "ENABLED" : "DISABLED"); 603 u ?: "", u ? "@" : "", h, port, lookup ? "ENABLED" : "DISABLED");
@@ -300,10 +626,17 @@ EAPI Ecore_Con_Socks *
300ecore_con_socks4_remote_add(const char *ip, int port, const char *username) 626ecore_con_socks4_remote_add(const char *ip, int port, const char *username)
301{ 627{
302 Ecore_Con_Socks *ecs; 628 Ecore_Con_Socks *ecs;
629 size_t ulen = 0;
303 630
304 if ((!ip) || (!ip[0]) || (port < 0) || (port > 65535)) return NULL; 631 if ((!ip) || (!ip[0]) || (port < 0) || (port > 65535)) return NULL;
305 632
306 ecs = _ecore_con_socks_find(4, ip, port, username); 633 if (username)
634 {
635 ulen = strlen(username);
636 /* max length for protocol */
637 if ((!ulen) || (ulen > 255)) return NULL;
638 }
639 ecs = _ecore_con_socks_find(4, ip, port, username, ulen, NULL, 0);
307 if (ecs) return ecs; 640 if (ecs) return ecs;
308 641
309 ecs = calloc(1, sizeof(Ecore_Con_Socks_v4)); 642 ecs = calloc(1, sizeof(Ecore_Con_Socks_v4));
@@ -313,92 +646,194 @@ ecore_con_socks4_remote_add(const char *ip, int port, const char *username)
313 ecs->ip = eina_stringshare_add(ip); 646 ecs->ip = eina_stringshare_add(ip);
314 ecs->port = port; 647 ecs->port = port;
315 ecs->username = eina_stringshare_add(username); 648 ecs->username = eina_stringshare_add(username);
649 ecs->ulen = ulen;
316 ecore_con_socks_proxies = eina_list_append(ecore_con_socks_proxies, ecs); 650 ecore_con_socks_proxies = eina_list_append(ecore_con_socks_proxies, ecs);
317 return ecs; 651 return ecs;
318} 652}
319 653
320/** 654/**
321 * Set DNS lookup mode on an existing SOCKS v4 proxy 655 * Find a SOCKS v4 proxy in the proxy list
322 * 656 *
323 * According to RFC, SOCKS v4 does not require that a proxy perform 657 * Use this to determine if a SOCKS proxy was previously added by checking
324 * its own DNS lookups for addresses. SOCKS v4a specifies the protocol 658 * the proxy list against the parameters given.
325 * for this. If you want to enable remote DNS lookup and are sure that your 659 * @param ip The ip address of the proxy (NOT DOMAIN NAME. IP ADDRESS.)
326 * proxy supports it, use this function. 660 * @param port The port to connect to on the proxy, or -1 to match the first proxy with @p ip
327 * @param ecs The proxy object 661 * @param username The username used for the proxy (OPTIONAL)
328 * @param enable If true, the proxy will perform the dns lookup 662 * @return true only if a proxy exists matching the given params
329 * @note By default, this setting is DISABLED. 663 * @note This function matches slightly more loosely than ecore_con_socks4_remote_add(), and
664 * ecore_con_socks4_remote_add() should be used to return the actual object.
330 * @since 1.2 665 * @since 1.2
331 */ 666 */
332EAPI void 667EAPI Eina_Bool
333ecore_con_socks4_lookup_set(Ecore_Con_Socks *ecs, Eina_Bool enable) 668ecore_con_socks4_remote_exists(const char *ip, int port, const char *username)
334{ 669{
335 ECORE_CON_SOCKS_CAST_ELSE(ecs) return; 670 if ((!ip) || (!ip[0]) || (port < -1) || (port > 65535) || (username && (!username[0])))
336 if (v4) v4->lookup = !!enable; 671 return EINA_FALSE;
672 return !!_ecore_con_socks_find(4, ip, port, username, username ? strlen(username) : 0, NULL, 0);
337} 673}
338 674
339/** 675/**
340 * Get DNS lookup mode on an existing SOCKS v4 proxy 676 * Remove a SOCKS v4 proxy from the proxy list and delete it
341 * 677 *
342 * According to RFC, SOCKS v4 does not require that a proxy perform 678 * Use this to remove a SOCKS proxy from the proxy list by checking
343 * its own DNS lookups for addresses. SOCKS v4a specifies the protocol 679 * the list against the parameters given. The proxy will then be deleted.
344 * for this. This function returns whether lookups are enabled on a proxy object. 680 * @param ip The ip address of the proxy (NOT DOMAIN NAME. IP ADDRESS.)
345 * @param ecs The proxy object 681 * @param port The port to connect to on the proxy, or -1 to match the first proxy with @p ip
346 * @return If true, the proxy will perform the dns lookup 682 * @param username The username used for the proxy (OPTIONAL)
347 * @note By default, this setting is DISABLED. 683 * @note This function matches in the same way as ecore_con_socks4_remote_exists().
684 * @warning Be aware that deleting a proxy which is being used WILL ruin your life.
348 * @since 1.2 685 * @since 1.2
349 */ 686 */
350EAPI Eina_Bool 687EAPI void
351ecore_con_socks4_lookup_get(Ecore_Con_Socks *ecs) 688ecore_con_socks4_remote_del(const char *ip, int port, const char *username)
352{ 689{
353 ECORE_CON_SOCKS_CAST_ELSE(ecs) return EINA_FALSE; 690 Ecore_Con_Socks_v4 *v4;
354 return v4 ? v4->lookup : EINA_FALSE; 691
692 if ((!ip) || (!ip[0]) || (port < -1) || (port > 65535) || (username && (!username[0]))) return;
693 if (!ecore_con_socks_proxies) return;
694
695 v4 = (Ecore_Con_Socks_v4*)_ecore_con_socks_find(4, ip, port, username, username ? strlen(username) : 0, NULL, 0);
696 if (!v4) return;
697 ecore_con_socks_proxies = eina_list_remove(ecore_con_socks_proxies, v4);
698 _ecore_con_socks_free((Ecore_Con_Socks*)v4);
699}
700/**
701 * Add a SOCKS v5 proxy to the proxy list
702 *
703 * Use this to create (or return, if previously added) a SOCKS proxy
704 * object which can be used by any ecore_con servers.
705 * @param ip The ip address of the proxy (NOT DOMAIN NAME. IP ADDRESS.)
706 * @param port The port to connect to on the proxy
707 * @param username The username to use for the proxy (OPTIONAL)
708 * @param password The password to use for the proxy (OPTIONAL)
709 * @return An allocated proxy object, or NULL on failure
710 * @note This object NEVER needs to be explicitly freed.
711 * @since 1.2
712 */
713EAPI Ecore_Con_Socks *
714ecore_con_socks5_remote_add(const char *ip, int port, const char *username, const char *password)
715{
716 Ecore_Con_Socks_v5 *ecs5;
717 size_t ulen = 0, plen = 0;
718
719 if ((!ip) || (!ip[0]) || (port < 0) || (port > 65535)) return NULL;
720
721 if (username)
722 {
723 ulen = strlen(username);
724 /* max length for protocol */
725 if ((!ulen) || (ulen > 255)) return NULL;
726 }
727 if (password)
728 {
729 plen = strlen(password);
730 /* max length for protocol */
731 if ((!plen) || (plen > 255)) return NULL;
732 }
733 ecs5 = (Ecore_Con_Socks_v5*)_ecore_con_socks_find(5, ip, port, username, ulen, password, plen);
734 if (ecs5) return (Ecore_Con_Socks*)ecs5;
735
736 ecs5 = calloc(1, sizeof(Ecore_Con_Socks_v5));
737 if (!ecs5) return NULL;
738
739 ecs5->version = 5;
740 ecs5->ip = eina_stringshare_add(ip);
741 ecs5->port = port;
742 ecs5->username = eina_stringshare_add(username);
743 ecs5->ulen = ulen;
744 ecs5->password = eina_stringshare_add(password);
745 ecs5->plen = plen;
746 ecore_con_socks_proxies = eina_list_append(ecore_con_socks_proxies, ecs5);
747 return (Ecore_Con_Socks*)ecs5;
355} 748}
356 749
357/** 750/**
358 * Find a SOCKS v4 proxy in the proxy list 751 * Find a SOCKS v5 proxy in the proxy list
359 * 752 *
360 * Use this to determine if a SOCKS proxy was previously added by checking 753 * Use this to determine if a SOCKS proxy was previously added by checking
361 * the proxy list against the parameters given. 754 * the proxy list against the parameters given.
362 * @param ip The ip address of the proxy (NOT DOMAIN NAME. IP ADDRESS.) 755 * @param ip The ip address of the proxy (NOT DOMAIN NAME. IP ADDRESS.)
363 * @param port The port to connect to on the proxy, or -1 to match the first proxy with @p ip 756 * @param port The port to connect to on the proxy, or -1 to match the first proxy with @p ip
364 * @param username The username used for the proxy (OPTIONAL) 757 * @param username The username used for the proxy (OPTIONAL)
758 * @param password The password used for the proxy (OPTIONAL)
365 * @return true only if a proxy exists matching the given params 759 * @return true only if a proxy exists matching the given params
366 * @note This function matches slightly more loosely than ecore_con_socks4_remote_add(), and 760 * @note This function matches slightly more loosely than ecore_con_socks5_remote_add(), and
367 * ecore_con_socks4_remote_add() should be used to return the actual object. 761 * ecore_con_socks5_remote_add() should be used to return the actual object.
368 * @since 1.2 762 * @since 1.2
369 */ 763 */
370EAPI Eina_Bool 764EAPI Eina_Bool
371ecore_con_socks4_remote_exists(const char *ip, int port, const char *username) 765ecore_con_socks5_remote_exists(const char *ip, int port, const char *username, const char *password)
372{ 766{
373 if ((!ip) || (!ip[0]) || (port < -1) || (port > 65535) || (username && (!username[0]))) 767 if ((!ip) || (!ip[0]) || (port < -1) || (port > 65535) || (username && (!username[0])) || (password && (!password[0])))
374 return EINA_FALSE; 768 return EINA_FALSE;
375 return !!_ecore_con_socks_find(4, ip, port, username); 769 return !!_ecore_con_socks_find(5, ip, port, username, username ? strlen(username) : 0, password, password ? strlen(password) : 0);
376} 770}
377 771
378/** 772/**
379 * Remove a SOCKS v4 proxy from the proxy list and delete it 773 * Remove a SOCKS v5 proxy from the proxy list and delete it
380 * 774 *
381 * Use this to remove a SOCKS proxy from the proxy list by checking 775 * Use this to remove a SOCKS proxy from the proxy list by checking
382 * the list against the parameters given. The proxy will then be deleted. 776 * the list against the parameters given. The proxy will then be deleted.
383 * @param ip The ip address of the proxy (NOT DOMAIN NAME. IP ADDRESS.) 777 * @param ip The ip address of the proxy (NOT DOMAIN NAME. IP ADDRESS.)
384 * @param port The port to connect to on the proxy, or -1 to match the first proxy with @p ip 778 * @param port The port to connect to on the proxy, or -1 to match the first proxy with @p ip
385 * @param username The username used for the proxy (OPTIONAL) 779 * @param username The username used for the proxy (OPTIONAL)
780 * @param password The password used for the proxy (OPTIONAL)
386 * @note This function matches in the same way as ecore_con_socks4_remote_exists(). 781 * @note This function matches in the same way as ecore_con_socks4_remote_exists().
387 * @warning Be aware that deleting a proxy which is being used WILL ruin your life. 782 * @warning Be aware that deleting a proxy which is being used WILL ruin your life.
388 * @since 1.2 783 * @since 1.2
389 */ 784 */
390EAPI void 785EAPI void
391ecore_con_socks4_remote_del(const char *ip, int port, const char *username) 786ecore_con_socks5_remote_del(const char *ip, int port, const char *username, const char *password)
392{ 787{
393 Ecore_Con_Socks_v4 *v4; 788 Ecore_Con_Socks_v5 *v5;
394 789
395 if ((!ip) || (!ip[0]) || (port < -1) || (port > 65535) || (username && (!username[0]))) return; 790 if ((!ip) || (!ip[0]) || (port < -1) || (port > 65535) || (username && (!username[0])) || (password && (!password[0])))
791 return;
396 if (!ecore_con_socks_proxies) return; 792 if (!ecore_con_socks_proxies) return;
397 793
398 v4 = (Ecore_Con_Socks_v4*)_ecore_con_socks_find(4, ip, port, username); 794 v5 = (Ecore_Con_Socks_v5*)_ecore_con_socks_find(5, ip, port, username, username ? strlen(username) : 0, password, password ? strlen(password) : 0);
399 if (!v4) return; 795 if (!v5) return;
400 ecore_con_socks_proxies = eina_list_remove(ecore_con_socks_proxies, v4); 796 ecore_con_socks_proxies = eina_list_remove(ecore_con_socks_proxies, v5);
401 _ecore_con_socks_free((Ecore_Con_Socks*)v4); 797 _ecore_con_socks_free((Ecore_Con_Socks*)v5);
798}
799
800/**
801 * Set DNS lookup mode on an existing SOCKS proxy
802 *
803 * According to RFC, SOCKS v4 does not require that a proxy perform
804 * its own DNS lookups for addresses. SOCKS v4a specifies the protocol
805 * for this. SOCKS v5 allows DNS lookups.
806 * If you want to enable remote DNS lookup and are sure that your
807 * proxy supports it, use this function.
808 * @param ecs The proxy object
809 * @param enable If true, the proxy will perform the dns lookup
810 * @note By default, this setting is DISABLED.
811 * @since 1.2
812 */
813EAPI void
814ecore_con_socks_lookup_set(Ecore_Con_Socks *ecs, Eina_Bool enable)
815{
816 ECORE_CON_SOCKS_CAST_ELSE(ecs) return;
817 ecs->lookup = !!enable;
818}
819
820/**
821 * Get DNS lookup mode on an existing SOCKS proxy
822 *
823 * According to RFC, SOCKS v4 does not require that a proxy perform
824 * its own DNS lookups for addresses. SOCKS v4a specifies the protocol
825 * for this. SOCKS v5 allows DNS lookups.
826 * This function returns whether lookups are enabled on a proxy object.
827 * @param ecs The proxy object
828 * @return If true, the proxy will perform the dns lookup
829 * @note By default, this setting is DISABLED.
830 * @since 1.2
831 */
832EAPI Eina_Bool
833ecore_con_socks_lookup_get(Ecore_Con_Socks *ecs)
834{
835 ECORE_CON_SOCKS_CAST_ELSE(ecs) return EINA_FALSE;
836 return ecs->lookup;
402} 837}
403 838
404/** 839/**
@@ -434,6 +869,14 @@ ecore_con_socks_bind_get(Ecore_Con_Socks *ecs)
434 return ecs->bind; 869 return ecs->bind;
435} 870}
436 871
872/**
873 * Return SOCKS version of a SOCKS proxy
874 *
875 * Use this function to return the SOCKS protocol version of a proxy
876 * @param ecs The proxy object
877 * @return 0 on error, else 4/5
878 * @since 1.2
879 */
437EAPI unsigned int 880EAPI unsigned int
438ecore_con_socks_version_get(Ecore_Con_Socks *ecs) 881ecore_con_socks_version_get(Ecore_Con_Socks *ecs)
439{ 882{
@@ -482,7 +925,8 @@ ecore_con_socks_apply_once(Ecore_Con_Socks *ecs)
482 * @see ecore_con_socks_apply_once() 925 * @see ecore_con_socks_apply_once()
483 * @since 1.2 926 * @since 1.2
484 * @note ecore-con supports setting this through environment variables like so: 927 * @note ecore-con supports setting this through environment variables like so:
485 * ECORE_CON_SOCKS_V4=[user@]server:port:lookup 928 * ECORE_CON_SOCKS_V4=[user@]server-port:lookup
929 * ECORE_CON_SOCKS_V5=[user@]server-port:lookup
486 * user is the OPTIONAL string that would be passed to the proxy as the username 930 * user is the OPTIONAL string that would be passed to the proxy as the username
487 * server is the IP_ADDRESS of the proxy server 931 * server is the IP_ADDRESS of the proxy server
488 * port is the port to connect to on the proxy server 932 * port is the port to connect to on the proxy server
diff --git a/libraries/ecore/src/lib/ecore_con/ecore_con_ssl.c b/libraries/ecore/src/lib/ecore_con/ecore_con_ssl.c
index 6104632..cd8b9c6 100644
--- a/libraries/ecore/src/lib/ecore_con/ecore_con_ssl.c
+++ b/libraries/ecore/src/lib/ecore_con/ecore_con_ssl.c
@@ -652,6 +652,7 @@ ecore_con_ssl_server_verify_name_get(Ecore_Con_Server *svr)
652 * Use this function to add a SSL PEM certificate. 652 * Use this function to add a SSL PEM certificate.
653 * Simply specify the cert here to use it in the server object for connecting or listening. 653 * Simply specify the cert here to use it in the server object for connecting or listening.
654 * If there is an error loading the certificate, an error will automatically be logged. 654 * If there is an error loading the certificate, an error will automatically be logged.
655 * @param svr The server object
655 * @param cert The path to the certificate. 656 * @param cert The path to the certificate.
656 * @return EINA_FALSE if the file cannot be loaded, otherwise EINA_TRUE. 657 * @return EINA_FALSE if the file cannot be loaded, otherwise EINA_TRUE.
657 */ 658 */
@@ -683,6 +684,7 @@ ecore_con_ssl_server_cert_add(Ecore_Con_Server *svr,
683 * Use this function to add a SSL PEM CA file. 684 * Use this function to add a SSL PEM CA file.
684 * Simply specify the file here to use it in the server object for connecting or listening. 685 * Simply specify the file here to use it in the server object for connecting or listening.
685 * If there is an error loading the CAs, an error will automatically be logged. 686 * If there is an error loading the CAs, an error will automatically be logged.
687 * @param svr The server object
686 * @param ca_file The path to the CA file. 688 * @param ca_file The path to the CA file.
687 * @return EINA_FALSE if the file cannot be loaded, otherwise EINA_TRUE. 689 * @return EINA_FALSE if the file cannot be loaded, otherwise EINA_TRUE.
688 * @note since 1.2, this function can load directores 690 * @note since 1.2, this function can load directores
@@ -747,6 +749,7 @@ ecore_con_ssl_server_privkey_add(Ecore_Con_Server *svr,
747 * Use this function to add a SSL PEM CRL file 749 * Use this function to add a SSL PEM CRL file
748 * Simply specify the CRL file here to use it in the server object for connecting or listening. 750 * Simply specify the CRL file here to use it in the server object for connecting or listening.
749 * If there is an error loading the CRL, an error will automatically be logged. 751 * If there is an error loading the CRL, an error will automatically be logged.
752 * @param svr The server object
750 * @param crl_file The path to the CRL file. 753 * @param crl_file The path to the CRL file.
751 * @return EINA_FALSE if the file cannot be loaded, 754 * @return EINA_FALSE if the file cannot be loaded,
752 * otherwise EINA_TRUE. 755 * otherwise EINA_TRUE.
diff --git a/libraries/ecore/src/lib/ecore_con/ecore_con_url.c b/libraries/ecore/src/lib/ecore_con/ecore_con_url.c
index 709b554..05f0678 100644
--- a/libraries/ecore/src/lib/ecore_con/ecore_con_url.c
+++ b/libraries/ecore/src/lib/ecore_con/ecore_con_url.c
@@ -30,41 +30,31 @@
30#include "Ecore_Con.h" 30#include "Ecore_Con.h"
31#include "ecore_con_private.h" 31#include "ecore_con_private.h"
32 32
33#define CURL_MIN_TIMEOUT 100
34
33int ECORE_CON_EVENT_URL_DATA = 0; 35int ECORE_CON_EVENT_URL_DATA = 0;
34int ECORE_CON_EVENT_URL_COMPLETE = 0; 36int ECORE_CON_EVENT_URL_COMPLETE = 0;
35int ECORE_CON_EVENT_URL_PROGRESS = 0; 37int ECORE_CON_EVENT_URL_PROGRESS = 0;
36 38
37#ifdef HAVE_CURL 39#ifdef HAVE_CURL
40static void _ecore_con_url_event_url_complete(Ecore_Con_Url *url_con, CURLMsg *curlmsg);
41static void _ecore_con_url_multi_remove(Ecore_Con_Url *url_con);
38static Eina_Bool _ecore_con_url_perform(Ecore_Con_Url *url_con); 42static Eina_Bool _ecore_con_url_perform(Ecore_Con_Url *url_con);
39static size_t _ecore_con_url_header_cb(void *ptr, 43static size_t _ecore_con_url_header_cb(void *ptr, size_t size, size_t nitems, void *stream);
40 size_t size, 44static size_t _ecore_con_url_data_cb(void *buffer, size_t size, size_t nitems, void *userp);
41 size_t nitems, 45static int _ecore_con_url_progress_cb(void *clientp, double dltotal, double dlnow, double ultotal, double ulnow);
42 void *stream); 46static size_t _ecore_con_url_read_cb(void *ptr, size_t size, size_t nitems, void *stream);
43static size_t _ecore_con_url_data_cb(void *buffer, 47static void _ecore_con_event_url_free(Ecore_Con_Url *url_con, void *ev);
44 size_t size, 48static Eina_Bool _ecore_con_url_timer(void *data);
45 size_t nitems, 49static Eina_Bool _ecore_con_url_fd_handler(void *data, Ecore_Fd_Handler *fd_handler);
46 void *userp);
47static int _ecore_con_url_progress_cb(void *clientp,
48 double dltotal,
49 double dlnow,
50 double ultotal,
51 double ulnow);
52static size_t _ecore_con_url_read_cb(void *ptr,
53 size_t size,
54 size_t nitems,
55 void *stream);
56static void _ecore_con_event_url_free(void *data __UNUSED__,
57 void *ev);
58static Eina_Bool _ecore_con_url_idler_handler(void *data);
59static Eina_Bool _ecore_con_url_fd_handler(void *data __UNUSED__, Ecore_Fd_Handler *fd_handler __UNUSED__);
60static Eina_Bool _ecore_con_url_timeout_cb(void *data); 50static Eina_Bool _ecore_con_url_timeout_cb(void *data);
51static void _ecore_con_url_status_get(Ecore_Con_Url *url_con);
61 52
62static Eina_List *_url_con_list = NULL; 53static Eina_List *_url_con_list = NULL;
63static Eina_List *_fd_hd_list = NULL; 54static Eina_List *_fd_hd_list = NULL;
64static CURLM *_curlm = NULL; 55static CURLM *_curlm = NULL;
65static fd_set _current_fd_set;
66static int _init_count = 0; 56static int _init_count = 0;
67static Ecore_Timer *_curl_timeout = NULL; 57static Ecore_Timer *_curl_timer = NULL;
68static Eina_Bool pipelining = EINA_FALSE; 58static Eina_Bool pipelining = EINA_FALSE;
69 59
70#endif 60#endif
@@ -79,28 +69,28 @@ EAPI int
79ecore_con_url_init(void) 69ecore_con_url_init(void)
80{ 70{
81#ifdef HAVE_CURL 71#ifdef HAVE_CURL
72 long ms;
82 if (++_init_count > 1) return _init_count; 73 if (++_init_count > 1) return _init_count;
83 74
84 if (!ECORE_CON_EVENT_URL_DATA) ECORE_CON_EVENT_URL_DATA = ecore_event_type_new(); 75 ECORE_CON_EVENT_URL_DATA = ecore_event_type_new();
85 if (!ECORE_CON_EVENT_URL_COMPLETE) ECORE_CON_EVENT_URL_COMPLETE = ecore_event_type_new(); 76 ECORE_CON_EVENT_URL_COMPLETE = ecore_event_type_new();
86 if (!ECORE_CON_EVENT_URL_PROGRESS) ECORE_CON_EVENT_URL_PROGRESS = ecore_event_type_new(); 77 ECORE_CON_EVENT_URL_PROGRESS = ecore_event_type_new();
78
79 // curl_global_init() is not thread safe!
80 if (curl_global_init(CURL_GLOBAL_ALL)) return --_init_count;
87 81
82 _curlm = curl_multi_init();
88 if (!_curlm) 83 if (!_curlm)
89 { 84 {
90 long ms; 85 curl_global_cleanup();
91 86 return --_init_count;
92 // curl_global_init() is not thread safe! 87 }
93 if (curl_global_init(CURL_GLOBAL_ALL)) return --_init_count;
94
95 _curlm = curl_multi_init();
96 if (!_curlm) return --_init_count;
97 88
98 curl_multi_timeout(_curlm, &ms); 89 curl_multi_timeout(_curlm, &ms);
99 if (ms <= 0) ms = 100; 90 if (ms >= CURL_MIN_TIMEOUT || ms <= 0) ms = CURL_MIN_TIMEOUT;
100 91
101 _curl_timeout = ecore_timer_add((double)ms / 1000, _ecore_con_url_idler_handler, (void *)0xACE); 92 _curl_timer = ecore_timer_add((double)ms / 1000, _ecore_con_url_timer, NULL);
102 ecore_timer_freeze(_curl_timeout); 93 ecore_timer_freeze(_curl_timer);
103 }
104 94
105 return _init_count; 95 return _init_count;
106#else 96#else
@@ -112,31 +102,30 @@ EAPI int
112ecore_con_url_shutdown(void) 102ecore_con_url_shutdown(void)
113{ 103{
114#ifdef HAVE_CURL 104#ifdef HAVE_CURL
105 Ecore_Con_Url *url_con;
106 Ecore_Fd_Handler *fd_handler;
115 if (_init_count == 0) return 0; 107 if (_init_count == 0) return 0;
108 --_init_count;
109 if (_init_count) return _init_count;
116 110
117 if (--_init_count == 0) 111 if (_curl_timer)
118 { 112 {
119 Ecore_Con_Url *con_url; 113 ecore_timer_del(_curl_timer);
120 Ecore_Fd_Handler *fd_handler; 114 _curl_timer = NULL;
121 115 }
122 if (_curl_timeout)
123 {
124 ecore_timer_del(_curl_timeout);
125 _curl_timeout = NULL;
126 }
127 116
128 FD_ZERO(&_current_fd_set); 117 EINA_LIST_FREE(_url_con_list, url_con)
129 EINA_LIST_FREE(_url_con_list, con_url) ecore_con_url_free(con_url); 118 ecore_con_url_free(url_con);
130 EINA_LIST_FREE(_fd_hd_list, fd_handler) ecore_main_fd_handler_del(fd_handler); 119 EINA_LIST_FREE(_fd_hd_list, fd_handler)
120 ecore_main_fd_handler_del(fd_handler);
131 121
132 if (_curlm) 122 if (_curlm)
133 { 123 {
134 curl_multi_cleanup(_curlm); 124 curl_multi_cleanup(_curlm);
135 _curlm = NULL; 125 _curlm = NULL;
136 } 126 }
137 curl_global_cleanup(); 127 curl_global_cleanup();
138 } 128 return 0;
139 return _init_count;
140#endif 129#endif
141 return 1; 130 return 1;
142} 131}
@@ -145,14 +134,12 @@ EAPI void
145ecore_con_url_pipeline_set(Eina_Bool enable) 134ecore_con_url_pipeline_set(Eina_Bool enable)
146{ 135{
147#ifdef HAVE_CURL 136#ifdef HAVE_CURL
148 if (enable) 137 if (enable == pipelining) return;
149 curl_multi_setopt(_curlm, CURLMOPT_PIPELINING, 1); 138 curl_multi_setopt(_curlm, CURLMOPT_PIPELINING, !!enable);
150 else 139 pipelining = enable;
151 curl_multi_setopt(_curlm, CURLMOPT_PIPELINING, 0);
152 pipelining = enable;
153#else 140#else
154 return; 141 return;
155 (void)enable; 142 (void)enable;
156#endif 143#endif
157} 144}
158 145
@@ -160,11 +147,13 @@ EAPI Eina_Bool
160ecore_con_url_pipeline_get(void) 147ecore_con_url_pipeline_get(void)
161{ 148{
162#ifdef HAVE_CURL 149#ifdef HAVE_CURL
163 return pipelining; 150 return pipelining;
164#endif 151#endif
165 return EINA_FALSE; 152 return EINA_FALSE;
166} 153}
167 154
155extern Ecore_Con_Socks *_ecore_con_proxy_global;
156
168EAPI Ecore_Con_Url * 157EAPI Ecore_Con_Url *
169ecore_con_url_new(const char *url) 158ecore_con_url_new(const char *url)
170{ 159{
@@ -196,22 +185,41 @@ ecore_con_url_new(const char *url)
196 return NULL; 185 return NULL;
197 } 186 }
198 187
188 // Read socks proxy
199 url_con->proxy_type = -1; 189 url_con->proxy_type = -1;
200 if (_ecore_con_proxy_global) 190 if (_ecore_con_proxy_global && _ecore_con_proxy_global->ip &&
191 (_ecore_con_proxy_global->version == 4 ||
192 _ecore_con_proxy_global->version == 5))
201 { 193 {
202 if (_ecore_con_proxy_global->ip) 194 char proxy[256];
195 char host[256];
196
197 if (_ecore_con_proxy_global->version == 5)
203 { 198 {
204 char host[128]; 199 if (_ecore_con_proxy_global->lookup)
205 if (_ecore_con_proxy_global->port > 0 && 200 snprintf(host, sizeof(host), "socks5h://%s",
206 _ecore_con_proxy_global->port <= 65535) 201 _ecore_con_proxy_global->ip);
207 snprintf(host, sizeof(host), "socks4://%s:%d", 202 else snprintf(host, sizeof(host), "socks5://%s",
208 _ecore_con_proxy_global->ip, 203 _ecore_con_proxy_global->ip);
209 _ecore_con_proxy_global->port); 204 }
210 else 205 else if (_ecore_con_proxy_global->version == 4)
211 snprintf(host, sizeof(host), "socks4://%s", 206 {
207 if (_ecore_con_proxy_global->lookup)
208 snprintf(host, sizeof(host), "socks4a://%s",
212 _ecore_con_proxy_global->ip); 209 _ecore_con_proxy_global->ip);
213 ecore_con_url_proxy_set(url_con, host); 210 else snprintf(host, sizeof(host), "socks4://%s",
211 _ecore_con_proxy_global->ip);
214 } 212 }
213
214 if (_ecore_con_proxy_global->port > 0 &&
215 _ecore_con_proxy_global->port <= 65535)
216 snprintf(proxy, sizeof(proxy), "%s:%d", host,
217 _ecore_con_proxy_global->port);
218 else snprintf(proxy, sizeof(proxy), "%s", host);
219
220 ecore_con_url_proxy_set(url_con, proxy);
221 ecore_con_url_proxy_username_set(url_con,
222 _ecore_con_proxy_global->username);
215 } 223 }
216 224
217 ret = curl_easy_setopt(url_con->curl_easy, CURLOPT_ENCODING, "gzip,deflate"); 225 ret = curl_easy_setopt(url_con->curl_easy, CURLOPT_ENCODING, "gzip,deflate");
@@ -291,10 +299,8 @@ ecore_con_url_free(Ecore_Con_Url *url_con)
291{ 299{
292#ifdef HAVE_CURL 300#ifdef HAVE_CURL
293 char *s; 301 char *s;
294 CURLMcode ret;
295 302
296 if (!url_con) 303 if (!url_con) return;
297 return;
298 304
299 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL)) 305 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL))
300 { 306 {
@@ -302,17 +308,16 @@ ecore_con_url_free(Ecore_Con_Url *url_con)
302 return; 308 return;
303 } 309 }
304 310
305 ECORE_MAGIC_SET(url_con, ECORE_MAGIC_NONE);
306
307 if (url_con->curl_easy) 311 if (url_con->curl_easy)
308 { 312 {
313 // FIXME : How can we delete curl_easy's fds ?? (Curl do not give this info.)
314 // This cause "Failed to delete epoll fd xx!" error messages
309 curl_easy_setopt(url_con->curl_easy, CURLOPT_PROGRESSFUNCTION, NULL); 315 curl_easy_setopt(url_con->curl_easy, CURLOPT_PROGRESSFUNCTION, NULL);
310 curl_easy_setopt(url_con->curl_easy, CURLOPT_NOPROGRESS, EINA_TRUE); 316 curl_easy_setopt(url_con->curl_easy, CURLOPT_NOPROGRESS, EINA_TRUE);
311 317
312 if (eina_list_data_find(_url_con_list, url_con)) 318 if (url_con->multi)
313 { 319 {
314 ret = curl_multi_remove_handle(_curlm, url_con->curl_easy); 320 _ecore_con_url_multi_remove(url_con);
315 if (ret != CURLM_OK) ERR("curl_multi_remove_handle failed: %s", curl_multi_strerror(ret));
316 _url_con_list = eina_list_remove(_url_con_list, url_con); 321 _url_con_list = eina_list_remove(_url_con_list, url_con);
317 } 322 }
318 323
@@ -320,6 +325,12 @@ ecore_con_url_free(Ecore_Con_Url *url_con)
320 } 325 }
321 if (url_con->timer) ecore_timer_del(url_con->timer); 326 if (url_con->timer) ecore_timer_del(url_con->timer);
322 327
328 url_con->curl_easy = NULL;
329 url_con->timer = NULL;
330 url_con->dead = EINA_TRUE;
331 if (url_con->event_count) return;
332 ECORE_MAGIC_SET(url_con, ECORE_MAGIC_NONE);
333
323 curl_slist_free_all(url_con->headers); 334 curl_slist_free_all(url_con->headers);
324 EINA_LIST_FREE(url_con->additional_headers, s) 335 EINA_LIST_FREE(url_con->additional_headers, s)
325 free(s); 336 free(s);
@@ -350,9 +361,27 @@ ecore_con_url_url_get(Ecore_Con_Url *url_con)
350#endif 361#endif
351} 362}
352 363
364EAPI int
365ecore_con_url_status_code_get(Ecore_Con_Url *url_con)
366{
367#ifdef HAVE_CURL
368 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL))
369 {
370 ECORE_MAGIC_FAIL(url_con, ECORE_MAGIC_CON_URL, __func__);
371 return 0;
372 }
373
374 if (url_con->status) return url_con->status;
375 _ecore_con_url_status_get(url_con);
376 return url_con->status;
377#else
378 return -1;
379 (void)url_con;
380#endif
381}
382
353EAPI Eina_Bool 383EAPI Eina_Bool
354ecore_con_url_url_set(Ecore_Con_Url *url_con, 384ecore_con_url_url_set(Ecore_Con_Url *url_con, const char *url)
355 const char *url)
356{ 385{
357#ifdef HAVE_CURL 386#ifdef HAVE_CURL
358 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL)) 387 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL))
@@ -361,8 +390,7 @@ ecore_con_url_url_set(Ecore_Con_Url *url_con,
361 return EINA_FALSE; 390 return EINA_FALSE;
362 } 391 }
363 392
364 if (eina_list_data_find(_url_con_list, url_con)) return EINA_FALSE; 393 if (url_con->dead) return EINA_FALSE;
365
366 eina_stringshare_replace(&url_con->url, url); 394 eina_stringshare_replace(&url_con->url, url);
367 395
368 if (url_con->url) 396 if (url_con->url)
@@ -380,8 +408,7 @@ ecore_con_url_url_set(Ecore_Con_Url *url_con,
380} 408}
381 409
382EAPI void 410EAPI void
383ecore_con_url_data_set(Ecore_Con_Url *url_con, 411ecore_con_url_data_set(Ecore_Con_Url *url_con, void *data)
384 void *data)
385{ 412{
386#ifdef HAVE_CURL 413#ifdef HAVE_CURL
387 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL)) 414 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL))
@@ -399,13 +426,12 @@ ecore_con_url_data_set(Ecore_Con_Url *url_con,
399} 426}
400 427
401EAPI void 428EAPI void
402ecore_con_url_additional_header_add(Ecore_Con_Url *url_con, 429ecore_con_url_additional_header_add(Ecore_Con_Url *url_con, const char *key, const char *value)
403 const char *key,
404 const char *value)
405{ 430{
406#ifdef HAVE_CURL 431#ifdef HAVE_CURL
407 char *tmp; 432 char *tmp;
408 433
434 if (url_con->dead) return;
409 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL)) 435 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL))
410 { 436 {
411 ECORE_MAGIC_FAIL(url_con, ECORE_MAGIC_CON_URL, 437 ECORE_MAGIC_FAIL(url_con, ECORE_MAGIC_CON_URL,
@@ -413,6 +439,7 @@ ecore_con_url_additional_header_add(Ecore_Con_Url *url_con,
413 return; 439 return;
414 } 440 }
415 441
442 if (url_con->dead) return;
416 tmp = malloc(strlen(key) + strlen(value) + 3); 443 tmp = malloc(strlen(key) + strlen(value) + 3);
417 if (!tmp) 444 if (!tmp)
418 return; 445 return;
@@ -467,9 +494,7 @@ ecore_con_url_data_get(Ecore_Con_Url *url_con)
467} 494}
468 495
469EAPI void 496EAPI void
470ecore_con_url_time(Ecore_Con_Url *url_con, 497ecore_con_url_time(Ecore_Con_Url *url_con, Ecore_Con_Url_Time condition, double timestamp)
471 Ecore_Con_Url_Time condition,
472 double timestamp)
473{ 498{
474#ifdef HAVE_CURL 499#ifdef HAVE_CURL
475 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL)) 500 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL))
@@ -478,6 +503,7 @@ ecore_con_url_time(Ecore_Con_Url *url_con,
478 return; 503 return;
479 } 504 }
480 505
506 if (url_con->dead) return;
481 url_con->time_condition = condition; 507 url_con->time_condition = condition;
482 url_con->timestamp = timestamp; 508 url_con->timestamp = timestamp;
483#else 509#else
@@ -489,8 +515,7 @@ ecore_con_url_time(Ecore_Con_Url *url_con,
489} 515}
490 516
491EAPI void 517EAPI void
492ecore_con_url_fd_set(Ecore_Con_Url *url_con, 518ecore_con_url_fd_set(Ecore_Con_Url *url_con, int fd)
493 int fd)
494{ 519{
495#ifdef HAVE_CURL 520#ifdef HAVE_CURL
496 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL)) 521 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL))
@@ -499,6 +524,7 @@ ecore_con_url_fd_set(Ecore_Con_Url *url_con,
499 return; 524 return;
500 } 525 }
501 526
527 if (url_con->dead) return;
502 url_con->write_fd = fd; 528 url_con->write_fd = fd;
503#else 529#else
504 return; 530 return;
@@ -537,10 +563,7 @@ ecore_con_url_response_headers_get(Ecore_Con_Url *url_con)
537} 563}
538 564
539EAPI Eina_Bool 565EAPI Eina_Bool
540ecore_con_url_httpauth_set(Ecore_Con_Url *url_con, 566ecore_con_url_httpauth_set(Ecore_Con_Url *url_con, const char *username, const char *password, Eina_Bool safe)
541 const char *username,
542 const char *password,
543 Eina_Bool safe)
544{ 567{
545#ifdef HAVE_CURL 568#ifdef HAVE_CURL
546 CURLcode ret; 569 CURLcode ret;
@@ -552,6 +575,7 @@ ecore_con_url_httpauth_set(Ecore_Con_Url *url_con,
552 return EINA_FALSE; 575 return EINA_FALSE;
553 } 576 }
554 577
578 if (url_con->dead) return EINA_FALSE;
555# if LIBCURL_VERSION_NUM >= 0x071301 579# if LIBCURL_VERSION_NUM >= 0x071301
556 if ((username) && (password)) 580 if ((username) && (password))
557 { 581 {
@@ -596,11 +620,7 @@ ecore_con_url_httpauth_set(Ecore_Con_Url *url_con,
596#define MODE_POST 2 620#define MODE_POST 2
597 621
598static Eina_Bool 622static Eina_Bool
599_ecore_con_url_send(Ecore_Con_Url *url_con, 623_ecore_con_url_send(Ecore_Con_Url *url_con, int mode, const void *data, long length, const char *content_type)
600 int mode,
601 const void *data,
602 long length,
603 const char *content_type)
604{ 624{
605#ifdef HAVE_CURL 625#ifdef HAVE_CURL
606 Eina_List *l; 626 Eina_List *l;
@@ -613,15 +633,14 @@ _ecore_con_url_send(Ecore_Con_Url *url_con,
613 return EINA_FALSE; 633 return EINA_FALSE;
614 } 634 }
615 635
616 if (eina_list_data_find(_url_con_list, url_con)) return EINA_FALSE; 636 if (!url_con->url) return EINA_FALSE;
617 637 if (url_con->dead) return EINA_FALSE;
618 if (!url_con->url)
619 return EINA_FALSE;
620 638
621 /* Free response headers from previous send() calls */ 639 /* Free response headers from previous send() calls */
622 EINA_LIST_FREE(url_con->response_headers, s) 640 EINA_LIST_FREE(url_con->response_headers, s)
623 free((char *)s); 641 free((char *)s);
624 url_con->response_headers = NULL; 642 url_con->response_headers = NULL;
643 url_con->status = 0;
625 644
626 curl_slist_free_all(url_con->headers); 645 curl_slist_free_all(url_con->headers);
627 url_con->headers = NULL; 646 url_con->headers = NULL;
@@ -693,15 +712,6 @@ _ecore_con_url_send(Ecore_Con_Url *url_con,
693#endif 712#endif
694} 713}
695 714
696EINA_DEPRECATED EAPI Eina_Bool
697ecore_con_url_send(Ecore_Con_Url *url_con,
698 const void *data,
699 long length,
700 const char *content_type)
701{
702 return _ecore_con_url_send(url_con, MODE_AUTO, data, length, content_type);
703}
704
705EAPI Eina_Bool 715EAPI Eina_Bool
706ecore_con_url_get(Ecore_Con_Url *url_con) 716ecore_con_url_get(Ecore_Con_Url *url_con)
707{ 717{
@@ -709,20 +719,13 @@ ecore_con_url_get(Ecore_Con_Url *url_con)
709} 719}
710 720
711EAPI Eina_Bool 721EAPI Eina_Bool
712ecore_con_url_post(Ecore_Con_Url *url_con, 722ecore_con_url_post(Ecore_Con_Url *url_con, const void *data, long length, const char *content_type)
713 const void *data,
714 long length,
715 const char *content_type)
716{ 723{
717 return _ecore_con_url_send(url_con, MODE_POST, data, length, content_type); 724 return _ecore_con_url_send(url_con, MODE_POST, data, length, content_type);
718} 725}
719 726
720EAPI Eina_Bool 727EAPI Eina_Bool
721ecore_con_url_ftp_upload(Ecore_Con_Url *url_con, 728ecore_con_url_ftp_upload(Ecore_Con_Url *url_con, const char *filename, const char *user, const char *pass, const char *upload_dir)
722 const char *filename,
723 const char *user,
724 const char *pass,
725 const char *upload_dir)
726{ 729{
727#ifdef HAVE_CURL 730#ifdef HAVE_CURL
728 char url[4096]; 731 char url[4096];
@@ -739,54 +742,50 @@ ecore_con_url_ftp_upload(Ecore_Con_Url *url_con,
739 return EINA_FALSE; 742 return EINA_FALSE;
740 } 743 }
741 744
742 if (eina_list_data_find(_url_con_list, url_con)) return EINA_FALSE; 745 if (url_con->dead) return EINA_FALSE;
746 if (!url_con->url) return EINA_FALSE;
747 if ((!filename) || (!filename[0])) return EINA_FALSE;
743 748
744 if (!url_con->url) 749 if (stat(filename, &file_info))
745 return EINA_FALSE; 750 return EINA_FALSE;
746 751
747 if (filename) 752 snprintf(userpwd, sizeof(userpwd), "%s:%s", user, pass);
753 ret = curl_easy_setopt(url_con->curl_easy, CURLOPT_USERPWD, userpwd);
754 if (ret != CURLE_OK)
748 { 755 {
749 if (stat(filename, &file_info)) 756 ERR("Could not set username and password for FTP upload: %s",
750 return EINA_FALSE; 757 curl_easy_strerror(ret));
751 758 return EINA_FALSE;
752 snprintf(userpwd, sizeof(userpwd), "%s:%s", user, pass); 759 }
753 ret = curl_easy_setopt(url_con->curl_easy, CURLOPT_USERPWD, userpwd);
754 if (ret != CURLE_OK)
755 {
756 ERR("Could not set username and password for FTP upload: %s",
757 curl_easy_strerror(ret));
758 return EINA_FALSE;
759 }
760 760
761 char tmp[PATH_MAX]; 761 char tmp[PATH_MAX];
762 snprintf(tmp, PATH_MAX, "%s", filename); 762 snprintf(tmp, PATH_MAX, "%s", filename);
763 763
764 if (upload_dir) 764 if (upload_dir)
765 snprintf(url, sizeof(url), "ftp://%s/%s/%s", url_con->url, 765 snprintf(url, sizeof(url), "ftp://%s/%s/%s", url_con->url,
766 upload_dir, basename(tmp)); 766 upload_dir, basename(tmp));
767 else 767 else
768 snprintf(url, sizeof(url), "ftp://%s/%s", url_con->url, 768 snprintf(url, sizeof(url), "ftp://%s/%s", url_con->url,
769 basename(tmp)); 769 basename(tmp));
770 770
771 if (!ecore_con_url_url_set(url_con, url)) 771 if (!ecore_con_url_url_set(url_con, url))
772 return EINA_FALSE; 772 return EINA_FALSE;
773 773
774 curl_easy_setopt(url_con->curl_easy, CURLOPT_INFILESIZE_LARGE, 774 curl_easy_setopt(url_con->curl_easy, CURLOPT_INFILESIZE_LARGE,
775 (curl_off_t)file_info.st_size); 775 (curl_off_t)file_info.st_size);
776 curl_easy_setopt(url_con->curl_easy, CURLOPT_UPLOAD, 1); 776 curl_easy_setopt(url_con->curl_easy, CURLOPT_UPLOAD, 1);
777 curl_easy_setopt(url_con->curl_easy, CURLOPT_READFUNCTION, 777 curl_easy_setopt(url_con->curl_easy, CURLOPT_READFUNCTION,
778 _ecore_con_url_read_cb); 778 _ecore_con_url_read_cb);
779 779
780 fd = fopen(filename, "rb"); 780 fd = fopen(filename, "rb");
781 if (!fd) 781 if (!fd)
782 { 782 {
783 ERR("Could not open \"%s\" for FTP upload", filename); 783 ERR("Could not open \"%s\" for FTP upload", filename);
784 return EINA_FALSE; 784 return EINA_FALSE;
785 }
786 curl_easy_setopt(url_con->curl_easy, CURLOPT_READDATA, fd);
787
788 return _ecore_con_url_perform(url_con);
789 } 785 }
786 curl_easy_setopt(url_con->curl_easy, CURLOPT_READDATA, fd);
787
788 return _ecore_con_url_perform(url_con);
790#else 789#else
791 return EINA_FALSE; 790 return EINA_FALSE;
792 (void)url_con; 791 (void)url_con;
@@ -795,8 +794,6 @@ ecore_con_url_ftp_upload(Ecore_Con_Url *url_con,
795 (void)pass; 794 (void)pass;
796 (void)upload_dir; 795 (void)upload_dir;
797#endif 796#endif
798
799 return EINA_FALSE;
800} 797}
801 798
802EAPI void 799EAPI void
@@ -813,6 +810,7 @@ ecore_con_url_cookies_init(Ecore_Con_Url *url_con)
813 return; 810 return;
814 } 811 }
815 812
813 if (url_con->dead) return;
816 curl_easy_setopt(url_con->curl_easy, CURLOPT_COOKIEFILE, ""); 814 curl_easy_setopt(url_con->curl_easy, CURLOPT_COOKIEFILE, "");
817#else 815#else
818 return; 816 return;
@@ -834,6 +832,7 @@ ecore_con_url_cookies_ignore_old_session_set(Ecore_Con_Url *url_con, Eina_Bool i
834 return; 832 return;
835 } 833 }
836 834
835 if (url_con->dead) return;
837 curl_easy_setopt(url_con->curl_easy, CURLOPT_COOKIESESSION, ignore); 836 curl_easy_setopt(url_con->curl_easy, CURLOPT_COOKIESESSION, ignore);
838#else 837#else
839 return; 838 return;
@@ -856,6 +855,7 @@ ecore_con_url_cookies_clear(Ecore_Con_Url *url_con)
856 return; 855 return;
857 } 856 }
858 857
858 if (url_con->dead) return;
859 curl_easy_setopt(url_con->curl_easy, CURLOPT_COOKIELIST, "ALL"); 859 curl_easy_setopt(url_con->curl_easy, CURLOPT_COOKIELIST, "ALL");
860#else 860#else
861 return; 861 return;
@@ -877,6 +877,7 @@ ecore_con_url_cookies_session_clear(Ecore_Con_Url *url_con)
877 return; 877 return;
878 } 878 }
879 879
880 if (url_con->dead) return;
880 curl_easy_setopt(url_con->curl_easy, CURLOPT_COOKIELIST, "SESS"); 881 curl_easy_setopt(url_con->curl_easy, CURLOPT_COOKIELIST, "SESS");
881#else 882#else
882 return; 883 return;
@@ -885,7 +886,7 @@ ecore_con_url_cookies_session_clear(Ecore_Con_Url *url_con)
885} 886}
886 887
887EAPI void 888EAPI void
888ecore_con_url_cookies_file_add(Ecore_Con_Url *url_con, const char * const file_name) 889ecore_con_url_cookies_file_add(Ecore_Con_Url *url_con, const char *const file_name)
889{ 890{
890#ifdef HAVE_CURL 891#ifdef HAVE_CURL
891 if (!url_con) 892 if (!url_con)
@@ -898,6 +899,7 @@ ecore_con_url_cookies_file_add(Ecore_Con_Url *url_con, const char * const file_n
898 return; 899 return;
899 } 900 }
900 901
902 if (url_con->dead) return;
901 curl_easy_setopt(url_con->curl_easy, CURLOPT_COOKIEFILE, file_name); 903 curl_easy_setopt(url_con->curl_easy, CURLOPT_COOKIEFILE, file_name);
902#else 904#else
903 return; 905 return;
@@ -907,7 +909,7 @@ ecore_con_url_cookies_file_add(Ecore_Con_Url *url_con, const char * const file_n
907} 909}
908 910
909EAPI Eina_Bool 911EAPI Eina_Bool
910ecore_con_url_cookies_jar_file_set(Ecore_Con_Url *url_con, const char * const cookiejar_file) 912ecore_con_url_cookies_jar_file_set(Ecore_Con_Url *url_con, const char *const cookiejar_file)
911{ 913{
912#ifdef HAVE_CURL 914#ifdef HAVE_CURL
913 CURLcode ret; 915 CURLcode ret;
@@ -922,6 +924,7 @@ ecore_con_url_cookies_jar_file_set(Ecore_Con_Url *url_con, const char * const co
922 return EINA_FALSE; 924 return EINA_FALSE;
923 } 925 }
924 926
927 if (url_con->dead) return EINA_FALSE;
925 ret = curl_easy_setopt(url_con->curl_easy, CURLOPT_COOKIEJAR, 928 ret = curl_easy_setopt(url_con->curl_easy, CURLOPT_COOKIEJAR,
926 cookiejar_file); 929 cookiejar_file);
927 if (ret != CURLE_OK) 930 if (ret != CURLE_OK)
@@ -953,6 +956,7 @@ ecore_con_url_cookies_jar_write(Ecore_Con_Url *url_con)
953 return; 956 return;
954 } 957 }
955 958
959 if (url_con->dead) return;
956 curl_easy_setopt(url_con->curl_easy, CURLOPT_COOKIELIST, "FLUSH"); 960 curl_easy_setopt(url_con->curl_easy, CURLOPT_COOKIELIST, "FLUSH");
957#else 961#else
958 return; 962 return;
@@ -961,8 +965,7 @@ ecore_con_url_cookies_jar_write(Ecore_Con_Url *url_con)
961} 965}
962 966
963EAPI void 967EAPI void
964ecore_con_url_verbose_set(Ecore_Con_Url *url_con, 968ecore_con_url_verbose_set(Ecore_Con_Url *url_con, Eina_Bool verbose)
965 Eina_Bool verbose)
966{ 969{
967#ifdef HAVE_CURL 970#ifdef HAVE_CURL
968 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL)) 971 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL))
@@ -972,11 +975,10 @@ ecore_con_url_verbose_set(Ecore_Con_Url *url_con,
972 return; 975 return;
973 } 976 }
974 977
975 if (eina_list_data_find(_url_con_list, url_con)) return;
976
977 if (!url_con->url) 978 if (!url_con->url)
978 return; 979 return;
979 980
981 if (url_con->dead) return;
980 curl_easy_setopt(url_con->curl_easy, CURLOPT_VERBOSE, (int)verbose); 982 curl_easy_setopt(url_con->curl_easy, CURLOPT_VERBOSE, (int)verbose);
981#else 983#else
982 return; 984 return;
@@ -986,8 +988,7 @@ ecore_con_url_verbose_set(Ecore_Con_Url *url_con,
986} 988}
987 989
988EAPI void 990EAPI void
989ecore_con_url_ftp_use_epsv_set(Ecore_Con_Url *url_con, 991ecore_con_url_ftp_use_epsv_set(Ecore_Con_Url *url_con, Eina_Bool use_epsv)
990 Eina_Bool use_epsv)
991{ 992{
992#ifdef HAVE_CURL 993#ifdef HAVE_CURL
993 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL)) 994 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL))
@@ -997,11 +998,10 @@ ecore_con_url_ftp_use_epsv_set(Ecore_Con_Url *url_con,
997 return; 998 return;
998 } 999 }
999 1000
1000 if (eina_list_data_find(_url_con_list, url_con)) return;
1001
1002 if (!url_con->url) 1001 if (!url_con->url)
1003 return; 1002 return;
1004 1003
1004 if (url_con->dead) return;
1005 curl_easy_setopt(url_con->curl_easy, CURLOPT_FTP_USE_EPSV, (int)use_epsv); 1005 curl_easy_setopt(url_con->curl_easy, CURLOPT_FTP_USE_EPSV, (int)use_epsv);
1006#else 1006#else
1007 return; 1007 return;
@@ -1023,8 +1023,7 @@ ecore_con_url_ftp_use_epsv_set(Ecore_Con_Url *url_con,
1023 * @since 1.1.0 1023 * @since 1.1.0
1024 */ 1024 */
1025EAPI void 1025EAPI void
1026ecore_con_url_ssl_verify_peer_set(Ecore_Con_Url *url_con, 1026ecore_con_url_ssl_verify_peer_set(Ecore_Con_Url *url_con, Eina_Bool verify)
1027 Eina_Bool verify)
1028{ 1027{
1029#ifdef HAVE_CURL 1028#ifdef HAVE_CURL
1030 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL)) 1029 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL))
@@ -1034,11 +1033,10 @@ ecore_con_url_ssl_verify_peer_set(Ecore_Con_Url *url_con,
1034 return; 1033 return;
1035 } 1034 }
1036 1035
1037 if (eina_list_data_find(_url_con_list, url_con)) return;
1038
1039 if (!url_con->url) 1036 if (!url_con->url)
1040 return; 1037 return;
1041 1038
1039 if (url_con->dead) return;
1042 curl_easy_setopt(url_con->curl_easy, CURLOPT_SSL_VERIFYPEER, (int)verify); 1040 curl_easy_setopt(url_con->curl_easy, CURLOPT_SSL_VERIFYPEER, (int)verify);
1043#else 1041#else
1044 return; 1042 return;
@@ -1073,19 +1071,19 @@ ecore_con_url_ssl_ca_set(Ecore_Con_Url *url_con, const char *ca_path)
1073#ifdef HAVE_CURL 1071#ifdef HAVE_CURL
1074 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL)) 1072 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL))
1075 { 1073 {
1076 ECORE_MAGIC_FAIL(url_con, ECORE_MAGIC_CON_URL, "ecore_con_url_ssl_ca_set"); 1074 ECORE_MAGIC_FAIL(url_con, ECORE_MAGIC_CON_URL, "ecore_con_url_ssl_ca_set");
1077 return -1; 1075 return -1;
1078 } 1076 }
1079 1077
1080 if (eina_list_data_find(_url_con_list, url_con)) return -1;
1081 if (!url_con->url) return -1; 1078 if (!url_con->url) return -1;
1079 if (url_con->dead) return -1;
1082 if (ca_path == NULL) 1080 if (ca_path == NULL)
1083 res = curl_easy_setopt(url_con->curl_easy, CURLOPT_SSL_VERIFYPEER, 0); 1081 res = curl_easy_setopt(url_con->curl_easy, CURLOPT_SSL_VERIFYPEER, 0);
1084 else 1082 else
1085 { 1083 {
1086 res = curl_easy_setopt(url_con->curl_easy, CURLOPT_SSL_VERIFYPEER, 1); 1084 res = curl_easy_setopt(url_con->curl_easy, CURLOPT_SSL_VERIFYPEER, 1);
1087 if (!res) 1085 if (!res)
1088 res = curl_easy_setopt(url_con->curl_easy, CURLOPT_CAINFO, ca_path); 1086 res = curl_easy_setopt(url_con->curl_easy, CURLOPT_CAINFO, ca_path);
1089 } 1087 }
1090#else 1088#else
1091 return -1; 1089 return -1;
@@ -1097,6 +1095,47 @@ ecore_con_url_ssl_ca_set(Ecore_Con_Url *url_con, const char *ca_path)
1097} 1095}
1098 1096
1099EAPI Eina_Bool 1097EAPI Eina_Bool
1098ecore_con_url_http_version_set(Ecore_Con_Url *url_con, Ecore_Con_Url_Http_Version version)
1099{
1100#ifdef HAVE_CURL
1101 int res = -1;
1102 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL))
1103 {
1104 ECORE_MAGIC_FAIL(url_con, ECORE_MAGIC_CON_URL, "ecore_con_url_http_version_set");
1105 return EINA_FALSE;
1106 }
1107 if (url_con->dead) return EINA_FALSE;
1108 switch (version)
1109 {
1110 case ECORE_CON_URL_HTTP_VERSION_1_0:
1111 res = curl_easy_setopt(url_con->curl_easy,
1112 CURLOPT_HTTP_VERSION,
1113 CURL_HTTP_VERSION_1_0);
1114 break;
1115
1116 case ECORE_CON_URL_HTTP_VERSION_1_1:
1117 res = curl_easy_setopt(url_con->curl_easy,
1118 CURLOPT_HTTP_VERSION,
1119 CURL_HTTP_VERSION_1_1);
1120 break;
1121
1122 default:
1123 break;
1124 }
1125 if (res != CURLE_OK)
1126 {
1127 ERR("curl http version setting failed: %s", curl_easy_strerror(res));
1128 return EINA_FALSE;
1129 }
1130 return EINA_TRUE;
1131#else
1132 (void)url_con;
1133 (void)version;
1134 return EINA_FALSE;
1135#endif
1136}
1137
1138EAPI Eina_Bool
1100ecore_con_url_proxy_set(Ecore_Con_Url *url_con, const char *proxy) 1139ecore_con_url_proxy_set(Ecore_Con_Url *url_con, const char *proxy)
1101{ 1140{
1102#ifdef HAVE_CURL 1141#ifdef HAVE_CURL
@@ -1109,8 +1148,8 @@ ecore_con_url_proxy_set(Ecore_Con_Url *url_con, const char *proxy)
1109 return EINA_FALSE; 1148 return EINA_FALSE;
1110 } 1149 }
1111 1150
1112 if (eina_list_data_find(_url_con_list, url_con)) return EINA_FALSE;
1113 if (!url_con->url) return EINA_FALSE; 1151 if (!url_con->url) return EINA_FALSE;
1152 if (url_con->dead) return EINA_FALSE;
1114 1153
1115 if (!proxy) res = curl_easy_setopt(url_con->curl_easy, CURLOPT_PROXY, ""); 1154 if (!proxy) res = curl_easy_setopt(url_con->curl_easy, CURLOPT_PROXY, "");
1116 else 1155 else
@@ -1121,14 +1160,20 @@ ecore_con_url_proxy_set(Ecore_Con_Url *url_con, const char *proxy)
1121 if (vers->version_num < 0x71507) 1160 if (vers->version_num < 0x71507)
1122 { 1161 {
1123 url_con->proxy_type = CURLPROXY_HTTP; 1162 url_con->proxy_type = CURLPROXY_HTTP;
1124 if (strstr(proxy, "socks4")) url_con->proxy_type = CURLPROXY_SOCKS4; 1163 if (strstr(proxy, "socks4a"))
1125 else if (strstr(proxy, "socks4a")) url_con->proxy_type = CURLPROXY_SOCKS4A; 1164 url_con->proxy_type = CURLPROXY_SOCKS4A;
1126 else if (strstr(proxy, "socks5")) url_con->proxy_type = CURLPROXY_SOCKS5; 1165 else if (strstr(proxy, "socks4"))
1127 else if (strstr(proxy, "socks5h")) url_con->proxy_type = CURLPROXY_SOCKS5_HOSTNAME; 1166 url_con->proxy_type = CURLPROXY_SOCKS4;
1128 res = curl_easy_setopt(url_con->curl_easy, CURLOPT_PROXYTYPE, url_con->proxy_type); 1167 else if (strstr(proxy, "socks5h"))
1168 url_con->proxy_type = CURLPROXY_SOCKS5_HOSTNAME;
1169 else if (strstr(proxy, "socks5"))
1170 url_con->proxy_type = CURLPROXY_SOCKS5;
1171 res = curl_easy_setopt(url_con->curl_easy, CURLOPT_PROXYTYPE,
1172 url_con->proxy_type);
1129 if (res != CURLE_OK) 1173 if (res != CURLE_OK)
1130 { 1174 {
1131 ERR("curl proxy type setting failed: %s", curl_easy_strerror(res)); 1175 ERR("curl proxy type setting failed: %s",
1176 curl_easy_strerror(res));
1132 url_con->proxy_type = -1; 1177 url_con->proxy_type = -1;
1133 return EINA_FALSE; 1178 return EINA_FALSE;
1134 } 1179 }
@@ -1159,7 +1204,7 @@ ecore_con_url_timeout_set(Ecore_Con_Url *url_con, double timeout)
1159 return; 1204 return;
1160 } 1205 }
1161 1206
1162 if (eina_list_data_find(_url_con_list, url_con)) return; 1207 if (url_con->dead) return;
1163 if (!url_con->url || timeout < 0) return; 1208 if (!url_con->url || timeout < 0) return;
1164 if (url_con->timer) ecore_timer_del(url_con->timer); 1209 if (url_con->timer) ecore_timer_del(url_con->timer);
1165 url_con->timer = ecore_timer_add(timeout, _ecore_con_url_timeout_cb, url_con); 1210 url_con->timer = ecore_timer_add(timeout, _ecore_con_url_timeout_cb, url_con);
@@ -1181,9 +1226,9 @@ ecore_con_url_proxy_username_set(Ecore_Con_Url *url_con, const char *username)
1181 return EINA_FALSE; 1226 return EINA_FALSE;
1182 } 1227 }
1183 1228
1184 if (eina_list_data_find(_url_con_list, url_con)) return EINA_FALSE; 1229 if (url_con->dead) return EINA_FALSE;
1185 if (!url_con->url) return EINA_FALSE; 1230 if (!url_con->url) return EINA_FALSE;
1186 if (!username) return EINA_FALSE; 1231 if ((!username) || (!username[0])) return EINA_FALSE;
1187 if (url_con->proxy_type == CURLPROXY_SOCKS4 || url_con->proxy_type == CURLPROXY_SOCKS4A) 1232 if (url_con->proxy_type == CURLPROXY_SOCKS4 || url_con->proxy_type == CURLPROXY_SOCKS4A)
1188 { 1233 {
1189 ERR("Proxy type should be socks5 and above"); 1234 ERR("Proxy type should be socks5 and above");
@@ -1214,8 +1259,8 @@ ecore_con_url_proxy_password_set(Ecore_Con_Url *url_con, const char *password)
1214 ECORE_MAGIC_FAIL(url_con, ECORE_MAGIC_CON_URL, "ecore_con_url_proxy_password_set"); 1259 ECORE_MAGIC_FAIL(url_con, ECORE_MAGIC_CON_URL, "ecore_con_url_proxy_password_set");
1215 return EINA_FALSE; 1260 return EINA_FALSE;
1216 } 1261 }
1217 if (eina_list_data_find(_url_con_list, url_con)) return EINA_FALSE;
1218 if (!url_con->url) return EINA_FALSE; 1262 if (!url_con->url) return EINA_FALSE;
1263 if (url_con->dead) return EINA_FALSE;
1219 if (!password) return EINA_FALSE; 1264 if (!password) return EINA_FALSE;
1220 if (url_con->proxy_type == CURLPROXY_SOCKS4 || url_con->proxy_type == CURLPROXY_SOCKS4A) 1265 if (url_con->proxy_type == CURLPROXY_SOCKS4 || url_con->proxy_type == CURLPROXY_SOCKS4A)
1221 { 1266 {
@@ -1242,19 +1287,61 @@ ecore_con_url_proxy_password_set(Ecore_Con_Url *url_con, const char *password)
1242 */ 1287 */
1243 1288
1244#ifdef HAVE_CURL 1289#ifdef HAVE_CURL
1290static void
1291_ecore_con_url_status_get(Ecore_Con_Url *url_con)
1292{
1293 long status = 0;
1294
1295 if (!url_con->curl_easy) return;
1296 if (!curl_easy_getinfo(url_con->curl_easy, CURLINFO_RESPONSE_CODE, &status))
1297 url_con->status = status;
1298 else
1299 url_con->status = 0;
1300}
1301
1302static void
1303_ecore_con_url_event_url_complete(Ecore_Con_Url *url_con, CURLMsg *curlmsg)
1304{
1305 Ecore_Con_Event_Url_Complete *e;
1306
1307 e = calloc(1, sizeof(Ecore_Con_Event_Url_Complete));
1308 if (!e) return;
1309
1310 if (curlmsg && (curlmsg->data.result == CURLE_OK))
1311 {
1312 if (!url_con->status)
1313 _ecore_con_url_status_get(url_con);
1314 }
1315 else if (curlmsg)
1316 ERR("Curl message have errors: %d", curlmsg->data.result);
1317 else
1318 CRIT("THIS IS BAD.");
1319
1320 e->status = url_con->status;
1321 e->url_con = url_con;
1322 url_con->event_count++;
1323 ecore_event_add(ECORE_CON_EVENT_URL_COMPLETE, e, (Ecore_End_Cb)_ecore_con_event_url_free, url_con);
1324}
1325
1326static void
1327_ecore_con_url_multi_remove(Ecore_Con_Url *url_con)
1328{
1329 CURLMcode ret;
1330
1331 ret = curl_multi_remove_handle(_curlm, url_con->curl_easy);
1332 url_con->multi = EINA_FALSE;
1333 if (ret != CURLM_OK) ERR("curl_multi_remove_handle failed: %s", curl_multi_strerror(ret));
1334}
1335
1245static Eina_Bool 1336static Eina_Bool
1246_ecore_con_url_timeout_cb(void *data) 1337_ecore_con_url_timeout_cb(void *data)
1247{ 1338{
1248 Ecore_Con_Url *url_con = data; 1339 Ecore_Con_Url *url_con = data;
1249 CURLMcode ret;
1250 Ecore_Con_Event_Url_Complete *e;
1251 1340
1252 if (!url_con) return ECORE_CALLBACK_CANCEL; 1341 if (!url_con) return ECORE_CALLBACK_CANCEL;
1253 if (!url_con->curl_easy) return ECORE_CALLBACK_CANCEL; 1342 if (!url_con->curl_easy) return ECORE_CALLBACK_CANCEL;
1254 if (!eina_list_data_find(_url_con_list, url_con)) return ECORE_CALLBACK_CANCEL;
1255 1343
1256 ret = curl_multi_remove_handle(_curlm, url_con->curl_easy); 1344 _ecore_con_url_multi_remove(url_con);
1257 if (ret != CURLM_OK) ERR("curl_multi_remove_handle failed: %s", curl_multi_strerror(ret));
1258 _url_con_list = eina_list_remove(_url_con_list, url_con); 1345 _url_con_list = eina_list_remove(_url_con_list, url_con);
1259 1346
1260 curl_slist_free_all(url_con->headers); 1347 curl_slist_free_all(url_con->headers);
@@ -1262,21 +1349,12 @@ _ecore_con_url_timeout_cb(void *data)
1262 1349
1263 url_con->timer = NULL; 1350 url_con->timer = NULL;
1264 1351
1265 e = calloc(1, sizeof(Ecore_Con_Event_Url_Complete)); 1352 _ecore_con_url_event_url_complete(url_con, NULL);
1266 if (e)
1267 {
1268 e->url_con = url_con;
1269 e->status = 0;
1270 ecore_event_add(ECORE_CON_EVENT_URL_COMPLETE, e, _ecore_con_event_url_free, NULL);
1271 }
1272 return ECORE_CALLBACK_CANCEL; 1353 return ECORE_CALLBACK_CANCEL;
1273} 1354}
1274 1355
1275static size_t 1356static size_t
1276_ecore_con_url_data_cb(void *buffer, 1357_ecore_con_url_data_cb(void *buffer, size_t size, size_t nitems, void *userp)
1277 size_t size,
1278 size_t nitems,
1279 void *userp)
1280{ 1358{
1281 Ecore_Con_Url *url_con; 1359 Ecore_Con_Url *url_con;
1282 Ecore_Con_Event_Url_Data *e; 1360 Ecore_Con_Event_Url_Data *e;
@@ -1295,6 +1373,7 @@ _ecore_con_url_data_cb(void *buffer,
1295 1373
1296 url_con->received += real_size; 1374 url_con->received += real_size;
1297 1375
1376 INF("reading from %s", url_con->url);
1298 if (url_con->write_fd < 0) 1377 if (url_con->write_fd < 0)
1299 { 1378 {
1300 e = 1379 e =
@@ -1305,7 +1384,8 @@ _ecore_con_url_data_cb(void *buffer,
1305 e->url_con = url_con; 1384 e->url_con = url_con;
1306 e->size = real_size; 1385 e->size = real_size;
1307 memcpy(e->data, buffer, real_size); 1386 memcpy(e->data, buffer, real_size);
1308 ecore_event_add(ECORE_CON_EVENT_URL_DATA, e, _ecore_con_event_url_free, NULL); 1387 url_con->event_count++;
1388 ecore_event_add(ECORE_CON_EVENT_URL_DATA, e, (Ecore_End_Cb)_ecore_con_event_url_free, url_con);
1309 } 1389 }
1310 } 1390 }
1311 else 1391 else
@@ -1336,10 +1416,7 @@ _ecore_con_url_data_cb(void *buffer,
1336} 1416}
1337 1417
1338static size_t 1418static size_t
1339_ecore_con_url_header_cb(void *ptr, 1419_ecore_con_url_header_cb(void *ptr, size_t size, size_t nitems, void *stream)
1340 size_t size,
1341 size_t nitems,
1342 void *stream)
1343{ 1420{
1344 size_t real_size = size * nitems; 1421 size_t real_size = size * nitems;
1345 Ecore_Con_Url *url_con = stream; 1422 Ecore_Con_Url *url_con = stream;
@@ -1358,11 +1435,7 @@ _ecore_con_url_header_cb(void *ptr,
1358} 1435}
1359 1436
1360static int 1437static int
1361_ecore_con_url_progress_cb(void *clientp, 1438_ecore_con_url_progress_cb(void *clientp, double dltotal, double dlnow, double ultotal, double ulnow)
1362 double dltotal,
1363 double dlnow,
1364 double ultotal,
1365 double ulnow)
1366{ 1439{
1367 Ecore_Con_Event_Url_Progress *e; 1440 Ecore_Con_Event_Url_Progress *e;
1368 Ecore_Con_Url *url_con; 1441 Ecore_Con_Url *url_con;
@@ -1377,17 +1450,15 @@ _ecore_con_url_progress_cb(void *clientp,
1377 e->down.now = dlnow; 1450 e->down.now = dlnow;
1378 e->up.total = ultotal; 1451 e->up.total = ultotal;
1379 e->up.now = ulnow; 1452 e->up.now = ulnow;
1380 ecore_event_add(ECORE_CON_EVENT_URL_PROGRESS, e, _ecore_con_event_url_free, NULL); 1453 url_con->event_count++;
1454 ecore_event_add(ECORE_CON_EVENT_URL_PROGRESS, e, (Ecore_End_Cb)_ecore_con_event_url_free, url_con);
1381 } 1455 }
1382 1456
1383 return 0; 1457 return 0;
1384} 1458}
1385 1459
1386static size_t 1460static size_t
1387_ecore_con_url_read_cb(void *ptr, 1461_ecore_con_url_read_cb(void *ptr, size_t size, size_t nitems, void *stream)
1388 size_t size,
1389 size_t nitems,
1390 void *stream)
1391{ 1462{
1392 size_t retcode = fread(ptr, size, nitems, stream); 1463 size_t retcode = fread(ptr, size, nitems, stream);
1393 1464
@@ -1418,96 +1489,38 @@ _ecore_con_url_info_read(void)
1418 1489
1419 while ((curlmsg = curl_multi_info_read(_curlm, &n_remaining))) 1490 while ((curlmsg = curl_multi_info_read(_curlm, &n_remaining)))
1420 { 1491 {
1492 Eina_List *l, *ll;
1493 Ecore_Con_Url *url_con = NULL;
1494 DBG("Curl message: %d", curlmsg->msg);
1495
1421 if (curlmsg->msg == CURLMSG_DONE) 1496 if (curlmsg->msg == CURLMSG_DONE)
1422 { 1497 {
1423 Eina_List *l, *ll;
1424 Ecore_Con_Url *url_con;
1425
1426 EINA_LIST_FOREACH_SAFE(_url_con_list, l, ll, url_con) 1498 EINA_LIST_FOREACH_SAFE(_url_con_list, l, ll, url_con)
1427 { 1499 {
1428 if (curlmsg->easy_handle == url_con->curl_easy) 1500 if (curlmsg->easy_handle == url_con->curl_easy)
1429 { 1501 _ecore_con_url_event_url_complete(url_con, curlmsg);
1430 CURLMcode ret;
1431 Ecore_Con_Event_Url_Complete *e;
1432
1433 e = calloc(1, sizeof(Ecore_Con_Event_Url_Complete));
1434 if (e)
1435 {
1436 e->url_con = url_con;
1437 e->status = 0;
1438 if (curlmsg->data.result == CURLE_OK)
1439 {
1440 long status; /* curl API uses long, not int */
1441 status = 0;
1442 curl_easy_getinfo(curlmsg->easy_handle, CURLINFO_RESPONSE_CODE, &status);
1443 e->status = status;
1444 }
1445 ecore_event_add(ECORE_CON_EVENT_URL_COMPLETE, e, _ecore_con_event_url_free, NULL);
1446 }
1447
1448 ret = curl_multi_remove_handle(_curlm, url_con->curl_easy);
1449 if (ret != CURLM_OK) ERR("curl_multi_remove_handle failed: %s", curl_multi_strerror(ret));
1450 _url_con_list = eina_list_remove(_url_con_list, url_con);
1451 break;
1452 }
1453 } 1502 }
1454 } 1503 }
1455 } 1504 }
1456} 1505}
1457 1506
1458static void 1507static void
1459_ecore_con_url_curl_clear(void) 1508_ecore_con_url_curl_clear(void)
1460{ 1509{
1510 Ecore_Fd_Handler *fdh;
1461 Ecore_Con_Url *url_con; 1511 Ecore_Con_Url *url_con;
1462 1512
1463 FD_ZERO(&_current_fd_set); 1513 EINA_LIST_FREE(_fd_hd_list, fdh) ecore_main_fd_handler_del(fdh);
1464 if (_fd_hd_list) 1514 EINA_LIST_FREE(_url_con_list, url_con) _ecore_con_url_multi_remove(url_con);
1465 {
1466 Ecore_Fd_Handler *fd_handler;
1467 EINA_LIST_FREE(_fd_hd_list, fd_handler)
1468 {
1469 int fd = ecore_main_fd_handler_fd_get(fd_handler);
1470 FD_CLR(fd, &_current_fd_set);
1471 // FIXME: ecore_main_fd_handler_del() sometimes give errors
1472 // because curl do not make fd itself controlled by users, but it can be ignored.
1473 ecore_main_fd_handler_del(fd_handler);
1474 }
1475 }
1476
1477 EINA_LIST_FREE(_url_con_list, url_con)
1478 {
1479 CURLMcode ret;
1480 Ecore_Con_Event_Url_Complete *e;
1481
1482 e = calloc(1, sizeof(Ecore_Con_Event_Url_Complete));
1483 if (e)
1484 {
1485 e->url_con = url_con;
1486 e->status = 0;
1487 ecore_event_add(ECORE_CON_EVENT_URL_COMPLETE, e, _ecore_con_event_url_free, NULL);
1488 }
1489 ret = curl_multi_remove_handle(_curlm, url_con->curl_easy);
1490 if (ret != CURLM_OK) ERR("curl_multi_remove_handle failed: %s", curl_multi_strerror(ret));
1491 }
1492} 1515}
1493 1516
1494static Eina_Bool 1517static Eina_Bool
1495_ecore_con_url_fd_handler(void *data __UNUSED__, Ecore_Fd_Handler *fd_handler __UNUSED__) 1518_ecore_con_url_fd_handler(void *data __UNUSED__, Ecore_Fd_Handler *fd_handler __UNUSED__)
1496{ 1519{
1497 if (_fd_hd_list) 1520 Ecore_Fd_Handler *fdh;
1498 { 1521 EINA_LIST_FREE(_fd_hd_list, fdh) ecore_main_fd_handler_del(fdh);
1499 Ecore_Fd_Handler *fd_handler; 1522 ecore_timer_interval_set(_curl_timer, 0.1);
1500 EINA_LIST_FREE(_fd_hd_list, fd_handler) 1523 return ECORE_CALLBACK_CANCEL;
1501 {
1502 int fd = ecore_main_fd_handler_fd_get(fd_handler);
1503 FD_CLR(fd, &_current_fd_set);
1504 // FIXME: ecore_main_fd_handler_del() sometimes give errors
1505 // because curl do not make fd itself controlled by users, but it can be ignored.
1506 ecore_main_fd_handler_del(fd_handler);
1507 }
1508 }
1509 ecore_timer_thaw(_curl_timeout);
1510 return ECORE_CALLBACK_RENEW;
1511} 1524}
1512 1525
1513static void 1526static void
@@ -1516,7 +1529,6 @@ _ecore_con_url_fdset(void)
1516 CURLMcode ret; 1529 CURLMcode ret;
1517 fd_set read_set, write_set, exc_set; 1530 fd_set read_set, write_set, exc_set;
1518 int fd, fd_max; 1531 int fd, fd_max;
1519 Ecore_Fd_Handler *fd_handler;
1520 1532
1521 FD_ZERO(&read_set); 1533 FD_ZERO(&read_set);
1522 FD_ZERO(&write_set); 1534 FD_ZERO(&write_set);
@@ -1532,53 +1544,61 @@ _ecore_con_url_fdset(void)
1532 for (fd = 0; fd <= fd_max; fd++) 1544 for (fd = 0; fd <= fd_max; fd++)
1533 { 1545 {
1534 int flags = 0; 1546 int flags = 0;
1535 if (FD_ISSET(fd, &read_set)) flags |= ECORE_FD_READ; 1547 if (FD_ISSET(fd, &read_set)) flags |= ECORE_FD_READ;
1536 if (FD_ISSET(fd, &write_set)) flags |= ECORE_FD_WRITE; 1548 if (FD_ISSET(fd, &write_set)) flags |= ECORE_FD_WRITE;
1537 if (FD_ISSET(fd, &exc_set)) flags |= ECORE_FD_ERROR; 1549 if (FD_ISSET(fd, &exc_set)) flags |= ECORE_FD_ERROR;
1538 if (flags) 1550 if (flags)
1539 { 1551 {
1540 if (!FD_ISSET(fd, &_current_fd_set)) 1552 // FIXME: Who is owner (easy_handle) of this fd?? (Curl do not give this info.)
1541 { 1553 // This cause "Failed to delete epoll fd xx!" error messages
1542 FD_SET(fd, &_current_fd_set); 1554 Ecore_Fd_Handler *fd_handler;
1543 fd_handler = ecore_main_fd_handler_add(fd, flags, _ecore_con_url_fd_handler, NULL, NULL, NULL); 1555 fd_handler = ecore_main_fd_handler_add(fd, flags,
1544 if (fd_handler) _fd_hd_list = eina_list_append(_fd_hd_list, fd_handler); 1556 _ecore_con_url_fd_handler,
1545 ecore_timer_freeze(_curl_timeout); 1557 NULL, NULL, NULL);
1546 } 1558 if (fd_handler)
1559 _fd_hd_list = eina_list_append(_fd_hd_list, fd_handler);
1547 } 1560 }
1548 } 1561 }
1549} 1562}
1550 1563
1551static Eina_Bool 1564static Eina_Bool
1552_ecore_con_url_idler_handler(void *data __UNUSED__) 1565_ecore_con_url_timer(void *data __UNUSED__)
1553{ 1566{
1567 Ecore_Fd_Handler *fdh;
1554 int still_running; 1568 int still_running;
1555 CURLMcode ret; 1569 CURLMcode ret;
1556 1570
1571 EINA_LIST_FREE(_fd_hd_list, fdh) ecore_main_fd_handler_del(fdh);
1572 _ecore_con_url_info_read();
1573
1557 ret = curl_multi_perform(_curlm, &still_running); 1574 ret = curl_multi_perform(_curlm, &still_running);
1558 if (ret == CURLM_CALL_MULTI_PERFORM) 1575 if (ret == CURLM_CALL_MULTI_PERFORM)
1559 { 1576 {
1560 DBG("Call multiperform again"); 1577 DBG("curl_multi_perform() again immediately");
1561 return ECORE_CALLBACK_RENEW; 1578 return ECORE_CALLBACK_RENEW;
1562 } 1579 }
1563 else if (ret != CURLM_OK) 1580 else if (ret != CURLM_OK)
1564 { 1581 {
1565 ERR("curl_multi_perform() failed: %s", curl_multi_strerror(ret)); 1582 ERR("curl_multi_perform() failed: %s", curl_multi_strerror(ret));
1566 _ecore_con_url_curl_clear(); 1583 _ecore_con_url_curl_clear();
1567 ecore_timer_freeze(_curl_timeout); 1584 ecore_timer_freeze(_curl_timer);
1568 return ECORE_CALLBACK_RENEW;
1569 } 1585 }
1570 1586
1571 _ecore_con_url_info_read();
1572 if (still_running) 1587 if (still_running)
1573 { 1588 {
1574 DBG("multiperform is still_running"); 1589 long ms;
1575 _ecore_con_url_fdset(); 1590 _ecore_con_url_fdset();
1591 curl_multi_timeout(_curlm, &ms);
1592 DBG("multiperform is still running: %d, timeout: %ld", still_running, ms);
1593 if (ms >= CURL_MIN_TIMEOUT || ms <= 0) ms = CURL_MIN_TIMEOUT;
1594 ecore_timer_interval_set(_curl_timer, (double)ms / 1000);
1576 } 1595 }
1577 else 1596 else
1578 { 1597 {
1579 DBG("multiperform ended"); 1598 DBG("multiperform ended");
1599 _ecore_con_url_info_read();
1580 _ecore_con_url_curl_clear(); 1600 _ecore_con_url_curl_clear();
1581 ecore_timer_freeze(_curl_timeout); 1601 ecore_timer_freeze(_curl_timer);
1582 } 1602 }
1583 1603
1584 return ECORE_CALLBACK_RENEW; 1604 return ECORE_CALLBACK_RENEW;
@@ -1596,17 +1616,20 @@ _ecore_con_url_perform(Ecore_Con_Url *url_con)
1596 return EINA_FALSE; 1616 return EINA_FALSE;
1597 } 1617 }
1598 1618
1619 url_con->multi = EINA_TRUE;
1599 _url_con_list = eina_list_append(_url_con_list, url_con); 1620 _url_con_list = eina_list_append(_url_con_list, url_con);
1600 ecore_timer_thaw(_curl_timeout); 1621 ecore_timer_thaw(_curl_timer);
1601 1622
1602 return EINA_TRUE; 1623 return EINA_TRUE;
1603} 1624}
1604 1625
1605static void 1626static void
1606_ecore_con_event_url_free(void *data __UNUSED__, 1627_ecore_con_event_url_free(Ecore_Con_Url *url_con, void *ev)
1607 void *ev)
1608{ 1628{
1609 free(ev); 1629 free(ev);
1630 url_con->event_count--;
1631 if (url_con->dead && (!url_con->event_count))
1632 ecore_con_url_free(url_con);
1610} 1633}
1611 1634
1612#endif 1635#endif
diff --git a/libraries/ecore/src/lib/ecore_config/Makefile.in b/libraries/ecore/src/lib/ecore_config/Makefile.in
index 6870d44..4b908cd 100644
--- a/libraries/ecore/src/lib/ecore_config/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_config/Makefile.in
@@ -55,16 +55,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
55 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 55 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
56 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 56 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
57 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 57 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
58 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 58 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
59 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 59 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
60 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 60 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
61 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 61 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
62 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 62 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
63 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 63 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
64 $(top_srcdir)/configure.ac
65am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 64am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
66 $(ACLOCAL_M4) 65 $(ACLOCAL_M4)
67mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 66mkinstalldirs = $(install_sh) -d
68CONFIG_HEADER = $(top_builddir)/config.h 67CONFIG_HEADER = $(top_builddir)/config.h
69CONFIG_CLEAN_FILES = 68CONFIG_CLEAN_FILES =
70CONFIG_CLEAN_VPATH_FILES = 69CONFIG_CLEAN_VPATH_FILES =
@@ -205,6 +204,8 @@ EVAS_LIBS = @EVAS_LIBS@
205EVIL_CFLAGS = @EVIL_CFLAGS@ 204EVIL_CFLAGS = @EVIL_CFLAGS@
206EVIL_LIBS = @EVIL_LIBS@ 205EVIL_LIBS = @EVIL_LIBS@
207EXEEXT = @EXEEXT@ 206EXEEXT = @EXEEXT@
207EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
208EXOTIC_LIBS = @EXOTIC_LIBS@
208FGREP = @FGREP@ 209FGREP = @FGREP@
209GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 210GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
210GLIB_CFLAGS = @GLIB_CFLAGS@ 211GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -260,6 +261,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
260PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 261PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
261PIXMAN_LIBS = @PIXMAN_LIBS@ 262PIXMAN_LIBS = @PIXMAN_LIBS@
262PKG_CONFIG = @PKG_CONFIG@ 263PKG_CONFIG = @PKG_CONFIG@
264PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
265PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
263POSUB = @POSUB@ 266POSUB = @POSUB@
264RANLIB = @RANLIB@ 267RANLIB = @RANLIB@
265SCIM_CFLAGS = @SCIM_CFLAGS@ 268SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -270,6 +273,7 @@ SDL_LIBS = @SDL_LIBS@
270SED = @SED@ 273SED = @SED@
271SET_MAKE = @SET_MAKE@ 274SET_MAKE = @SET_MAKE@
272SHELL = @SHELL@ 275SHELL = @SHELL@
276SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
273SSL_CFLAGS = @SSL_CFLAGS@ 277SSL_CFLAGS = @SSL_CFLAGS@
274SSL_LIBS = @SSL_LIBS@ 278SSL_LIBS = @SSL_LIBS@
275STRIP = @STRIP@ 279STRIP = @STRIP@
diff --git a/libraries/ecore/src/lib/ecore_directfb/Makefile.in b/libraries/ecore/src/lib/ecore_directfb/Makefile.in
index b7e1d29..f1b270a 100644
--- a/libraries/ecore/src/lib/ecore_directfb/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_directfb/Makefile.in
@@ -50,16 +50,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
53 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 53 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
54 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 54 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
55 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 55 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
56 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 56 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
57 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 57 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
58 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 58 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
59 $(top_srcdir)/configure.ac
60am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 59am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4) 60 $(ACLOCAL_M4)
62mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 61mkinstalldirs = $(install_sh) -d
63CONFIG_HEADER = $(top_builddir)/config.h 62CONFIG_HEADER = $(top_builddir)/config.h
64CONFIG_CLEAN_FILES = 63CONFIG_CLEAN_FILES =
65CONFIG_CLEAN_VPATH_FILES = 64CONFIG_CLEAN_VPATH_FILES =
@@ -190,6 +189,8 @@ EVAS_LIBS = @EVAS_LIBS@
190EVIL_CFLAGS = @EVIL_CFLAGS@ 189EVIL_CFLAGS = @EVIL_CFLAGS@
191EVIL_LIBS = @EVIL_LIBS@ 190EVIL_LIBS = @EVIL_LIBS@
192EXEEXT = @EXEEXT@ 191EXEEXT = @EXEEXT@
192EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
193EXOTIC_LIBS = @EXOTIC_LIBS@
193FGREP = @FGREP@ 194FGREP = @FGREP@
194GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 195GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
195GLIB_CFLAGS = @GLIB_CFLAGS@ 196GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -245,6 +246,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
245PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 246PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
246PIXMAN_LIBS = @PIXMAN_LIBS@ 247PIXMAN_LIBS = @PIXMAN_LIBS@
247PKG_CONFIG = @PKG_CONFIG@ 248PKG_CONFIG = @PKG_CONFIG@
249PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
250PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
248POSUB = @POSUB@ 251POSUB = @POSUB@
249RANLIB = @RANLIB@ 252RANLIB = @RANLIB@
250SCIM_CFLAGS = @SCIM_CFLAGS@ 253SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -255,6 +258,7 @@ SDL_LIBS = @SDL_LIBS@
255SED = @SED@ 258SED = @SED@
256SET_MAKE = @SET_MAKE@ 259SET_MAKE = @SET_MAKE@
257SHELL = @SHELL@ 260SHELL = @SHELL@
261SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
258SSL_CFLAGS = @SSL_CFLAGS@ 262SSL_CFLAGS = @SSL_CFLAGS@
259SSL_LIBS = @SSL_LIBS@ 263SSL_LIBS = @SSL_LIBS@
260STRIP = @STRIP@ 264STRIP = @STRIP@
diff --git a/libraries/ecore/src/lib/ecore_evas/Ecore_Evas.h b/libraries/ecore/src/lib/ecore_evas/Ecore_Evas.h
index 8d9abc4..a78824e 100644
--- a/libraries/ecore/src/lib/ecore_evas/Ecore_Evas.h
+++ b/libraries/ecore/src/lib/ecore_evas/Ecore_Evas.h
@@ -39,6 +39,9 @@
39 * @li @ref ecore_evas_callbacks_example_c 39 * @li @ref ecore_evas_callbacks_example_c
40 * @li @ref ecore_evas_object_example_c 40 * @li @ref ecore_evas_object_example_c
41 * @li @ref ecore_evas_basics_example_c 41 * @li @ref ecore_evas_basics_example_c
42 * @li @ref Ecore_Evas_Window_Sizes_Example_c
43 * @li @ref Ecore_Evas_Buffer_Example_01_c
44 * @li @ref Ecore_Evas_Buffer_Example_02_c
42 */ 45 */
43 46
44/* FIXME: 47/* FIXME:
@@ -60,10 +63,26 @@ extern "C" {
60/** 63/**
61 * @defgroup Ecore_Evas_Group Ecore_Evas wrapper/helper set of functions 64 * @defgroup Ecore_Evas_Group Ecore_Evas wrapper/helper set of functions
62 * 65 *
66 * Ecore evas is a set of functions that makes it easy to tie together ecore's
67 * main loop and input handling to evas. As such it's a natural base for EFL
68 * applications. While this combination makes it easy to create the basic
69 * aspects all applications need, for normal applications(ones with buttons,
70 * checkboxes and layouts) one should consider using Elementary.
71 *
72 * Ecore evas is extremely well suited for applications that are not based on
73 * widgets. It has a main loop that delivers events, does basic window handling
74 * and leaves all of the drawing up to the user. This works very well if used
75 * in conjunction with Edje or if doing custom drawing as, for example, is done
76 * in games.
77 *
63 * This is a list of examples of these functions: 78 * This is a list of examples of these functions:
64 * - @ref Ecore_Evas_Window_Sizes_Example_c 79 * @li @ref ecore_evas_basics_example_c
65 * - @ref Ecore_Evas_Buffer_Example_01_c 80 * @li @ref ecore_evas_object_example_c
66 * - @ref Ecore_Evas_Buffer_Example_02_c 81 * @li @ref ecore_evas_callbacks_example_c
82 * @li @ref Ecore_Evas_Window_Sizes_Example_c
83 * @li @ref Ecore_Evas_Buffer_Example_01_c
84 * @li @ref Ecore_Evas_Buffer_Example_02_c
85 *
67 * @{ 86 * @{
68 */ 87 */
69 88
@@ -151,6 +170,12 @@ typedef struct _Ecore_Cocoa_Window Ecore_Cocoa_Window;
151#ifndef _ECORE_EVAS_PRIVATE_H 170#ifndef _ECORE_EVAS_PRIVATE_H
152/* basic data types */ 171/* basic data types */
153typedef struct _Ecore_Evas Ecore_Evas; 172typedef struct _Ecore_Evas Ecore_Evas;
173typedef void (*Ecore_Evas_Event_Cb) (Ecore_Evas *ee); /**< Callback used for several ecore evas events @since 1.2 */
174#endif
175
176#ifndef _ECORE_WAYLAND_H_
177#define _ECORE_WAYLAND_WINDOW_PREDEF
178typedef struct _Ecore_Wl_Window Ecore_Wl_Window;
154#endif 179#endif
155 180
156/* module setup/shutdown calls */ 181/* module setup/shutdown calls */
@@ -222,7 +247,7 @@ EAPI Ecore_Evas *ecore_evas_new(const char *engine_name, int x, int y, int w, in
222 * This function allows you to make an Ecore_Evas translucent using an 247 * This function allows you to make an Ecore_Evas translucent using an
223 * alpha channel. See ecore_evas_shaped_set() for details. The difference 248 * alpha channel. See ecore_evas_shaped_set() for details. The difference
224 * between a shaped window and a window with an alpha channel is that an 249 * between a shaped window and a window with an alpha channel is that an
225 * alpha channel supports multiple levels of transpararency, as opposed to 250 * alpha channel supports multiple levels of transparency, as opposed to
226 * the 1 bit transparency of a shaped window (a pixel is either opaque, or 251 * the 1 bit transparency of a shaped window (a pixel is either opaque, or
227 * it's transparent). 252 * it's transparent).
228 * 253 *
@@ -300,7 +325,7 @@ EAPI void ecore_evas_geometry_get(const Ecore_Evas *ee, int *x, int *y, i
300 * This function takes four pointers to (already allocated) ints, and places 325 * This function takes four pointers to (already allocated) ints, and places
301 * the geometry which @p ee was latest recently requested . If any of the parameters is not desired you 326 * the geometry which @p ee was latest recently requested . If any of the parameters is not desired you
302 * may pass NULL on them. 327 * may pass NULL on them.
303 * This function can represent recently requested geomety. 328 * This function can represent recently requested geometry.
304 * ecore_evas_geometry_get function returns the value is updated after engine finished request. 329 * ecore_evas_geometry_get function returns the value is updated after engine finished request.
305 * By comparison, ecore_evas_request_geometry_get returns recently requested value. 330 * By comparison, ecore_evas_request_geometry_get returns recently requested value.
306 * 331 *
@@ -342,7 +367,7 @@ EAPI Eina_Bool ecore_evas_focus_get(const Ecore_Evas *ee);
342 * This function iconifies @p ee if @p on is EINA_TRUE, or uniconifies @p ee if 367 * This function iconifies @p ee if @p on is EINA_TRUE, or uniconifies @p ee if
343 * @p on is EINA_FALSE. 368 * @p on is EINA_FALSE.
344 * 369 *
345 * @note Iconify and minize are synonims. 370 * @note Iconify and minimize are synonyms.
346 * 371 *
347 * @warning Support for this depends on the underlying windowing system. 372 * @warning Support for this depends on the underlying windowing system.
348 */ 373 */
@@ -353,7 +378,7 @@ EAPI void ecore_evas_iconified_set(Ecore_Evas *ee, Eina_Bool on);
353 * @param ee The Ecore_Evas to set 378 * @param ee The Ecore_Evas to set
354 * @return EINA_TRUE if @p ee is iconified, EINA_FALSE if not. 379 * @return EINA_TRUE if @p ee is iconified, EINA_FALSE if not.
355 * 380 *
356 * @note Iconify and minize are synonims. 381 * @note Iconify and minimize are synonyms.
357 * 382 *
358 * @see ecore_evas_iconified_set() 383 * @see ecore_evas_iconified_set()
359 */ 384 */
@@ -401,6 +426,161 @@ EAPI void ecore_evas_fullscreen_set(Ecore_Evas *ee, Eina_Bool on);
401 */ 426 */
402EAPI Eina_Bool ecore_evas_fullscreen_get(const Ecore_Evas *ee); 427EAPI Eina_Bool ecore_evas_fullscreen_get(const Ecore_Evas *ee);
403/** 428/**
429 * @brief Set another window that this window is a group member of
430 *
431 * @param ee The Ecore_Evas
432 * @param ee_group The other group member
433 *
434 * If @p ee_group is NULL, @p ee is removed from the group, otherwise it is
435 * added. Note that if you free the @p ee_group canvas before @p ee, then
436 * getting the group canvas with ecore_evas_window_group_get() will return
437 * an invalid handle.
438 *
439 * @warning Support for this depends on the underlying windowing system.
440 * @since 1.2
441 */
442EAPI void ecore_evas_window_group_set(Ecore_Evas *ee, const Ecore_Evas *ee_group);
443/**
444 * @brief Get the canvas group set.
445 *
446 * This returns the handle set by ecore_evas_window_group_set().
447 *
448 * @param ee The Ecore_Evas to set
449 * @return The Canvas group handle
450 *
451 * @see ecore_evas_window_group_set()
452 * @since 1.2
453 */
454EAPI const Ecore_Evas *ecore_evas_window_group_get(const Ecore_Evas *ee);
455/**
456 * @brief Set the aspect ratio of a canvas window
457 *
458 * @param ee The Ecore_Evas
459 * @param aspect The aspect ratio (width divided by height), or 0 to disable
460 *
461 * This sets the desired aspect ratio of a canvas window
462 *
463 * @warning Support for this depends on the underlying windowing system.
464 * @since 1.2
465 */
466EAPI void ecore_evas_aspect_set(Ecore_Evas *ee, double aspect);
467/**
468 * @brief Get the aspect ratio of a canvas window
469 *
470 * This returns the value set by ecore_evas_aspect_set().
471 *
472 * @param ee The Ecore_Evas to set
473 * @return The aspect ratio
474 *
475 * @see ecore_evas_aspect_set()
476 * @since 1.2
477 */
478EAPI double ecore_evas_aspect_get(const Ecore_Evas *ee);
479/**
480 * @brief Set The urgent hint flag
481 *
482 * @param ee The Ecore_Evas
483 * @param urgent The urgent state flag
484 *
485 * This sets the "urgent" state hint on a window so the desktop environment
486 * can highlight it somehow.
487 *
488 * @warning Support for this depends on the underlying windowing system.
489 * @since 1.2
490 */
491EAPI void ecore_evas_urgent_set(Ecore_Evas *ee, Eina_Bool urgent);
492/**
493 * @brief Get the urgent state on the cavas window
494 *
495 * This returns the value set by ecore_evas_urgent_set()
496 *
497 * @param ee The Ecore_Evas to set
498 * @return The urgent state set
499 *
500 * @see ecore_evas_urgent_set()
501 * @since 1.2
502 */
503EAPI Eina_Bool ecore_evas_urgent_get(const Ecore_Evas *ee);
504/**
505 * @brief Set the modal state flag on the canvas window
506 *
507 * @param ee The Ecore_Evas
508 * @param modal The modal hint flag
509 *
510 * This hints if the window should be modal (eg if it is also transient
511 * for another window, the other window will maybe be denied focus by
512 * the desktop window manager).
513 *
514 * @warning Support for this depends on the underlying windowing system.
515 * @since 1.2
516 */
517EAPI void ecore_evas_modal_set(Ecore_Evas *ee, Eina_Bool modal);
518/**
519 * @brief Get The modal flag
520 *
521 * This returns the value set by ecore_evas_modal_set().
522 *
523 * @param ee The Ecore_Evas to set
524 * @return The modal flag
525 *
526 * @see ecore_evas_modal_set()
527 * @since 1.2
528 */
529EAPI Eina_Bool ecore_evas_modal_get(const Ecore_Evas *ee);
530/**
531 * @brief Set the "i demand attention" flag on a canvas window
532 *
533 * @param ee The Ecore_Evas
534 * @param demand_attention The flag state to set
535 *
536 * A window may demand attention now (eg you must enter a password before
537 * continuing), and so it may flag a window with this.
538 *
539 * @warning Support for this depends on the underlying windowing system.
540 * @since 1.2
541 */
542EAPI void ecore_evas_demand_attention_set(Ecore_Evas *ee, Eina_Bool demand);
543/**
544 * @brief Get the "i demand attention" flag
545 *
546 * This returns the value set by ecore_evas_demand_attention_set().
547 *
548 * @param ee The Ecore_Evas to set
549 * @return The "i demand attention" flag.
550 *
551 * @see ecore_evas_demand_attention_set()
552 * @since 1.2
553 */
554EAPI Eina_Bool ecore_evas_demand_attention_get(const Ecore_Evas *ee);
555/**
556 * @brief Set the "focus skip" flag
557 *
558 * @param ee The Ecore_Evas
559 * @param skip The "focus skip" state to set.
560 *
561 * A window may not want to accept focus, be in the taskbar, pager etc.
562 * sometimes (example for a small notification window that hovers around
563 * a taskbar or panel, or hovers around a window until some activity
564 * dismisses it).
565 *
566 * @warning Support for this depends on the underlying windowing system.
567 * @since 1.2
568 */
569EAPI void ecore_evas_focus_skip_set(Ecore_Evas *ee, Eina_Bool skip);
570/**
571 * @brief Get the "focus skip" flag
572 *
573 * This returns the value set by ecore_evas_focus_skip_set().
574 *
575 * @param ee The Ecore_Evas to set
576 * @return The "focus skip" flag.
577 *
578 * @see ecore_evas_focus_skip_set()
579 * @since 1.2
580 */
581EAPI Eina_Bool ecore_evas_focus_skip_get(const Ecore_Evas *ee);
582
583/**
404 * @brief Set if this evas should ignore @b all events. 584 * @brief Set if this evas should ignore @b all events.
405 * 585 *
406 * @param ee The Ecore_Evas whose window's to ignore events. 586 * @param ee The Ecore_Evas whose window's to ignore events.
@@ -693,10 +873,13 @@ EAPI Ecore_Evas *ecore_evas_fb_new(const char *disp_name, int rotation, int
693EAPI Ecore_Evas *ecore_evas_directfb_new(const char *disp_name, int windowed, int x, int y, int w, int h); 873EAPI Ecore_Evas *ecore_evas_directfb_new(const char *disp_name, int windowed, int x, int y, int w, int h);
694EAPI Ecore_DirectFB_Window *ecore_evas_directfb_window_get(const Ecore_Evas *ee); 874EAPI Ecore_DirectFB_Window *ecore_evas_directfb_window_get(const Ecore_Evas *ee);
695 875
696EAPI Ecore_Evas *ecore_evas_wayland_shm_new(const char *disp_name, int x, int y, int w, int h, int frame); 876
697EAPI Ecore_Evas *ecore_evas_wayland_egl_new(const char *disp_name, int x, int y, int w, int h, int frame); 877EAPI Ecore_Evas *ecore_evas_wayland_shm_new(const char *disp_name, unsigned int parent, int x, int y, int w, int h, Eina_Bool frame);
878EAPI Ecore_Evas *ecore_evas_wayland_egl_new(const char *disp_name, unsigned int parent, int x, int y, int w, int h, Eina_Bool frame);
698EAPI void ecore_evas_wayland_resize(Ecore_Evas *ee, int location); 879EAPI void ecore_evas_wayland_resize(Ecore_Evas *ee, int location);
699EAPI void ecore_evas_wayland_drag_start(Ecore_Evas *ee, Ecore_Evas *drag_ee, void *source); 880/* EAPI void ecore_evas_wayland_drag_start(Ecore_Evas *ee, Ecore_Evas *drag_ee, void *source); */
881/* EAPI void ecore_evas_wayland_pointer_set(Ecore_Evas *ee, int hot_x, int hot_y); */
882/* EAPI void ecore_evas_wayland_type_set(Ecore_Evas *ee, int type); */
700 883
701/** 884/**
702 * @brief Create a new @c Ecore_Evas canvas bound to the Evas 885 * @brief Create a new @c Ecore_Evas canvas bound to the Evas
@@ -1038,7 +1221,7 @@ EAPI void ecore_evas_data_set(Ecore_Evas *ee, const char *key, const void
1038 * @warning If and when this function is called depends on the underlying 1221 * @warning If and when this function is called depends on the underlying
1039 * windowing system. 1222 * windowing system.
1040 */ 1223 */
1041EAPI void ecore_evas_callback_resize_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 1224EAPI void ecore_evas_callback_resize_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
1042/** 1225/**
1043 * Set a callback for Ecore_Evas move events. 1226 * Set a callback for Ecore_Evas move events.
1044 * @param ee The Ecore_Evas to set callbacks on 1227 * @param ee The Ecore_Evas to set callbacks on
@@ -1050,7 +1233,7 @@ EAPI void ecore_evas_callback_resize_set(Ecore_Evas *ee, void (*func) (Ec
1050 * @warning If and when this function is called depends on the underlying 1233 * @warning If and when this function is called depends on the underlying
1051 * windowing system. 1234 * windowing system.
1052 */ 1235 */
1053EAPI void ecore_evas_callback_move_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 1236EAPI void ecore_evas_callback_move_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
1054/** 1237/**
1055 * Set a callback for Ecore_Evas show events. 1238 * Set a callback for Ecore_Evas show events.
1056 * @param ee The Ecore_Evas to set callbacks on 1239 * @param ee The Ecore_Evas to set callbacks on
@@ -1062,7 +1245,7 @@ EAPI void ecore_evas_callback_move_set(Ecore_Evas *ee, void (*func) (Ecor
1062 * @warning If and when this function is called depends on the underlying 1245 * @warning If and when this function is called depends on the underlying
1063 * windowing system. 1246 * windowing system.
1064 */ 1247 */
1065EAPI void ecore_evas_callback_show_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 1248EAPI void ecore_evas_callback_show_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
1066/** 1249/**
1067 * Set a callback for Ecore_Evas hide events. 1250 * Set a callback for Ecore_Evas hide events.
1068 * @param ee The Ecore_Evas to set callbacks on 1251 * @param ee The Ecore_Evas to set callbacks on
@@ -1074,7 +1257,7 @@ EAPI void ecore_evas_callback_show_set(Ecore_Evas *ee, void (*func) (Ecor
1074 * @warning If and when this function is called depends on the underlying 1257 * @warning If and when this function is called depends on the underlying
1075 * windowing system. 1258 * windowing system.
1076 */ 1259 */
1077EAPI void ecore_evas_callback_hide_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 1260EAPI void ecore_evas_callback_hide_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
1078/** 1261/**
1079 * Set a callback for Ecore_Evas delete request events. 1262 * Set a callback for Ecore_Evas delete request events.
1080 * @param ee The Ecore_Evas to set callbacks on 1263 * @param ee The Ecore_Evas to set callbacks on
@@ -1086,7 +1269,7 @@ EAPI void ecore_evas_callback_hide_set(Ecore_Evas *ee, void (*func) (Ecor
1086 * @warning If and when this function is called depends on the underlying 1269 * @warning If and when this function is called depends on the underlying
1087 * windowing system. 1270 * windowing system.
1088 */ 1271 */
1089EAPI void ecore_evas_callback_delete_request_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 1272EAPI void ecore_evas_callback_delete_request_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
1090/** 1273/**
1091 * Set a callback for Ecore_Evas destroy events. 1274 * Set a callback for Ecore_Evas destroy events.
1092 * @param ee The Ecore_Evas to set callbacks on 1275 * @param ee The Ecore_Evas to set callbacks on
@@ -1098,7 +1281,7 @@ EAPI void ecore_evas_callback_delete_request_set(Ecore_Evas *ee, void (*f
1098 * @warning If and when this function is called depends on the underlying 1281 * @warning If and when this function is called depends on the underlying
1099 * windowing system. 1282 * windowing system.
1100 */ 1283 */
1101EAPI void ecore_evas_callback_destroy_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 1284EAPI void ecore_evas_callback_destroy_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
1102/** 1285/**
1103 * Set a callback for Ecore_Evas focus in events. 1286 * Set a callback for Ecore_Evas focus in events.
1104 * @param ee The Ecore_Evas to set callbacks on 1287 * @param ee The Ecore_Evas to set callbacks on
@@ -1110,7 +1293,7 @@ EAPI void ecore_evas_callback_destroy_set(Ecore_Evas *ee, void (*func) (E
1110 * @warning If and when this function is called depends on the underlying 1293 * @warning If and when this function is called depends on the underlying
1111 * windowing system. 1294 * windowing system.
1112 */ 1295 */
1113EAPI void ecore_evas_callback_focus_in_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 1296EAPI void ecore_evas_callback_focus_in_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
1114/** 1297/**
1115 * Set a callback for Ecore_Evas focus out events. 1298 * Set a callback for Ecore_Evas focus out events.
1116 * @param ee The Ecore_Evas to set callbacks on 1299 * @param ee The Ecore_Evas to set callbacks on
@@ -1122,7 +1305,7 @@ EAPI void ecore_evas_callback_focus_in_set(Ecore_Evas *ee, void (*func) (
1122 * @warning If and when this function is called depends on the underlying 1305 * @warning If and when this function is called depends on the underlying
1123 * windowing system. 1306 * windowing system.
1124 */ 1307 */
1125EAPI void ecore_evas_callback_focus_out_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 1308EAPI void ecore_evas_callback_focus_out_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
1126/** 1309/**
1127 * Set a callback for Ecore_Evas sticky events. 1310 * Set a callback for Ecore_Evas sticky events.
1128 * @param ee The Ecore_Evas to set callbacks on 1311 * @param ee The Ecore_Evas to set callbacks on
@@ -1134,7 +1317,7 @@ EAPI void ecore_evas_callback_focus_out_set(Ecore_Evas *ee, void (*func)
1134 * @warning If and when this function is called depends on the underlying 1317 * @warning If and when this function is called depends on the underlying
1135 * windowing system. 1318 * windowing system.
1136 */ 1319 */
1137EAPI void ecore_evas_callback_sticky_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 1320EAPI void ecore_evas_callback_sticky_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
1138/** 1321/**
1139 * Set a callback for Ecore_Evas un-sticky events. 1322 * Set a callback for Ecore_Evas un-sticky events.
1140 * @param ee The Ecore_Evas to set callbacks on 1323 * @param ee The Ecore_Evas to set callbacks on
@@ -1146,7 +1329,7 @@ EAPI void ecore_evas_callback_sticky_set(Ecore_Evas *ee, void (*func) (Ec
1146 * @warning If and when this function is called depends on the underlying 1329 * @warning If and when this function is called depends on the underlying
1147 * windowing system. 1330 * windowing system.
1148 */ 1331 */
1149EAPI void ecore_evas_callback_unsticky_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 1332EAPI void ecore_evas_callback_unsticky_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
1150/** 1333/**
1151 * Set a callback for Ecore_Evas mouse in events. 1334 * Set a callback for Ecore_Evas mouse in events.
1152 * @param ee The Ecore_Evas to set callbacks on 1335 * @param ee The Ecore_Evas to set callbacks on
@@ -1158,7 +1341,7 @@ EAPI void ecore_evas_callback_unsticky_set(Ecore_Evas *ee, void (*func) (
1158 * @warning If and when this function is called depends on the underlying 1341 * @warning If and when this function is called depends on the underlying
1159 * windowing system. 1342 * windowing system.
1160 */ 1343 */
1161EAPI void ecore_evas_callback_mouse_in_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 1344EAPI void ecore_evas_callback_mouse_in_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
1162/** 1345/**
1163 * Set a callback for Ecore_Evas mouse out events. 1346 * Set a callback for Ecore_Evas mouse out events.
1164 * @param ee The Ecore_Evas to set callbacks on 1347 * @param ee The Ecore_Evas to set callbacks on
@@ -1170,7 +1353,7 @@ EAPI void ecore_evas_callback_mouse_in_set(Ecore_Evas *ee, void (*func) (
1170 * @warning If and when this function is called depends on the underlying 1353 * @warning If and when this function is called depends on the underlying
1171 * windowing system. 1354 * windowing system.
1172 */ 1355 */
1173EAPI void ecore_evas_callback_mouse_out_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 1356EAPI void ecore_evas_callback_mouse_out_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
1174/** 1357/**
1175 * Set a callback for Ecore_Evas pre render events. 1358 * Set a callback for Ecore_Evas pre render events.
1176 * @param ee The Ecore_Evas to set callbacks on 1359 * @param ee The Ecore_Evas to set callbacks on
@@ -1182,7 +1365,7 @@ EAPI void ecore_evas_callback_mouse_out_set(Ecore_Evas *ee, void (*func)
1182 * @warning If and when this function is called depends on the underlying 1365 * @warning If and when this function is called depends on the underlying
1183 * windowing system. 1366 * windowing system.
1184 */ 1367 */
1185EAPI void ecore_evas_callback_pre_render_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 1368EAPI void ecore_evas_callback_pre_render_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
1186/** 1369/**
1187 * Set a callback for Ecore_Evas mouse post render events. 1370 * Set a callback for Ecore_Evas mouse post render events.
1188 * @param ee The Ecore_Evas to set callbacks on 1371 * @param ee The Ecore_Evas to set callbacks on
@@ -1194,7 +1377,7 @@ EAPI void ecore_evas_callback_pre_render_set(Ecore_Evas *ee, void (*func)
1194 * @warning If and when this function is called depends on the underlying 1377 * @warning If and when this function is called depends on the underlying
1195 * windowing system. 1378 * windowing system.
1196 */ 1379 */
1197EAPI void ecore_evas_callback_post_render_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 1380EAPI void ecore_evas_callback_post_render_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
1198/** 1381/**
1199 * Set a callback for Ecore_Evas pre-free event. 1382 * Set a callback for Ecore_Evas pre-free event.
1200 * @param ee The Ecore_Evas to set callbacks on 1383 * @param ee The Ecore_Evas to set callbacks on
@@ -1206,7 +1389,21 @@ EAPI void ecore_evas_callback_post_render_set(Ecore_Evas *ee, void (*func
1206 * @warning If and when this function is called depends on the underlying 1389 * @warning If and when this function is called depends on the underlying
1207 * windowing system. 1390 * windowing system.
1208 */ 1391 */
1209EAPI void ecore_evas_callback_pre_free_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 1392EAPI void ecore_evas_callback_pre_free_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
1393/**
1394 * Set a callback for Ecore_Evas state changes.
1395 * @param ee The Ecore_Evas to set callbacks on
1396 * @param func The function to call
1397
1398 * A call to this function will set a callback on an Ecore_Evas, causing
1399 * @p func to be called whenever @p ee changes state.
1400 *
1401 * @since 1.2
1402 * @warning If and when this function is called depends on the underlying
1403 * windowing system.
1404 */
1405EAPI void ecore_evas_callback_state_change_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
1406
1210EAPI Evas *ecore_evas_get(const Ecore_Evas *ee); 1407EAPI Evas *ecore_evas_get(const Ecore_Evas *ee);
1211EAPI void ecore_evas_managed_move(Ecore_Evas *ee, int x, int y); 1408EAPI void ecore_evas_managed_move(Ecore_Evas *ee, int x, int y);
1212EAPI void ecore_evas_shaped_set(Ecore_Evas *ee, Eina_Bool shaped); 1409EAPI void ecore_evas_shaped_set(Ecore_Evas *ee, Eina_Bool shaped);
@@ -1572,7 +1769,7 @@ EAPI Eina_Bool ecore_evas_ews_setup(int x, int y, int w, int h);
1572/** 1769/**
1573 * Return the internal backing store in use. 1770 * Return the internal backing store in use.
1574 * 1771 *
1575 * @note this will foced it to be created, making future calls to 1772 * @note this will forced it to be created, making future calls to
1576 * ecore_evas_ews_engine_set() void. 1773 * ecore_evas_ews_engine_set() void.
1577 * 1774 *
1578 * @see ecore_evas_ews_evas_get() 1775 * @see ecore_evas_ews_evas_get()
@@ -1583,7 +1780,7 @@ EAPI Ecore_Evas *ecore_evas_ews_ecore_evas_get(void);
1583/** 1780/**
1584 * Return the internal backing store in use. 1781 * Return the internal backing store in use.
1585 * 1782 *
1586 * @note this will foced it to be created, making future calls to 1783 * @note this will forced it to be created, making future calls to
1587 * ecore_evas_ews_engine_set() void. 1784 * ecore_evas_ews_engine_set() void.
1588 * 1785 *
1589 * @see ecore_evas_ews_ecore_evas_get() 1786 * @see ecore_evas_ews_ecore_evas_get()
@@ -1762,6 +1959,7 @@ EAPI Ecore_Evas *ecore_evas_extn_socket_new(int w, int h);
1762/** 1959/**
1763 * @brief Create a socket to provide the service for external ecore evas socket. 1960 * @brief Create a socket to provide the service for external ecore evas socket.
1764 * 1961 *
1962 * @param ee The Ecore_Evas
1765 * @param svcname The name of the service to be advertised. ensure that it is unique (when combined with @p svcnum) otherwise creation may fail. 1963 * @param svcname The name of the service to be advertised. ensure that it is unique (when combined with @p svcnum) otherwise creation may fail.
1766 * @param svcnum A number (any value, 0 beig the common default) to differentiate multiple instances of services with the same name. 1964 * @param svcnum A number (any value, 0 beig the common default) to differentiate multiple instances of services with the same name.
1767 * @param svcsys A boolean that if true, specifies to create a system-wide service all users can connect to, otherwise the service is private to the user ide that created the service. 1965 * @param svcsys A boolean that if true, specifies to create a system-wide service all users can connect to, otherwise the service is private to the user ide that created the service.
@@ -1791,7 +1989,7 @@ EAPI Eina_Bool ecore_evas_extn_socket_listen(Ecore_Evas *ee, const char *svcname
1791 * image data so the external plug process will not render to it or alter it. 1989 * image data so the external plug process will not render to it or alter it.
1792 * 1990 *
1793 * You should only hold the lock for just as long as you need to read out the 1991 * You should only hold the lock for just as long as you need to read out the
1794 * image data or otherwise deal with it, and then unlokc it with 1992 * image data or otherwise deal with it, and then unlock it with
1795 * ecore_evas_extn_plug_object_data_unlock(). Keeping a lock over more than 1993 * ecore_evas_extn_plug_object_data_unlock(). Keeping a lock over more than
1796 * 1 iteration of the main ecore loop will be problematic, so avoid it. Also 1994 * 1 iteration of the main ecore loop will be problematic, so avoid it. Also
1797 * forgetting to unlock may cause the socket process to freeze and thus create 1995 * forgetting to unlock may cause the socket process to freeze and thus create
@@ -1831,7 +2029,7 @@ EAPI void ecore_evas_extn_plug_object_data_unlock(Evas_Object *obj);
1831 * in the canvas of the plug process in place of the image object. The image 2029 * in the canvas of the plug process in place of the image object. The image
1832 * object by default is created to be filled (equivalent of 2030 * object by default is created to be filled (equivalent of
1833 * evas_object_image_filled_add() on creation) so image content will scale 2031 * evas_object_image_filled_add() on creation) so image content will scale
1834 * toi fill the image unless otherwise reconfigured. The Ecore_Evas size 2032 * to fill the image unless otherwise reconfigured. The Ecore_Evas size
1835 * of the plug is the master size and determines size in pixels of the 2033 * of the plug is the master size and determines size in pixels of the
1836 * plug canvas. You can change the size with something like: 2034 * plug canvas. You can change the size with something like:
1837 * 2035 *
diff --git a/libraries/ecore/src/lib/ecore_evas/Makefile.am b/libraries/ecore/src/lib/ecore_evas/Makefile.am
index a1d9215..c85af09 100644
--- a/libraries/ecore/src/lib/ecore_evas/Makefile.am
+++ b/libraries/ecore/src/lib/ecore_evas/Makefile.am
@@ -151,6 +151,7 @@ $(top_builddir)/src/lib/ecore/libecore.la \
151@EVAS_LIBS@ \ 151@EVAS_LIBS@ \
152@EINA_LIBS@ \ 152@EINA_LIBS@ \
153@EVIL_LIBS@ \ 153@EVIL_LIBS@ \
154@SHM_OPEN_LIBS@ \
154@WAYLAND_EGL_LIBS@ 155@WAYLAND_EGL_LIBS@
155 156
156libecore_evas_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@ 157libecore_evas_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
diff --git a/libraries/ecore/src/lib/ecore_evas/Makefile.in b/libraries/ecore/src/lib/ecore_evas/Makefile.in
index a269b75..b48f26f 100644
--- a/libraries/ecore/src/lib/ecore_evas/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_evas/Makefile.in
@@ -50,16 +50,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
53 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 53 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
54 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 54 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
55 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 55 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
56 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 56 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
57 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 57 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
58 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 58 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
59 $(top_srcdir)/configure.ac
60am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 59am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4) 60 $(ACLOCAL_M4)
62mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 61mkinstalldirs = $(install_sh) -d
63CONFIG_HEADER = $(top_builddir)/config.h 62CONFIG_HEADER = $(top_builddir)/config.h
64CONFIG_CLEAN_FILES = 63CONFIG_CLEAN_FILES =
65CONFIG_CLEAN_VPATH_FILES = 64CONFIG_CLEAN_VPATH_FILES =
@@ -216,6 +215,8 @@ EVAS_LIBS = @EVAS_LIBS@
216EVIL_CFLAGS = @EVIL_CFLAGS@ 215EVIL_CFLAGS = @EVIL_CFLAGS@
217EVIL_LIBS = @EVIL_LIBS@ 216EVIL_LIBS = @EVIL_LIBS@
218EXEEXT = @EXEEXT@ 217EXEEXT = @EXEEXT@
218EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
219EXOTIC_LIBS = @EXOTIC_LIBS@
219FGREP = @FGREP@ 220FGREP = @FGREP@
220GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 221GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
221GLIB_CFLAGS = @GLIB_CFLAGS@ 222GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -271,6 +272,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
271PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 272PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
272PIXMAN_LIBS = @PIXMAN_LIBS@ 273PIXMAN_LIBS = @PIXMAN_LIBS@
273PKG_CONFIG = @PKG_CONFIG@ 274PKG_CONFIG = @PKG_CONFIG@
275PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
276PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
274POSUB = @POSUB@ 277POSUB = @POSUB@
275RANLIB = @RANLIB@ 278RANLIB = @RANLIB@
276SCIM_CFLAGS = @SCIM_CFLAGS@ 279SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -281,6 +284,7 @@ SDL_LIBS = @SDL_LIBS@
281SED = @SED@ 284SED = @SED@
282SET_MAKE = @SET_MAKE@ 285SET_MAKE = @SET_MAKE@
283SHELL = @SHELL@ 286SHELL = @SHELL@
287SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
284SSL_CFLAGS = @SSL_CFLAGS@ 288SSL_CFLAGS = @SSL_CFLAGS@
285SSL_LIBS = @SSL_LIBS@ 289SSL_LIBS = @SSL_LIBS@
286STRIP = @STRIP@ 290STRIP = @STRIP@
@@ -605,6 +609,7 @@ $(top_builddir)/src/lib/ecore/libecore.la \
605@EVAS_LIBS@ \ 609@EVAS_LIBS@ \
606@EINA_LIBS@ \ 610@EINA_LIBS@ \
607@EVIL_LIBS@ \ 611@EVIL_LIBS@ \
612@SHM_OPEN_LIBS@ \
608@WAYLAND_EGL_LIBS@ 613@WAYLAND_EGL_LIBS@
609 614
610libecore_evas_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@ 615libecore_evas_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas.c
index 2b04488..6ecd609 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas.c
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas.c
@@ -509,24 +509,6 @@ _ecore_evas_constructor_sdl(int x __UNUSED__, int y __UNUSED__, int w, int h, co
509 509
510 return ee; 510 return ee;
511} 511}
512
513static Ecore_Evas *
514_ecore_evas_constructor_sdl16(int x __UNUSED__, int y __UNUSED__, int w, int h, const char *extra_options)
515{
516 Ecore_Evas *ee;
517 unsigned int fullscreen = 0, hwsurface = 0, noframe = 0, alpha = 0;
518 char *name = NULL;
519
520 _ecore_evas_parse_extra_options_str(extra_options, "name=", &name);
521 _ecore_evas_parse_extra_options_uint(extra_options, "fullscreen=", &fullscreen);
522 _ecore_evas_parse_extra_options_uint(extra_options, "hwsurface=", &hwsurface);
523 _ecore_evas_parse_extra_options_uint(extra_options, "alpha=", &alpha);
524
525 ee = ecore_evas_sdl16_new(name, w, h, fullscreen, hwsurface, noframe, alpha);
526 free(name);
527
528 return ee;
529}
530#endif 512#endif
531 513
532#ifdef BUILD_ECORE_EVAS_OPENGL_SDL 514#ifdef BUILD_ECORE_EVAS_OPENGL_SDL
@@ -606,12 +588,13 @@ static Ecore_Evas *
606_ecore_evas_constructor_wayland_shm(int x, int y, int w, int h, const char *extra_options) 588_ecore_evas_constructor_wayland_shm(int x, int y, int w, int h, const char *extra_options)
607{ 589{
608 char *disp_name = NULL; 590 char *disp_name = NULL;
609 unsigned int frame = 0; 591 unsigned int frame = 0, parent = 0;
610 Ecore_Evas *ee; 592 Ecore_Evas *ee;
611 593
612 _ecore_evas_parse_extra_options_str(extra_options, "display=", &disp_name); 594 _ecore_evas_parse_extra_options_str(extra_options, "display=", &disp_name);
613 _ecore_evas_parse_extra_options_uint(extra_options, "frame=", &frame); 595 _ecore_evas_parse_extra_options_uint(extra_options, "frame=", &frame);
614 ee = ecore_evas_wayland_shm_new(disp_name, x, y, w, h, frame); 596 _ecore_evas_parse_extra_options_uint(extra_options, "parent=", &parent);
597 ee = ecore_evas_wayland_shm_new(disp_name, parent, x, y, w, h, frame);
615 free(disp_name); 598 free(disp_name);
616 599
617 return ee; 600 return ee;
@@ -623,12 +606,13 @@ static Ecore_Evas *
623_ecore_evas_constructor_wayland_egl(int x, int y, int w, int h, const char *extra_options) 606_ecore_evas_constructor_wayland_egl(int x, int y, int w, int h, const char *extra_options)
624{ 607{
625 char *disp_name = NULL; 608 char *disp_name = NULL;
626 unsigned int frame = 0; 609 unsigned int frame = 0, parent = 0;
627 Ecore_Evas *ee; 610 Ecore_Evas *ee;
628 611
629 _ecore_evas_parse_extra_options_str(extra_options, "display=", &disp_name); 612 _ecore_evas_parse_extra_options_str(extra_options, "display=", &disp_name);
630 _ecore_evas_parse_extra_options_uint(extra_options, "frame=", &frame); 613 _ecore_evas_parse_extra_options_uint(extra_options, "frame=", &frame);
631 ee = ecore_evas_wayland_egl_new(disp_name, x, y, w, h, frame); 614 _ecore_evas_parse_extra_options_uint(extra_options, "parent=", &parent);
615 ee = ecore_evas_wayland_egl_new(disp_name, parent, x, y, w, h, frame);
632 free(disp_name); 616 free(disp_name);
633 617
634 return ee; 618 return ee;
@@ -788,7 +772,6 @@ static const struct ecore_evas_engine _engines[] = {
788 772
789#ifdef BUILD_ECORE_EVAS_SOFTWARE_SDL 773#ifdef BUILD_ECORE_EVAS_SOFTWARE_SDL
790 {"sdl", _ecore_evas_constructor_sdl}, 774 {"sdl", _ecore_evas_constructor_sdl},
791 {"software_16_sdl", _ecore_evas_constructor_sdl16},
792#endif 775#endif
793 776
794 /* independent */ 777 /* independent */
@@ -944,7 +927,7 @@ ecore_evas_data_set(Ecore_Evas *ee, const char *key, const void *data)
944#define IFE return;} 927#define IFE return;}
945 928
946EAPI void 929EAPI void
947ecore_evas_callback_resize_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)) 930ecore_evas_callback_resize_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func)
948{ 931{
949 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS)) 932 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
950 { 933 {
@@ -958,7 +941,7 @@ ecore_evas_callback_resize_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee))
958} 941}
959 942
960EAPI void 943EAPI void
961ecore_evas_callback_move_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)) 944ecore_evas_callback_move_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func)
962{ 945{
963 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS)) 946 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
964 { 947 {
@@ -972,7 +955,7 @@ ecore_evas_callback_move_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee))
972} 955}
973 956
974EAPI void 957EAPI void
975ecore_evas_callback_show_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)) 958ecore_evas_callback_show_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func)
976{ 959{
977 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS)) 960 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
978 { 961 {
@@ -986,7 +969,7 @@ ecore_evas_callback_show_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee))
986} 969}
987 970
988EAPI void 971EAPI void
989ecore_evas_callback_hide_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)) 972ecore_evas_callback_hide_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func)
990{ 973{
991 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS)) 974 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
992 { 975 {
@@ -1000,7 +983,7 @@ ecore_evas_callback_hide_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee))
1000} 983}
1001 984
1002EAPI void 985EAPI void
1003ecore_evas_callback_delete_request_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)) 986ecore_evas_callback_delete_request_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func)
1004{ 987{
1005 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS)) 988 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
1006 { 989 {
@@ -1014,7 +997,7 @@ ecore_evas_callback_delete_request_set(Ecore_Evas *ee, void (*func) (Ecore_Evas
1014} 997}
1015 998
1016EAPI void 999EAPI void
1017ecore_evas_callback_destroy_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)) 1000ecore_evas_callback_destroy_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func)
1018{ 1001{
1019 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS)) 1002 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
1020 { 1003 {
@@ -1028,7 +1011,7 @@ ecore_evas_callback_destroy_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee))
1028} 1011}
1029 1012
1030EAPI void 1013EAPI void
1031ecore_evas_callback_focus_in_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)) 1014ecore_evas_callback_focus_in_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func)
1032{ 1015{
1033 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS)) 1016 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
1034 { 1017 {
@@ -1042,7 +1025,7 @@ ecore_evas_callback_focus_in_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee))
1042} 1025}
1043 1026
1044EAPI void 1027EAPI void
1045ecore_evas_callback_focus_out_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)) 1028ecore_evas_callback_focus_out_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func)
1046{ 1029{
1047 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS)) 1030 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
1048 { 1031 {
@@ -1056,7 +1039,7 @@ ecore_evas_callback_focus_out_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee))
1056} 1039}
1057 1040
1058EAPI void 1041EAPI void
1059ecore_evas_callback_sticky_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)) 1042ecore_evas_callback_sticky_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func)
1060{ 1043{
1061 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS)) 1044 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
1062 { 1045 {
@@ -1070,7 +1053,7 @@ ecore_evas_callback_sticky_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee))
1070} 1053}
1071 1054
1072EAPI void 1055EAPI void
1073ecore_evas_callback_unsticky_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)) 1056ecore_evas_callback_unsticky_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func)
1074{ 1057{
1075 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS)) 1058 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
1076 { 1059 {
@@ -1084,7 +1067,7 @@ ecore_evas_callback_unsticky_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee))
1084} 1067}
1085 1068
1086EAPI void 1069EAPI void
1087ecore_evas_callback_mouse_in_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)) 1070ecore_evas_callback_mouse_in_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func)
1088{ 1071{
1089 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS)) 1072 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
1090 { 1073 {
@@ -1098,7 +1081,7 @@ ecore_evas_callback_mouse_in_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee))
1098} 1081}
1099 1082
1100EAPI void 1083EAPI void
1101ecore_evas_callback_mouse_out_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)) 1084ecore_evas_callback_mouse_out_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func)
1102{ 1085{
1103 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS)) 1086 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
1104 { 1087 {
@@ -1112,7 +1095,7 @@ ecore_evas_callback_mouse_out_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee))
1112} 1095}
1113 1096
1114EAPI void 1097EAPI void
1115ecore_evas_callback_pre_render_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)) 1098ecore_evas_callback_pre_render_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func)
1116{ 1099{
1117 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS)) 1100 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
1118 { 1101 {
@@ -1126,7 +1109,7 @@ ecore_evas_callback_pre_render_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)
1126} 1109}
1127 1110
1128EAPI void 1111EAPI void
1129ecore_evas_callback_post_render_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)) 1112ecore_evas_callback_post_render_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func)
1130{ 1113{
1131 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS)) 1114 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
1132 { 1115 {
@@ -1140,7 +1123,7 @@ ecore_evas_callback_post_render_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee
1140} 1123}
1141 1124
1142EAPI void 1125EAPI void
1143ecore_evas_callback_pre_free_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)) 1126ecore_evas_callback_pre_free_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func)
1144{ 1127{
1145 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS)) 1128 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
1146 { 1129 {
@@ -1151,6 +1134,18 @@ ecore_evas_callback_pre_free_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee))
1151 ee->func.fn_pre_free = func; 1134 ee->func.fn_pre_free = func;
1152} 1135}
1153 1136
1137EAPI void
1138ecore_evas_callback_state_change_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func)
1139{
1140 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
1141 {
1142 ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
1143 "ecore_evas_callback_state_change_set");
1144 return;
1145 }
1146 ee->func.fn_state_change = func;
1147}
1148
1154/** 1149/**
1155 * Get an Ecore_Evas's Evas 1150 * Get an Ecore_Evas's Evas
1156 * @param ee The Ecore_Evas whose Evas you wish to get 1151 * @param ee The Ecore_Evas whose Evas you wish to get
@@ -2120,6 +2115,162 @@ ecore_evas_sticky_get(const Ecore_Evas *ee)
2120} 2115}
2121 2116
2122EAPI void 2117EAPI void
2118ecore_evas_window_group_set(Ecore_Evas *ee, const Ecore_Evas *ee_group)
2119{
2120 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
2121 {
2122 ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
2123 "XXX");
2124 return;
2125 }
2126
2127 IFC(ee, fn_window_group_set) (ee, ee_group);
2128 IFE;
2129}
2130
2131EAPI const Ecore_Evas *
2132ecore_evas_window_group_get(const Ecore_Evas *ee)
2133{
2134 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
2135 {
2136 ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
2137 "XXX");
2138 return EINA_FALSE;
2139 }
2140 return ee->prop.group_ee;
2141}
2142
2143EAPI void
2144ecore_evas_aspect_set(Ecore_Evas *ee, double aspect)
2145{
2146 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
2147 {
2148 ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
2149 "XXX");
2150 return;
2151 }
2152
2153 IFC(ee, fn_aspect_set) (ee, aspect);
2154 IFE;
2155}
2156
2157EAPI double
2158ecore_evas_aspect_get(const Ecore_Evas *ee)
2159{
2160 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
2161 {
2162 ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
2163 "XXX");
2164 return EINA_FALSE;
2165 }
2166 return ee->prop.aspect;
2167}
2168
2169EAPI void
2170ecore_evas_urgent_set(Ecore_Evas *ee, Eina_Bool urgent)
2171{
2172 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
2173 {
2174 ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
2175 "XXX");
2176 return;
2177 }
2178
2179 IFC(ee, fn_urgent_set) (ee, urgent);
2180 IFE;
2181}
2182
2183EAPI Eina_Bool
2184ecore_evas_urgent_get(const Ecore_Evas *ee)
2185{
2186 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
2187 {
2188 ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
2189 "XXX");
2190 return EINA_FALSE;
2191 }
2192 return ee->prop.urgent ? EINA_TRUE : EINA_FALSE;
2193}
2194
2195EAPI void
2196ecore_evas_modal_set(Ecore_Evas *ee, Eina_Bool modal)
2197{
2198 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
2199 {
2200 ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
2201 "XXX");
2202 return;
2203 }
2204
2205 IFC(ee, fn_modal_set) (ee, modal);
2206 IFE;
2207}
2208
2209EAPI Eina_Bool
2210ecore_evas_modal_get(const Ecore_Evas *ee)
2211{
2212 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
2213 {
2214 ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
2215 "XXX");
2216 return EINA_FALSE;
2217 }
2218 return ee->prop.modal ? EINA_TRUE : EINA_FALSE;
2219}
2220
2221EAPI void
2222ecore_evas_demand_attention_set(Ecore_Evas *ee, Eina_Bool demand)
2223{
2224 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
2225 {
2226 ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
2227 "XXX");
2228 return;
2229 }
2230
2231 IFC(ee, fn_demands_attention_set) (ee, demand);
2232 IFE;
2233}
2234
2235EAPI Eina_Bool
2236ecore_evas_demand_attention_get(const Ecore_Evas *ee)
2237{
2238 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
2239 {
2240 ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
2241 "XXX");
2242 return EINA_FALSE;
2243 }
2244 return ee->prop.demand_attention ? EINA_TRUE : EINA_FALSE;
2245}
2246
2247EAPI void
2248ecore_evas_focus_skip_set(Ecore_Evas *ee, Eina_Bool skip)
2249{
2250 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
2251 {
2252 ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
2253 "XXX");
2254 return;
2255 }
2256
2257 IFC(ee, fn_focus_skip_set) (ee, skip);
2258 IFE;
2259}
2260
2261EAPI Eina_Bool
2262ecore_evas_focus_skip_get(const Ecore_Evas *ee)
2263{
2264 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
2265 {
2266 ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
2267 "XXX");
2268 return EINA_FALSE;
2269 }
2270 return ee->prop.focus_skip ? EINA_TRUE : EINA_FALSE;
2271}
2272
2273EAPI void
2123ecore_evas_ignore_events_set(Ecore_Evas *ee, Eina_Bool ignore) 2274ecore_evas_ignore_events_set(Ecore_Evas *ee, Eina_Bool ignore)
2124{ 2275{
2125 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS)) 2276 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
@@ -2695,35 +2846,10 @@ ecore_evas_wayland_resize(Ecore_Evas *ee, int location)
2695 } 2846 }
2696} 2847}
2697 2848
2698EAPI void
2699ecore_evas_wayland_drag_start(Ecore_Evas *ee, Ecore_Evas *drag_ee, void *source)
2700{
2701 if ((!ee) || (!source)) return;
2702 if (!ee->engine.wl.surface) return;
2703
2704 if (!strcmp(ee->driver, "wayland_shm"))
2705 {
2706#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM
2707 _ecore_evas_wayland_shm_drag_start(ee, drag_ee, source);
2708#endif
2709 }
2710 else if (!strcmp(ee->driver, "wayland_egl"))
2711 {
2712#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL
2713 _ecore_evas_wayland_egl_drag_start(ee, drag_ee, source);
2714#endif
2715 }
2716}
2717#else 2849#else
2718EAPI void 2850EAPI void
2719ecore_evas_wayland_resize(Ecore_Evas *ee __UNUSED__, int location __UNUSED__) 2851ecore_evas_wayland_resize(Ecore_Evas *ee __UNUSED__, int location __UNUSED__)
2720{ 2852{
2721 2853
2722} 2854}
2723
2724EAPI void
2725ecore_evas_wayland_drag_start(Ecore_Evas *ee __UNUSED__, Ecore_Evas *drag_ee __UNUSED__, void *source __UNUSED__)
2726{
2727
2728}
2729#endif 2855#endif
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_buffer.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas_buffer.c
index 3f82efb..4c81db7 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas_buffer.c
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_buffer.c
@@ -513,6 +513,13 @@ static Ecore_Evas_Engine_Func _ecore_buffer_engine_func =
513 _ecore_evas_buffer_alpha_set, 513 _ecore_evas_buffer_alpha_set,
514 NULL, //transparent 514 NULL, //transparent
515 515
516 NULL,
517 NULL,
518 NULL,
519 NULL,
520 NULL,
521 NULL,
522
516 _ecore_evas_buffer_render, 523 _ecore_evas_buffer_render,
517 NULL // screen_geometry_get 524 NULL // screen_geometry_get
518}; 525};
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_cocoa.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas_cocoa.c
index 36d41f8..0947b11 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas_cocoa.c
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_cocoa.c
@@ -9,7 +9,7 @@
9 9
10#ifdef BUILD_ECORE_EVAS_OPENGL_COCOA 10#ifdef BUILD_ECORE_EVAS_OPENGL_COCOA
11#include <Ecore_Cocoa.h> 11#include <Ecore_Cocoa.h>
12#include <Evas_Engine_Gl_Cocoa.h> 12#include <Evas_Engine_GL_Cocoa.h>
13#endif 13#endif
14 14
15#include "ecore_evas_private.h" 15#include "ecore_evas_private.h"
@@ -463,6 +463,14 @@ static Ecore_Evas_Engine_Func _ecore_cocoa_engine_func =
463 NULL, 463 NULL,
464 NULL, 464 NULL,
465 NULL, //transparent 465 NULL, //transparent
466
467 NULL,
468 NULL,
469 NULL,
470 NULL,
471 NULL,
472 NULL,
473
466 NULL, // render 474 NULL, // render
467 NULL 475 NULL
468 }; 476 };
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_directfb.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas_directfb.c
index 457f9e9..ed24355 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas_directfb.c
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_directfb.c
@@ -490,6 +490,13 @@ static Ecore_Evas_Engine_Func _ecore_directfb_engine_func =
490 NULL, /* alpha */ 490 NULL, /* alpha */
491 NULL, //transparent 491 NULL, //transparent
492 492
493 NULL,
494 NULL,
495 NULL,
496 NULL,
497 NULL,
498 NULL,
499
493 NULL, // render 500 NULL, // render
494 NULL // screen_geometry_get 501 NULL // screen_geometry_get
495}; 502};
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_ews.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas_ews.c
index eccf98b..ec02472 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas_ews.c
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_ews.c
@@ -683,6 +683,14 @@ static const Ecore_Evas_Engine_Func _ecore_ews_engine_func =
683 _ecore_evas_ews_ignore_events_set, 683 _ecore_evas_ews_ignore_events_set,
684 _ecore_evas_ews_alpha_set, 684 _ecore_evas_ews_alpha_set,
685 _ecore_evas_ews_transparent_set, 685 _ecore_evas_ews_transparent_set,
686
687 NULL,
688 NULL,
689 NULL,
690 NULL,
691 NULL,
692 NULL,
693
686 _ecore_evas_ews_render, 694 _ecore_evas_ews_render,
687 _ecore_evas_ews_screen_geometry_get 695 _ecore_evas_ews_screen_geometry_get
688}; 696};
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_extn.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas_extn.c
index e46ab4a..a7ea4c3 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas_extn.c
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_extn.c
@@ -2,35 +2,37 @@
2# include <config.h> 2# include <config.h>
3#endif 3#endif
4 4
5#include <stdio.h>
5#include <stdlib.h> 6#include <stdlib.h>
7#include <sys/types.h>
8#include <unistd.h>
9#include <math.h>
10#include <time.h>
11#ifdef HAVE_SYS_MMAN_H
12# include <sys/mman.h>
13#endif
14#include <sys/stat.h>
15#include <fcntl.h>
16#include <string.h>
17#include <sys/file.h>
6#include <unistd.h> 18#include <unistd.h>
7 19
8#include <Ecore.h> 20#include <Ecore.h>
9#include "ecore_private.h" 21#include "ecore_private.h"
10#include <Ecore_Input.h> 22#include <Ecore_Input.h>
11 23
12#ifdef BUILD_ECORE_IPC 24#ifdef BUILD_ECORE_EVAS_EXTN
13# ifdef BUILD_ECORE_EVAS_SOFTWARE_BUFFER 25
14# define EXTN_ENABLED 1 26#include <Ecore_Ipc.h>
15# endif 27
16#endif 28#endif
17 29
18#include "ecore_evas_private.h" 30#include "ecore_evas_private.h"
19#include "Ecore_Evas.h" 31#include "Ecore_Evas.h"
20#ifdef EXTN_ENABLED
21#include "Ecore_Ipc.h"
22 32
23#include <stdio.h> 33
24#include <stdlib.h> 34#ifdef BUILD_ECORE_EVAS_EXTN
25#include <sys/types.h> 35
26#include <unistd.h>
27#include <math.h>
28#include <time.h>
29#include <sys/mman.h>
30#include <sys/stat.h>
31#include <fcntl.h>
32#include <string.h>
33#include <sys/file.h>
34 36
35typedef struct _Shmfile Shmfile; 37typedef struct _Shmfile Shmfile;
36 38
@@ -1102,6 +1104,13 @@ static const Ecore_Evas_Engine_Func _ecore_extn_plug_engine_func =
1102 NULL, 1104 NULL,
1103 NULL, //transparent 1105 NULL, //transparent
1104 1106
1107 NULL,
1108 NULL,
1109 NULL,
1110 NULL,
1111 NULL,
1112 NULL,
1113
1105 NULL, // render 1114 NULL, // render
1106 NULL // screen_geometry_get 1115 NULL // screen_geometry_get
1107}; 1116};
@@ -1286,12 +1295,13 @@ void
1286_ecore_evas_extn_shutdown(void) 1295_ecore_evas_extn_shutdown(void)
1287{ 1296{
1288} 1297}
1289#endif 1298
1299#endif /* BUILD_ECORE_EVAS_EXTN */
1290 1300
1291EAPI Evas_Object * 1301EAPI Evas_Object *
1292ecore_evas_extn_plug_new(Ecore_Evas *ee_target) 1302ecore_evas_extn_plug_new(Ecore_Evas *ee_target)
1293{ 1303{
1294#ifdef EXTN_ENABLED 1304#ifdef BUILD_ECORE_EVAS_EXTN
1295 Evas_Object *o; 1305 Evas_Object *o;
1296 Ecore_Evas *ee; 1306 Ecore_Evas *ee;
1297 int w = 1, h = 1; 1307 int w = 1, h = 1;
@@ -1408,7 +1418,7 @@ ecore_evas_extn_plug_new(Ecore_Evas *ee_target)
1408EAPI Eina_Bool 1418EAPI Eina_Bool
1409ecore_evas_extn_plug_connect(Evas_Object *obj, const char *svcname, int svcnum, Eina_Bool svcsys) 1419ecore_evas_extn_plug_connect(Evas_Object *obj, const char *svcname, int svcnum, Eina_Bool svcsys)
1410{ 1420{
1411#ifdef EXTN_ENABLED 1421#ifdef BUILD_ECORE_EVAS_EXTN
1412 Extn *extn; 1422 Extn *extn;
1413 Ecore_Evas *ee = NULL; 1423 Ecore_Evas *ee = NULL;
1414 1424
@@ -1459,7 +1469,7 @@ ecore_evas_extn_plug_connect(Evas_Object *obj, const char *svcname, int svcnum,
1459EAPI void 1469EAPI void
1460ecore_evas_extn_plug_object_data_lock(Evas_Object *obj) 1470ecore_evas_extn_plug_object_data_lock(Evas_Object *obj)
1461{ 1471{
1462#ifdef EXTN_ENABLED 1472#ifdef BUILD_ECORE_EVAS_EXTN
1463 Ecore_Evas *ee; 1473 Ecore_Evas *ee;
1464 1474
1465 ee = ecore_evas_object_ecore_evas_get(obj); 1475 ee = ecore_evas_object_ecore_evas_get(obj);
@@ -1471,7 +1481,7 @@ ecore_evas_extn_plug_object_data_lock(Evas_Object *obj)
1471EAPI void 1481EAPI void
1472ecore_evas_extn_plug_object_data_unlock(Evas_Object *obj) 1482ecore_evas_extn_plug_object_data_unlock(Evas_Object *obj)
1473{ 1483{
1474#ifdef EXTN_ENABLED 1484#ifdef BUILD_ECORE_EVAS_EXTN
1475 Ecore_Evas *ee; 1485 Ecore_Evas *ee;
1476 1486
1477 ee = ecore_evas_object_ecore_evas_get(obj); 1487 ee = ecore_evas_object_ecore_evas_get(obj);
@@ -1480,7 +1490,7 @@ ecore_evas_extn_plug_object_data_unlock(Evas_Object *obj)
1480#endif 1490#endif
1481} 1491}
1482 1492
1483#ifdef EXTN_ENABLED 1493#ifdef BUILD_ECORE_EVAS_EXTN
1484static void 1494static void
1485_ecore_evas_socket_resize(Ecore_Evas *ee, int w, int h) 1495_ecore_evas_socket_resize(Ecore_Evas *ee, int w, int h)
1486{ 1496{
@@ -1830,7 +1840,7 @@ _ipc_client_data(void *data, int type __UNUSED__, void *event)
1830 1840
1831#define STRGET(val) \ 1841#define STRGET(val) \
1832 do { \ 1842 do { \
1833 if ((ipc->val) && (ipc->val < (char *)(e->size - 1))) \ 1843 if ((ipc->val) && (ipc->val < (char *)(long)(e->size - 1))) \
1834 ipc->val = ((char *)ipc) + (long)ipc->val; \ 1844 ipc->val = ((char *)ipc) + (long)ipc->val; \
1835 else \ 1845 else \
1836 ipc->val = NULL; \ 1846 ipc->val = NULL; \
@@ -1978,6 +1988,13 @@ static const Ecore_Evas_Engine_Func _ecore_extn_socket_engine_func =
1978 _ecore_evas_extn_socket_alpha_set, 1988 _ecore_evas_extn_socket_alpha_set,
1979 NULL, //transparent 1989 NULL, //transparent
1980 1990
1991 NULL,
1992 NULL,
1993 NULL,
1994 NULL,
1995 NULL,
1996 NULL,
1997
1981 _ecore_evas_extn_socket_render, // render 1998 _ecore_evas_extn_socket_render, // render
1982 NULL // screen_geometry_get 1999 NULL // screen_geometry_get
1983}; 2000};
@@ -1987,7 +2004,7 @@ static const Ecore_Evas_Engine_Func _ecore_extn_socket_engine_func =
1987EAPI Ecore_Evas * 2004EAPI Ecore_Evas *
1988ecore_evas_extn_socket_new(int w, int h) 2005ecore_evas_extn_socket_new(int w, int h)
1989{ 2006{
1990#ifdef EXTN_ENABLED 2007#ifdef BUILD_ECORE_EVAS_EXTN
1991 Evas_Engine_Info_Buffer *einfo; 2008 Evas_Engine_Info_Buffer *einfo;
1992 Ecore_Evas *ee; 2009 Ecore_Evas *ee;
1993 int rmethod; 2010 int rmethod;
@@ -2077,7 +2094,7 @@ ecore_evas_extn_socket_new(int w, int h)
2077EAPI Eina_Bool 2094EAPI Eina_Bool
2078ecore_evas_extn_socket_listen(Ecore_Evas *ee, const char *svcname, int svcnum, Eina_Bool svcsys) 2095ecore_evas_extn_socket_listen(Ecore_Evas *ee, const char *svcname, int svcnum, Eina_Bool svcsys)
2079{ 2096{
2080#ifdef EXTN_ENABLED 2097#ifdef BUILD_ECORE_EVAS_EXTN
2081 Extn *extn; 2098 Extn *extn;
2082 2099
2083 extn = calloc(1, sizeof(Extn)); 2100 extn = calloc(1, sizeof(Extn));
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_fb.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas_fb.c
index 74caada..11e2ffd 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas_fb.c
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_fb.c
@@ -541,6 +541,13 @@ static Ecore_Evas_Engine_Func _ecore_fb_engine_func =
541 NULL, 541 NULL,
542 NULL, //transparent 542 NULL, //transparent
543 543
544 NULL,
545 NULL,
546 NULL,
547 NULL,
548 NULL,
549 NULL,
550
544 NULL, // render 551 NULL, // render
545 NULL // screen_geometry_get 552 NULL // screen_geometry_get
546}; 553};
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_private.h b/libraries/ecore/src/lib/ecore_evas/ecore_evas_private.h
index 9a88a7a..e31653a 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas_private.h
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_private.h
@@ -123,6 +123,7 @@ extern int _ecore_evas_log_dom;
123#define IDLE_FLUSH_TIME 0.5 123#define IDLE_FLUSH_TIME 0.5
124#ifndef _ECORE_EVAS_H 124#ifndef _ECORE_EVAS_H
125typedef struct _Ecore_Evas Ecore_Evas; 125typedef struct _Ecore_Evas Ecore_Evas;
126typedef void (*Ecore_Evas_Event_Cb) (Ecore_Evas *ee);
126#endif 127#endif
127 128
128typedef struct _Ecore_Evas_Engine Ecore_Evas_Engine; 129typedef struct _Ecore_Evas_Engine Ecore_Evas_Engine;
@@ -131,20 +132,20 @@ typedef struct _Ecore_Evas_Engine_Func Ecore_Evas_Engine_Func;
131struct _Ecore_Evas_Engine_Func 132struct _Ecore_Evas_Engine_Func
132{ 133{
133 void (*fn_free) (Ecore_Evas *ee); 134 void (*fn_free) (Ecore_Evas *ee);
134 void (*fn_callback_resize_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 135 void (*fn_callback_resize_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
135 void (*fn_callback_move_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 136 void (*fn_callback_move_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
136 void (*fn_callback_show_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 137 void (*fn_callback_show_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
137 void (*fn_callback_hide_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 138 void (*fn_callback_hide_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
138 void (*fn_callback_delete_request_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 139 void (*fn_callback_delete_request_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
139 void (*fn_callback_destroy_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 140 void (*fn_callback_destroy_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
140 void (*fn_callback_focus_in_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 141 void (*fn_callback_focus_in_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
141 void (*fn_callback_focus_out_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 142 void (*fn_callback_focus_out_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
142 void (*fn_callback_mouse_in_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 143 void (*fn_callback_mouse_in_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
143 void (*fn_callback_mouse_out_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 144 void (*fn_callback_mouse_out_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
144 void (*fn_callback_sticky_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 145 void (*fn_callback_sticky_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
145 void (*fn_callback_unsticky_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 146 void (*fn_callback_unsticky_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
146 void (*fn_callback_pre_render_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 147 void (*fn_callback_pre_render_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
147 void (*fn_callback_post_render_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); 148 void (*fn_callback_post_render_set) (Ecore_Evas *ee, Ecore_Evas_Event_Cb func);
148 void (*fn_move) (Ecore_Evas *ee, int x, int y); 149 void (*fn_move) (Ecore_Evas *ee, int x, int y);
149 void (*fn_managed_move) (Ecore_Evas *ee, int x, int y); 150 void (*fn_managed_move) (Ecore_Evas *ee, int x, int y);
150 void (*fn_resize) (Ecore_Evas *ee, int w, int h); 151 void (*fn_resize) (Ecore_Evas *ee, int w, int h);
@@ -177,6 +178,13 @@ struct _Ecore_Evas_Engine_Func
177 void (*fn_alpha_set) (Ecore_Evas *ee, int alpha); 178 void (*fn_alpha_set) (Ecore_Evas *ee, int alpha);
178 void (*fn_transparent_set) (Ecore_Evas *ee, int transparent); 179 void (*fn_transparent_set) (Ecore_Evas *ee, int transparent);
179 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
180 int (*fn_render) (Ecore_Evas *ee); 188 int (*fn_render) (Ecore_Evas *ee);
181 void (*fn_screen_geometry_get) (const Ecore_Evas *ee, int *x, int *y, int *w, int *h); 189 void (*fn_screen_geometry_get) (const Ecore_Evas *ee, int *x, int *y, int *w, int *h);
182}; 190};
@@ -271,11 +279,13 @@ struct _Ecore_Evas_Engine
271#if defined(BUILD_ECORE_EVAS_WAYLAND_SHM) || defined(BUILD_ECORE_EVAS_WAYLAND_EGL) 279#if defined(BUILD_ECORE_EVAS_WAYLAND_SHM) || defined(BUILD_ECORE_EVAS_WAYLAND_EGL)
272 struct 280 struct
273 { 281 {
282 Ecore_Wl_Window *parent, *win;
274 Evas_Object *frame; 283 Evas_Object *frame;
275 284
276 struct wl_shell_surface *shell_surface; 285# if defined(BUILD_ECORE_EVAS_WAYLAND_SHM)
277 struct wl_surface *surface;
278 struct wl_buffer *buffer; 286 struct wl_buffer *buffer;
287# endif
288
279 } wl; 289 } wl;
280#endif 290#endif
281 291
@@ -333,6 +343,9 @@ struct _Ecore_Evas
333 int layer; 343 int layer;
334 Ecore_Window window; 344 Ecore_Window window;
335 unsigned char avoid_damage; 345 unsigned char avoid_damage;
346 Ecore_Evas *group_ee;
347 Ecore_Window group_ee_win;
348 double aspect;
336 char focused : 1; 349 char focused : 1;
337 char iconified : 1; 350 char iconified : 1;
338 char borderless : 1; 351 char borderless : 1;
@@ -343,7 +356,12 @@ struct _Ecore_Evas
343 char sticky : 1; 356 char sticky : 1;
344 char request_pos : 1; 357 char request_pos : 1;
345 char draw_frame : 1; 358 char draw_frame : 1;
346 } prop; 359 char hwsurface : 1;
360 char urgent : 1;
361 char modal : 1;
362 char demand_attention : 1;
363 char focus_skip : 1;
364 } prop;
347 365
348 struct { 366 struct {
349 void (*fn_resize) (Ecore_Evas *ee); 367 void (*fn_resize) (Ecore_Evas *ee);
@@ -361,6 +379,7 @@ struct _Ecore_Evas
361 void (*fn_pre_render) (Ecore_Evas *ee); 379 void (*fn_pre_render) (Ecore_Evas *ee);
362 void (*fn_post_render) (Ecore_Evas *ee); 380 void (*fn_post_render) (Ecore_Evas *ee);
363 void (*fn_pre_free) (Ecore_Evas *ee); 381 void (*fn_pre_free) (Ecore_Evas *ee);
382 void (*fn_state_change) (Ecore_Evas *ee);
364 } func; 383 } func;
365 384
366 Ecore_Evas_Engine engine; 385 Ecore_Evas_Engine engine;
@@ -406,11 +425,15 @@ int _ecore_evas_ews_shutdown(void);
406#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM 425#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM
407void _ecore_evas_wayland_shm_resize(Ecore_Evas *ee, int location); 426void _ecore_evas_wayland_shm_resize(Ecore_Evas *ee, int location);
408void _ecore_evas_wayland_shm_drag_start(Ecore_Evas *ee, Ecore_Evas *drag_ee, void *source); 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);
409#endif 430#endif
410 431
411#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL 432#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL
412void _ecore_evas_wayland_egl_resize(Ecore_Evas *ee, int location); 433void _ecore_evas_wayland_egl_resize(Ecore_Evas *ee, int location);
413void _ecore_evas_wayland_egl_drag_start(Ecore_Evas *ee, Ecore_Evas *drag_ee, void *source); 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);
414#endif 437#endif
415 438
416void _ecore_evas_fps_debug_init(void); 439void _ecore_evas_fps_debug_init(void);
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_psl1ght.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas_psl1ght.c
index be130ad..038654a 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas_psl1ght.c
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_psl1ght.c
@@ -233,7 +233,7 @@ _ecore_evas_psl1ght_free(Ecore_Evas *ee)
233} 233}
234 234
235static void 235static void
236_ecore_evas_psl1ght_callback_delete_request_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)) 236_ecore_evas_psl1ght_callback_delete_request_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func)
237{ 237{
238 ee->func.fn_delete_request = func; 238 ee->func.fn_delete_request = func;
239} 239}
@@ -396,6 +396,13 @@ static Ecore_Evas_Engine_Func _ecore_psl1ght_engine_func =
396 NULL, 396 NULL,
397 NULL, //transparent 397 NULL, //transparent
398 398
399 NULL,
400 NULL,
401 NULL,
402 NULL,
403 NULL,
404 NULL,
405
399 NULL, // render 406 NULL, // render
400 _ecore_evas_screen_geometry_get // screen_geometry_get 407 _ecore_evas_screen_geometry_get // screen_geometry_get
401}; 408};
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_sdl.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas_sdl.c
index a3be2c7..b246a26 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas_sdl.c
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_sdl.c
@@ -7,9 +7,6 @@
7#include <Ecore_Input_Evas.h> 7#include <Ecore_Input_Evas.h>
8#if defined(BUILD_ECORE_EVAS_SOFTWARE_SDL) || defined(BUILD_ECORE_EVAS_OPENGL_SDL) 8#if defined(BUILD_ECORE_EVAS_SOFTWARE_SDL) || defined(BUILD_ECORE_EVAS_OPENGL_SDL)
9# include <Ecore_Sdl.h> 9# include <Ecore_Sdl.h>
10# ifdef BUILD_ECORE_EVAS_SOFTWARE_SDL
11# include <Evas_Engine_SDL.h>
12# endif
13# ifdef BUILD_ECORE_EVAS_OPENGL_SDL 10# ifdef BUILD_ECORE_EVAS_OPENGL_SDL
14# include <Evas_Engine_GL_SDL.h> 11# include <Evas_Engine_GL_SDL.h>
15# endif 12# endif
@@ -18,10 +15,17 @@
18#include <stdlib.h> 15#include <stdlib.h>
19#include <string.h> 16#include <string.h>
20 17
18#if defined(BUILD_ECORE_EVAS_SOFTWARE_SDL) || defined(BUILD_ECORE_EVAS_OPENGL_SDL)
19#include <SDL/SDL.h>
20#endif
21
21#include "ecore_evas_private.h" 22#include "ecore_evas_private.h"
22#include "Ecore_Evas.h" 23#include "Ecore_Evas.h"
23 24
24// fixme: 1 sdl window only at a time? seems wrong 25/**
26 ** SDL only handle one window at a time. That's by definition, there is nothing wrong here.
27 **
28 **/
25 29
26#if defined(BUILD_ECORE_EVAS_SOFTWARE_SDL) || defined(BUILD_ECORE_EVAS_OPENGL_SDL) 30#if defined(BUILD_ECORE_EVAS_SOFTWARE_SDL) || defined(BUILD_ECORE_EVAS_OPENGL_SDL)
27 31
@@ -45,6 +49,13 @@ _ecore_evas_sdl_match(void)
45 return sdl_ee; 49 return sdl_ee;
46} 50}
47 51
52static void *
53_ecore_evas_sdl_switch_buffer(void *data, void *dest __UNUSED__)
54{
55 SDL_Flip(data);
56 return ((SDL_Surface*)data)->pixels;
57}
58
48static Eina_Bool 59static Eina_Bool
49_ecore_evas_sdl_event_got_focus(void *data __UNUSED__, int type __UNUSED__, void *event __UNUSED__) 60_ecore_evas_sdl_event_got_focus(void *data __UNUSED__, int type __UNUSED__, void *event __UNUSED__)
50{ 61{
@@ -80,12 +91,54 @@ _ecore_evas_sdl_event_video_resize(void *data __UNUSED__, int type __UNUSED__, v
80{ 91{
81 Ecore_Sdl_Event_Video_Resize *e; 92 Ecore_Sdl_Event_Video_Resize *e;
82 Ecore_Evas *ee; 93 Ecore_Evas *ee;
94 int rmethod;
83 95
84 e = event; 96 e = event;
85 ee = _ecore_evas_sdl_match(); 97 ee = _ecore_evas_sdl_match();
86 98
87 if (!ee) return ECORE_CALLBACK_PASS_ON; /* pass on event */ 99 if (!ee) return ECORE_CALLBACK_PASS_ON; /* pass on event */
100
101 rmethod = evas_output_method_get(ee->evas);
102 if (rmethod == evas_render_method_lookup("buffer"))
103 {
104 Evas_Engine_Info_Buffer *einfo;
105
106 einfo = (Evas_Engine_Info_Buffer *) evas_engine_info_get(ee->evas);
107 if (einfo)
108 {
109 einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_RGB32;
110 einfo->info.switch_data = SDL_SetVideoMode(e->w, e->h, 32,
111 (ee->prop.hwsurface ? SDL_HWSURFACE : SDL_SWSURFACE)
112 | (ee->prop.fullscreen ? SDL_FULLSCREEN : 0)
113 | (ee->alpha ? SDL_SRCALPHA : 0)
114 | SDL_DOUBLEBUF);
115 if (!einfo->info.switch_data)
116 {
117 return EINA_FALSE;
118 }
119
120 SDL_SetAlpha(einfo->info.switch_data, SDL_SRCALPHA, 0);
121 SDL_FillRect(einfo->info.switch_data, NULL, 0);
122
123 einfo->info.dest_buffer = ((SDL_Surface*)einfo->info.switch_data)->pixels;
124 einfo->info.dest_buffer_row_bytes = e->w * sizeof (int);
125 einfo->info.use_color_key = 0;
126 einfo->info.alpha_threshold = 0;
127 einfo->info.func.new_update_region = NULL;
128 einfo->info.func.free_update_region = NULL;
129 einfo->info.func.switch_buffer = _ecore_evas_sdl_switch_buffer;
130 if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *) einfo))
131 {
132 return EINA_FALSE;
133 }
134 }
135 }
136
137 ee->w = e->w;
138 ee->h = e->h;
139
88 evas_output_size_set(ee->evas, e->w, e->h); 140 evas_output_size_set(ee->evas, e->w, e->h);
141 evas_output_viewport_set(ee->evas, 0, 0, e->w, e->h);
89 142
90 return ECORE_CALLBACK_PASS_ON; 143 return ECORE_CALLBACK_PASS_ON;
91} 144}
@@ -191,7 +244,7 @@ _ecore_evas_sdl_shutdown(void)
191 _ecore_evas_init_count--; 244 _ecore_evas_init_count--;
192 if (_ecore_evas_init_count == 0) 245 if (_ecore_evas_init_count == 0)
193 { 246 {
194 int i; 247 unsigned int i;
195 248
196 for (i = 0; i < sizeof (ecore_evas_event_handlers) / sizeof (Ecore_Event_Handler*); i++) 249 for (i = 0; i < sizeof (ecore_evas_event_handlers) / sizeof (Ecore_Event_Handler*); i++)
197 ecore_event_handler_del(ecore_evas_event_handlers[i]); 250 ecore_event_handler_del(ecore_evas_event_handlers[i]);
@@ -219,10 +272,48 @@ _ecore_evas_sdl_free(Ecore_Evas *ee)
219static void 272static void
220_ecore_evas_resize(Ecore_Evas *ee, int w, int h) 273_ecore_evas_resize(Ecore_Evas *ee, int w, int h)
221{ 274{
275 int rmethod;
276
222 if ((w == ee->w) && (h == ee->h)) return; 277 if ((w == ee->w) && (h == ee->h)) return;
223 ee->w = w; 278 ee->w = w;
224 ee->h = h; 279 ee->h = h;
225 280
281 rmethod = evas_output_method_get(ee->evas);
282 if (rmethod == evas_render_method_lookup("buffer"))
283 {
284 Evas_Engine_Info_Buffer *einfo;
285
286 einfo = (Evas_Engine_Info_Buffer *) evas_engine_info_get(ee->evas);
287 if (einfo)
288 {
289 einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_RGB32;
290 einfo->info.switch_data = SDL_SetVideoMode(w, h, 32,
291 (ee->prop.hwsurface ? SDL_HWSURFACE : SDL_SWSURFACE)
292 | (ee->prop.fullscreen ? SDL_FULLSCREEN : 0)
293 | (ee->alpha ? SDL_SRCALPHA : 0)
294 | SDL_DOUBLEBUF);
295 if (!einfo->info.switch_data)
296 {
297 return ;
298 }
299
300 SDL_SetAlpha(einfo->info.switch_data, SDL_SRCALPHA, 0);
301 SDL_FillRect(einfo->info.switch_data, NULL, 0);
302
303 einfo->info.dest_buffer = ((SDL_Surface*)einfo->info.switch_data)->pixels;
304 einfo->info.dest_buffer_row_bytes = w * sizeof (int);
305 einfo->info.use_color_key = 0;
306 einfo->info.alpha_threshold = 0;
307 einfo->info.func.new_update_region = NULL;
308 einfo->info.func.free_update_region = NULL;
309 einfo->info.func.switch_buffer = _ecore_evas_sdl_switch_buffer;
310 if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *) einfo))
311 {
312 return ;
313 }
314 }
315 }
316
226 evas_output_size_set(ee->evas, ee->w, ee->h); 317 evas_output_size_set(ee->evas, ee->w, ee->h);
227 evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h); 318 evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
228 evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h); 319 evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
@@ -342,6 +433,13 @@ static Ecore_Evas_Engine_Func _ecore_sdl_engine_func =
342 NULL, 433 NULL,
343 NULL, //transparent 434 NULL, //transparent
344 435
436 NULL,
437 NULL,
438 NULL,
439 NULL,
440 NULL,
441 NULL,
442
345 NULL, // render 443 NULL, // render
346 NULL // screen_geometry_get 444 NULL // screen_geometry_get
347}; 445};
@@ -349,7 +447,6 @@ static Ecore_Evas_Engine_Func _ecore_sdl_engine_func =
349static Ecore_Evas* 447static Ecore_Evas*
350_ecore_evas_internal_sdl_new(int rmethod, const char* name, int w, int h, int fullscreen, int hwsurface, int noframe, int alpha) 448_ecore_evas_internal_sdl_new(int rmethod, const char* name, int w, int h, int fullscreen, int hwsurface, int noframe, int alpha)
351{ 449{
352 void *einfo;
353 Ecore_Evas *ee; 450 Ecore_Evas *ee;
354 451
355 if (!name) 452 if (!name)
@@ -382,6 +479,8 @@ _ecore_evas_internal_sdl_new(int rmethod, const char* name, int w, int h, int fu
382 ee->prop.withdrawn = 0; 479 ee->prop.withdrawn = 0;
383 ee->prop.sticky = 0; 480 ee->prop.sticky = 0;
384 ee->prop.window = 0; 481 ee->prop.window = 0;
482 ee->alpha = alpha;
483 ee->prop.hwsurface = hwsurface;
385 484
386 /* init evas here */ 485 /* init evas here */
387 ee->evas = evas_new(); 486 ee->evas = evas_new();
@@ -391,19 +490,47 @@ _ecore_evas_internal_sdl_new(int rmethod, const char* name, int w, int h, int fu
391 evas_output_size_set(ee->evas, w, h); 490 evas_output_size_set(ee->evas, w, h);
392 evas_output_viewport_set(ee->evas, 0, 0, w, h); 491 evas_output_viewport_set(ee->evas, 0, 0, w, h);
393 492
394 if (rmethod == evas_render_method_lookup("software_sdl") || 493 if (rmethod == evas_render_method_lookup("buffer"))
395 rmethod == evas_render_method_lookup("software_16_sdl") )
396 { 494 {
397#ifdef BUILD_ECORE_EVAS_SOFTWARE_SDL 495 Evas_Engine_Info_Buffer *einfo;
398 einfo = evas_engine_info_get(ee->evas); 496
497 einfo = (Evas_Engine_Info_Buffer *) evas_engine_info_get(ee->evas);
399 if (einfo) 498 if (einfo)
400 { 499 {
401 ((Evas_Engine_Info_SDL *)einfo)->info.rotation = 0; 500 SDL_Init(SDL_INIT_NOPARACHUTE);
402 ((Evas_Engine_Info_SDL *)einfo)->info.fullscreen = fullscreen; 501
403 ((Evas_Engine_Info_SDL *)einfo)->info.hwsurface = hwsurface; 502 if (SDL_InitSubSystem(SDL_INIT_VIDEO) < 0)
404 ((Evas_Engine_Info_SDL *)einfo)->info.noframe = noframe; 503 {
405 ((Evas_Engine_Info_SDL *)einfo)->info.alpha = alpha; 504 ERR("SDL_Init failed with %s", SDL_GetError());
406 if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo)) 505 SDL_Quit();
506 return NULL;
507 }
508
509 einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_RGB32;
510 einfo->info.switch_data = SDL_SetVideoMode(w, h, 32,
511 (hwsurface ? SDL_HWSURFACE : SDL_SWSURFACE)
512 | (fullscreen ? SDL_FULLSCREEN : 0)
513 | (noframe ? SDL_NOFRAME : 0)
514 | (alpha ? SDL_SRCALPHA : 0)
515 | SDL_DOUBLEBUF);
516 if (!einfo->info.switch_data)
517 {
518 ERR("SDL_SetVideoMode failed !");
519 ecore_evas_free(ee);
520 return NULL;
521 }
522
523 SDL_SetAlpha(einfo->info.switch_data, SDL_SRCALPHA, 0);
524 SDL_FillRect(einfo->info.switch_data, NULL, 0);
525
526 einfo->info.dest_buffer = ((SDL_Surface*)einfo->info.switch_data)->pixels;
527 einfo->info.dest_buffer_row_bytes = w * sizeof (int);
528 einfo->info.use_color_key = 0;
529 einfo->info.alpha_threshold = 0;
530 einfo->info.func.new_update_region = NULL;
531 einfo->info.func.free_update_region = NULL;
532 einfo->info.func.switch_buffer = _ecore_evas_sdl_switch_buffer;
533 if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *) einfo))
407 { 534 {
408 ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver); 535 ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
409 ecore_evas_free(ee); 536 ecore_evas_free(ee);
@@ -416,16 +543,17 @@ _ecore_evas_internal_sdl_new(int rmethod, const char* name, int w, int h, int fu
416 ecore_evas_free(ee); 543 ecore_evas_free(ee);
417 return NULL; 544 return NULL;
418 } 545 }
419#endif
420 } 546 }
421 else if (rmethod == evas_render_method_lookup("gl_sdl")) 547 else if (rmethod == evas_render_method_lookup("gl_sdl"))
422 { 548 {
423#ifdef BUILD_ECORE_EVAS_OPENGL_SDL 549#ifdef BUILD_ECORE_EVAS_OPENGL_SDL
424 einfo = evas_engine_info_get(ee->evas); 550 Evas_Engine_Info_GL_SDL *einfo;
551
552 einfo = (Evas_Engine_Info_GL_SDL *) evas_engine_info_get(ee->evas);
425 if (einfo) 553 if (einfo)
426 { 554 {
427 ((Evas_Engine_Info_GL_SDL *)einfo)->flags.fullscreen = fullscreen; 555 einfo->flags.fullscreen = fullscreen;
428 ((Evas_Engine_Info_GL_SDL *)einfo)->flags.noframe = noframe; 556 einfo->flags.noframe = noframe;
429 if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo)) 557 if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
430 { 558 {
431 ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver); 559 ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
@@ -464,7 +592,7 @@ _ecore_evas_internal_sdl_new(int rmethod, const char* name, int w, int h, int fu
464 (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process, 592 (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
465 (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process); 593 (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
466 594
467 SDL_ShowCursor(SDL_DISABLE); 595 SDL_ShowCursor(SDL_ENABLE);
468 596
469 ee->engine.func->fn_render = _ecore_evas_sdl_render; 597 ee->engine.func->fn_render = _ecore_evas_sdl_render;
470 _ecore_evas_register(ee); 598 _ecore_evas_register(ee);
@@ -481,11 +609,10 @@ ecore_evas_sdl_new(const char* name, int w, int h, int fullscreen, int hwsurface
481 Ecore_Evas *ee; 609 Ecore_Evas *ee;
482 int rmethod; 610 int rmethod;
483 611
484 rmethod = evas_render_method_lookup("software_sdl"); 612 rmethod = evas_render_method_lookup("buffer");
485 if (!rmethod) return NULL; 613 if (!rmethod) return NULL;
486 614
487 ee = _ecore_evas_internal_sdl_new(rmethod, name, w, h, fullscreen, hwsurface, noframe, alpha); 615 ee = _ecore_evas_internal_sdl_new(rmethod, name, w, h, fullscreen, hwsurface, noframe, alpha);
488 ee->driver = "sdl";
489 return ee; 616 return ee;
490} 617}
491#else 618#else
@@ -497,28 +624,12 @@ ecore_evas_sdl_new(const char* name __UNUSED__, int w __UNUSED__, int h __UNUSED
497} 624}
498#endif 625#endif
499 626
500#ifdef BUILD_ECORE_EVAS_SOFTWARE_SDL
501EAPI Ecore_Evas*
502ecore_evas_sdl16_new(const char* name, int w, int h, int fullscreen, int hwsurface, int noframe, int alpha)
503{
504 Ecore_Evas *ee;
505 int rmethod;
506
507 rmethod = evas_render_method_lookup("software_16_sdl");
508 if (!rmethod) return NULL;
509
510 ee = _ecore_evas_internal_sdl_new(rmethod, name, w, h, fullscreen, hwsurface, noframe, alpha);
511 ee->driver = "software_16_sdl";
512 return ee;
513}
514#else
515EAPI Ecore_Evas* 627EAPI Ecore_Evas*
516ecore_evas_sdl16_new(const char* name __UNUSED__, int w __UNUSED__, int h __UNUSED__, int fullscreen __UNUSED__, int hwsurface __UNUSED__, int noframe __UNUSED__, int alpha __UNUSED__) 628ecore_evas_sdl16_new(const char* name __UNUSED__, int w __UNUSED__, int h __UNUSED__, int fullscreen __UNUSED__, int hwsurface __UNUSED__, int noframe __UNUSED__, int alpha __UNUSED__)
517{ 629{
518 ERR("OUTCH !"); 630 ERR("OUTCH !");
519 return NULL; 631 return NULL;
520} 632}
521#endif
522 633
523#ifdef BUILD_ECORE_EVAS_OPENGL_SDL 634#ifdef BUILD_ECORE_EVAS_OPENGL_SDL
524EAPI Ecore_Evas* 635EAPI Ecore_Evas*
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_wayland_egl.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas_wayland_egl.c
index 72e8555..e88fc35 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas_wayland_egl.c
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_wayland_egl.c
@@ -1,8 +1,8 @@
1#ifdef HAVE_CONFIG_H 1#ifdef HAVE_CONFIG_H
2# include <config.h> 2# include "config.h"
3#endif 3#endif
4 4
5#define LOGFNS 1 5//#define LOGFNS 1
6 6
7#ifdef LOGFNS 7#ifdef LOGFNS
8# include <stdio.h> 8# include <stdio.h>
@@ -28,15 +28,15 @@
28#include "Ecore_Evas.h" 28#include "Ecore_Evas.h"
29 29
30#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL 30#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL
31# include <wayland-egl.h>
32# include <Evas_Engine_Wayland_Egl.h> 31# include <Evas_Engine_Wayland_Egl.h>
33# include <Ecore_Wayland.h> 32# include <Ecore_Wayland.h>
34 33
35/* local structures */ 34/* local structures */
36typedef struct _EE_Wl_Smart_Data EE_Wl_Smart_Data; 35typedef struct _EE_Wl_Smart_Data EE_Wl_Smart_Data;
37struct _EE_Wl_Smart_Data 36struct _EE_Wl_Smart_Data
38{ 37{
39 Evas_Object *frame, *text; 38 Evas_Object *frame;
39 Evas_Object *text;
40 Evas_Coord x, y, w, h; 40 Evas_Coord x, y, w, h;
41}; 41};
42 42
@@ -51,40 +51,33 @@ static void _ecore_evas_wl_callback_delete_request_set(Ecore_Evas *ee, void (*fu
51static void _ecore_evas_wl_callback_focus_in_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee)); 51static void _ecore_evas_wl_callback_focus_in_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee));
52static void _ecore_evas_wl_callback_focus_out_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee)); 52static void _ecore_evas_wl_callback_focus_out_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee));
53static void _ecore_evas_wl_callback_mouse_in_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee)); 53static void _ecore_evas_wl_callback_mouse_in_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee));
54static void _ecore_evas_wl_callback_mouse_out_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee));
54static void _ecore_evas_wl_move(Ecore_Evas *ee, int x, int y); 55static void _ecore_evas_wl_move(Ecore_Evas *ee, int x, int y);
55static void _ecore_evas_wl_resize(Ecore_Evas *ee, int w, int h); 56static void _ecore_evas_wl_resize(Ecore_Evas *ee, int w, int h);
56static void _ecore_evas_wl_show(Ecore_Evas *ee); 57static void _ecore_evas_wl_show(Ecore_Evas *ee);
57static void _ecore_evas_wl_hide(Ecore_Evas *ee); 58static void _ecore_evas_wl_hide(Ecore_Evas *ee);
58static void _ecore_evas_wl_raise(Ecore_Evas *ee); 59static void _ecore_evas_wl_raise(Ecore_Evas *ee);
59static void _ecore_evas_wl_lower(Ecore_Evas *ee); 60static void _ecore_evas_wl_title_set(Ecore_Evas *ee, const char *title);
60static void _ecore_evas_wl_activate(Ecore_Evas *ee);
61static void _ecore_evas_wl_title_set(Ecore_Evas *ee, const char *t);
62static void _ecore_evas_wl_name_class_set(Ecore_Evas *ee, const char *n, const char *c); 61static void _ecore_evas_wl_name_class_set(Ecore_Evas *ee, const char *n, const char *c);
63static void _ecore_evas_wl_size_min_set(Ecore_Evas *ee, int w, int h); 62static void _ecore_evas_wl_size_min_set(Ecore_Evas *ee, int w, int h);
64static void _ecore_evas_wl_size_max_set(Ecore_Evas *ee, int w, int h); 63static void _ecore_evas_wl_size_max_set(Ecore_Evas *ee, int w, int h);
65static void _ecore_evas_wl_size_base_set(Ecore_Evas *ee, int w, int h); 64static void _ecore_evas_wl_size_base_set(Ecore_Evas *ee, int w, int h);
66static void _ecore_evas_wl_size_step_set(Ecore_Evas *ee, int w, int h); 65static void _ecore_evas_wl_size_step_set(Ecore_Evas *ee, int w, int h);
67static void _ecore_evas_wl_object_cursor_set(Ecore_Evas *ee, Evas_Object *obj, int layer, int hot_x, int hot_y);
68static void _ecore_evas_wl_object_cursor_del(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event __UNUSED__);
69static void _ecore_evas_wl_layer_set(Ecore_Evas *ee, int layer); 66static void _ecore_evas_wl_layer_set(Ecore_Evas *ee, int layer);
70static void _ecore_evas_wl_focus_set(Ecore_Evas *ee, int focus __UNUSED__);
71static void _ecore_evas_wl_iconified_set(Ecore_Evas *ee, int iconify); 67static void _ecore_evas_wl_iconified_set(Ecore_Evas *ee, int iconify);
72static void _ecore_evas_wl_maximized_set(Ecore_Evas *ee, int max); 68static void _ecore_evas_wl_maximized_set(Ecore_Evas *ee, int max);
73static void _ecore_evas_wl_fullscreen_set(Ecore_Evas *ee, int full __UNUSED__); 69static void _ecore_evas_wl_fullscreen_set(Ecore_Evas *ee, int full);
70static void _ecore_evas_wl_ignore_events_set(Ecore_Evas *ee, int ignore);
71static void _ecore_evas_wl_alpha_set(Ecore_Evas *ee, int alpha);
72static void _ecore_evas_wl_transparent_set(Ecore_Evas *ee, int transparent);
74static int _ecore_evas_wl_render(Ecore_Evas *ee); 73static int _ecore_evas_wl_render(Ecore_Evas *ee);
75static void _ecore_evas_wl_screen_geometry_get(const Ecore_Evas *ee __UNUSED__, int *x, int *y, int *w, int *h); 74static void _ecore_evas_wl_screen_geometry_get(const Ecore_Evas *ee __UNUSED__, int *x, int *y, int *w, int *h);
76 75
77static Eina_Bool _ecore_evas_wl_event_mouse_down(void *data __UNUSED__, int type __UNUSED__, void *event); 76static Eina_Bool _ecore_evas_wl_cb_mouse_in(void *data __UNUSED__, int type __UNUSED__, void *event);
78static Eina_Bool _ecore_evas_wl_event_mouse_up(void *data __UNUSED__, int type __UNUSED__, void *event); 77static Eina_Bool _ecore_evas_wl_cb_mouse_out(void *data __UNUSED__, int type __UNUSED__, void *event);
79static Eina_Bool _ecore_evas_wl_event_mouse_move(void *data __UNUSED__, int type __UNUSED__, void *event); 78static Eina_Bool _ecore_evas_wl_cb_focus_in(void *data __UNUSED__, int type __UNUSED__, void *event);
80static Eina_Bool _ecore_evas_wl_event_mouse_wheel(void *data __UNUSED__, int type __UNUSED__, void *event); 79static Eina_Bool _ecore_evas_wl_cb_focus_out(void *data __UNUSED__, int type __UNUSED__, void *event);
81static Eina_Bool _ecore_evas_wl_event_mouse_in(void *data __UNUSED__, int type __UNUSED__, void *event); 80static Eina_Bool _ecore_evas_wl_cb_window_configure(void *data __UNUSED__, int type __UNUSED__, void *event);
82static Eina_Bool _ecore_evas_wl_event_mouse_out(void *data __UNUSED__, int type __UNUSED__, void *event);
83static Eina_Bool _ecore_evas_wl_event_focus_in(void *data __UNUSED__, int type __UNUSED__, void *event);
84static Eina_Bool _ecore_evas_wl_event_focus_out(void *data __UNUSED__, int type __UNUSED__, void *event);
85
86static void _ecore_evas_wl_handle_configure(void *data, struct wl_shell_surface *shell_surface __UNUSED__, uint32_t timestamp __UNUSED__, uint32_t edges __UNUSED__, int32_t width, int32_t height);
87static void _ecore_evas_wl_handle_popup_done(void *data __UNUSED__, struct wl_shell_surface *shell_surface __UNUSED__);
88 81
89/* SMART stuff for frame */ 82/* SMART stuff for frame */
90static Evas_Smart *_ecore_evas_wl_smart = NULL; 83static Evas_Smart *_ecore_evas_wl_smart = NULL;
@@ -100,94 +93,94 @@ static Evas_Object *_ecore_evas_wl_frame_add(Evas *evas);
100 93
101/* local variables */ 94/* local variables */
102static int _ecore_evas_wl_init_count = 0; 95static int _ecore_evas_wl_init_count = 0;
103static Ecore_Event_Handler *_ecore_evas_wl_event_handlers[8]; 96static Ecore_Event_Handler *_ecore_evas_wl_event_hdls[5];
104static uint32_t _ecore_evas_wl_btn_timestamp;
105static const struct wl_shell_surface_listener _ecore_evas_wl_shell_surface_listener =
106{
107 _ecore_evas_wl_handle_configure,
108 _ecore_evas_wl_handle_popup_done
109};
110 97
111static Ecore_Evas_Engine_Func _ecore_wl_engine_func = 98static Ecore_Evas_Engine_Func _ecore_wl_engine_func =
112{ 99{
113 _ecore_evas_wl_free, 100 _ecore_evas_wl_free,
114 _ecore_evas_wl_callback_resize_set, 101 _ecore_evas_wl_callback_resize_set,
115 _ecore_evas_wl_callback_move_set, 102 _ecore_evas_wl_callback_move_set,
116 NULL, // callback show set 103 NULL,
117 NULL, // callback hide set 104 NULL,
118 _ecore_evas_wl_callback_delete_request_set, 105 _ecore_evas_wl_callback_delete_request_set,
119 NULL, // callback destroy set 106 NULL,
120 _ecore_evas_wl_callback_focus_in_set, 107 _ecore_evas_wl_callback_focus_in_set,
121 _ecore_evas_wl_callback_focus_out_set, 108 _ecore_evas_wl_callback_focus_out_set,
122 _ecore_evas_wl_callback_mouse_in_set, 109 _ecore_evas_wl_callback_mouse_in_set,
123 NULL, // callback mouse out set 110 _ecore_evas_wl_callback_mouse_out_set,
124 NULL, // callback sticky set 111 NULL, // sticky_set
125 NULL, // callback unsticky set 112 NULL, // unsticky_set
126 NULL, // callback pre render set 113 NULL, // pre_render_set
127 NULL, // callback post render set 114 NULL, // post_render_set
128 _ecore_evas_wl_move, 115 _ecore_evas_wl_move,
129 NULL, // func managed move 116 NULL, // managed_move
130 _ecore_evas_wl_resize, 117 _ecore_evas_wl_resize,
131 NULL, // _ecore_evas_wl_move_resize, 118 NULL, // move_resize
132 NULL, // func rotation set 119 NULL, // rotation_set
133 NULL, // func shaped set 120 NULL, // shaped_set
134 _ecore_evas_wl_show, 121 _ecore_evas_wl_show,
135 _ecore_evas_wl_hide, 122 _ecore_evas_wl_hide,
136 _ecore_evas_wl_raise, 123 _ecore_evas_wl_raise,
137 _ecore_evas_wl_lower, 124 NULL, // lower
138 _ecore_evas_wl_activate, 125 NULL, // activate
139 _ecore_evas_wl_title_set, 126 _ecore_evas_wl_title_set,
140 _ecore_evas_wl_name_class_set, 127 _ecore_evas_wl_name_class_set,
141 _ecore_evas_wl_size_min_set, 128 _ecore_evas_wl_size_min_set,
142 _ecore_evas_wl_size_max_set, 129 _ecore_evas_wl_size_max_set,
143 _ecore_evas_wl_size_base_set, 130 _ecore_evas_wl_size_base_set,
144 _ecore_evas_wl_size_step_set, 131 _ecore_evas_wl_size_step_set,
145 _ecore_evas_wl_object_cursor_set, 132 NULL, // object_cursor_set
146 _ecore_evas_wl_layer_set, 133 _ecore_evas_wl_layer_set,
147 _ecore_evas_wl_focus_set, 134 NULL, // focus set
148 _ecore_evas_wl_iconified_set, 135 _ecore_evas_wl_iconified_set,
149 NULL, // func borderless set 136 NULL, // borderless set
150 NULL, // func override set 137 NULL, // override set
151 _ecore_evas_wl_maximized_set, 138 _ecore_evas_wl_maximized_set,
152 _ecore_evas_wl_fullscreen_set, 139 _ecore_evas_wl_fullscreen_set,
153 NULL, // _ecore_evas_wl_avoid_damage_set, 140 NULL, // func avoid_damage set
154 NULL, // func withdrawn set 141 NULL, // func withdrawn set
155 NULL, // func sticky set 142 NULL, // func sticky set
156 NULL, // func ignore events set 143 _ecore_evas_wl_ignore_events_set,
157 NULL, // func alpha set 144 _ecore_evas_wl_alpha_set,
158 NULL, // func transparent set 145 _ecore_evas_wl_transparent_set,
146 NULL,
147 NULL,
148 NULL,
149 NULL,
150 NULL,
151 NULL,
159 _ecore_evas_wl_render, 152 _ecore_evas_wl_render,
160 _ecore_evas_wl_screen_geometry_get 153 _ecore_evas_wl_screen_geometry_get
161}; 154};
162 155
163#endif 156/* external variables */
164 157
165#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL 158/* external functions */
166EAPI Ecore_Evas * 159EAPI Ecore_Evas *
167ecore_evas_wayland_egl_new(const char *disp_name, int x, int y, int w, int h, int frame) 160ecore_evas_wayland_egl_new(const char *disp_name, unsigned int parent, int x, int y, int w, int h, Eina_Bool frame)
168{ 161{
162 Ecore_Wl_Window *p = NULL;
169 Evas_Engine_Info_Wayland_Egl *einfo; 163 Evas_Engine_Info_Wayland_Egl *einfo;
170 Ecore_Evas *ee; 164 Ecore_Evas *ee;
171 int method = 0; 165 int method = 0;
172 static int _win_id = 1;
173 166
174 LOGFN(__FILE__, __LINE__, __FUNCTION__); 167 LOGFN(__FILE__, __LINE__, __FUNCTION__);
175 168
176 if (!(method = evas_render_method_lookup("wayland_egl"))) 169 if (!(method = evas_render_method_lookup("wayland_egl")))
177 { 170 {
178 printf("Render method lookup failed for Wayland Egl"); 171 ERR("Render method lookup failed for Wayland_Egl");
179 return NULL; 172 return NULL;
180 } 173 }
181 174
182 if (!ecore_wl_init(disp_name)) 175 if (!ecore_wl_init(disp_name))
183 { 176 {
184 printf("Failed to initialize Ecore Wayland"); 177 ERR("Failed to initialize Ecore_Wayland");
185 return NULL; 178 return NULL;
186 } 179 }
187 180
188 if (!(ee = calloc(1, sizeof(Ecore_Evas)))) 181 if (!(ee = calloc(1, sizeof(Ecore_Evas))))
189 { 182 {
190 printf("Failed to allocate Ecore_Evas."); 183 ERR("Failed to allocate Ecore_Evas");
191 ecore_wl_shutdown(); 184 ecore_wl_shutdown();
192 return NULL; 185 return NULL;
193 } 186 }
@@ -204,17 +197,22 @@ ecore_evas_wayland_egl_new(const char *disp_name, int x, int y, int w, int h, in
204 if (w < 1) w = 1; 197 if (w < 1) w = 1;
205 if (h < 1) h = 1; 198 if (h < 1) h = 1;
206 199
207 ee->req.x = ee->x = x; 200 ee->x = x;
208 ee->req.y = ee->y = y; 201 ee->y = y;
209 ee->req.w = ee->w = w; 202 ee->w = w;
210 ee->req.h = ee->h = h; 203 ee->h = h;
204 ee->req.x = ee->x;
205 ee->req.y = ee->y;
206 ee->req.w = ee->w;
207 ee->req.h = ee->h;
211 ee->rotation = 0; 208 ee->rotation = 0;
212 ee->prop.max.w = ee->prop.max.h = 32767; 209 ee->prop.max.w = 32767;
210 ee->prop.max.h = 32767;
213 ee->prop.layer = 4; 211 ee->prop.layer = 4;
214 ee->prop.request_pos = 0; 212 ee->prop.request_pos = 0;
215 ee->prop.sticky = 0; 213 ee->prop.sticky = 0;
216 ee->prop.draw_frame = frame; 214 ee->prop.draw_frame = frame;
217 ee->prop.window = _win_id++; 215 ee->alpha = EINA_FALSE;
218 216
219 ee->evas = evas_new(); 217 ee->evas = evas_new();
220 evas_data_attach_set(ee->evas, ee); 218 evas_data_attach_set(ee->evas, ee);
@@ -222,29 +220,43 @@ ecore_evas_wayland_egl_new(const char *disp_name, int x, int y, int w, int h, in
222 evas_output_size_set(ee->evas, ee->w, ee->h); 220 evas_output_size_set(ee->evas, ee->w, ee->h);
223 evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h); 221 evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
224 222
225 if (ee->prop.draw_frame) 223 /* FIXME: This needs to be set based on theme & scale */
224 if (ee->prop.draw_frame)
226 evas_output_framespace_set(ee->evas, 4, 18, 8, 22); 225 evas_output_framespace_set(ee->evas, 4, 18, 8, 22);
227 226
228 if ((einfo = (Evas_Engine_Info_Wayland_Egl *)evas_engine_info_get(ee->evas))) 227 if (parent)
228 p = ecore_wl_window_find(parent);
229
230 /* FIXME: Get if parent is alpha, and set */
231
232 ee->engine.wl.parent = p;
233 ee->engine.wl.win =
234 ecore_wl_window_new(p, x, y, w, h, ECORE_WL_WINDOW_BUFFER_TYPE_EGL_WINDOW);
235 ee->prop.window = ee->engine.wl.win->id;
236
237 if ((einfo = (Evas_Engine_Info_Wayland_Egl *)evas_engine_info_get(ee->evas)))
229 { 238 {
230 einfo->info.display = ecore_wl_display_get(); 239 einfo->info.display = ecore_wl_display_get();
240 einfo->info.destination_alpha = EINA_FALSE;
231 einfo->info.rotation = ee->rotation; 241 einfo->info.rotation = ee->rotation;
232 if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo)) 242 if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
233 { 243 {
234 printf("Failed to set Evas Engine Info for '%s'.", ee->driver); 244 ERR("Failed to set Evas Engine Info for '%s'", ee->driver);
235 ecore_evas_free(ee); 245 ecore_evas_free(ee);
246 _ecore_evas_wl_shutdown();
247 ecore_wl_shutdown();
236 return NULL; 248 return NULL;
237 } 249 }
238 } 250 }
239 else 251 else
240 { 252 {
241 printf("Failed to get Evas Engine Info for '%s'.", ee->driver); 253 ERR("Failed to get Evas Engine Info for '%s'", ee->driver);
242 ecore_evas_free(ee); 254 ecore_evas_free(ee);
255 _ecore_evas_wl_shutdown();
256 ecore_wl_shutdown();
243 return NULL; 257 return NULL;
244 } 258 }
245 259
246 /* NB: we need to be notified before 'free' so we can munmap the evas
247 * engine destination */
248 ecore_evas_callback_pre_free_set(ee, _ecore_evas_wl_pre_free); 260 ecore_evas_callback_pre_free_set(ee, _ecore_evas_wl_pre_free);
249 261
250 if (ee->prop.draw_frame) 262 if (ee->prop.draw_frame)
@@ -270,37 +282,28 @@ ecore_evas_wayland_egl_new(const char *disp_name, int x, int y, int w, int h, in
270 282
271/* local functions */ 283/* local functions */
272static int 284static int
273_ecore_evas_wl_init(void) 285_ecore_evas_wl_init(void)
274{ 286{
275 LOGFN(__FILE__, __LINE__, __FUNCTION__); 287 LOGFN(__FILE__, __LINE__, __FUNCTION__);
276 288
277 if (++_ecore_evas_wl_init_count != 1) 289 if (++_ecore_evas_wl_init_count != 1)
278 return _ecore_evas_wl_init_count; 290 return _ecore_evas_wl_init_count;
279 291
280 _ecore_evas_wl_event_handlers[0] = 292 _ecore_evas_wl_event_hdls[0] =
281 ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN,
282 _ecore_evas_wl_event_mouse_down, NULL);
283 _ecore_evas_wl_event_handlers[1] =
284 ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_UP,
285 _ecore_evas_wl_event_mouse_up, NULL);
286 _ecore_evas_wl_event_handlers[2] =
287 ecore_event_handler_add(ECORE_EVENT_MOUSE_MOVE,
288 _ecore_evas_wl_event_mouse_move, NULL);
289 _ecore_evas_wl_event_handlers[3] =
290 ecore_event_handler_add(ECORE_EVENT_MOUSE_WHEEL,
291 _ecore_evas_wl_event_mouse_wheel, NULL);
292 _ecore_evas_wl_event_handlers[4] =
293 ecore_event_handler_add(ECORE_WL_EVENT_MOUSE_IN, 293 ecore_event_handler_add(ECORE_WL_EVENT_MOUSE_IN,
294 _ecore_evas_wl_event_mouse_in, NULL); 294 _ecore_evas_wl_cb_mouse_in, NULL);
295 _ecore_evas_wl_event_handlers[5] = 295 _ecore_evas_wl_event_hdls[1] =
296 ecore_event_handler_add(ECORE_WL_EVENT_MOUSE_OUT, 296 ecore_event_handler_add(ECORE_WL_EVENT_MOUSE_OUT,
297 _ecore_evas_wl_event_mouse_out, NULL); 297 _ecore_evas_wl_cb_mouse_out, NULL);
298 _ecore_evas_wl_event_handlers[6] = 298 _ecore_evas_wl_event_hdls[2] =
299 ecore_event_handler_add(ECORE_WL_EVENT_FOCUS_IN, 299 ecore_event_handler_add(ECORE_WL_EVENT_FOCUS_IN,
300 _ecore_evas_wl_event_focus_in, NULL); 300 _ecore_evas_wl_cb_focus_in, NULL);
301 _ecore_evas_wl_event_handlers[7] = 301 _ecore_evas_wl_event_hdls[3] =
302 ecore_event_handler_add(ECORE_WL_EVENT_FOCUS_OUT, 302 ecore_event_handler_add(ECORE_WL_EVENT_FOCUS_OUT,
303 _ecore_evas_wl_event_focus_out, NULL); 303 _ecore_evas_wl_cb_focus_out, NULL);
304 _ecore_evas_wl_event_hdls[4] =
305 ecore_event_handler_add(ECORE_WL_EVENT_WINDOW_CONFIGURE,
306 _ecore_evas_wl_cb_window_configure, NULL);
304 307
305 ecore_event_evas_init(); 308 ecore_event_evas_init();
306 309
@@ -308,7 +311,7 @@ _ecore_evas_wl_init(void)
308} 311}
309 312
310static int 313static int
311_ecore_evas_wl_shutdown(void) 314_ecore_evas_wl_shutdown(void)
312{ 315{
313 unsigned int i = 0; 316 unsigned int i = 0;
314 317
@@ -317,10 +320,10 @@ _ecore_evas_wl_shutdown(void)
317 if (--_ecore_evas_wl_init_count != 0) 320 if (--_ecore_evas_wl_init_count != 0)
318 return _ecore_evas_wl_init_count; 321 return _ecore_evas_wl_init_count;
319 322
320 for (i = 0; i < sizeof(_ecore_evas_wl_event_handlers) / sizeof(Ecore_Event_Handler *); i++) 323 for (i = 0; i < sizeof(_ecore_evas_wl_event_hdls) / sizeof(Ecore_Event_Handler *); i++)
321 { 324 {
322 if (_ecore_evas_wl_event_handlers[i]) 325 if (_ecore_evas_wl_event_hdls[i])
323 ecore_event_handler_del(_ecore_evas_wl_event_handlers[i]); 326 ecore_event_handler_del(_ecore_evas_wl_event_hdls[i]);
324 } 327 }
325 328
326 ecore_event_evas_shutdown(); 329 ecore_event_evas_shutdown();
@@ -338,24 +341,16 @@ _ecore_evas_wl_pre_free(Ecore_Evas *ee)
338} 341}
339 342
340static void 343static void
341_ecore_evas_wl_free(Ecore_Evas *ee) 344_ecore_evas_wl_free(Ecore_Evas *ee)
342{ 345{
343 LOGFN(__FILE__, __LINE__, __FUNCTION__); 346 LOGFN(__FILE__, __LINE__, __FUNCTION__);
344 347
345 if (ee) 348 if (ee->engine.wl.win) ecore_wl_window_free(ee->engine.wl.win);
346 { 349 ee->engine.wl.win = NULL;
347 /* destroy shell surface */
348 if (ee->engine.wl.shell_surface)
349 wl_shell_surface_destroy(ee->engine.wl.shell_surface);
350 ee->engine.wl.shell_surface = NULL;
351 350
352 /* destroy surface */ 351 ecore_event_window_unregister(ee->prop.window);
353 if (ee->engine.wl.surface) wl_surface_destroy(ee->engine.wl.surface); 352 ecore_evas_input_event_unregister(ee);
354 ee->engine.wl.surface = NULL;
355 353
356 ecore_event_window_unregister(ee->prop.window);
357 ecore_evas_input_event_unregister(ee);
358 }
359 _ecore_evas_wl_shutdown(); 354 _ecore_evas_wl_shutdown();
360 ecore_wl_shutdown(); 355 ecore_wl_shutdown();
361} 356}
@@ -415,138 +410,131 @@ _ecore_evas_wl_callback_mouse_in_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee
415} 410}
416 411
417static void 412static void
418_ecore_evas_wl_move(Ecore_Evas *ee, int x, int y) 413_ecore_evas_wl_callback_mouse_out_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee))
414{
415 LOGFN(__FILE__, __LINE__, __FUNCTION__);
416
417 if (!ee) return;
418 ee->func.fn_mouse_out = func;
419}
420
421static void
422_ecore_evas_wl_move(Ecore_Evas *ee, int x, int y)
419{ 423{
420 LOGFN(__FILE__, __LINE__, __FUNCTION__); 424 LOGFN(__FILE__, __LINE__, __FUNCTION__);
421 425
422 if (!ee) return; 426 if (!ee) return;
423// if ((ee->x == x) && (ee->y == y)) return;
424 ee->req.x = x; 427 ee->req.x = x;
425 ee->req.y = y; 428 ee->req.y = y;
426
427 ee->x = x; 429 ee->x = x;
428 ee->y = y; 430 ee->y = y;
429 if (ee->engine.wl.shell_surface) 431 if (ee->engine.wl.win) ecore_wl_window_move(ee->engine.wl.win, x, y);
430 {
431 wl_shell_surface_move(ee->engine.wl.shell_surface,
432 ecore_wl_input_device_get(),
433 _ecore_evas_wl_btn_timestamp);
434 }
435 if (ee->func.fn_move) ee->func.fn_move(ee); 432 if (ee->func.fn_move) ee->func.fn_move(ee);
436} 433}
437 434
438static void 435static void
439_ecore_evas_wl_resize(Ecore_Evas *ee, int w, int h) 436_ecore_evas_wl_resize(Ecore_Evas *ee, int w, int h)
440{ 437{
441 LOGFN(__FILE__, __LINE__, __FUNCTION__); 438 LOGFN(__FILE__, __LINE__, __FUNCTION__);
442 439
443 if (!ee) return; 440 if (!ee) return;
444 if (w < 1) w = 1; 441 if (w < 1) w = 1;
445 if (h < 1) h = 1; 442 if (h < 1) h = 1;
446 if ((ee->w == w) && (ee->h == h)) return; 443// if ((ee->w == w) && (ee->h == h)) return;
444
445 if (ee->prop.min.w > w) w = ee->prop.min.w;
446 else if (w > ee->prop.max.w) w = ee->prop.max.w;
447 if (ee->prop.min.h > h) h = ee->prop.min.h;
448 else if (h > ee->prop.max.h) h = ee->prop.max.h;
447 449
448 ee->req.w = w; 450 ee->req.w = w;
449 ee->req.h = h; 451 ee->req.h = h;
450 452
451 /* if (ee->visible) */ 453// ecore_wl_window_damage(ee->engine.wl.win, 0, 0, ee->w, ee->h);
452 /* { */
453 /* damage old surface, if it exists */
454
455 /* NB: This removes any lingering screen artifacts in the compositor.
456 * This may be a 'HACK' if the issue is actually in the wayland
457 * compositor, but for now lets implement this so we don't have screen
458 * artifacts laying around during a resize */
459 /* if (ee->engine.wl.surface) */
460 /* wl_surface_damage(ee->engine.wl.surface, 0, 0, ee->w, ee->h); */
461 /* } */
462 454
463 ee->w = w; 455 ee->w = w;
464 ee->h = h; 456 ee->h = h;
465 457
466// ecore_wl_flush(); 458 /* change evas output & viewport sizes */
467
468 evas_output_size_set(ee->evas, ee->w, ee->h); 459 evas_output_size_set(ee->evas, ee->w, ee->h);
469 evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h); 460 evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
470 evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h); 461 evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
471 if (ee->engine.wl.frame) 462 if (ee->engine.wl.frame)
472 evas_object_resize(ee->engine.wl.frame, ee->w, ee->h); 463 evas_object_resize(ee->engine.wl.frame, ee->w, ee->h);
473 464
474 /* if ((ee->visible) && (ee->engine.wl.surface)) */ 465 /* set new engine destination */
475 /* wl_surface_damage(ee->engine.wl.surface, 0, 0, ee->w, ee->h); */ 466 /* evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); */
467
468 /* ecore_wl_window_damage(ee->engine.wl.win, 0, 0, ee->w, ee->h); */
469 ecore_wl_flush();
470
471 ecore_wl_window_update_size(ee->engine.wl.win, ee->w, ee->h);
476 472
477 if (ee->func.fn_resize) ee->func.fn_resize(ee); 473 if (ee->func.fn_resize) ee->func.fn_resize(ee);
478} 474}
479 475
480static void 476static void
481_ecore_evas_wl_show(Ecore_Evas *ee) 477_ecore_evas_wl_show(Ecore_Evas *ee)
482{ 478{
483 Evas_Engine_Info_Wayland_Egl *einfo; 479 Evas_Engine_Info_Wayland_Egl *einfo;
484 480
485 LOGFN(__FILE__, __LINE__, __FUNCTION__); 481 LOGFN(__FILE__, __LINE__, __FUNCTION__);
486 482
487 if (!ee) return; 483 if ((!ee) || (ee->visible)) return;
488 if (ee->visible) return;
489
490 einfo = (Evas_Engine_Info_Wayland_Egl *)evas_engine_info_get(ee->evas);
491 484
492 /* create new surface */ 485 if (ee->engine.wl.win)
493 ee->engine.wl.surface = 486 {
494 wl_compositor_create_surface(ecore_wl_compositor_get()); 487 ecore_wl_window_show(ee->engine.wl.win);
495 wl_surface_set_user_data(ee->engine.wl.surface, (void *)ee->prop.window); 488 ecore_wl_flush();
489 }
496 490
497 /* create new shell surface */ 491 einfo = (Evas_Engine_Info_Wayland_Egl *)evas_engine_info_get(ee->evas);
498 ee->engine.wl.shell_surface = 492 if (!einfo)
499 wl_shell_get_shell_surface(ecore_wl_shell_get(), ee->engine.wl.surface); 493 {
494 ERR("Failed to get Evas Engine Info for '%s'", ee->driver);
495 return;
496 }
500 497
501 /* set the engine surface here. This should trigger an egl window create */ 498 einfo->info.surface = ecore_wl_window_surface_get(ee->engine.wl.win);
502 einfo->info.surface = ee->engine.wl.surface;
503 evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); 499 evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
504 500
505 /* add listener for configure events (happen on shell surface resize) */
506 wl_shell_surface_add_listener(ee->engine.wl.shell_surface,
507 &_ecore_evas_wl_shell_surface_listener, ee);
508
509 /* Raise this surface to the top */
510 wl_shell_surface_set_toplevel(ee->engine.wl.shell_surface);
511
512 if (ee->engine.wl.frame) 501 if (ee->engine.wl.frame)
513 { 502 {
514 evas_object_show(ee->engine.wl.frame); 503 evas_object_show(ee->engine.wl.frame);
515 evas_object_resize(ee->engine.wl.frame, ee->w, ee->h); 504 evas_object_resize(ee->engine.wl.frame, ee->w, ee->h);
516 } 505 }
517 506
518 ecore_wl_flush(); 507 /* ecore_wl_window_buffer_attach(ee->engine.wl.win, ee->engine.wl.buffer, 0, 0); */
519 508
520 ee->visible = 1; 509 ee->visible = 1;
521 if (ee->func.fn_show) ee->func.fn_show(ee); 510 if (ee->func.fn_show) ee->func.fn_show(ee);
522} 511}
523 512
524static void 513static void
525_ecore_evas_wl_hide(Ecore_Evas *ee) 514_ecore_evas_wl_hide(Ecore_Evas *ee)
526{ 515{
527 Evas_Engine_Info_Wayland_Egl *einfo; 516 Evas_Engine_Info_Wayland_Egl *einfo;
528 517
529 LOGFN(__FILE__, __LINE__, __FUNCTION__); 518 LOGFN(__FILE__, __LINE__, __FUNCTION__);
530 519
531 if (!ee) return; 520 if ((!ee) || (!ee->visible)) return;
532 if (!ee->visible) return;
533
534 /* get engine info */
535 einfo = (Evas_Engine_Info_Wayland_Egl *)evas_engine_info_get(ee->evas);
536 einfo->info.surface = NULL;
537 evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
538 521
539 /* destroy shell surface */ 522 if (ee->engine.wl.win)
540 if (ee->engine.wl.shell_surface) 523 {
541 wl_shell_surface_destroy(ee->engine.wl.shell_surface); 524 ecore_wl_window_hide(ee->engine.wl.win);
542 ee->engine.wl.shell_surface = NULL; 525 ecore_wl_flush();
526 }
543 527
544 /* destroy surface */ 528 einfo = (Evas_Engine_Info_Wayland_Egl *)evas_engine_info_get(ee->evas);
545 if (ee->engine.wl.surface) wl_surface_destroy(ee->engine.wl.surface); 529 if (einfo)
546 ee->engine.wl.surface = NULL; 530 {
531 einfo->info.surface = NULL;
532 evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
533 }
547 534
548 ee->visible = 0; 535 ee->visible = 0;
549 ee->should_be_visible = 0; 536 ee->should_be_visible = 0;
537
550 if (ee->func.fn_hide) ee->func.fn_hide(ee); 538 if (ee->func.fn_hide) ee->func.fn_hide(ee);
551} 539}
552 540
@@ -556,39 +544,18 @@ _ecore_evas_wl_raise(Ecore_Evas *ee)
556 LOGFN(__FILE__, __LINE__, __FUNCTION__); 544 LOGFN(__FILE__, __LINE__, __FUNCTION__);
557 545
558 if ((!ee) || (!ee->visible)) return; 546 if ((!ee) || (!ee->visible)) return;
559 if (!ee->engine.wl.shell_surface) return; 547 ecore_wl_window_raise(ee->engine.wl.win);
560 wl_shell_surface_set_toplevel(ee->engine.wl.shell_surface);
561}
562
563static void
564_ecore_evas_wl_lower(Ecore_Evas *ee)
565{
566 LOGFN(__FILE__, __LINE__, __FUNCTION__);
567
568 if ((!ee) || (!ee->visible)) return;
569 /* FIXME: Need a way to tell Wayland to lower */
570}
571
572static void
573_ecore_evas_wl_activate(Ecore_Evas *ee)
574{
575 LOGFN(__FILE__, __LINE__, __FUNCTION__);
576
577 if ((!ee) || (!ee->visible)) return;
578 if (!ee->engine.wl.shell_surface) return;
579 wl_shell_surface_set_toplevel(ee->engine.wl.shell_surface);
580} 548}
581 549
582static void 550static void
583_ecore_evas_wl_title_set(Ecore_Evas *ee, const char *t) 551_ecore_evas_wl_title_set(Ecore_Evas *ee, const char *title)
584{ 552{
585 LOGFN(__FILE__, __LINE__, __FUNCTION__); 553 LOGFN(__FILE__, __LINE__, __FUNCTION__);
586 554
587 if (!ee) return; 555 if (!ee) return;
588 if (ee->prop.title) free(ee->prop.title); 556 if (ee->prop.title) free(ee->prop.title);
589 ee->prop.title = NULL; 557 ee->prop.title = NULL;
590 if (t) ee->prop.title = strdup(t); 558 if (title) ee->prop.title = strdup(title);
591
592 if ((ee->prop.draw_frame) && (ee->engine.wl.frame)) 559 if ((ee->prop.draw_frame) && (ee->engine.wl.frame))
593 { 560 {
594 EE_Wl_Smart_Data *sd; 561 EE_Wl_Smart_Data *sd;
@@ -666,106 +633,101 @@ _ecore_evas_wl_size_step_set(Ecore_Evas *ee, int w, int h)
666} 633}
667 634
668static void 635static void
669_ecore_evas_wl_object_cursor_set(Ecore_Evas *ee, Evas_Object *obj, int layer, int hot_x, int hot_y) 636_ecore_evas_wl_layer_set(Ecore_Evas *ee, int layer)
670{ 637{
671 int x = 0, y = 0;
672
673 LOGFN(__FILE__, __LINE__, __FUNCTION__); 638 LOGFN(__FILE__, __LINE__, __FUNCTION__);
674 639
675 if (!ee) return; 640 if (!ee) return;
676 if (ee->prop.cursor.object) evas_object_del(ee->prop.cursor.object); 641 if (ee->prop.layer == layer) return;
677 ee->prop.cursor.object = NULL; 642 if (layer < 1) layer = 1;
678 643 else if (layer > 255) layer = 255;
679 if (!obj) 644 ee->prop.layer = layer;
680 {
681 ee->prop.cursor.layer = 0;
682 ee->prop.cursor.hot.x = 0;
683 ee->prop.cursor.hot.y = 0;
684 return;
685 }
686
687 ee->prop.cursor.object = obj;
688 ee->prop.cursor.layer = layer;
689 ee->prop.cursor.hot.x = hot_x;
690 ee->prop.cursor.hot.y = hot_y;
691
692 evas_pointer_output_xy_get(ee->evas, &x, &y);
693 evas_object_layer_set(ee->prop.cursor.object, ee->prop.cursor.layer);
694 evas_object_move(ee->prop.cursor.object,
695 x - ee->prop.cursor.hot.x, y - ee->prop.cursor.hot.y);
696 evas_object_pass_events_set(ee->prop.cursor.object, 1);
697 if (evas_pointer_inside_get(ee->evas))
698 evas_object_show(ee->prop.cursor.object);
699
700 evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL,
701 _ecore_evas_wl_object_cursor_del, ee);
702} 645}
703 646
704static void 647static void
705_ecore_evas_wl_object_cursor_del(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event __UNUSED__) 648_ecore_evas_wl_iconified_set(Ecore_Evas *ee, int iconify)
706{ 649{
707 Ecore_Evas *ee; 650 LOGFN(__FILE__, __LINE__, __FUNCTION__);
708 651
709 if (!(ee = data)) return; 652 if (!ee) return;
710 ee->prop.cursor.object = NULL; 653 if (ee->prop.iconified == iconify) return;
654 ee->prop.iconified = iconify;
655 /* FIXME: Implement this in Wayland someshow */
711} 656}
712 657
713static void 658static void
714_ecore_evas_wl_layer_set(Ecore_Evas *ee, int layer) 659_ecore_evas_wl_maximized_set(Ecore_Evas *ee, int max)
715{ 660{
716 LOGFN(__FILE__, __LINE__, __FUNCTION__); 661 LOGFN(__FILE__, __LINE__, __FUNCTION__);
717 662
718 if (!ee) return; 663 if (!ee) return;
719 if (ee->prop.layer == layer) return; 664 if (ee->prop.maximized == max) return;
720 if (layer < 1) layer = 1; 665 ee->prop.maximized = max;
721 else if (layer > 255) layer = 255; 666 ecore_wl_window_maximized_set(ee->engine.wl.win, max);
722 ee->prop.layer = layer;
723} 667}
724 668
725static void 669static void
726_ecore_evas_wl_focus_set(Ecore_Evas *ee, int focus __UNUSED__) 670_ecore_evas_wl_fullscreen_set(Ecore_Evas *ee, int full)
727{ 671{
728 LOGFN(__FILE__, __LINE__, __FUNCTION__); 672 LOGFN(__FILE__, __LINE__, __FUNCTION__);
729 673
730 if ((!ee) || (!ee->visible)) return; 674 if ((!ee) || (!ee->visible)) return;
731 if (!ee->engine.wl.shell_surface) return; 675 if (ee->prop.fullscreen == full) return;
732 wl_shell_surface_set_toplevel(ee->engine.wl.shell_surface); 676 ee->prop.fullscreen = full;
677 ecore_wl_window_fullscreen_set(ee->engine.wl.win, full);
733} 678}
734 679
735static void 680static void
736_ecore_evas_wl_iconified_set(Ecore_Evas *ee, int iconify) 681_ecore_evas_wl_ignore_events_set(Ecore_Evas *ee, int ignore)
737{ 682{
738 LOGFN(__FILE__, __LINE__, __FUNCTION__); 683 LOGFN(__FILE__, __LINE__, __FUNCTION__);
739 684
740 if (!ee) return; 685 if (!ee) return;
741 if (ee->prop.iconified == iconify) return; 686 ee->ignore_events = ignore;
742 ee->prop.iconified = iconify; 687 /* NB: Hmmm, may need to pass this to ecore_wl_window in the future */
743 /* FIXME: Implement this in Wayland someshow */
744} 688}
745 689
746static void 690static void
747_ecore_evas_wl_maximized_set(Ecore_Evas *ee, int max) 691_ecore_evas_wl_alpha_set(Ecore_Evas *ee, int alpha)
748{ 692{
693 Evas_Engine_Info_Wayland_Egl *einfo;
694
749 LOGFN(__FILE__, __LINE__, __FUNCTION__); 695 LOGFN(__FILE__, __LINE__, __FUNCTION__);
750 696
751 if (!ee) return; 697 if (!ee) return;
752 if (ee->prop.maximized == max) return; 698 if ((ee->alpha == alpha)) return;
753 ee->prop.maximized = max; 699 ee->alpha = alpha;
754 /* FIXME: Implement this in Wayland someshow */ 700 if ((einfo = (Evas_Engine_Info_Wayland_Egl *)evas_engine_info_get(ee->evas)))
701 {
702 einfo->info.destination_alpha = alpha;
703 if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
704 ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
705 evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
706 }
755} 707}
756 708
757static void 709static void
758_ecore_evas_wl_fullscreen_set(Ecore_Evas *ee, int full __UNUSED__) 710_ecore_evas_wl_transparent_set(Ecore_Evas *ee, int transparent)
759{ 711{
712 Evas_Engine_Info_Wayland_Egl *einfo;
713
760 LOGFN(__FILE__, __LINE__, __FUNCTION__); 714 LOGFN(__FILE__, __LINE__, __FUNCTION__);
761 715
762 if ((!ee) || (!ee->visible)) return; 716 if (!ee) return;
763 if (!ee->engine.wl.shell_surface) return; 717 if ((ee->transparent == transparent)) return;
764 wl_shell_surface_set_fullscreen(ee->engine.wl.shell_surface); 718 ee->transparent = transparent;
719 if (!ee->visible) return;
720 if ((einfo = (Evas_Engine_Info_Wayland_Egl *)evas_engine_info_get(ee->evas)))
721 {
722 einfo->info.destination_alpha = transparent;
723 if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
724 ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
725 evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
726 }
765} 727}
766 728
767static int 729static int
768_ecore_evas_wl_render(Ecore_Evas *ee) 730_ecore_evas_wl_render(Ecore_Evas *ee)
769{ 731{
770 int rend = 0; 732 int rend = 0;
771 733
@@ -789,26 +751,24 @@ _ecore_evas_wl_render(Ecore_Evas *ee)
789 751
790 if ((updates = evas_render_updates(ee->evas))) 752 if ((updates = evas_render_updates(ee->evas)))
791 { 753 {
792 /* if (ee->engine.wl.surface) */ 754 Eina_List *l = NULL;
793 /* { */ 755 Eina_Rectangle *r;
794 /* Eina_List *l = NULL; */ 756
795 /* Eina_Rectangle *r; */ 757 LOGFN(__FILE__, __LINE__, __FUNCTION__);
796 758
797 /* EINA_LIST_FOREACH(updates, l, r) */ 759 EINA_LIST_FOREACH(updates, l, r)
798 /* wl_surface_damage(ee->engine.wl.surface, */ 760 ecore_wl_window_damage(ee->engine.wl.win,
799 /* r->x, r->y, r->w, r->h); */ 761 r->x, r->y, r->w, r->h);
800 /* } */ 762
763 ecore_wl_flush();
801 764
802 evas_render_updates_free(updates); 765 evas_render_updates_free(updates);
803 _ecore_evas_idle_timeout_update(ee); 766 _ecore_evas_idle_timeout_update(ee);
804 rend = 1; 767 rend = 1;
805
806 ecore_wl_flush();
807 } 768 }
808 769
809 if (ee->func.fn_post_render) ee->func.fn_post_render(ee); 770 if (ee->func.fn_post_render) ee->func.fn_post_render(ee);
810 } 771 }
811
812 return rend; 772 return rend;
813} 773}
814 774
@@ -822,77 +782,18 @@ _ecore_evas_wl_screen_geometry_get(const Ecore_Evas *ee __UNUSED__, int *x, int
822 ecore_wl_screen_size_get(w, h); 782 ecore_wl_screen_size_get(w, h);
823} 783}
824 784
825static Eina_Bool 785void
826_ecore_evas_wl_event_mouse_down(void *data __UNUSED__, int type __UNUSED__, void *event) 786_ecore_evas_wayland_egl_resize(Ecore_Evas *ee, int location)
827{
828 Ecore_Evas *ee;
829 Ecore_Event_Mouse_Button *ev;
830
831 LOGFN(__FILE__, __LINE__, __FUNCTION__);
832
833 ev = event;
834 _ecore_evas_wl_btn_timestamp = ev->timestamp;
835 ee = ecore_event_window_match(ev->window);
836 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
837 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
838 evas_event_feed_mouse_down(ee->evas, ev->buttons, ev->modifiers,
839 ev->timestamp, NULL);
840 return ECORE_CALLBACK_PASS_ON;
841}
842
843static Eina_Bool
844_ecore_evas_wl_event_mouse_up(void *data __UNUSED__, int type __UNUSED__, void *event)
845{
846 Ecore_Evas *ee;
847 Ecore_Event_Mouse_Button *ev;
848
849 LOGFN(__FILE__, __LINE__, __FUNCTION__);
850
851 ev = event;
852 ee = ecore_event_window_match(ev->window);
853 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
854 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
855 evas_event_feed_mouse_up(ee->evas, ev->buttons, ev->modifiers,
856 ev->timestamp, NULL);
857 return ECORE_CALLBACK_PASS_ON;
858}
859
860static Eina_Bool
861_ecore_evas_wl_event_mouse_move(void *data __UNUSED__, int type __UNUSED__, void *event)
862{
863 Ecore_Evas *ee;
864 Ecore_Event_Mouse_Move *ev;
865
866 ev = event;
867 ee = ecore_event_window_match(ev->window);
868 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
869 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
870 ee->mouse.x = ev->x;
871 ee->mouse.y = ev->y;
872 evas_event_feed_mouse_move(ee->evas, ev->x, ev->y, ev->timestamp, NULL);
873 _ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->timestamp);
874 return ECORE_CALLBACK_PASS_ON;
875}
876
877static Eina_Bool
878_ecore_evas_wl_event_mouse_wheel(void *data __UNUSED__, int type __UNUSED__, void *event)
879{ 787{
880 Ecore_Evas *ee;
881 Ecore_Event_Mouse_Wheel *ev;
882
883 LOGFN(__FILE__, __LINE__, __FUNCTION__); 788 LOGFN(__FILE__, __LINE__, __FUNCTION__);
884 789
885 ev = event; 790 if (!ee) return;
886 ee = ecore_event_window_match(ev->window); 791 if (ee->engine.wl.win)
887 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON; 792 ecore_wl_window_resize(ee->engine.wl.win, ee->w, ee->h, location);
888 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
889 evas_event_feed_mouse_wheel(ee->evas, ev->direction, ev->z,
890 ev->timestamp, NULL);
891 return ECORE_CALLBACK_PASS_ON;
892} 793}
893 794
894static Eina_Bool 795static Eina_Bool
895_ecore_evas_wl_event_mouse_in(void *data __UNUSED__, int type __UNUSED__, void *event) 796_ecore_evas_wl_cb_mouse_in(void *data __UNUSED__, int type __UNUSED__, void *event)
896{ 797{
897 Ecore_Evas *ee; 798 Ecore_Evas *ee;
898 Ecore_Wl_Event_Mouse_In *ev; 799 Ecore_Wl_Event_Mouse_In *ev;
@@ -900,18 +801,18 @@ _ecore_evas_wl_event_mouse_in(void *data __UNUSED__, int type __UNUSED__, void *
900 LOGFN(__FILE__, __LINE__, __FUNCTION__); 801 LOGFN(__FILE__, __LINE__, __FUNCTION__);
901 802
902 ev = event; 803 ev = event;
903 ee = ecore_event_window_match(ev->window); 804 ee = ecore_event_window_match(ev->win);
904 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON; 805 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
905 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON; 806 if (ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
906 if (ee->func.fn_mouse_in) ee->func.fn_mouse_in(ee); 807 if (ee->func.fn_mouse_in) ee->func.fn_mouse_in(ee);
907 ecore_event_evas_modifier_lock_update(ee->evas, ev->modifiers); 808 ecore_event_evas_modifier_lock_update(ee->evas, ev->modifiers);
908 evas_event_feed_mouse_in(ee->evas, ev->time, NULL); 809 evas_event_feed_mouse_in(ee->evas, ev->timestamp, NULL);
909 _ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->time); 810 _ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->timestamp);
910 return ECORE_CALLBACK_PASS_ON; 811 return ECORE_CALLBACK_PASS_ON;
911} 812}
912 813
913static Eina_Bool 814static Eina_Bool
914_ecore_evas_wl_event_mouse_out(void *data __UNUSED__, int type __UNUSED__, void *event) 815_ecore_evas_wl_cb_mouse_out(void *data __UNUSED__, int type __UNUSED__, void *event)
915{ 816{
916 Ecore_Evas *ee; 817 Ecore_Evas *ee;
917 Ecore_Wl_Event_Mouse_Out *ev; 818 Ecore_Wl_Event_Mouse_Out *ev;
@@ -919,19 +820,19 @@ _ecore_evas_wl_event_mouse_out(void *data __UNUSED__, int type __UNUSED__, void
919 LOGFN(__FILE__, __LINE__, __FUNCTION__); 820 LOGFN(__FILE__, __LINE__, __FUNCTION__);
920 821
921 ev = event; 822 ev = event;
922 ee = ecore_event_window_match(ev->window); 823 ee = ecore_event_window_match(ev->win);
923 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON; 824 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
924 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON; 825 if (ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
925 ecore_event_evas_modifier_lock_update(ee->evas, ev->modifiers); 826 ecore_event_evas_modifier_lock_update(ee->evas, ev->modifiers);
926 _ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->time); 827 _ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->timestamp);
927 evas_event_feed_mouse_out(ee->evas, ev->time, NULL); 828 evas_event_feed_mouse_out(ee->evas, ev->timestamp, NULL);
928 if (ee->func.fn_mouse_out) ee->func.fn_mouse_out(ee); 829 if (ee->func.fn_mouse_out) ee->func.fn_mouse_out(ee);
929 if (ee->prop.cursor.object) evas_object_hide(ee->prop.cursor.object); 830 if (ee->prop.cursor.object) evas_object_hide(ee->prop.cursor.object);
930 return ECORE_CALLBACK_PASS_ON; 831 return ECORE_CALLBACK_PASS_ON;
931} 832}
932 833
933static Eina_Bool 834static Eina_Bool
934_ecore_evas_wl_event_focus_in(void *data __UNUSED__, int type __UNUSED__, void *event) 835_ecore_evas_wl_cb_focus_in(void *data __UNUSED__, int type __UNUSED__, void *event)
935{ 836{
936 Ecore_Evas *ee; 837 Ecore_Evas *ee;
937 Ecore_Wl_Event_Focus_In *ev; 838 Ecore_Wl_Event_Focus_In *ev;
@@ -939,9 +840,9 @@ _ecore_evas_wl_event_focus_in(void *data __UNUSED__, int type __UNUSED__, void *
939 LOGFN(__FILE__, __LINE__, __FUNCTION__); 840 LOGFN(__FILE__, __LINE__, __FUNCTION__);
940 841
941 ev = event; 842 ev = event;
942 ee = ecore_event_window_match(ev->window); 843 ee = ecore_event_window_match(ev->win);
943 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON; 844 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
944 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON; 845 if (ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
945 ee->prop.focused = 1; 846 ee->prop.focused = 1;
946 evas_focus_in(ee->evas); 847 evas_focus_in(ee->evas);
947 if (ee->func.fn_focus_in) ee->func.fn_focus_in(ee); 848 if (ee->func.fn_focus_in) ee->func.fn_focus_in(ee);
@@ -949,45 +850,51 @@ _ecore_evas_wl_event_focus_in(void *data __UNUSED__, int type __UNUSED__, void *
949} 850}
950 851
951static Eina_Bool 852static Eina_Bool
952_ecore_evas_wl_event_focus_out(void *data __UNUSED__, int type __UNUSED__, void *event) 853_ecore_evas_wl_cb_focus_out(void *data __UNUSED__, int type __UNUSED__, void *event)
953{ 854{
954 Ecore_Evas *ee; 855 Ecore_Evas *ee;
955 Ecore_Wl_Event_Focus_Out *ev; 856 Ecore_Wl_Event_Focus_In *ev;
956 857
957 LOGFN(__FILE__, __LINE__, __FUNCTION__); 858 LOGFN(__FILE__, __LINE__, __FUNCTION__);
958 859
959 ev = event; 860 ev = event;
960 ee = ecore_event_window_match(ev->window); 861 ee = ecore_event_window_match(ev->win);
961 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON; 862 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
962 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON; 863 if (ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
963 evas_focus_out(ee->evas); 864 evas_focus_out(ee->evas);
964 ee->prop.focused = 0; 865 ee->prop.focused = 0;
965 if (ee->func.fn_focus_out) ee->func.fn_focus_out(ee); 866 if (ee->func.fn_focus_out) ee->func.fn_focus_out(ee);
966 return ECORE_CALLBACK_PASS_ON; 867 return ECORE_CALLBACK_PASS_ON;
967} 868}
968 869
969static void 870static Eina_Bool
970_ecore_evas_wl_handle_configure(void *data, struct wl_shell_surface *shell_surface, uint32_t timestamp __UNUSED__, uint32_t edges __UNUSED__, int32_t width, int32_t height) 871_ecore_evas_wl_cb_window_configure(void *data __UNUSED__, int type __UNUSED__, void *event)
971{ 872{
972 Ecore_Evas *ee; 873 Ecore_Evas *ee;
874 Ecore_Wl_Event_Window_Configure *ev;
973 875
974 /* NB: Trap to prevent compositor from crashing */ 876 LOGFN(__FILE__, __LINE__, __FUNCTION__);
975 if ((width <= 0) || (height <= 0)) return;
976
977 if (!(ee = data)) return;
978 877
979 printf("EGL Handle Configure Message\n"); 878 ev = event;
980 if ((shell_surface) && (ee->engine.wl.shell_surface)) 879 ee = ecore_event_window_match(ev->win);
880 if (!ee) return ECORE_CALLBACK_PASS_ON;
881 if (ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
882 if ((ee->x != ev->x) || (ee->y != ev->y))
981 { 883 {
982 if (ee->engine.wl.shell_surface != shell_surface) return; 884 ee->x = ev->x;
983 ecore_evas_resize(ee, width, height); 885 ee->y = ev->y;
886 ee->req.x = ee->x;
887 ee->req.y = ee->y;
888 if (ee->func.fn_move) ee->func.fn_move(ee);
889 }
890 if ((ee->req.w != ev->w) || (ee->req.h != ev->h))
891 {
892 ee->req.w = ev->w;
893 ee->req.h = ev->h;
894 if (ee->func.fn_resize) ee->func.fn_resize(ee);
984 } 895 }
985}
986
987static void
988_ecore_evas_wl_handle_popup_done(void *data __UNUSED__, struct wl_shell_surface *shell_surface __UNUSED__)
989{
990 896
897 return ECORE_CALLBACK_PASS_ON;
991} 898}
992 899
993static void 900static void
@@ -1101,30 +1008,9 @@ _ecore_evas_wl_frame_add(Evas *evas)
1101 return evas_object_smart_add(evas, _ecore_evas_wl_smart); 1008 return evas_object_smart_add(evas, _ecore_evas_wl_smart);
1102} 1009}
1103 1010
1104void
1105_ecore_evas_wayland_egl_resize(Ecore_Evas *ee, int location)
1106{
1107 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1108
1109 if ((!ee) || (!ee->engine.wl.shell_surface)) return;
1110 wl_shell_surface_resize(ee->engine.wl.shell_surface,
1111 ecore_wl_input_device_get(),
1112 _ecore_evas_wl_btn_timestamp, location);
1113}
1114
1115void
1116_ecore_evas_wayland_egl_drag_start(Ecore_Evas *ee, Ecore_Evas *drag_ee, void *source)
1117{
1118 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1119
1120 if ((!ee) || (!ee->engine.wl.surface)) return;
1121 if ((!source) || (!drag_ee)) return;
1122 ecore_wl_drag_start(source, ee->engine.wl.surface, drag_ee->engine.wl.buffer);
1123}
1124
1125#else 1011#else
1126EAPI Ecore_Evas * 1012EAPI Ecore_Evas *
1127ecore_evas_wayland_egl_new(const char *disp_name __UNUSED__, int x __UNUSED__, int y __UNUSED__, int w __UNUSED__, int h __UNUSED__, int frame __UNUSED__) 1013ecore_evas_wayland_egl_new(const char *disp_name __UNUSED__, unsigned int parent __UNUSED__, int x __UNUSED__, int y __UNUSED__, int w __UNUSED__, int h __UNUSED__, Eina_Bool frame __UNUSED__)
1128{ 1014{
1129 return NULL; 1015 return NULL;
1130} 1016}
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_wayland_shm.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas_wayland_shm.c
index e3b15c8..4c7ee2d 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas_wayland_shm.c
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_wayland_shm.c
@@ -2,7 +2,7 @@
2# include "config.h" 2# include "config.h"
3#endif 3#endif
4 4
5//#define LOGFNS 1 5#define LOGFNS 1
6 6
7#ifdef LOGFNS 7#ifdef LOGFNS
8# include <stdio.h> 8# include <stdio.h>
@@ -20,12 +20,12 @@
20# include <sys/mman.h> 20# include <sys/mman.h>
21#endif 21#endif
22 22
23# include <Eina.h> 23#include <Eina.h>
24# include <Evas.h> 24#include <Evas.h>
25# include <Ecore.h> 25#include <Ecore.h>
26 26
27# include "ecore_evas_private.h" 27#include "ecore_evas_private.h"
28# include "Ecore_Evas.h" 28#include "Ecore_Evas.h"
29 29
30#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM 30#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM
31# include <Evas_Engine_Wayland_Shm.h> 31# include <Evas_Engine_Wayland_Shm.h>
@@ -51,41 +51,34 @@ static void _ecore_evas_wl_callback_delete_request_set(Ecore_Evas *ee, void (*fu
51static void _ecore_evas_wl_callback_focus_in_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee)); 51static void _ecore_evas_wl_callback_focus_in_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee));
52static void _ecore_evas_wl_callback_focus_out_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee)); 52static void _ecore_evas_wl_callback_focus_out_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee));
53static void _ecore_evas_wl_callback_mouse_in_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee)); 53static void _ecore_evas_wl_callback_mouse_in_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee));
54static void _ecore_evas_wl_callback_mouse_out_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee));
54static void _ecore_evas_wl_move(Ecore_Evas *ee, int x, int y); 55static void _ecore_evas_wl_move(Ecore_Evas *ee, int x, int y);
55static void _ecore_evas_wl_resize(Ecore_Evas *ee, int w, int h); 56static void _ecore_evas_wl_resize(Ecore_Evas *ee, int w, int h);
56static void _ecore_evas_wl_show(Ecore_Evas *ee); 57static void _ecore_evas_wl_show(Ecore_Evas *ee);
57static void _ecore_evas_wl_hide(Ecore_Evas *ee); 58static void _ecore_evas_wl_hide(Ecore_Evas *ee);
58static void _ecore_evas_wl_raise(Ecore_Evas *ee); 59static void _ecore_evas_wl_raise(Ecore_Evas *ee);
59static void _ecore_evas_wl_lower(Ecore_Evas *ee); 60static void _ecore_evas_wl_title_set(Ecore_Evas *ee, const char *title);
60static void _ecore_evas_wl_activate(Ecore_Evas *ee);
61static void _ecore_evas_wl_title_set(Ecore_Evas *ee, const char *t);
62static void _ecore_evas_wl_name_class_set(Ecore_Evas *ee, const char *n, const char *c); 61static void _ecore_evas_wl_name_class_set(Ecore_Evas *ee, const char *n, const char *c);
63static void _ecore_evas_wl_size_min_set(Ecore_Evas *ee, int w, int h); 62static void _ecore_evas_wl_size_min_set(Ecore_Evas *ee, int w, int h);
64static void _ecore_evas_wl_size_max_set(Ecore_Evas *ee, int w, int h); 63static void _ecore_evas_wl_size_max_set(Ecore_Evas *ee, int w, int h);
65static void _ecore_evas_wl_size_base_set(Ecore_Evas *ee, int w, int h); 64static void _ecore_evas_wl_size_base_set(Ecore_Evas *ee, int w, int h);
66static void _ecore_evas_wl_size_step_set(Ecore_Evas *ee, int w, int h); 65static void _ecore_evas_wl_size_step_set(Ecore_Evas *ee, int w, int h);
67static void _ecore_evas_wl_object_cursor_set(Ecore_Evas *ee, Evas_Object *obj, int layer, int hot_x, int hot_y);
68static void _ecore_evas_wl_object_cursor_del(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event __UNUSED__);
69static void _ecore_evas_wl_layer_set(Ecore_Evas *ee, int layer); 66static void _ecore_evas_wl_layer_set(Ecore_Evas *ee, int layer);
70static void _ecore_evas_wl_focus_set(Ecore_Evas *ee, int focus __UNUSED__);
71static void _ecore_evas_wl_iconified_set(Ecore_Evas *ee, int iconify); 67static void _ecore_evas_wl_iconified_set(Ecore_Evas *ee, int iconify);
72static void _ecore_evas_wl_maximized_set(Ecore_Evas *ee, int max); 68static void _ecore_evas_wl_maximized_set(Ecore_Evas *ee, int max);
73static void _ecore_evas_wl_fullscreen_set(Ecore_Evas *ee, int full __UNUSED__); 69static void _ecore_evas_wl_fullscreen_set(Ecore_Evas *ee, int full);
70static void _ecore_evas_wl_ignore_events_set(Ecore_Evas *ee, int ignore);
71static void _ecore_evas_wl_alpha_set(Ecore_Evas *ee, int alpha);
72static void _ecore_evas_wl_transparent_set(Ecore_Evas *ee, int transparent);
74static int _ecore_evas_wl_render(Ecore_Evas *ee); 73static int _ecore_evas_wl_render(Ecore_Evas *ee);
75static void _ecore_evas_wl_screen_geometry_get(const Ecore_Evas *ee __UNUSED__, int *x, int *y, int *w, int *h); 74static void _ecore_evas_wl_screen_geometry_get(const Ecore_Evas *ee __UNUSED__, int *x, int *y, int *w, int *h);
76static void _ecore_evas_wl_buffer_new(Ecore_Evas *ee, void **dest); 75static void _ecore_evas_wl_buffer_new(Ecore_Evas *ee, void **dest);
77 76
78static Eina_Bool _ecore_evas_wl_event_mouse_down(void *data __UNUSED__, int type __UNUSED__, void *event); 77static Eina_Bool _ecore_evas_wl_cb_mouse_in(void *data __UNUSED__, int type __UNUSED__, void *event);
79static Eina_Bool _ecore_evas_wl_event_mouse_up(void *data __UNUSED__, int type __UNUSED__, void *event); 78static Eina_Bool _ecore_evas_wl_cb_mouse_out(void *data __UNUSED__, int type __UNUSED__, void *event);
80static Eina_Bool _ecore_evas_wl_event_mouse_move(void *data __UNUSED__, int type __UNUSED__, void *event); 79static Eina_Bool _ecore_evas_wl_cb_focus_in(void *data __UNUSED__, int type __UNUSED__, void *event);
81static Eina_Bool _ecore_evas_wl_event_mouse_wheel(void *data __UNUSED__, int type __UNUSED__, void *event); 80static Eina_Bool _ecore_evas_wl_cb_focus_out(void *data __UNUSED__, int type __UNUSED__, void *event);
82static Eina_Bool _ecore_evas_wl_event_mouse_in(void *data __UNUSED__, int type __UNUSED__, void *event); 81static Eina_Bool _ecore_evas_wl_cb_window_configure(void *data __UNUSED__, int type __UNUSED__, void *event);
83static Eina_Bool _ecore_evas_wl_event_mouse_out(void *data __UNUSED__, int type __UNUSED__, void *event);
84static Eina_Bool _ecore_evas_wl_event_focus_in(void *data __UNUSED__, int type __UNUSED__, void *event);
85static Eina_Bool _ecore_evas_wl_event_focus_out(void *data __UNUSED__, int type __UNUSED__, void *event);
86
87static void _ecore_evas_wl_handle_configure(void *data, struct wl_shell_surface *shell_surface __UNUSED__, uint32_t timestamp __UNUSED__, uint32_t edges __UNUSED__, int32_t width, int32_t height);
88static void _ecore_evas_wl_handle_popup_done(void *data __UNUSED__, struct wl_shell_surface *shell_surface __UNUSED__);
89 82
90/* SMART stuff for frame */ 83/* SMART stuff for frame */
91static Evas_Smart *_ecore_evas_wl_smart = NULL; 84static Evas_Smart *_ecore_evas_wl_smart = NULL;
@@ -101,95 +94,94 @@ static Evas_Object *_ecore_evas_wl_frame_add(Evas *evas);
101 94
102/* local variables */ 95/* local variables */
103static int _ecore_evas_wl_init_count = 0; 96static int _ecore_evas_wl_init_count = 0;
104static Ecore_Event_Handler *_ecore_evas_wl_event_handlers[8]; 97static Ecore_Event_Handler *_ecore_evas_wl_event_hdls[5];
105static uint32_t _ecore_evas_wl_btn_timestamp;
106static const struct wl_shell_surface_listener _ecore_evas_wl_shell_surface_listener =
107{
108 _ecore_evas_wl_handle_configure,
109 _ecore_evas_wl_handle_popup_done
110};
111 98
112static Ecore_Evas_Engine_Func _ecore_wl_engine_func = 99static Ecore_Evas_Engine_Func _ecore_wl_engine_func =
113{ 100{
114 _ecore_evas_wl_free, 101 _ecore_evas_wl_free,
115 _ecore_evas_wl_callback_resize_set, 102 _ecore_evas_wl_callback_resize_set,
116 _ecore_evas_wl_callback_move_set, 103 _ecore_evas_wl_callback_move_set,
117 NULL, // callback show set 104 NULL,
118 NULL, // callback hide set 105 NULL,
119 _ecore_evas_wl_callback_delete_request_set, 106 _ecore_evas_wl_callback_delete_request_set,
120 NULL, // callback destroy set 107 NULL,
121 _ecore_evas_wl_callback_focus_in_set, 108 _ecore_evas_wl_callback_focus_in_set,
122 _ecore_evas_wl_callback_focus_out_set, 109 _ecore_evas_wl_callback_focus_out_set,
123 _ecore_evas_wl_callback_mouse_in_set, 110 _ecore_evas_wl_callback_mouse_in_set,
124 NULL, // callback mouse out set 111 _ecore_evas_wl_callback_mouse_out_set,
125 NULL, // callback sticky set 112 NULL, // sticky_set
126 NULL, // callback unsticky set 113 NULL, // unsticky_set
127 NULL, // callback pre render set 114 NULL, // pre_render_set
128 NULL, // callback post render set 115 NULL, // post_render_set
129 _ecore_evas_wl_move, 116 _ecore_evas_wl_move,
130 NULL, // func managed move 117 NULL, // managed_move
131 _ecore_evas_wl_resize, 118 _ecore_evas_wl_resize,
132 NULL, // func move_resize 119 NULL, // move_resize
133 NULL, // func rotation set 120 NULL, // rotation_set
134 NULL, // func shaped set 121 NULL, // shaped_set
135 _ecore_evas_wl_show, 122 _ecore_evas_wl_show,
136 _ecore_evas_wl_hide, 123 _ecore_evas_wl_hide,
137 _ecore_evas_wl_raise, 124 _ecore_evas_wl_raise,
138 _ecore_evas_wl_lower, 125 NULL, // lower
139 _ecore_evas_wl_activate, 126 NULL, // activate
140 _ecore_evas_wl_title_set, 127 _ecore_evas_wl_title_set,
141 _ecore_evas_wl_name_class_set, 128 _ecore_evas_wl_name_class_set,
142 _ecore_evas_wl_size_min_set, 129 _ecore_evas_wl_size_min_set,
143 _ecore_evas_wl_size_max_set, 130 _ecore_evas_wl_size_max_set,
144 _ecore_evas_wl_size_base_set, 131 _ecore_evas_wl_size_base_set,
145 _ecore_evas_wl_size_step_set, 132 _ecore_evas_wl_size_step_set,
146 _ecore_evas_wl_object_cursor_set, 133 NULL, // object_cursor_set
147 _ecore_evas_wl_layer_set, 134 _ecore_evas_wl_layer_set,
148 _ecore_evas_wl_focus_set, 135 NULL, // focus set
149 _ecore_evas_wl_iconified_set, 136 _ecore_evas_wl_iconified_set,
150 NULL, // func borderless set 137 NULL, // borderless set
151 NULL, // func override set 138 NULL, // override set
152 _ecore_evas_wl_maximized_set, 139 _ecore_evas_wl_maximized_set,
153 _ecore_evas_wl_fullscreen_set, 140 _ecore_evas_wl_fullscreen_set,
154 NULL, // func avoid_damage set 141 NULL, // func avoid_damage set
155 NULL, // func withdrawn set 142 NULL, // func withdrawn set
156 NULL, // func sticky set 143 NULL, // func sticky set
157 NULL, // func ignore_events set 144 _ecore_evas_wl_ignore_events_set,
158 NULL, // func alpha set 145 _ecore_evas_wl_alpha_set,
159 NULL, // func transparent set 146 _ecore_evas_wl_transparent_set,
147 NULL,
148 NULL,
149 NULL,
150 NULL,
151 NULL,
152 NULL,
160 _ecore_evas_wl_render, 153 _ecore_evas_wl_render,
161 _ecore_evas_wl_screen_geometry_get 154 _ecore_evas_wl_screen_geometry_get
162}; 155};
163 156
164/* external variables */ 157/* external variables */
165#endif
166 158
167#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM 159/* external functions */
168EAPI Ecore_Evas * 160EAPI Ecore_Evas *
169ecore_evas_wayland_shm_new(const char *disp_name, int x, int y, int w, int h, int frame) 161ecore_evas_wayland_shm_new(const char *disp_name, unsigned int parent, int x, int y, int w, int h, Eina_Bool frame)
170{ 162{
163 Ecore_Wl_Window *p = NULL;
171 Evas_Engine_Info_Wayland_Shm *einfo; 164 Evas_Engine_Info_Wayland_Shm *einfo;
172 Ecore_Evas *ee; 165 Ecore_Evas *ee;
173 int method = 0; 166 int method = 0;
174 static int _win_id = 1;
175 167
176 LOGFN(__FILE__, __LINE__, __FUNCTION__); 168 LOGFN(__FILE__, __LINE__, __FUNCTION__);
177 169
178 if (!(method = evas_render_method_lookup("wayland_shm"))) 170 if (!(method = evas_render_method_lookup("wayland_shm")))
179 { 171 {
180 ERR("Render method lookup failed."); 172 ERR("Render method lookup failed for Wayland_Shm");
181 return NULL; 173 return NULL;
182 } 174 }
183 175
184 if (!(ecore_wl_init(disp_name))) 176 if (!ecore_wl_init(disp_name))
185 { 177 {
186 ERR("Failed to initialize Ecore Wayland."); 178 ERR("Failed to initialize Ecore_Wayland");
187 return NULL; 179 return NULL;
188 } 180 }
189 181
190 if (!(ee = calloc(1, sizeof(Ecore_Evas)))) 182 if (!(ee = calloc(1, sizeof(Ecore_Evas))))
191 { 183 {
192 ERR("Failed to allocate Ecore_Evas."); 184 ERR("Failed to allocate Ecore_Evas");
193 ecore_wl_shutdown(); 185 ecore_wl_shutdown();
194 return NULL; 186 return NULL;
195 } 187 }
@@ -206,17 +198,21 @@ ecore_evas_wayland_shm_new(const char *disp_name, int x, int y, int w, int h, in
206 if (w < 1) w = 1; 198 if (w < 1) w = 1;
207 if (h < 1) h = 1; 199 if (h < 1) h = 1;
208 200
209 ee->req.x = ee->x = x; 201 ee->x = x;
210 ee->req.y = ee->y = y; 202 ee->y = y;
211 ee->req.w = ee->w = w; 203 ee->w = w;
212 ee->req.h = ee->h = h; 204 ee->h = h;
205 ee->req.x = ee->x;
206 ee->req.y = ee->y;
207 ee->req.w = ee->w;
208 ee->req.h = ee->h;
213 ee->rotation = 0; 209 ee->rotation = 0;
214 ee->prop.max.w = ee->prop.max.h = 32767; 210 ee->prop.max.w = 32767;
211 ee->prop.max.h = 32767;
215 ee->prop.layer = 4; 212 ee->prop.layer = 4;
216 ee->prop.request_pos = 0; 213 ee->prop.request_pos = 0;
217 ee->prop.sticky = 0; 214 ee->prop.sticky = 0;
218 ee->prop.draw_frame = frame; 215 ee->prop.draw_frame = frame;
219 ee->prop.window = _win_id++;
220 216
221 ee->evas = evas_new(); 217 ee->evas = evas_new();
222 evas_data_attach_set(ee->evas, ee); 218 evas_data_attach_set(ee->evas, ee);
@@ -224,29 +220,42 @@ ecore_evas_wayland_shm_new(const char *disp_name, int x, int y, int w, int h, in
224 evas_output_size_set(ee->evas, ee->w, ee->h); 220 evas_output_size_set(ee->evas, ee->w, ee->h);
225 evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h); 221 evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
226 222
227 if (ee->prop.draw_frame) 223 /* FIXME: This needs to be set based on theme & scale */
224 if (ee->prop.draw_frame)
228 evas_output_framespace_set(ee->evas, 4, 18, 8, 22); 225 evas_output_framespace_set(ee->evas, 4, 18, 8, 22);
229 226
230 if ((einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas))) 227 if (parent)
228 p = ecore_wl_window_find(parent);
229
230 /* FIXME: Get if parent is alpha, and set */
231
232 ee->engine.wl.parent = p;
233 ee->engine.wl.win =
234 ecore_wl_window_new(p, x, y, w, h, ECORE_WL_WINDOW_BUFFER_TYPE_SHM);
235 ee->prop.window = ee->engine.wl.win->id;
236
237 if ((einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas)))
231 { 238 {
232 einfo->info.rotation = ee->rotation; 239 einfo->info.rotation = ee->rotation;
233 einfo->info.debug = EINA_FALSE; 240 einfo->info.debug = EINA_FALSE;
234 if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo)) 241 if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
235 { 242 {
236 ERR("Failed to set Evas Engine Info for '%s'.", ee->driver); 243 ERR("Failed to set Evas Engine Info for '%s'", ee->driver);
237 ecore_evas_free(ee); 244 ecore_evas_free(ee);
245 _ecore_evas_wl_shutdown();
246 ecore_wl_shutdown();
238 return NULL; 247 return NULL;
239 } 248 }
240 } 249 }
241 else 250 else
242 { 251 {
243 ERR("Failed to get Evas Engine Info for '%s'.", ee->driver); 252 ERR("Failed to get Evas Engine Info for '%s'", ee->driver);
244 ecore_evas_free(ee); 253 ecore_evas_free(ee);
254 _ecore_evas_wl_shutdown();
255 ecore_wl_shutdown();
245 return NULL; 256 return NULL;
246 } 257 }
247 258
248 /* NB: we need to be notified before 'free' so we can munmap the evas
249 * engine destination */
250 ecore_evas_callback_pre_free_set(ee, _ecore_evas_wl_pre_free); 259 ecore_evas_callback_pre_free_set(ee, _ecore_evas_wl_pre_free);
251 260
252 if (ee->prop.draw_frame) 261 if (ee->prop.draw_frame)
@@ -279,30 +288,21 @@ _ecore_evas_wl_init(void)
279 if (++_ecore_evas_wl_init_count != 1) 288 if (++_ecore_evas_wl_init_count != 1)
280 return _ecore_evas_wl_init_count; 289 return _ecore_evas_wl_init_count;
281 290
282 _ecore_evas_wl_event_handlers[0] = 291 _ecore_evas_wl_event_hdls[0] =
283 ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN,
284 _ecore_evas_wl_event_mouse_down, NULL);
285 _ecore_evas_wl_event_handlers[1] =
286 ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_UP,
287 _ecore_evas_wl_event_mouse_up, NULL);
288 _ecore_evas_wl_event_handlers[2] =
289 ecore_event_handler_add(ECORE_EVENT_MOUSE_MOVE,
290 _ecore_evas_wl_event_mouse_move, NULL);
291 _ecore_evas_wl_event_handlers[3] =
292 ecore_event_handler_add(ECORE_EVENT_MOUSE_WHEEL,
293 _ecore_evas_wl_event_mouse_wheel, NULL);
294 _ecore_evas_wl_event_handlers[4] =
295 ecore_event_handler_add(ECORE_WL_EVENT_MOUSE_IN, 292 ecore_event_handler_add(ECORE_WL_EVENT_MOUSE_IN,
296 _ecore_evas_wl_event_mouse_in, NULL); 293 _ecore_evas_wl_cb_mouse_in, NULL);
297 _ecore_evas_wl_event_handlers[5] = 294 _ecore_evas_wl_event_hdls[1] =
298 ecore_event_handler_add(ECORE_WL_EVENT_MOUSE_OUT, 295 ecore_event_handler_add(ECORE_WL_EVENT_MOUSE_OUT,
299 _ecore_evas_wl_event_mouse_out, NULL); 296 _ecore_evas_wl_cb_mouse_out, NULL);
300 _ecore_evas_wl_event_handlers[6] = 297 _ecore_evas_wl_event_hdls[2] =
301 ecore_event_handler_add(ECORE_WL_EVENT_FOCUS_IN, 298 ecore_event_handler_add(ECORE_WL_EVENT_FOCUS_IN,
302 _ecore_evas_wl_event_focus_in, NULL); 299 _ecore_evas_wl_cb_focus_in, NULL);
303 _ecore_evas_wl_event_handlers[7] = 300 _ecore_evas_wl_event_hdls[3] =
304 ecore_event_handler_add(ECORE_WL_EVENT_FOCUS_OUT, 301 ecore_event_handler_add(ECORE_WL_EVENT_FOCUS_OUT,
305 _ecore_evas_wl_event_focus_out, NULL); 302 _ecore_evas_wl_cb_focus_out, NULL);
303 _ecore_evas_wl_event_hdls[4] =
304 ecore_event_handler_add(ECORE_WL_EVENT_WINDOW_CONFIGURE,
305 _ecore_evas_wl_cb_window_configure, NULL);
306 306
307 ecore_event_evas_init(); 307 ecore_event_evas_init();
308 308
@@ -319,10 +319,10 @@ _ecore_evas_wl_shutdown(void)
319 if (--_ecore_evas_wl_init_count != 0) 319 if (--_ecore_evas_wl_init_count != 0)
320 return _ecore_evas_wl_init_count; 320 return _ecore_evas_wl_init_count;
321 321
322 for (i = 0; i < sizeof(_ecore_evas_wl_event_handlers) / sizeof(Ecore_Event_Handler *); i++) 322 for (i = 0; i < sizeof(_ecore_evas_wl_event_hdls) / sizeof(Ecore_Event_Handler *); i++)
323 { 323 {
324 if (_ecore_evas_wl_event_handlers[i]) 324 if (_ecore_evas_wl_event_hdls[i])
325 ecore_event_handler_del(_ecore_evas_wl_event_handlers[i]); 325 ecore_event_handler_del(_ecore_evas_wl_event_hdls[i]);
326 } 326 }
327 327
328 ecore_event_evas_shutdown(); 328 ecore_event_evas_shutdown();
@@ -337,17 +337,15 @@ _ecore_evas_wl_pre_free(Ecore_Evas *ee)
337 337
338 LOGFN(__FILE__, __LINE__, __FUNCTION__); 338 LOGFN(__FILE__, __LINE__, __FUNCTION__);
339 339
340 /* destroy frame */
341 if (ee->engine.wl.frame) evas_object_del(ee->engine.wl.frame); 340 if (ee->engine.wl.frame) evas_object_del(ee->engine.wl.frame);
342 341
343 /* get engine info */
344 einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas); 342 einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas);
345 if ((einfo) && (einfo->info.dest)) 343 if ((einfo) && (einfo->info.dest))
346 { 344 {
347 int ret = 0; 345 int ret = 0;
348 346
349 /* munmap previous engine destination */
350 ret = munmap(einfo->info.dest, ((ee->w * sizeof(int)) * ee->h)); 347 ret = munmap(einfo->info.dest, ((ee->w * sizeof(int)) * ee->h));
348 if (!ret) ERR("Failed to unmap engine destination: %m");
351 } 349 }
352} 350}
353 351
@@ -356,18 +354,11 @@ _ecore_evas_wl_free(Ecore_Evas *ee)
356{ 354{
357 LOGFN(__FILE__, __LINE__, __FUNCTION__); 355 LOGFN(__FILE__, __LINE__, __FUNCTION__);
358 356
359 /* destroy buffer */
360 if (ee->engine.wl.buffer) wl_buffer_destroy(ee->engine.wl.buffer); 357 if (ee->engine.wl.buffer) wl_buffer_destroy(ee->engine.wl.buffer);
361 ee->engine.wl.buffer = NULL; 358 ee->engine.wl.buffer = NULL;
362 359
363 /* destroy shell surface */ 360 if (ee->engine.wl.win) ecore_wl_window_free(ee->engine.wl.win);
364 if (ee->engine.wl.shell_surface) 361 ee->engine.wl.win = NULL;
365 wl_shell_surface_destroy(ee->engine.wl.shell_surface);
366 ee->engine.wl.shell_surface = NULL;
367
368 /* destroy surface */
369 if (ee->engine.wl.surface) wl_surface_destroy(ee->engine.wl.surface);
370 ee->engine.wl.surface = NULL;
371 362
372 ecore_event_window_unregister(ee->prop.window); 363 ecore_event_window_unregister(ee->prop.window);
373 ecore_evas_input_event_unregister(ee); 364 ecore_evas_input_event_unregister(ee);
@@ -431,25 +422,25 @@ _ecore_evas_wl_callback_mouse_in_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee
431} 422}
432 423
433static void 424static void
434_ecore_evas_wl_move(Ecore_Evas *ee, int x, int y) 425_ecore_evas_wl_callback_mouse_out_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee))
426{
427 LOGFN(__FILE__, __LINE__, __FUNCTION__);
428
429 if (!ee) return;
430 ee->func.fn_mouse_out = func;
431}
432
433static void
434_ecore_evas_wl_move(Ecore_Evas *ee, int x, int y)
435{ 435{
436 LOGFN(__FILE__, __LINE__, __FUNCTION__); 436 LOGFN(__FILE__, __LINE__, __FUNCTION__);
437 437
438 if (!ee) return; 438 if (!ee) return;
439// if ((ee->x == x) && (ee->y == y)) return;
440 ee->req.x = x; 439 ee->req.x = x;
441 ee->req.y = y; 440 ee->req.y = y;
442
443 ee->x = x; 441 ee->x = x;
444 ee->y = y; 442 ee->y = y;
445 443 if (ee->engine.wl.win) ecore_wl_window_move(ee->engine.wl.win, x, y);
446 if (ee->engine.wl.shell_surface)
447 {
448 wl_shell_surface_move(ee->engine.wl.shell_surface,
449 ecore_wl_input_device_get(),
450 _ecore_evas_wl_btn_timestamp);
451 }
452
453 if (ee->func.fn_move) ee->func.fn_move(ee); 444 if (ee->func.fn_move) ee->func.fn_move(ee);
454} 445}
455 446
@@ -458,49 +449,44 @@ _ecore_evas_wl_resize(Ecore_Evas *ee, int w, int h)
458{ 449{
459 Evas_Engine_Info_Wayland_Shm *einfo; 450 Evas_Engine_Info_Wayland_Shm *einfo;
460 451
461 LOGFN(__FILE__, __LINE__, __FUNCTION__);
462
463 if (!ee) return; 452 if (!ee) return;
464 if (w < 1) w = 1; 453 if (w < 1) w = 1;
465 if (h < 1) h = 1; 454 if (h < 1) h = 1;
466 if ((ee->w == w) && (ee->h == h)) return; 455// if ((ee->w == w) && (ee->h == h)) return;
456
457 LOGFN(__FILE__, __LINE__, __FUNCTION__);
458
459 if (ee->prop.min.w > w) w = ee->prop.min.w;
460 else if (w > ee->prop.max.w) w = ee->prop.max.w;
461 if (ee->prop.min.h > h) h = ee->prop.min.h;
462 else if (h > ee->prop.max.h) h = ee->prop.max.h;
467 463
468 ee->req.w = w; 464 ee->req.w = w;
469 ee->req.h = h; 465 ee->req.h = h;
470 466
471 if (ee->visible) 467// ecore_wl_window_damage(ee->engine.wl.win, 0, 0, ee->w, ee->h);
472 {
473 /* damage old surface, if it exists */
474
475 /* NB: This removes any lingering screen artifacts in the compositor.
476 * This may be a 'HACK' if the issue is actually in the wayland
477 * compositor, but for now lets implement this so we don't have screen
478 * artifacts laying around during a resize */
479 if (ee->engine.wl.surface)
480 wl_surface_damage(ee->engine.wl.surface, 0, 0, ee->w, ee->h);
481 }
482 468
483 /* get engine info */
484 einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas); 469 einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas);
485 if (einfo->info.dest) 470 if ((einfo) && (einfo->info.dest))
486 { 471 {
487 int ret = 0; 472 int ret = 0;
488 473
489 /* munmap previous engine destination */
490 ret = munmap(einfo->info.dest, ((ee->w * sizeof(int)) * ee->h)); 474 ret = munmap(einfo->info.dest, ((ee->w * sizeof(int)) * ee->h));
475 if (!ret) ERR("Failed to unmap engine destination: %m");
476 }
477 else if (!einfo)
478 {
479 ERR("Failed to get Evas Engine Info for '%s'", ee->driver);
480 return;
491 } 481 }
492 482
493 /* free old buffer */
494 if (ee->engine.wl.buffer) wl_buffer_destroy(ee->engine.wl.buffer); 483 if (ee->engine.wl.buffer) wl_buffer_destroy(ee->engine.wl.buffer);
495 ee->engine.wl.buffer = NULL; 484 ee->engine.wl.buffer = NULL;
496 485
497 ee->w = w; 486 ee->w = w;
498 ee->h = h; 487 ee->h = h;
499 488
500 /* create buffer @ new size (also mmaps the new destination) */
501 _ecore_evas_wl_buffer_new(ee, &einfo->info.dest); 489 _ecore_evas_wl_buffer_new(ee, &einfo->info.dest);
502
503 /* flush new buffer fd */
504 ecore_wl_flush(); 490 ecore_wl_flush();
505 491
506 /* change evas output & viewport sizes */ 492 /* change evas output & viewport sizes */
@@ -514,16 +500,13 @@ _ecore_evas_wl_resize(Ecore_Evas *ee, int w, int h)
514 evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); 500 evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
515 501
516 /* damage buffer */ 502 /* damage buffer */
517 wl_buffer_damage(ee->engine.wl.buffer, 0, 0, ee->w, ee->h); 503// wl_buffer_damage(ee->engine.wl.buffer, 0, 0, ee->w, ee->h);
518 504
519 if (ee->visible) 505 ecore_wl_window_buffer_attach(ee->engine.wl.win, ee->engine.wl.buffer, 0, 0);
520 { 506 /* ecore_wl_window_damage(ee->engine.wl.win, 0, 0, ee->w, ee->h); */
521 /* damage surface */ 507 /* ecore_wl_flush(); */
522 wl_surface_damage(ee->engine.wl.surface, 0, 0, ee->w, ee->h);
523 508
524 /* if visible, attach to surface */ 509 ecore_wl_window_update_size(ee->engine.wl.win, ee->w, ee->h);
525 wl_surface_attach(ee->engine.wl.surface, ee->engine.wl.buffer, 0, 0);
526 }
527 510
528 if (ee->func.fn_resize) ee->func.fn_resize(ee); 511 if (ee->func.fn_resize) ee->func.fn_resize(ee);
529} 512}
@@ -535,93 +518,64 @@ _ecore_evas_wl_show(Ecore_Evas *ee)
535 518
536 LOGFN(__FILE__, __LINE__, __FUNCTION__); 519 LOGFN(__FILE__, __LINE__, __FUNCTION__);
537 520
538 if (!ee) return; 521 if ((!ee) || (ee->visible)) return;
539 if (ee->visible) return;
540 522
541 /* get engine info */ 523 if (ee->engine.wl.win)
542 einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas); 524 ecore_wl_window_show(ee->engine.wl.win);
543
544 /* create new surface */
545 ee->engine.wl.surface =
546 wl_compositor_create_surface(ecore_wl_compositor_get());
547 wl_surface_set_user_data(ee->engine.wl.surface, (void *)ee->prop.window);
548 525
549 /* get new shell surface */ 526 einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas);
550 ee->engine.wl.shell_surface = 527 if (!einfo)
551 wl_shell_get_shell_surface(ecore_wl_shell_get(), ee->engine.wl.surface); 528 {
552 529 ERR("Failed to get Evas Engine Info for '%s'", ee->driver);
553 /* set toplevel */ 530 return;
554 wl_shell_surface_set_toplevel(ee->engine.wl.shell_surface); 531 }
555 532
556 /* create buffer @ new size (also mmaps the new destination) */
557 _ecore_evas_wl_buffer_new(ee, &einfo->info.dest); 533 _ecore_evas_wl_buffer_new(ee, &einfo->info.dest);
534 evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
558 535
559 if (ee->engine.wl.frame) 536 if (ee->engine.wl.frame)
560 { 537 {
561 evas_object_show(ee->engine.wl.frame); 538 evas_object_show(ee->engine.wl.frame);
562 evas_object_resize(ee->engine.wl.frame, ee->w, ee->h); 539 evas_object_resize(ee->engine.wl.frame, ee->w, ee->h);
563 } 540 }
564 541
565 /* set new engine destination */
566 evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
567
568 /* add configure listener for wayland resize events */
569 wl_shell_surface_add_listener(ee->engine.wl.shell_surface,
570 &_ecore_evas_wl_shell_surface_listener, ee);
571
572 /* flush new buffer fd */
573 ecore_wl_flush(); 542 ecore_wl_flush();
574 543
575 /* attach buffer to surface */ 544 if (ee->engine.wl.win)
576 wl_surface_attach(ee->engine.wl.surface, ee->engine.wl.buffer, 0, 0); 545 ecore_wl_window_buffer_attach(ee->engine.wl.win, ee->engine.wl.buffer, 0, 0);
577
578 /* NB: No need to do a damage here. If we do, we end up w/ screen
579 * artifacts in the compositor */
580 /* wl_surface_damage(ee->engine.wl.surface, 0, 0, ee->w, ee->h); */
581 546
582 ee->visible = 1; 547 ee->visible = 1;
583 if (ee->func.fn_show) ee->func.fn_show(ee); 548 if (ee->func.fn_show) ee->func.fn_show(ee);
584} 549}
585 550
586static void 551static void
587_ecore_evas_wl_hide(Ecore_Evas *ee) 552_ecore_evas_wl_hide(Ecore_Evas *ee)
588{ 553{
589 Evas_Engine_Info_Wayland_Shm *einfo; 554 Evas_Engine_Info_Wayland_Shm *einfo;
590 555
591 LOGFN(__FILE__, __LINE__, __FUNCTION__); 556 LOGFN(__FILE__, __LINE__, __FUNCTION__);
592 557
593 if (!ee) return; 558 if ((!ee) || (!ee->visible)) return;
594 if (!ee->visible) return;
595 559
596 /* get engine info */
597 einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas); 560 einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas);
598 if (einfo->info.dest) 561 if ((einfo) && (einfo->info.dest))
599 { 562 {
600 int ret = 0; 563 int ret = 0;
601 564
602 /* munmap previous engine destination */
603 ret = munmap(einfo->info.dest, ((ee->w * sizeof(int)) * ee->h)); 565 ret = munmap(einfo->info.dest, ((ee->w * sizeof(int)) * ee->h));
604 einfo->info.dest = NULL; 566 if (!ret) ERR("Failed to unmap engine destination: %m");
605 } 567 }
606 568
607 /* free old buffer */
608 if (ee->engine.wl.buffer) wl_buffer_destroy(ee->engine.wl.buffer); 569 if (ee->engine.wl.buffer) wl_buffer_destroy(ee->engine.wl.buffer);
609 ee->engine.wl.buffer = NULL; 570 ee->engine.wl.buffer = NULL;
610 571
611 /* set new engine destination */
612 evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); 572 evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
613 573
614 /* destroy shell surface */ 574 ecore_wl_window_hide(ee->engine.wl.win);
615 if (ee->engine.wl.shell_surface)
616 wl_shell_surface_destroy(ee->engine.wl.shell_surface);
617 ee->engine.wl.shell_surface = NULL;
618
619 /* destroy surface */
620 if (ee->engine.wl.surface) wl_surface_destroy(ee->engine.wl.surface);
621 ee->engine.wl.surface = NULL;
622 575
623 ee->visible = 0; 576 ee->visible = 0;
624 ee->should_be_visible = 0; 577 ee->should_be_visible = 0;
578
625 if (ee->func.fn_hide) ee->func.fn_hide(ee); 579 if (ee->func.fn_hide) ee->func.fn_hide(ee);
626} 580}
627 581
@@ -631,39 +585,18 @@ _ecore_evas_wl_raise(Ecore_Evas *ee)
631 LOGFN(__FILE__, __LINE__, __FUNCTION__); 585 LOGFN(__FILE__, __LINE__, __FUNCTION__);
632 586
633 if ((!ee) || (!ee->visible)) return; 587 if ((!ee) || (!ee->visible)) return;
634 if (!ee->engine.wl.shell_surface) return; 588 ecore_wl_window_raise(ee->engine.wl.win);
635 wl_shell_surface_set_toplevel(ee->engine.wl.shell_surface);
636} 589}
637 590
638static void 591static void
639_ecore_evas_wl_lower(Ecore_Evas *ee) 592_ecore_evas_wl_title_set(Ecore_Evas *ee, const char *title)
640{
641 LOGFN(__FILE__, __LINE__, __FUNCTION__);
642
643 if ((!ee) || (!ee->visible)) return;
644 /* FIXME: Need a way to tell Wayland to lower */
645}
646
647static void
648_ecore_evas_wl_activate(Ecore_Evas *ee)
649{
650 LOGFN(__FILE__, __LINE__, __FUNCTION__);
651
652 if ((!ee) || (!ee->visible)) return;
653 if (!ee->engine.wl.shell_surface) return;
654 wl_shell_surface_set_toplevel(ee->engine.wl.shell_surface);
655}
656
657static void
658_ecore_evas_wl_title_set(Ecore_Evas *ee, const char *t)
659{ 593{
660 LOGFN(__FILE__, __LINE__, __FUNCTION__); 594 LOGFN(__FILE__, __LINE__, __FUNCTION__);
661 595
662 if (!ee) return; 596 if (!ee) return;
663 if (ee->prop.title) free(ee->prop.title); 597 if (ee->prop.title) free(ee->prop.title);
664 ee->prop.title = NULL; 598 ee->prop.title = NULL;
665 if (t) ee->prop.title = strdup(t); 599 if (title) ee->prop.title = strdup(title);
666
667 if ((ee->prop.draw_frame) && (ee->engine.wl.frame)) 600 if ((ee->prop.draw_frame) && (ee->engine.wl.frame))
668 { 601 {
669 EE_Wl_Smart_Data *sd; 602 EE_Wl_Smart_Data *sd;
@@ -741,102 +674,96 @@ _ecore_evas_wl_size_step_set(Ecore_Evas *ee, int w, int h)
741} 674}
742 675
743static void 676static void
744_ecore_evas_wl_object_cursor_set(Ecore_Evas *ee, Evas_Object *obj, int layer, int hot_x, int hot_y) 677_ecore_evas_wl_layer_set(Ecore_Evas *ee, int layer)
745{ 678{
746 int x = 0, y = 0;
747
748 LOGFN(__FILE__, __LINE__, __FUNCTION__); 679 LOGFN(__FILE__, __LINE__, __FUNCTION__);
749 680
750 if (!ee) return; 681 if (!ee) return;
751 if (ee->prop.cursor.object) evas_object_del(ee->prop.cursor.object); 682 if (ee->prop.layer == layer) return;
752 ee->prop.cursor.object = NULL; 683 if (layer < 1) layer = 1;
753 684 else if (layer > 255) layer = 255;
754 if (!obj) 685 ee->prop.layer = layer;
755 {
756 ee->prop.cursor.layer = 0;
757 ee->prop.cursor.hot.x = 0;
758 ee->prop.cursor.hot.y = 0;
759 return;
760 }
761
762 ee->prop.cursor.object = obj;
763 ee->prop.cursor.layer = layer;
764 ee->prop.cursor.hot.x = hot_x;
765 ee->prop.cursor.hot.y = hot_y;
766
767 evas_pointer_output_xy_get(ee->evas, &x, &y);
768 evas_object_layer_set(ee->prop.cursor.object, ee->prop.cursor.layer);
769 evas_object_move(ee->prop.cursor.object,
770 x - ee->prop.cursor.hot.x, y - ee->prop.cursor.hot.y);
771 evas_object_pass_events_set(ee->prop.cursor.object, 1);
772 if (evas_pointer_inside_get(ee->evas))
773 evas_object_show(ee->prop.cursor.object);
774
775 evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL,
776 _ecore_evas_wl_object_cursor_del, ee);
777} 686}
778 687
779static void 688static void
780_ecore_evas_wl_object_cursor_del(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event __UNUSED__) 689_ecore_evas_wl_iconified_set(Ecore_Evas *ee, int iconify)
781{ 690{
782 Ecore_Evas *ee; 691 LOGFN(__FILE__, __LINE__, __FUNCTION__);
783 692
784 if (!(ee = data)) return; 693 if (!ee) return;
785 ee->prop.cursor.object = NULL; 694 if (ee->prop.iconified == iconify) return;
695 ee->prop.iconified = iconify;
696 /* FIXME: Implement this in Wayland someshow */
786} 697}
787 698
788static void 699static void
789_ecore_evas_wl_layer_set(Ecore_Evas *ee, int layer) 700_ecore_evas_wl_maximized_set(Ecore_Evas *ee, int max)
790{ 701{
791 LOGFN(__FILE__, __LINE__, __FUNCTION__); 702 LOGFN(__FILE__, __LINE__, __FUNCTION__);
792 703
793 if (!ee) return; 704 if (!ee) return;
794 if (ee->prop.layer == layer) return; 705 if (ee->prop.maximized == max) return;
795 if (layer < 1) layer = 1; 706 ee->prop.maximized = max;
796 else if (layer > 255) layer = 255; 707 ecore_wl_window_maximized_set(ee->engine.wl.win, max);
797 ee->prop.layer = layer;
798} 708}
799 709
800static void 710static void
801_ecore_evas_wl_focus_set(Ecore_Evas *ee, int focus __UNUSED__) 711_ecore_evas_wl_fullscreen_set(Ecore_Evas *ee, int full)
802{ 712{
803 LOGFN(__FILE__, __LINE__, __FUNCTION__); 713 LOGFN(__FILE__, __LINE__, __FUNCTION__);
804 714
805 if ((!ee) || (!ee->visible)) return; 715 if ((!ee) || (!ee->visible)) return;
806 if (!ee->engine.wl.shell_surface) return; 716 if (ee->prop.fullscreen == full) return;
807 wl_shell_surface_set_toplevel(ee->engine.wl.shell_surface); 717 ee->prop.fullscreen = full;
718 ecore_wl_window_fullscreen_set(ee->engine.wl.win, full);
808} 719}
809 720
810static void 721static void
811_ecore_evas_wl_iconified_set(Ecore_Evas *ee, int iconify) 722_ecore_evas_wl_ignore_events_set(Ecore_Evas *ee, int ignore)
812{ 723{
813 LOGFN(__FILE__, __LINE__, __FUNCTION__); 724 LOGFN(__FILE__, __LINE__, __FUNCTION__);
814 725
815 if (!ee) return; 726 if (!ee) return;
816 if (ee->prop.iconified == iconify) return; 727 ee->ignore_events = ignore;
817 ee->prop.iconified = iconify; 728 /* NB: Hmmm, may need to pass this to ecore_wl_window in the future */
818 /* FIXME: Implement this in Wayland someshow */
819} 729}
820 730
821static void 731static void
822_ecore_evas_wl_maximized_set(Ecore_Evas *ee, int max) 732_ecore_evas_wl_alpha_set(Ecore_Evas *ee, int alpha)
823{ 733{
734 Evas_Engine_Info_Wayland_Shm *einfo;
735
824 LOGFN(__FILE__, __LINE__, __FUNCTION__); 736 LOGFN(__FILE__, __LINE__, __FUNCTION__);
825 737
826 if (!ee) return; 738 if (!ee) return;
827 if (ee->prop.maximized == max) return; 739 if ((ee->alpha == alpha)) return;
828 ee->prop.maximized = max; 740 ee->alpha = alpha;
829 /* FIXME: Implement this in Wayland someshow */ 741 if ((einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas)))
742 {
743 einfo->info.destination_alpha = alpha;
744 if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
745 ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
746 evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
747 }
830} 748}
831 749
832static void 750static void
833_ecore_evas_wl_fullscreen_set(Ecore_Evas *ee, int full __UNUSED__) 751_ecore_evas_wl_transparent_set(Ecore_Evas *ee, int transparent)
834{ 752{
753 Evas_Engine_Info_Wayland_Shm *einfo;
754
835 LOGFN(__FILE__, __LINE__, __FUNCTION__); 755 LOGFN(__FILE__, __LINE__, __FUNCTION__);
836 756
837 if ((!ee) || (!ee->visible)) return; 757 if (!ee) return;
838 if (!ee->engine.wl.shell_surface) return; 758 if ((ee->transparent == transparent)) return;
839 wl_shell_surface_set_fullscreen(ee->engine.wl.shell_surface); 759 ee->transparent = transparent;
760 if ((einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas)))
761 {
762 einfo->info.destination_alpha = transparent;
763 if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
764 ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
765 evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
766 }
840} 767}
841 768
842static int 769static int
@@ -845,9 +772,9 @@ _ecore_evas_wl_render(Ecore_Evas *ee)
845 int rend = 0; 772 int rend = 0;
846 773
847 if (!ee) return 0; 774 if (!ee) return 0;
848 if (!ee->visible) 775 if (!ee->visible)
849 evas_norender(ee->evas); 776 evas_norender(ee->evas);
850 else 777 else
851 { 778 {
852 Eina_List *ll = NULL, *updates = NULL; 779 Eina_List *ll = NULL, *updates = NULL;
853 Ecore_Evas *ee2 = NULL; 780 Ecore_Evas *ee2 = NULL;
@@ -867,27 +794,27 @@ _ecore_evas_wl_render(Ecore_Evas *ee)
867 Eina_List *l = NULL; 794 Eina_List *l = NULL;
868 Eina_Rectangle *r; 795 Eina_Rectangle *r;
869 796
797 LOGFN(__FILE__, __LINE__, __FUNCTION__);
798
870 EINA_LIST_FOREACH(updates, l, r) 799 EINA_LIST_FOREACH(updates, l, r)
871 { 800 {
872 if (ee->engine.wl.buffer) 801 if (ee->engine.wl.buffer)
873 wl_buffer_damage(ee->engine.wl.buffer, 802 wl_buffer_damage(ee->engine.wl.buffer,
874 r->x, r->y, r->w, r->h); 803 r->x, r->y, r->w, r->h);
875 804
876 if (ee->engine.wl.surface) 805 ecore_wl_window_damage(ee->engine.wl.win,
877 wl_surface_damage(ee->engine.wl.surface, 806 r->x, r->y, r->w, r->h);
878 r->x, r->y, r->w, r->h);
879 } 807 }
880 808
809 ecore_wl_flush();
810
881 evas_render_updates_free(updates); 811 evas_render_updates_free(updates);
882 _ecore_evas_idle_timeout_update(ee); 812 _ecore_evas_idle_timeout_update(ee);
883 rend = 1; 813 rend = 1;
884
885 ecore_wl_flush();
886 } 814 }
887 815
888 if (ee->func.fn_post_render) ee->func.fn_post_render(ee); 816 if (ee->func.fn_post_render) ee->func.fn_post_render(ee);
889 } 817 }
890
891 return rend; 818 return rend;
892} 819}
893 820
@@ -901,77 +828,67 @@ _ecore_evas_wl_screen_geometry_get(const Ecore_Evas *ee __UNUSED__, int *x, int
901 ecore_wl_screen_size_get(w, h); 828 ecore_wl_screen_size_get(w, h);
902} 829}
903 830
904static Eina_Bool 831static void
905_ecore_evas_wl_event_mouse_down(void *data __UNUSED__, int type __UNUSED__, void *event) 832_ecore_evas_wl_buffer_new(Ecore_Evas *ee, void **dest)
906{ 833{
907 Ecore_Evas *ee; 834 struct wl_shm *shm;
908 Ecore_Event_Mouse_Button *ev; 835 static unsigned int format;
836 char tmp[PATH_MAX];
837 int fd = -1, stride = 0, size = 0;
838 void *ret;
909 839
910 LOGFN(__FILE__, __LINE__, __FUNCTION__); 840 LOGFN(__FILE__, __LINE__, __FUNCTION__);
911 841
912 ev = event; 842 if (dest) *dest = NULL;
913 _ecore_evas_wl_btn_timestamp = ev->timestamp; 843 if (!(shm = ecore_wl_shm_get())) return;
914 ee = ecore_event_window_match(ev->window); 844 if (!format) format = WL_SHM_FORMAT_ARGB8888; //ecore_wl_format_get();
915 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
916 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
917 evas_event_feed_mouse_down(ee->evas, ev->buttons, ev->modifiers,
918 ev->timestamp, NULL);
919 return ECORE_CALLBACK_PASS_ON;
920}
921 845
922static Eina_Bool 846 strcpy(tmp, "/tmp/ecore-wayland_shm-XXXXXX");
923_ecore_evas_wl_event_mouse_up(void *data __UNUSED__, int type __UNUSED__, void *event) 847 if ((fd = mkstemp(tmp)) < 0)
924{ 848 {
925 Ecore_Evas *ee; 849 ERR("Could not create temporary file.");
926 Ecore_Event_Mouse_Button *ev; 850 return;
851 }
927 852
928 LOGFN(__FILE__, __LINE__, __FUNCTION__); 853 stride = (ee->w * sizeof(int));
854 size = (stride * ee->h);
855 if (ftruncate(fd, size) < 0)
856 {
857 ERR("Could not truncate temporary file.");
858 close(fd);
859 return;
860 }
929 861
930 ev = event; 862 ret = mmap(NULL, size, (PROT_READ | PROT_WRITE), MAP_SHARED, fd, 0);
931 ee = ecore_event_window_match(ev->window); 863 unlink(tmp);
932 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
933 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
934 evas_event_feed_mouse_up(ee->evas, ev->buttons, ev->modifiers,
935 ev->timestamp, NULL);
936 return ECORE_CALLBACK_PASS_ON;
937}
938 864
939static Eina_Bool 865 if (ret == MAP_FAILED)
940_ecore_evas_wl_event_mouse_move(void *data __UNUSED__, int type __UNUSED__, void *event) 866 {
941{ 867 ERR("mmap of temporary file failed.");
942 Ecore_Evas *ee; 868 close(fd);
943 Ecore_Event_Mouse_Move *ev; 869 return;
870 }
944 871
945 ev = event; 872 if (dest) *dest = ret;
946 ee = ecore_event_window_match(ev->window); 873
947 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON; 874 ee->engine.wl.buffer =
948 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON; 875 wl_shm_create_buffer(ecore_wl_shm_get(), fd, ee->w, ee->h, stride, format);
949 ee->mouse.x = ev->x; 876
950 ee->mouse.y = ev->y; 877 close(fd);
951 evas_event_feed_mouse_move(ee->evas, ev->x, ev->y, ev->timestamp, NULL);
952 _ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->timestamp);
953 return ECORE_CALLBACK_PASS_ON;
954} 878}
955 879
956static Eina_Bool 880void
957_ecore_evas_wl_event_mouse_wheel(void *data __UNUSED__, int type __UNUSED__, void *event) 881_ecore_evas_wayland_shm_resize(Ecore_Evas *ee, int location)
958{ 882{
959 Ecore_Evas *ee;
960 Ecore_Event_Mouse_Wheel *ev;
961
962 LOGFN(__FILE__, __LINE__, __FUNCTION__); 883 LOGFN(__FILE__, __LINE__, __FUNCTION__);
963 884
964 ev = event; 885 if (!ee) return;
965 ee = ecore_event_window_match(ev->window); 886 if (ee->engine.wl.win)
966 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON; 887 ecore_wl_window_resize(ee->engine.wl.win, ee->w, ee->h, location);
967 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
968 evas_event_feed_mouse_wheel(ee->evas, ev->direction, ev->z,
969 ev->timestamp, NULL);
970 return ECORE_CALLBACK_PASS_ON;
971} 888}
972 889
973static Eina_Bool 890static Eina_Bool
974_ecore_evas_wl_event_mouse_in(void *data __UNUSED__, int type __UNUSED__, void *event) 891_ecore_evas_wl_cb_mouse_in(void *data __UNUSED__, int type __UNUSED__, void *event)
975{ 892{
976 Ecore_Evas *ee; 893 Ecore_Evas *ee;
977 Ecore_Wl_Event_Mouse_In *ev; 894 Ecore_Wl_Event_Mouse_In *ev;
@@ -979,18 +896,18 @@ _ecore_evas_wl_event_mouse_in(void *data __UNUSED__, int type __UNUSED__, void *
979 LOGFN(__FILE__, __LINE__, __FUNCTION__); 896 LOGFN(__FILE__, __LINE__, __FUNCTION__);
980 897
981 ev = event; 898 ev = event;
982 ee = ecore_event_window_match(ev->window); 899 ee = ecore_event_window_match(ev->win);
983 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON; 900 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
984 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON; 901 if (ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
985 if (ee->func.fn_mouse_in) ee->func.fn_mouse_in(ee); 902 if (ee->func.fn_mouse_in) ee->func.fn_mouse_in(ee);
986 ecore_event_evas_modifier_lock_update(ee->evas, ev->modifiers); 903 ecore_event_evas_modifier_lock_update(ee->evas, ev->modifiers);
987 evas_event_feed_mouse_in(ee->evas, ev->time, NULL); 904 evas_event_feed_mouse_in(ee->evas, ev->timestamp, NULL);
988 _ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->time); 905 _ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->timestamp);
989 return ECORE_CALLBACK_PASS_ON; 906 return ECORE_CALLBACK_PASS_ON;
990} 907}
991 908
992static Eina_Bool 909static Eina_Bool
993_ecore_evas_wl_event_mouse_out(void *data __UNUSED__, int type __UNUSED__, void *event) 910_ecore_evas_wl_cb_mouse_out(void *data __UNUSED__, int type __UNUSED__, void *event)
994{ 911{
995 Ecore_Evas *ee; 912 Ecore_Evas *ee;
996 Ecore_Wl_Event_Mouse_Out *ev; 913 Ecore_Wl_Event_Mouse_Out *ev;
@@ -998,19 +915,19 @@ _ecore_evas_wl_event_mouse_out(void *data __UNUSED__, int type __UNUSED__, void
998 LOGFN(__FILE__, __LINE__, __FUNCTION__); 915 LOGFN(__FILE__, __LINE__, __FUNCTION__);
999 916
1000 ev = event; 917 ev = event;
1001 ee = ecore_event_window_match(ev->window); 918 ee = ecore_event_window_match(ev->win);
1002 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON; 919 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
1003 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON; 920 if (ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
1004 ecore_event_evas_modifier_lock_update(ee->evas, ev->modifiers); 921 ecore_event_evas_modifier_lock_update(ee->evas, ev->modifiers);
1005 _ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->time); 922 _ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->timestamp);
1006 evas_event_feed_mouse_out(ee->evas, ev->time, NULL); 923 evas_event_feed_mouse_out(ee->evas, ev->timestamp, NULL);
1007 if (ee->func.fn_mouse_out) ee->func.fn_mouse_out(ee); 924 if (ee->func.fn_mouse_out) ee->func.fn_mouse_out(ee);
1008 if (ee->prop.cursor.object) evas_object_hide(ee->prop.cursor.object); 925 if (ee->prop.cursor.object) evas_object_hide(ee->prop.cursor.object);
1009 return ECORE_CALLBACK_PASS_ON; 926 return ECORE_CALLBACK_PASS_ON;
1010} 927}
1011 928
1012static Eina_Bool 929static Eina_Bool
1013_ecore_evas_wl_event_focus_in(void *data __UNUSED__, int type __UNUSED__, void *event) 930_ecore_evas_wl_cb_focus_in(void *data __UNUSED__, int type __UNUSED__, void *event)
1014{ 931{
1015 Ecore_Evas *ee; 932 Ecore_Evas *ee;
1016 Ecore_Wl_Event_Focus_In *ev; 933 Ecore_Wl_Event_Focus_In *ev;
@@ -1018,9 +935,9 @@ _ecore_evas_wl_event_focus_in(void *data __UNUSED__, int type __UNUSED__, void *
1018 LOGFN(__FILE__, __LINE__, __FUNCTION__); 935 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1019 936
1020 ev = event; 937 ev = event;
1021 ee = ecore_event_window_match(ev->window); 938 ee = ecore_event_window_match(ev->win);
1022 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON; 939 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
1023 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON; 940 if (ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
1024 ee->prop.focused = 1; 941 ee->prop.focused = 1;
1025 evas_focus_in(ee->evas); 942 evas_focus_in(ee->evas);
1026 if (ee->func.fn_focus_in) ee->func.fn_focus_in(ee); 943 if (ee->func.fn_focus_in) ee->func.fn_focus_in(ee);
@@ -1028,92 +945,53 @@ _ecore_evas_wl_event_focus_in(void *data __UNUSED__, int type __UNUSED__, void *
1028} 945}
1029 946
1030static Eina_Bool 947static Eina_Bool
1031_ecore_evas_wl_event_focus_out(void *data __UNUSED__, int type __UNUSED__, void *event) 948_ecore_evas_wl_cb_focus_out(void *data __UNUSED__, int type __UNUSED__, void *event)
1032{ 949{
1033 Ecore_Evas *ee; 950 Ecore_Evas *ee;
1034 Ecore_Wl_Event_Focus_Out *ev; 951 Ecore_Wl_Event_Focus_In *ev;
1035 952
1036 LOGFN(__FILE__, __LINE__, __FUNCTION__); 953 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1037 954
1038 ev = event; 955 ev = event;
1039 ee = ecore_event_window_match(ev->window); 956 ee = ecore_event_window_match(ev->win);
1040 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON; 957 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
1041 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON; 958 if (ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
1042 evas_focus_out(ee->evas); 959 evas_focus_out(ee->evas);
1043 ee->prop.focused = 0; 960 ee->prop.focused = 0;
1044 if (ee->func.fn_focus_out) ee->func.fn_focus_out(ee); 961 if (ee->func.fn_focus_out) ee->func.fn_focus_out(ee);
1045 return ECORE_CALLBACK_PASS_ON; 962 return ECORE_CALLBACK_PASS_ON;
1046} 963}
1047 964
1048static void 965static Eina_Bool
1049_ecore_evas_wl_handle_configure(void *data, struct wl_shell_surface *shell_surface, uint32_t timestamp __UNUSED__, uint32_t edges __UNUSED__, int32_t width, int32_t height) 966_ecore_evas_wl_cb_window_configure(void *data __UNUSED__, int type __UNUSED__, void *event)
1050{ 967{
1051 Ecore_Evas *ee; 968 Ecore_Evas *ee;
1052 969 Ecore_Wl_Event_Window_Configure *ev;
1053 /* NB: Trap to prevent compositor from crashing */
1054 if ((width <= 0) || (height <= 0)) return;
1055
1056 if (!(ee = data)) return;
1057
1058 if ((shell_surface) && (ee->engine.wl.shell_surface))
1059 {
1060 if (ee->engine.wl.shell_surface != shell_surface) return;
1061 ecore_evas_resize(ee, width, height);
1062 }
1063}
1064
1065static void
1066_ecore_evas_wl_handle_popup_done(void *data __UNUSED__, struct wl_shell_surface *shell_surface __UNUSED__)
1067{
1068
1069}
1070
1071static void
1072_ecore_evas_wl_buffer_new(Ecore_Evas *ee, void **dest)
1073{
1074 static unsigned int format;
1075 char tmp[PATH_MAX];
1076 int fd = -1, stride = 0, size = 0;
1077 void *ret;
1078 970
1079 LOGFN(__FILE__, __LINE__, __FUNCTION__); 971 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1080 972
1081 if (dest) *dest = NULL; 973 ev = event;
1082 974 ee = ecore_event_window_match(ev->win);
1083 if (!format) format = ecore_wl_format_get(); 975 if (!ee) return ECORE_CALLBACK_PASS_ON;
1084 976 if (ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
1085 strcpy(tmp, "/tmp/ecore-wayland_shm-XXXXXX"); 977 if ((ee->x != ev->x) || (ee->y != ev->y))
1086 if ((fd = mkstemp(tmp)) < 0)
1087 {
1088 ERR("Could not create temporary file.");
1089 return;
1090 }
1091
1092 stride = (ee->w * sizeof(int));
1093 size = (stride * ee->h);
1094 if (ftruncate(fd, size) < 0)
1095 { 978 {
1096 ERR("Could not truncate temporary file."); 979 ee->x = ev->x;
1097 close(fd); 980 ee->y = ev->y;
1098 return; 981 ee->req.x = ee->x;
982 ee->req.y = ee->y;
983 if (ee->func.fn_move) ee->func.fn_move(ee);
1099 } 984 }
1100 985 if ((ee->req.w != ev->w) || (ee->req.h != ev->h))
1101 ret = mmap(NULL, size, (PROT_READ | PROT_WRITE), MAP_SHARED, fd, 0);
1102 unlink(tmp);
1103
1104 if (ret == MAP_FAILED)
1105 { 986 {
1106 ERR("mmap of temporary file failed."); 987 /* ee->w = ev->w; */
1107 close(fd); 988 /* ee->h = ev->h; */
1108 return; 989 ee->req.w = ev->w;
990 ee->req.h = ev->h;
991 if (ee->func.fn_resize) ee->func.fn_resize(ee);
1109 } 992 }
1110 993
1111 if (dest) *dest = ret; 994 return ECORE_CALLBACK_PASS_ON;
1112
1113 ee->engine.wl.buffer =
1114 wl_shm_create_buffer(ecore_wl_shm_get(), fd, ee->w, ee->h, stride, format);
1115
1116 close(fd);
1117} 995}
1118 996
1119static void 997static void
@@ -1227,30 +1105,9 @@ _ecore_evas_wl_frame_add(Evas *evas)
1227 return evas_object_smart_add(evas, _ecore_evas_wl_smart); 1105 return evas_object_smart_add(evas, _ecore_evas_wl_smart);
1228} 1106}
1229 1107
1230void
1231_ecore_evas_wayland_shm_resize(Ecore_Evas *ee, int location)
1232{
1233 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1234
1235 if ((!ee) || (!ee->engine.wl.shell_surface)) return;
1236 wl_shell_surface_resize(ee->engine.wl.shell_surface,
1237 ecore_wl_input_device_get(),
1238 _ecore_evas_wl_btn_timestamp, location);
1239}
1240
1241void
1242_ecore_evas_wayland_shm_drag_start(Ecore_Evas *ee, Ecore_Evas *drag_ee, void *source)
1243{
1244 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1245
1246 if ((!ee) || (!ee->engine.wl.surface)) return;
1247 if ((!source) || (!drag_ee)) return;
1248 ecore_wl_drag_start(source, ee->engine.wl.surface, drag_ee->engine.wl.buffer);
1249}
1250
1251#else 1108#else
1252EAPI Ecore_Evas * 1109EAPI Ecore_Evas *
1253ecore_evas_wayland_shm_new(const char *disp_name __UNUSED__, int x __UNUSED__, int y __UNUSED__, int w __UNUSED__, int h __UNUSED__, int frame __UNUSED__) 1110ecore_evas_wayland_shm_new(const char *disp_name __UNUSED__, unsigned int parent __UNUSED__, int x __UNUSED__, int y __UNUSED__, int w __UNUSED__, int h __UNUSED__, Eina_Bool frame __UNUSED__)
1254{ 1111{
1255 return NULL; 1112 return NULL;
1256} 1113}
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_win32.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas_win32.c
index cfec528..32132b3 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas_win32.c
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_win32.c
@@ -420,7 +420,7 @@ _ecore_evas_win32_free(Ecore_Evas *ee)
420 420
421static void 421static void
422_ecore_evas_win32_callback_delete_request_set(Ecore_Evas *ee, 422_ecore_evas_win32_callback_delete_request_set(Ecore_Evas *ee,
423 void (*func) (Ecore_Evas *ee)) 423 Ecore_Evas_Event_Cb func)
424{ 424{
425 ee->func.fn_delete_request = func; 425 ee->func.fn_delete_request = func;
426} 426}
@@ -717,7 +717,7 @@ _ecore_evas_win32_activate(Ecore_Evas *ee)
717{ 717{
718 INF("ecore evas activate"); 718 INF("ecore evas activate");
719 719
720 ecore_win32_window_focus_set((struct _Ecore_Win32_Window *)ee->prop.window); 720 ecore_win32_window_focus((struct _Ecore_Win32_Window *)ee->prop.window);
721} 721}
722 722
723static void 723static void
@@ -819,7 +819,7 @@ _ecore_evas_win32_cursor_set(Ecore_Evas *ee, Evas_Object *obj, int layer, int ho
819static void 819static void
820_ecore_evas_win32_focus_set(Ecore_Evas *ee, int on __UNUSED__) 820_ecore_evas_win32_focus_set(Ecore_Evas *ee, int on __UNUSED__)
821{ 821{
822 ecore_win32_window_focus_set((struct _Ecore_Win32_Window *)ee->prop.window); 822 ecore_win32_window_focus((struct _Ecore_Win32_Window *)ee->prop.window);
823} 823}
824 824
825static void 825static void
@@ -879,18 +879,12 @@ _ecore_evas_win32_fullscreen_set(Ecore_Evas *ee, int on)
879 879
880 if (on != 0) 880 if (on != 0)
881 { 881 {
882 ecore_win32_window_shape_set((struct _Ecore_Win32_Window *)ee->prop.window,
883 0, 0, NULL);
884 ecore_win32_window_fullscreen_set((struct _Ecore_Win32_Window *)ee->prop.window, 882 ecore_win32_window_fullscreen_set((struct _Ecore_Win32_Window *)ee->prop.window,
885 on); 883 on);
886 } 884 }
887 else 885 else
888 { 886 {
889 ecore_win32_window_fullscreen_set(window, on); 887 ecore_win32_window_fullscreen_set(window, on);
890 ecore_win32_window_shape_set(window,
891 window->shape.width,
892 window->shape.height,
893 window->shape.mask);
894 } 888 }
895 889
896 /* Nothing to be done for the GDI backend at the evas level */ 890 /* Nothing to be done for the GDI backend at the evas level */
@@ -982,6 +976,13 @@ static Ecore_Evas_Engine_Func _ecore_win32_engine_func =
982 NULL, /* _ecore_evas_x_alpha_set */ 976 NULL, /* _ecore_evas_x_alpha_set */
983 NULL, //transparent 977 NULL, //transparent
984 978
979 NULL,
980 NULL,
981 NULL,
982 NULL,
983 NULL,
984 NULL,
985
985 NULL, // render 986 NULL, // render
986 NULL //screen_geometry_get 987 NULL //screen_geometry_get
987}; 988};
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_wince.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas_wince.c
index e102cb7..fecf26b 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas_wince.c
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_wince.c
@@ -345,7 +345,7 @@ _ecore_evas_wince_free(Ecore_Evas *ee)
345 345
346static void 346static void
347_ecore_evas_wince_callback_delete_request_set(Ecore_Evas *ee, 347_ecore_evas_wince_callback_delete_request_set(Ecore_Evas *ee,
348 void (*func) (Ecore_Evas *ee)) 348 Ecore_Evas_Event_Cb func)
349{ 349{
350 ee->func.fn_delete_request = func; 350 ee->func.fn_delete_request = func;
351} 351}
@@ -641,11 +641,11 @@ _ecore_evas_wince_cursor_set(Ecore_Evas *ee, Evas_Object *obj, int layer, int ho
641#endif 641#endif
642} 642}
643 643
644/* static void */ 644static void
645/* _ecore_evas_wince_focus_set(Ecore_Evas *ee, int on __UNUSED__) */ 645_ecore_evas_wince_focus_set(Ecore_Evas *ee, int on __UNUSED__)
646/* { */ 646{
647/* ecore_wince_window_focus_set(ee->prop.window); */ 647 ecore_wince_window_focus(ee->prop.window);
648/* } */ 648}
649 649
650/* static void */ 650/* static void */
651/* _ecore_evas_wince_iconified_set(Ecore_Evas *ee, int on) */ 651/* _ecore_evas_wince_iconified_set(Ecore_Evas *ee, int on) */
@@ -760,7 +760,7 @@ static Ecore_Evas_Engine_Func _ecore_wince_engine_func =
760 NULL, //_ecore_evas_wince_size_step_set, 760 NULL, //_ecore_evas_wince_size_step_set,
761 _ecore_evas_wince_cursor_set, 761 _ecore_evas_wince_cursor_set,
762 NULL, /* _ecore_evas_x_layer_set */ 762 NULL, /* _ecore_evas_x_layer_set */
763 NULL, //_ecore_evas_wince_focus_set, 763 _ecore_evas_wince_focus_set,
764 NULL, //_ecore_evas_wince_iconified_set, 764 NULL, //_ecore_evas_wince_iconified_set,
765 NULL, //_ecore_evas_wince_borderless_set, 765 NULL, //_ecore_evas_wince_borderless_set,
766 NULL, /* _ecore_evas_x_override_set */ 766 NULL, /* _ecore_evas_x_override_set */
@@ -773,6 +773,13 @@ static Ecore_Evas_Engine_Func _ecore_wince_engine_func =
773 NULL, /* _ecore_evas_x_alpha_set */ 773 NULL, /* _ecore_evas_x_alpha_set */
774 NULL, //transparent 774 NULL, //transparent
775 775
776 NULL,
777 NULL,
778 NULL,
779 NULL,
780 NULL,
781 NULL,
782
776 NULL, // render 783 NULL, // render
777 NULL // screen_geometry_get 784 NULL // screen_geometry_get
778}; 785};
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_x.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas_x.c
index 7d3af12..6dd13de 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas_x.c
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_x.c
@@ -20,6 +20,22 @@ static int leader_ref = 0;
20static Ecore_X_Window leader_win = 0; 20static Ecore_X_Window leader_win = 0;
21 21
22static void 22static void
23_ecore_evas_x_hints_update(Ecore_Evas *ee)
24{
25 ecore_x_icccm_hints_set
26 (ee->prop.window,
27 !ee->prop.focus_skip /* accepts_focus */,
28 ee->prop.iconified ? ECORE_X_WINDOW_STATE_HINT_ICONIC :
29 ee->prop.withdrawn ? ECORE_X_WINDOW_STATE_HINT_WITHDRAWN :
30 ECORE_X_WINDOW_STATE_HINT_NORMAL /* initial_state */,
31 0 /* icon_pixmap */,
32 0 /* icon_mask */,
33 0 /* icon_window */,
34 ee->prop.group_ee_win /* window_group */,
35 ee->prop.urgent /* is_urgent */);
36}
37
38static void
23_ecore_evas_x_group_leader_set(Ecore_Evas *ee) 39_ecore_evas_x_group_leader_set(Ecore_Evas *ee)
24{ 40{
25 leader_ref++; 41 leader_ref++;
@@ -537,6 +553,7 @@ _ecore_evas_x_event_property_change(void *data __UNUSED__, int type __UNUSED__,
537{ 553{
538 Ecore_Evas *ee; 554 Ecore_Evas *ee;
539 Ecore_X_Event_Window_Property *e; 555 Ecore_X_Event_Window_Property *e;
556 int state_change = 0;
540 557
541 e = event; 558 e = event;
542 ee = ecore_event_window_match(e->win); 559 ee = ecore_event_window_match(e->win);
@@ -546,20 +563,62 @@ _ecore_evas_x_event_property_change(void *data __UNUSED__, int type __UNUSED__,
546 { 563 {
547 unsigned int i, num; 564 unsigned int i, num;
548 Ecore_X_Window_State *state; 565 Ecore_X_Window_State *state;
549 int sticky = 0; 566 struct {
550 567 struct {
551 /* TODO: we need to move those to the end, with if statements */ 568 unsigned char modal : 1;
552 ee->engine.x.state.modal = 0; 569 unsigned char sticky : 1;
553 ee->engine.x.state.maximized_v = 0; 570 unsigned char maximized_v : 1;
554 ee->engine.x.state.maximized_h = 0; 571 unsigned char maximized_h : 1;
555 ee->engine.x.state.shaded = 0; 572 unsigned char shaded : 1;
573 unsigned char skip_taskbar : 1;
574 unsigned char skip_pager : 1;
575 unsigned char fullscreen : 1;
576 unsigned char above : 1;
577 unsigned char below : 1;
578 } x;
579 struct {
580 char modal : 1;
581 char maximized : 1;
582 char sticky : 1;
583 char fullscreen : 1;
584 char focus_skip : 1;
585 } prop;
586 } prev;
587
588 prev.x.modal = ee->engine.x.state.modal;
589 prev.x.sticky = ee->engine.x.state.sticky;
590 prev.x.maximized_v = ee->engine.x.state.maximized_v;
591 prev.x.maximized_h = ee->engine.x.state.maximized_h;
592 prev.x.shaded = ee->engine.x.state.shaded;
593 prev.x.skip_taskbar = ee->engine.x.state.skip_taskbar;
594 prev.x.skip_pager = ee->engine.x.state.skip_pager;
595 prev.x.fullscreen = ee->engine.x.state.fullscreen;
596 prev.x.above = ee->engine.x.state.above;
597 prev.x.below = ee->engine.x.state.below;
598
599 prev.prop.modal = ee->prop.modal;
600 prev.prop.maximized = ee->prop.maximized;
601 prev.prop.sticky = ee->prop.sticky;
602 prev.prop.fullscreen = ee->prop.fullscreen;
603 prev.prop.focus_skip = ee->prop.focus_skip;
604
605 ee->engine.x.state.modal = 0;
606 ee->engine.x.state.sticky = 0;
607 ee->engine.x.state.maximized_v = 0;
608 ee->engine.x.state.maximized_h = 0;
609 ee->engine.x.state.shaded = 0;
556 ee->engine.x.state.skip_taskbar = 0; 610 ee->engine.x.state.skip_taskbar = 0;
557 ee->engine.x.state.skip_pager = 0; 611 ee->engine.x.state.skip_pager = 0;
612 ee->engine.x.state.fullscreen = 0;
613 ee->engine.x.state.above = 0;
614 ee->engine.x.state.below = 0;
615
616 ee->prop.modal = 0;
617 ee->prop.maximized = 0;
618 ee->prop.sticky = 0;
558 ee->prop.fullscreen = 0; 619 ee->prop.fullscreen = 0;
559 ee->engine.x.state.fullscreen = 0; 620 ee->prop.focus_skip = 0;
560 ee->engine.x.state.above = 0; 621
561 ee->engine.x.state.below = 0;
562
563 ecore_x_netwm_window_state_get(e->win, &state, &num); 622 ecore_x_netwm_window_state_get(e->win, &state, &num);
564 if (state) 623 if (state)
565 { 624 {
@@ -568,56 +627,106 @@ _ecore_evas_x_event_property_change(void *data __UNUSED__, int type __UNUSED__,
568 switch (state[i]) 627 switch (state[i])
569 { 628 {
570 case ECORE_X_WINDOW_STATE_MODAL: 629 case ECORE_X_WINDOW_STATE_MODAL:
571 ee->engine.x.state.modal = 1; 630 ee->engine.x.state.modal = 1;
572 break; 631 ee->prop.modal = 1;
632 break;
573 case ECORE_X_WINDOW_STATE_STICKY: 633 case ECORE_X_WINDOW_STATE_STICKY:
574 if (ee->prop.sticky && ee->engine.x.state.sticky) 634 ee->prop.sticky = 1;
575 break; 635 ee->engine.x.state.sticky = 1;
576 636 break;
577 sticky = 1;
578 ee->prop.sticky = 1;
579 ee->engine.x.state.sticky = 1;
580 if (ee->func.fn_sticky) ee->func.fn_sticky(ee);
581 break;
582 case ECORE_X_WINDOW_STATE_MAXIMIZED_VERT: 637 case ECORE_X_WINDOW_STATE_MAXIMIZED_VERT:
583 ee->engine.x.state.maximized_v = 1; 638 ee->engine.x.state.maximized_v = 1;
584 break; 639 ee->prop.maximized = 1;
640 break;
585 case ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ: 641 case ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ:
586 ee->engine.x.state.maximized_h = 1; 642 ee->engine.x.state.maximized_h = 1;
587 break; 643 ee->prop.maximized = 1;
644 break;
588 case ECORE_X_WINDOW_STATE_SHADED: 645 case ECORE_X_WINDOW_STATE_SHADED:
589 ee->engine.x.state.shaded = 1; 646 ee->engine.x.state.shaded = 1;
590 break; 647 break;
591 case ECORE_X_WINDOW_STATE_SKIP_TASKBAR: 648 case ECORE_X_WINDOW_STATE_SKIP_TASKBAR:
592 ee->engine.x.state.skip_taskbar = 1; 649 ee->engine.x.state.skip_taskbar = 1;
593 break; 650 ee->prop.focus_skip = 1;
651 break;
594 case ECORE_X_WINDOW_STATE_SKIP_PAGER: 652 case ECORE_X_WINDOW_STATE_SKIP_PAGER:
595 ee->engine.x.state.skip_pager = 1; 653 ee->engine.x.state.skip_pager = 1;
596 break; 654 ee->prop.focus_skip = 1;
655 break;
597 case ECORE_X_WINDOW_STATE_FULLSCREEN: 656 case ECORE_X_WINDOW_STATE_FULLSCREEN:
598 ee->prop.fullscreen = 1; 657 ee->prop.fullscreen = 1;
599 ee->engine.x.state.fullscreen = 1; 658 ee->engine.x.state.fullscreen = 1;
600 break; 659 break;
601 case ECORE_X_WINDOW_STATE_ABOVE: 660 case ECORE_X_WINDOW_STATE_ABOVE:
602 ee->engine.x.state.above = 1; 661 ee->engine.x.state.above = 1;
603 break; 662 break;
604 case ECORE_X_WINDOW_STATE_BELOW: 663 case ECORE_X_WINDOW_STATE_BELOW:
605 ee->engine.x.state.below = 1; 664 ee->engine.x.state.below = 1;
606 break; 665 break;
607 default: 666 default:
608 break; 667 break;
609 } 668 }
610 } 669 }
611 free(state); 670 free(state);
612 } 671 }
613 672 if (
614 if ((ee->prop.sticky) && (!sticky)) 673// (prev.x.modal != ee->engine.x.state.modal) ||
674 (prev.x.sticky != ee->engine.x.state.sticky) ||
675 (prev.x.maximized_v != ee->engine.x.state.maximized_v) ||
676 (prev.x.maximized_h != ee->engine.x.state.maximized_h) ||
677// (prev.x.shaded != ee->engine.x.state.shaded) ||
678// (prev.x.skip_taskbar != ee->engine.x.state.skip_taskbar) ||
679// (prev.x.skip_pager != ee->engine.x.state.skip_pager) ||
680 (prev.x.fullscreen != ee->engine.x.state.fullscreen) ||
681// (prev.x.above != ee->engine.x.state.above) ||
682// (prev.x.below != ee->engine.x.state.below) ||
683// (prev.prop.modal != ee->prop.modal) ||
684 (prev.prop.maximized != ee->prop.maximized) ||
685 (prev.prop.sticky != ee->prop.sticky) ||
686 (prev.prop.fullscreen != ee->prop.fullscreen) ||
687 (prev.prop.focus_skip != ee->prop.focus_skip))
688 state_change = 1;
689 }
690 else if (e->atom == ECORE_X_ATOM_WM_STATE)
691 {
692 Ecore_X_Window_State_Hint state;
693
694 // handle WM_STATE changes
695 state = ecore_x_icccm_state_get(e->win);
696 switch (state)
615 { 697 {
616 ee->prop.sticky = 0; 698 case ECORE_X_WINDOW_STATE_HINT_WITHDRAWN:
617 ee->engine.x.state.sticky = 0; 699 if ((!ee->prop.withdrawn) || (ee->prop.iconified))
618 if (ee->func.fn_unsticky) ee->func.fn_unsticky(ee); 700 {
701 state_change = 1;
702 ee->prop.withdrawn = 1;
703 ee->prop.iconified = 0;
704 }
705 break;
706 case ECORE_X_WINDOW_STATE_HINT_ICONIC:
707 if ((!ee->prop.iconified) || (ee->prop.withdrawn))
708 {
709 state_change = 1;
710 ee->prop.iconified = 1;
711 ee->prop.withdrawn = 0;
712 }
713 break;
714 case ECORE_X_WINDOW_STATE_HINT_NORMAL:
715 if ((ee->prop.iconified) || (ee->prop.withdrawn))
716 {
717 state_change = 1;
718 ee->prop.iconified = 0;
719 ee->prop.withdrawn = 0;
720 }
721 break;
722 default:
723 break;
619 } 724 }
620 } 725 }
726 if (state_change)
727 {
728 if (ee->func.fn_state_change) ee->func.fn_state_change(ee);
729 }
621 730
622 return ECORE_CALLBACK_PASS_ON; 731 return ECORE_CALLBACK_PASS_ON;
623} 732}
@@ -826,7 +935,8 @@ _ecore_evas_x_event_window_focus_in(void *data __UNUSED__, int type __UNUSED__,
826 ee = ecore_event_window_match(e->win); 935 ee = ecore_event_window_match(e->win);
827 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON; /* pass on event */ 936 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON; /* pass on event */
828 if (e->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON; 937 if (e->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
829 if (e->mode == ECORE_X_EVENT_MODE_UNGRAB) return ECORE_CALLBACK_PASS_ON; 938//xx// filtering with these doesnt help
939//xx// if (e->mode == ECORE_X_EVENT_MODE_UNGRAB) return ECORE_CALLBACK_PASS_ON;
830 ee->prop.focused = 1; 940 ee->prop.focused = 1;
831 evas_focus_in(ee->evas); 941 evas_focus_in(ee->evas);
832 if (ee->func.fn_focus_in) ee->func.fn_focus_in(ee); 942 if (ee->func.fn_focus_in) ee->func.fn_focus_in(ee);
@@ -843,7 +953,9 @@ _ecore_evas_x_event_window_focus_out(void *data __UNUSED__, int type __UNUSED__,
843 ee = ecore_event_window_match(e->win); 953 ee = ecore_event_window_match(e->win);
844 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON; /* pass on event */ 954 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON; /* pass on event */
845 if (e->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON; 955 if (e->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
846 if (e->mode == ECORE_X_EVENT_MODE_GRAB) return ECORE_CALLBACK_PASS_ON; 956//xx// filtering with these doesnt help
957//xx// if (e->mode == ECORE_X_EVENT_MODE_GRAB) return ECORE_CALLBACK_PASS_ON;
958
847// if (ee->prop.fullscreen) 959// if (ee->prop.fullscreen)
848// ecore_x_window_focus(ee->prop.window); 960// ecore_x_window_focus(ee->prop.window);
849 evas_focus_out(ee->evas); 961 evas_focus_out(ee->evas);
@@ -1078,8 +1190,8 @@ _ecore_evas_x_size_pos_hints_update(Ecore_Evas *ee)
1078 ee->prop.base.h /* base_h */, 1190 ee->prop.base.h /* base_h */,
1079 ee->prop.step.w /* step_x */, 1191 ee->prop.step.w /* step_x */,
1080 ee->prop.step.h /* step_y */, 1192 ee->prop.step.h /* step_y */,
1081 0 /* min_aspect */, 1193 ee->prop.aspect /* min_aspect */,
1082 0 /* max_aspect */); 1194 ee->prop.aspect /* max_aspect */);
1083} 1195}
1084 1196
1085/* FIXME, should be in idler */ 1197/* FIXME, should be in idler */
@@ -1089,32 +1201,30 @@ _ecore_evas_x_state_update(Ecore_Evas *ee)
1089 Ecore_X_Window_State state[10]; 1201 Ecore_X_Window_State state[10];
1090 int num = 0; 1202 int num = 0;
1091 1203
1092 /* 1204 if (ee->prop.modal)
1093 if (bd->client.netwm.state.modal)
1094 state[num++] = ECORE_X_WINDOW_STATE_MODAL; 1205 state[num++] = ECORE_X_WINDOW_STATE_MODAL;
1095 */ 1206 if (ee->prop.sticky)
1096 if (ee->engine.x.state.sticky)
1097 state[num++] = ECORE_X_WINDOW_STATE_STICKY; 1207 state[num++] = ECORE_X_WINDOW_STATE_STICKY;
1098 /* 1208 if (ee->prop.maximized)
1099 if (bd->client.netwm.state.maximized_v)
1100 state[num++] = ECORE_X_WINDOW_STATE_MAXIMIZED_VERT; 1209 state[num++] = ECORE_X_WINDOW_STATE_MAXIMIZED_VERT;
1101 if (bd->client.netwm.state.maximized_h) 1210 if (ee->prop.maximized)
1102 state[num++] = ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ; 1211 state[num++] = ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ;
1103 if (bd->client.netwm.state.shaded) 1212// if (bd->client.netwm.state.shaded)
1104 state[num++] = ECORE_X_WINDOW_STATE_SHADED; 1213// state[num++] = ECORE_X_WINDOW_STATE_SHADED;
1105 if (bd->client.netwm.state.skip_taskbar) 1214 if (ee->prop.focus_skip)
1106 state[num++] = ECORE_X_WINDOW_STATE_SKIP_TASKBAR; 1215 state[num++] = ECORE_X_WINDOW_STATE_SKIP_TASKBAR;
1107 if (bd->client.netwm.state.skip_pager) 1216 if (ee->prop.focus_skip)
1108 state[num++] = ECORE_X_WINDOW_STATE_SKIP_PAGER; 1217 state[num++] = ECORE_X_WINDOW_STATE_SKIP_PAGER;
1109 if (bd->client.netwm.state.hidden) 1218// if (bd->client.netwm.state.hidden)
1110 state[num++] = ECORE_X_WINDOW_STATE_HIDDEN; 1219// state[num++] = ECORE_X_WINDOW_STATE_HIDDEN;
1111 */
1112 if (ee->engine.x.state.fullscreen) 1220 if (ee->engine.x.state.fullscreen)
1113 state[num++] = ECORE_X_WINDOW_STATE_FULLSCREEN; 1221 state[num++] = ECORE_X_WINDOW_STATE_FULLSCREEN;
1114 if (ee->engine.x.state.above) 1222 if (ee->engine.x.state.above)
1115 state[num++] = ECORE_X_WINDOW_STATE_ABOVE; 1223 state[num++] = ECORE_X_WINDOW_STATE_ABOVE;
1116 if (ee->engine.x.state.below) 1224 if (ee->engine.x.state.below)
1117 state[num++] = ECORE_X_WINDOW_STATE_BELOW; 1225 state[num++] = ECORE_X_WINDOW_STATE_BELOW;
1226 if (ee->prop.demand_attention)
1227 state[num++] = ECORE_X_WINDOW_STATE_DEMANDS_ATTENTION;
1118 1228
1119 ecore_x_netwm_window_state_set(ee->prop.window, state, num); 1229 ecore_x_netwm_window_state_set(ee->prop.window, state, num);
1120} 1230}
@@ -1292,7 +1402,7 @@ _ecore_evas_x_free(Ecore_Evas *ee)
1292} 1402}
1293 1403
1294static void 1404static void
1295_ecore_evas_x_callback_delete_request_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)) 1405_ecore_evas_x_callback_delete_request_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func)
1296{ 1406{
1297 ee->func.fn_delete_request = func; 1407 ee->func.fn_delete_request = func;
1298 _ecore_evas_x_protocols_set(ee); 1408 _ecore_evas_x_protocols_set(ee);
@@ -1578,6 +1688,10 @@ _ecore_evas_x_rotation_set_internal(Ecore_Evas *ee, int rotation, int resize,
1578static void 1688static void
1579_ecore_evas_x_rotation_set(Ecore_Evas *ee, int rotation, int resize) 1689_ecore_evas_x_rotation_set(Ecore_Evas *ee, int rotation, int resize)
1580{ 1690{
1691 int angles[2];
1692 angles[0] = rotation;
1693 angles[1] = ee->rotation;
1694
1581 if (ee->rotation == rotation) return; 1695 if (ee->rotation == rotation) return;
1582 if (!strcmp(ee->driver, "opengl_x11")) 1696 if (!strcmp(ee->driver, "opengl_x11"))
1583 { 1697 {
@@ -1589,6 +1703,9 @@ _ecore_evas_x_rotation_set(Ecore_Evas *ee, int rotation, int resize)
1589 einfo->info.rotation = rotation; 1703 einfo->info.rotation = rotation;
1590 _ecore_evas_x_rotation_set_internal(ee, rotation, resize, 1704 _ecore_evas_x_rotation_set_internal(ee, rotation, resize,
1591 (Evas_Engine_Info *)einfo); 1705 (Evas_Engine_Info *)einfo);
1706 ecore_x_window_prop_property_set(ee->prop.window,
1707 ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
1708 ECORE_X_ATOM_CARDINAL, 32, &angles, 2);
1592#endif /* BUILD_ECORE_EVAS_OPENGL_X11 */ 1709#endif /* BUILD_ECORE_EVAS_OPENGL_X11 */
1593 } 1710 }
1594 else if (!strcmp(ee->driver, "software_x11")) 1711 else if (!strcmp(ee->driver, "software_x11"))
@@ -1601,6 +1718,9 @@ _ecore_evas_x_rotation_set(Ecore_Evas *ee, int rotation, int resize)
1601 einfo->info.rotation = rotation; 1718 einfo->info.rotation = rotation;
1602 _ecore_evas_x_rotation_set_internal(ee, rotation, resize, 1719 _ecore_evas_x_rotation_set_internal(ee, rotation, resize,
1603 (Evas_Engine_Info *)einfo); 1720 (Evas_Engine_Info *)einfo);
1721 ecore_x_window_prop_property_set(ee->prop.window,
1722 ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
1723 ECORE_X_ATOM_CARDINAL, 32, &angles, 2);
1604#endif /* BUILD_ECORE_EVAS_SOFTWARE_X11 */ 1724#endif /* BUILD_ECORE_EVAS_SOFTWARE_X11 */
1605 } 1725 }
1606 else if (!strcmp(ee->driver, "software_16_x11")) 1726 else if (!strcmp(ee->driver, "software_16_x11"))
@@ -1613,6 +1733,9 @@ _ecore_evas_x_rotation_set(Ecore_Evas *ee, int rotation, int resize)
1613 einfo->info.rotation = rotation; 1733 einfo->info.rotation = rotation;
1614 _ecore_evas_x_rotation_set_internal(ee, rotation, resize, 1734 _ecore_evas_x_rotation_set_internal(ee, rotation, resize,
1615 (Evas_Engine_Info *)einfo); 1735 (Evas_Engine_Info *)einfo);
1736 ecore_x_window_prop_property_set(ee->prop.window,
1737 ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
1738 ECORE_X_ATOM_CARDINAL, 32, &angles, 2);
1616#endif /* BUILD_ECORE_EVAS_SOFTWARE_16_X11 */ 1739#endif /* BUILD_ECORE_EVAS_SOFTWARE_16_X11 */
1617 } 1740 }
1618 else if (!strcmp(ee->driver, "software_8_x11")) 1741 else if (!strcmp(ee->driver, "software_8_x11"))
@@ -1625,6 +1748,9 @@ _ecore_evas_x_rotation_set(Ecore_Evas *ee, int rotation, int resize)
1625 einfo->info.rotation = rotation; 1748 einfo->info.rotation = rotation;
1626 _ecore_evas_x_rotation_set_internal(ee, rotation, resize, 1749 _ecore_evas_x_rotation_set_internal(ee, rotation, resize,
1627 (Evas_Engine_Info *)einfo); 1750 (Evas_Engine_Info *)einfo);
1751 ecore_x_window_prop_property_set(ee->prop.window,
1752 ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
1753 ECORE_X_ATOM_CARDINAL, 32, &angles, 2);
1628#endif /* BUILD_ECORE_EVAS_SOFTWARE_8_X11 */ 1754#endif /* BUILD_ECORE_EVAS_SOFTWARE_8_X11 */
1629 } 1755 }
1630} 1756}
@@ -1839,14 +1965,7 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha)
1839 ecore_x_icccm_title_set(ee->prop.window, ee->prop.title); 1965 ecore_x_icccm_title_set(ee->prop.window, ee->prop.title);
1840 ecore_x_netwm_name_set(ee->prop.window, ee->prop.title); 1966 ecore_x_netwm_name_set(ee->prop.window, ee->prop.title);
1841 } 1967 }
1842 ecore_x_icccm_hints_set(ee->prop.window, 1968 _ecore_evas_x_hints_update(ee);
1843 1 /* accepts_focus */,
1844 ECORE_X_WINDOW_STATE_HINT_NORMAL /* initial_state */,
1845 0 /* icon_pixmap */,
1846 0 /* icon_mask */,
1847 0 /* icon_window */,
1848 0 /* window_group */,
1849 0 /* is_urgent */);
1850 _ecore_evas_x_group_leader_update(ee); 1969 _ecore_evas_x_group_leader_update(ee);
1851 ecore_x_window_defaults_set(ee->prop.window); 1970 ecore_x_window_defaults_set(ee->prop.window);
1852 _ecore_evas_x_protocols_set(ee); 1971 _ecore_evas_x_protocols_set(ee);
@@ -1962,14 +2081,7 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha)
1962 ecore_x_icccm_title_set(ee->prop.window, ee->prop.title); 2081 ecore_x_icccm_title_set(ee->prop.window, ee->prop.title);
1963 ecore_x_netwm_name_set(ee->prop.window, ee->prop.title); 2082 ecore_x_netwm_name_set(ee->prop.window, ee->prop.title);
1964 } 2083 }
1965 ecore_x_icccm_hints_set(ee->prop.window, 2084 _ecore_evas_x_hints_update(ee);
1966 1 /* accepts_focus */,
1967 ECORE_X_WINDOW_STATE_HINT_NORMAL /* initial_state */,
1968 0 /* icon_pixmap */,
1969 0 /* icon_mask */,
1970 0 /* icon_window */,
1971 0 /* window_group */,
1972 0 /* is_urgent */);
1973 _ecore_evas_x_group_leader_update(ee); 2085 _ecore_evas_x_group_leader_update(ee);
1974 ecore_x_window_defaults_set(ee->prop.window); 2086 ecore_x_window_defaults_set(ee->prop.window);
1975 _ecore_evas_x_protocols_set(ee); 2087 _ecore_evas_x_protocols_set(ee);
@@ -2048,14 +2160,7 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha)
2048 ecore_x_icccm_title_set(ee->prop.window, ee->prop.title); 2160 ecore_x_icccm_title_set(ee->prop.window, ee->prop.title);
2049 ecore_x_netwm_name_set(ee->prop.window, ee->prop.title); 2161 ecore_x_netwm_name_set(ee->prop.window, ee->prop.title);
2050 } 2162 }
2051 ecore_x_icccm_hints_set(ee->prop.window, 2163 _ecore_evas_x_hints_update(ee);
2052 1 /* accepts_focus */,
2053 ECORE_X_WINDOW_STATE_HINT_NORMAL /* initial_state */,
2054 0 /* icon_pixmap */,
2055 0 /* icon_mask */,
2056 0 /* icon_window */,
2057 0 /* window_group */,
2058 0 /* is_urgent */);
2059 _ecore_evas_x_group_leader_update(ee); 2164 _ecore_evas_x_group_leader_update(ee);
2060 ecore_x_window_defaults_set(ee->prop.window); 2165 ecore_x_window_defaults_set(ee->prop.window);
2061 _ecore_evas_x_protocols_set(ee); 2166 _ecore_evas_x_protocols_set(ee);
@@ -2134,14 +2239,7 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha)
2134 ecore_x_icccm_title_set(ee->prop.window, ee->prop.title); 2239 ecore_x_icccm_title_set(ee->prop.window, ee->prop.title);
2135 ecore_x_netwm_name_set(ee->prop.window, ee->prop.title); 2240 ecore_x_netwm_name_set(ee->prop.window, ee->prop.title);
2136 } 2241 }
2137 ecore_x_icccm_hints_set(ee->prop.window, 2242 _ecore_evas_x_hints_update(ee);
2138 1 /* accepts_focus */,
2139 ECORE_X_WINDOW_STATE_HINT_NORMAL /* initial_state */,
2140 0 /* icon_pixmap */,
2141 0 /* icon_mask */,
2142 0 /* icon_window */,
2143 0 /* window_group */,
2144 0 /* is_urgent */);
2145 _ecore_evas_x_group_leader_update(ee); 2243 _ecore_evas_x_group_leader_update(ee);
2146 ecore_x_window_defaults_set(ee->prop.window); 2244 ecore_x_window_defaults_set(ee->prop.window);
2147 _ecore_evas_x_protocols_set(ee); 2245 _ecore_evas_x_protocols_set(ee);
@@ -2182,6 +2280,88 @@ _ecore_evas_x_transparent_set(Ecore_Evas *ee, int transparent)
2182#endif 2280#endif
2183 } 2281 }
2184} 2282}
2283
2284static void
2285_ecore_evas_x_window_group_set(Ecore_Evas *ee, const Ecore_Evas *group_ee)
2286{
2287 if (ee->prop.group_ee == group_ee) return;
2288
2289 ee->prop.group_ee = (Ecore_Evas *)group_ee;
2290 if (ee->prop.group_ee)
2291 ee->prop.group_ee_win = group_ee->prop.window;
2292 else
2293 ee->prop.group_ee_win = 0;
2294 _ecore_evas_x_hints_update(ee);
2295}
2296
2297static void
2298_ecore_evas_x_aspect_set(Ecore_Evas *ee, double aspect)
2299{
2300 if (ee->prop.aspect == aspect) return;
2301
2302 ee->prop.aspect = aspect;
2303 _ecore_evas_x_size_pos_hints_update(ee);
2304// netwm state
2305// if (ee->should_be_visible)
2306// ecore_x_netwm_state_request_send(ee->prop.window, ee->engine.x.win_root,
2307// ECORE_X_WINDOW_STATE_STICKY, -1, sticky);
2308// else
2309// _ecore_evas_x_state_update(ee);
2310}
2311
2312static void
2313_ecore_evas_x_urgent_set(Ecore_Evas *ee, int urgent)
2314{
2315 if (ee->prop.urgent == urgent) return;
2316
2317 ee->prop.urgent = urgent;
2318 _ecore_evas_x_hints_update(ee);
2319}
2320
2321static void
2322_ecore_evas_x_modal_set(Ecore_Evas *ee, int modal)
2323{
2324 if (ee->prop.modal == modal) return;
2325
2326 ee->prop.modal = modal;
2327 if (ee->should_be_visible)
2328 ecore_x_netwm_state_request_send(ee->prop.window, ee->engine.x.win_root,
2329 ECORE_X_WINDOW_STATE_MODAL, -1, modal);
2330 else
2331 _ecore_evas_x_state_update(ee);
2332}
2333
2334static void
2335_ecore_evas_x_demand_attention_set(Ecore_Evas *ee, int demand)
2336{
2337 if (ee->prop.demand_attention == demand) return;
2338
2339 ee->prop.demand_attention = demand;
2340 if (ee->should_be_visible)
2341 ecore_x_netwm_state_request_send(ee->prop.window, ee->engine.x.win_root,
2342 ECORE_X_WINDOW_STATE_DEMANDS_ATTENTION, -1, demand);
2343 else
2344 _ecore_evas_x_state_update(ee);
2345}
2346
2347static void
2348_ecore_evas_x_focus_skip_set(Ecore_Evas *ee, int skip)
2349{
2350 if (ee->prop.focus_skip == skip) return;
2351
2352 ee->prop.focus_skip = skip;
2353 if (ee->should_be_visible)
2354 {
2355 ecore_x_netwm_state_request_send(ee->prop.window, ee->engine.x.win_root,
2356 ECORE_X_WINDOW_STATE_SKIP_TASKBAR, -1, skip);
2357 ecore_x_netwm_state_request_send(ee->prop.window, ee->engine.x.win_root,
2358 ECORE_X_WINDOW_STATE_SKIP_PAGER, -1, skip);
2359 }
2360 else
2361 _ecore_evas_x_state_update(ee);
2362 _ecore_evas_x_hints_update(ee);
2363}
2364
2185#endif /* BUILD_ECORE_EVAS_X11 */ 2365#endif /* BUILD_ECORE_EVAS_X11 */
2186 2366
2187#ifdef BUILD_ECORE_EVAS_X11 2367#ifdef BUILD_ECORE_EVAS_X11
@@ -2369,30 +2549,11 @@ _ecore_evas_x_iconified_set(Ecore_Evas *ee, int on)
2369{ 2549{
2370 if (ee->prop.iconified == on) return; 2550 if (ee->prop.iconified == on) return;
2371 ee->prop.iconified = on; 2551 ee->prop.iconified = on;
2552 _ecore_evas_x_hints_update(ee);
2372 if (on) 2553 if (on)
2373 { 2554 ecore_x_icccm_iconic_request_send(ee->prop.window, ee->engine.x.win_root);
2374 ecore_x_icccm_hints_set(ee->prop.window,
2375 1 /* accepts_focus */,
2376 ECORE_X_WINDOW_STATE_HINT_ICONIC /* initial_state */,
2377 0 /* icon_pixmap */,
2378 0 /* icon_mask */,
2379 0 /* icon_window */,
2380 0 /* window_group */,
2381 0 /* is_urgent */);
2382 ecore_x_icccm_iconic_request_send(ee->prop.window, ee->engine.x.win_root);
2383 }
2384 else 2555 else
2385 { 2556 ecore_evas_show(ee);
2386 ecore_x_icccm_hints_set(ee->prop.window,
2387 1 /* accepts_focus */,
2388 ECORE_X_WINDOW_STATE_HINT_NORMAL /* initial_state */,
2389 0 /* icon_pixmap */,
2390 0 /* icon_mask */,
2391 0 /* icon_window */,
2392 0 /* window_group */,
2393 0 /* is_urgent */);
2394 ecore_evas_show(ee);
2395 }
2396} 2557}
2397 2558
2398static void 2559static void
@@ -2408,24 +2569,9 @@ _ecore_evas_x_borderless_set(Ecore_Evas *ee, int on)
2408static void 2569static void
2409_ecore_evas_x_withdrawn_set(Ecore_Evas *ee, int withdrawn) 2570_ecore_evas_x_withdrawn_set(Ecore_Evas *ee, int withdrawn)
2410{ 2571{
2411 Ecore_X_Window_State_Hint hint;
2412
2413 if (ee->prop.withdrawn == withdrawn) return; 2572 if (ee->prop.withdrawn == withdrawn) return;
2414
2415 ee->prop.withdrawn = withdrawn; 2573 ee->prop.withdrawn = withdrawn;
2416 if (withdrawn) 2574 _ecore_evas_x_hints_update(ee);
2417 hint = ECORE_X_WINDOW_STATE_HINT_WITHDRAWN;
2418 else
2419 hint = ECORE_X_WINDOW_STATE_HINT_NORMAL;
2420
2421 ecore_x_icccm_hints_set(ee->prop.window,
2422 1 /* accepts_focus */,
2423 hint /* initial_state */,
2424 0 /* icon_pixmap */,
2425 0 /* icon_mask */,
2426 0 /* icon_window */,
2427 0 /* window_group */,
2428 0 /* is_urgent */);
2429} 2575}
2430 2576
2431static void 2577static void
@@ -2762,6 +2908,13 @@ static Ecore_Evas_Engine_Func _ecore_x_engine_func =
2762 _ecore_evas_x_ignore_events_set, 2908 _ecore_evas_x_ignore_events_set,
2763 _ecore_evas_x_alpha_set, 2909 _ecore_evas_x_alpha_set,
2764 _ecore_evas_x_transparent_set, 2910 _ecore_evas_x_transparent_set,
2911
2912 _ecore_evas_x_window_group_set,
2913 _ecore_evas_x_aspect_set,
2914 _ecore_evas_x_urgent_set,
2915 _ecore_evas_x_modal_set,
2916 _ecore_evas_x_demand_attention_set,
2917 _ecore_evas_x_focus_skip_set,
2765 2918
2766 NULL, // render 2919 NULL, // render
2767 _ecore_evas_x_screen_geometry_get 2920 _ecore_evas_x_screen_geometry_get
@@ -3003,14 +3156,7 @@ ecore_evas_software_x11_new(const char *disp_name, Ecore_X_Window parent,
3003 } 3156 }
3004 } 3157 }
3005 3158
3006 ecore_x_icccm_hints_set(ee->prop.window, 3159 _ecore_evas_x_hints_update(ee);
3007 1 /* accepts_focus */,
3008 ECORE_X_WINDOW_STATE_HINT_NORMAL /* initial_state */,
3009 0 /* icon_pixmap */,
3010 0 /* icon_mask */,
3011 0 /* icon_window */,
3012 0 /* window_group */,
3013 0 /* is_urgent */);
3014 _ecore_evas_x_group_leader_set(ee); 3160 _ecore_evas_x_group_leader_set(ee);
3015 ecore_x_window_defaults_set(ee->prop.window); 3161 ecore_x_window_defaults_set(ee->prop.window);
3016 _ecore_evas_x_protocols_set(ee); 3162 _ecore_evas_x_protocols_set(ee);
@@ -3240,14 +3386,7 @@ ecore_evas_gl_x11_options_new(const char *disp_name, Ecore_X_Window parent,
3240// putenv((char*)"DESKTOP_STARTUP_ID="); 3386// putenv((char*)"DESKTOP_STARTUP_ID=");
3241 } 3387 }
3242 3388
3243 ecore_x_icccm_hints_set(ee->prop.window, 3389 _ecore_evas_x_hints_update(ee);
3244 1 /* accepts_focus */,
3245 ECORE_X_WINDOW_STATE_HINT_NORMAL /* initial_state */,
3246 0 /* icon_pixmap */,
3247 0 /* icon_mask */,
3248 0 /* icon_window */,
3249 0 /* window_group */,
3250 0 /* is_urgent */);
3251 _ecore_evas_x_group_leader_set(ee); 3390 _ecore_evas_x_group_leader_set(ee);
3252 ecore_x_window_defaults_set(ee->prop.window); 3391 ecore_x_window_defaults_set(ee->prop.window);
3253 _ecore_evas_x_protocols_set(ee); 3392 _ecore_evas_x_protocols_set(ee);
@@ -3571,14 +3710,7 @@ ecore_evas_software_x11_16_new(const char *disp_name, Ecore_X_Window parent,
3571 return NULL; 3710 return NULL;
3572 } 3711 }
3573 3712
3574 ecore_x_icccm_hints_set(ee->prop.window, 3713 _ecore_evas_x_hints_update(ee);
3575 1 /* accepts_focus */,
3576 ECORE_X_WINDOW_STATE_HINT_NORMAL /* initial_state */,
3577 0 /* icon_pixmap */,
3578 0 /* icon_mask */,
3579 0 /* icon_window */,
3580 0 /* window_group */,
3581 0 /* is_urgent */);
3582 _ecore_evas_x_group_leader_set(ee); 3714 _ecore_evas_x_group_leader_set(ee);
3583 ecore_x_window_defaults_set(ee->prop.window); 3715 ecore_x_window_defaults_set(ee->prop.window);
3584 _ecore_evas_x_protocols_set(ee); 3716 _ecore_evas_x_protocols_set(ee);
@@ -3895,14 +4027,7 @@ ecore_evas_software_x11_8_new(const char *disp_name, Ecore_X_Window parent,
3895 return NULL; 4027 return NULL;
3896 } 4028 }
3897 4029
3898 ecore_x_icccm_hints_set(ee->prop.window, 4030 _ecore_evas_x_hints_update(ee);
3899 1 /* accepts_focus */,
3900 ECORE_X_WINDOW_STATE_HINT_NORMAL /* initial_state */,
3901 0 /* icon_pixmap */,
3902 0 /* icon_mask */,
3903 0 /* icon_window */,
3904 0 /* window_group */,
3905 0 /* is_urgent */);
3906 _ecore_evas_x_group_leader_set(ee); 4031 _ecore_evas_x_group_leader_set(ee);
3907 ecore_x_window_defaults_set(ee->prop.window); 4032 ecore_x_window_defaults_set(ee->prop.window);
3908 _ecore_evas_x_protocols_set(ee); 4033 _ecore_evas_x_protocols_set(ee);
diff --git a/libraries/ecore/src/lib/ecore_fb/Makefile.in b/libraries/ecore/src/lib/ecore_fb/Makefile.in
index c0c30a5..e8030b1 100644
--- a/libraries/ecore/src/lib/ecore_fb/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_fb/Makefile.in
@@ -50,16 +50,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
53 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 53 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
54 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 54 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
55 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 55 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
56 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 56 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
57 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 57 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
58 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 58 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
59 $(top_srcdir)/configure.ac
60am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 59am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4) 60 $(ACLOCAL_M4)
62mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 61mkinstalldirs = $(install_sh) -d
63CONFIG_HEADER = $(top_builddir)/config.h 62CONFIG_HEADER = $(top_builddir)/config.h
64CONFIG_CLEAN_FILES = 63CONFIG_CLEAN_FILES =
65CONFIG_CLEAN_VPATH_FILES = 64CONFIG_CLEAN_VPATH_FILES =
@@ -194,6 +193,8 @@ EVAS_LIBS = @EVAS_LIBS@
194EVIL_CFLAGS = @EVIL_CFLAGS@ 193EVIL_CFLAGS = @EVIL_CFLAGS@
195EVIL_LIBS = @EVIL_LIBS@ 194EVIL_LIBS = @EVIL_LIBS@
196EXEEXT = @EXEEXT@ 195EXEEXT = @EXEEXT@
196EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
197EXOTIC_LIBS = @EXOTIC_LIBS@
197FGREP = @FGREP@ 198FGREP = @FGREP@
198GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 199GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
199GLIB_CFLAGS = @GLIB_CFLAGS@ 200GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -249,6 +250,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
249PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 250PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
250PIXMAN_LIBS = @PIXMAN_LIBS@ 251PIXMAN_LIBS = @PIXMAN_LIBS@
251PKG_CONFIG = @PKG_CONFIG@ 252PKG_CONFIG = @PKG_CONFIG@
253PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
254PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
252POSUB = @POSUB@ 255POSUB = @POSUB@
253RANLIB = @RANLIB@ 256RANLIB = @RANLIB@
254SCIM_CFLAGS = @SCIM_CFLAGS@ 257SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -259,6 +262,7 @@ SDL_LIBS = @SDL_LIBS@
259SED = @SED@ 262SED = @SED@
260SET_MAKE = @SET_MAKE@ 263SET_MAKE = @SET_MAKE@
261SHELL = @SHELL@ 264SHELL = @SHELL@
265SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
262SSL_CFLAGS = @SSL_CFLAGS@ 266SSL_CFLAGS = @SSL_CFLAGS@
263SSL_LIBS = @SSL_LIBS@ 267SSL_LIBS = @SSL_LIBS@
264STRIP = @STRIP@ 268STRIP = @STRIP@
diff --git a/libraries/ecore/src/lib/ecore_fb/ecore_fb.c b/libraries/ecore/src/lib/ecore_fb/ecore_fb.c
index ca7d73d..daeea0f 100644
--- a/libraries/ecore/src/lib/ecore_fb/ecore_fb.c
+++ b/libraries/ecore/src/lib/ecore_fb/ecore_fb.c
@@ -92,21 +92,18 @@ _ecore_fb_size_get(int *w, int *h)
92 92
93 fb = open("/dev/fb0", O_RDWR); 93 fb = open("/dev/fb0", O_RDWR);
94 if (fb < 0) 94 if (fb < 0)
95 { 95 goto exit;
96 if (w) *w = 0; 96
97 if (h) *h = 0;
98 return;
99 }
100 if (ioctl(fb, FBIOGET_VSCREENINFO, &fb_var) == -1) 97 if (ioctl(fb, FBIOGET_VSCREENINFO, &fb_var) == -1)
101 { 98 goto err_ioctl;
102 if (w) *w = 0; 99
103 if (h) *h = 0; 100 *w = fb_var.xres;
104 close(fb); 101 *h = fb_var.yres;
105 return; 102
106 } 103err_ioctl:
107 close(fb); 104 close(fb);
108 if (w) *w = fb_var.xres; 105exit:
109 if (h) *h = fb_var.yres; 106 return;
110} 107}
111 108
112/** 109/**
diff --git a/libraries/ecore/src/lib/ecore_file/Makefile.in b/libraries/ecore/src/lib/ecore_file/Makefile.in
index 04e0bf1..a80ece3 100644
--- a/libraries/ecore/src/lib/ecore_file/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_file/Makefile.in
@@ -50,16 +50,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
53 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 53 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
54 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 54 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
55 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 55 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
56 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 56 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
57 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 57 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
58 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 58 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
59 $(top_srcdir)/configure.ac
60am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 59am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4) 60 $(ACLOCAL_M4)
62mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 61mkinstalldirs = $(install_sh) -d
63CONFIG_HEADER = $(top_builddir)/config.h 62CONFIG_HEADER = $(top_builddir)/config.h
64CONFIG_CLEAN_FILES = 63CONFIG_CLEAN_FILES =
65CONFIG_CLEAN_VPATH_FILES = 64CONFIG_CLEAN_VPATH_FILES =
@@ -195,6 +194,8 @@ EVAS_LIBS = @EVAS_LIBS@
195EVIL_CFLAGS = @EVIL_CFLAGS@ 194EVIL_CFLAGS = @EVIL_CFLAGS@
196EVIL_LIBS = @EVIL_LIBS@ 195EVIL_LIBS = @EVIL_LIBS@
197EXEEXT = @EXEEXT@ 196EXEEXT = @EXEEXT@
197EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
198EXOTIC_LIBS = @EXOTIC_LIBS@
198FGREP = @FGREP@ 199FGREP = @FGREP@
199GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 200GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
200GLIB_CFLAGS = @GLIB_CFLAGS@ 201GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -250,6 +251,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
250PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 251PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
251PIXMAN_LIBS = @PIXMAN_LIBS@ 252PIXMAN_LIBS = @PIXMAN_LIBS@
252PKG_CONFIG = @PKG_CONFIG@ 253PKG_CONFIG = @PKG_CONFIG@
254PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
255PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
253POSUB = @POSUB@ 256POSUB = @POSUB@
254RANLIB = @RANLIB@ 257RANLIB = @RANLIB@
255SCIM_CFLAGS = @SCIM_CFLAGS@ 258SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -260,6 +263,7 @@ SDL_LIBS = @SDL_LIBS@
260SED = @SED@ 263SED = @SED@
261SET_MAKE = @SET_MAKE@ 264SET_MAKE = @SET_MAKE@
262SHELL = @SHELL@ 265SHELL = @SHELL@
266SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
263SSL_CFLAGS = @SSL_CFLAGS@ 267SSL_CFLAGS = @SSL_CFLAGS@
264SSL_LIBS = @SSL_LIBS@ 268SSL_LIBS = @SSL_LIBS@
265STRIP = @STRIP@ 269STRIP = @STRIP@
diff --git a/libraries/ecore/src/lib/ecore_file/ecore_file.c b/libraries/ecore/src/lib/ecore_file/ecore_file.c
index cfbf2b5..cb03717 100644
--- a/libraries/ecore/src/lib/ecore_file/ecore_file.c
+++ b/libraries/ecore/src/lib/ecore_file/ecore_file.c
@@ -821,6 +821,8 @@ ecore_file_ls(const char *dir)
821 Eina_List *list = NULL; 821 Eina_List *list = NULL;
822 822
823 ls = eina_file_direct_ls(dir); 823 ls = eina_file_direct_ls(dir);
824 if (!ls) return NULL;
825
824 EINA_ITERATOR_FOREACH(ls, info) 826 EINA_ITERATOR_FOREACH(ls, info)
825 { 827 {
826 char *f; 828 char *f;
diff --git a/libraries/ecore/src/lib/ecore_file/ecore_file_download.c b/libraries/ecore/src/lib/ecore_file/ecore_file_download.c
index c5e56bd..971493e 100644
--- a/libraries/ecore/src/lib/ecore_file/ecore_file_download.c
+++ b/libraries/ecore/src/lib/ecore_file/ecore_file_download.c
@@ -45,22 +45,27 @@ static Ecore_Event_Handler *_url_complete_handler = NULL;
45static Ecore_Event_Handler *_url_progress_download = NULL; 45static Ecore_Event_Handler *_url_progress_download = NULL;
46static Eina_List *_job_list; 46static Eina_List *_job_list;
47 47
48static int download_init = 0;
49
48#endif /* BUILD_ECORE_CON */ 50#endif /* BUILD_ECORE_CON */
49 51
50int 52int
51ecore_file_download_init(void) 53ecore_file_download_init(void)
52{ 54{
53#ifdef BUILD_ECORE_CON 55#ifdef BUILD_ECORE_CON
54 if (!ecore_con_url_init()) 56 download_init++;
55 return 0; 57 if (download_init > 1) return 1;
56 58 if (!ecore_con_init()) return 0;
59 if (!ecore_con_url_init())
60 {
61 ecore_con_shutdown();
62 return 0;
63 }
57# ifdef HAVE_CURL 64# ifdef HAVE_CURL
58 _url_complete_handler = ecore_event_handler_add(ECORE_CON_EVENT_URL_COMPLETE, _ecore_file_download_url_complete_cb, NULL); 65 _url_complete_handler = ecore_event_handler_add(ECORE_CON_EVENT_URL_COMPLETE, _ecore_file_download_url_complete_cb, NULL);
59 _url_progress_download = ecore_event_handler_add(ECORE_CON_EVENT_URL_PROGRESS, _ecore_file_download_url_progress_cb, NULL); 66 _url_progress_download = ecore_event_handler_add(ECORE_CON_EVENT_URL_PROGRESS, _ecore_file_download_url_progress_cb, NULL);
60# endif 67# endif
61
62#endif /* BUILD_ECORE_CON */ 68#endif /* BUILD_ECORE_CON */
63
64 return 1; 69 return 1;
65} 70}
66 71
@@ -68,15 +73,17 @@ void
68ecore_file_download_shutdown(void) 73ecore_file_download_shutdown(void)
69{ 74{
70#ifdef BUILD_ECORE_CON 75#ifdef BUILD_ECORE_CON
71 if (_url_complete_handler) 76 download_init--;
72 ecore_event_handler_del(_url_complete_handler); 77 if (download_init > 0) return;
73 if (_url_progress_download) 78 if (_url_complete_handler)
74 ecore_event_handler_del(_url_progress_download); 79 ecore_event_handler_del(_url_complete_handler);
75 _url_complete_handler = NULL; 80 if (_url_progress_download)
76 _url_progress_download = NULL; 81 ecore_event_handler_del(_url_progress_download);
77 ecore_file_download_abort_all(); 82 _url_complete_handler = NULL;
78 83 _url_progress_download = NULL;
79 ecore_con_url_shutdown(); 84 ecore_file_download_abort_all();
85 ecore_con_url_shutdown();
86 ecore_con_shutdown();
80#endif /* BUILD_ECORE_CON */ 87#endif /* BUILD_ECORE_CON */
81} 88}
82 89
@@ -362,7 +369,6 @@ _ecore_file_download_curl(const char *url, const char *dst,
362 } 369 }
363 370
364 if (headers) eina_hash_foreach(headers, _ecore_file_download_headers_foreach_cb, job); 371 if (headers) eina_hash_foreach(headers, _ecore_file_download_headers_foreach_cb, job);
365 ecore_con_url_timeout_set(job->url_con, ECORE_FILE_DOWNLOAD_TIMEOUT);
366 ecore_con_url_fd_set(job->url_con, fileno(job->file)); 372 ecore_con_url_fd_set(job->url_con, fileno(job->file));
367 ecore_con_url_data_set(job->url_con, data); 373 ecore_con_url_data_set(job->url_con, data);
368 374
diff --git a/libraries/ecore/src/lib/ecore_imf/Ecore_IMF.h b/libraries/ecore/src/lib/ecore_imf/Ecore_IMF.h
index adea35d..1757d79 100644
--- a/libraries/ecore/src/lib/ecore_imf/Ecore_IMF.h
+++ b/libraries/ecore/src/lib/ecore_imf/Ecore_IMF.h
@@ -33,6 +33,12 @@
33extern "C" { 33extern "C" {
34#endif 34#endif
35 35
36/**
37 * @addtogroup Ecore_IMF_Context_Group
38 *
39 * @{
40 */
41
36/* Events sent by the Input Method */ 42/* Events sent by the Input Method */
37typedef struct _Ecore_IMF_Event_Preedit_Start Ecore_IMF_Event_Preedit_Start; 43typedef struct _Ecore_IMF_Event_Preedit_Start Ecore_IMF_Event_Preedit_Start;
38typedef struct _Ecore_IMF_Event_Preedit_End Ecore_IMF_Event_Preedit_End; 44typedef struct _Ecore_IMF_Event_Preedit_End Ecore_IMF_Event_Preedit_End;
@@ -66,25 +72,41 @@ EAPI extern int ECORE_IMF_EVENT_DELETE_SURROUNDING;
66 72
67typedef void (*Ecore_IMF_Event_Cb) (void *data, Ecore_IMF_Context *ctx, void *event_info); 73typedef void (*Ecore_IMF_Event_Cb) (void *data, Ecore_IMF_Context *ctx, void *event_info);
68 74
75/**
76 * @enum _Ecore_IMF_Callback_Type
77 * @typedef Ecore_IMF_Callback_Type
78 *
79 * Ecore IMF Event callback types.
80 *
81 * @see ecore_imf_context_event_callback_add()
82 */
69typedef enum 83typedef enum
70{ 84{
71 ECORE_IMF_CALLBACK_PREEDIT_START, 85 ECORE_IMF_CALLBACK_PREEDIT_START, /**< "PREEDIT_START" is called when a new preediting sequence starts. */
72 ECORE_IMF_CALLBACK_PREEDIT_END, 86 ECORE_IMF_CALLBACK_PREEDIT_END, /**< "PREEDIT_END" is called when a preediting sequence has been completed or canceled. */
73 ECORE_IMF_CALLBACK_PREEDIT_CHANGED, 87 ECORE_IMF_CALLBACK_PREEDIT_CHANGED, /**< "PREEDIT_CHANGED" is called whenever the preedit sequence currently being entered has changed. */
74 ECORE_IMF_CALLBACK_COMMIT, 88 ECORE_IMF_CALLBACK_COMMIT, /**< "COMMIT" is called when a complete input sequence has been entered by the user */
75 ECORE_IMF_CALLBACK_DELETE_SURROUNDING 89 ECORE_IMF_CALLBACK_DELETE_SURROUNDING /**< "DELETE_SURROUNDING" is called when the input method needs to delete all or part of the context surrounding the cursor */
76} Ecore_IMF_Callback_Type; 90} Ecore_IMF_Callback_Type;
77 91
92/**
93 * @enum _Ecore_IMF_Event_Type
94 * @typedef Ecore_IMF_Event_Type
95 *
96 * Ecore IMF event types.
97 *
98 * @see ecore_imf_context_filter_event()
99 */
78typedef enum 100typedef enum
79{ 101{
80 ECORE_IMF_EVENT_MOUSE_DOWN, 102 ECORE_IMF_EVENT_MOUSE_DOWN, /**< Mouse Down event */
81 ECORE_IMF_EVENT_MOUSE_UP, 103 ECORE_IMF_EVENT_MOUSE_UP, /**< Mouse Up event */
82 ECORE_IMF_EVENT_MOUSE_IN, 104 ECORE_IMF_EVENT_MOUSE_IN, /**< Mouse In event */
83 ECORE_IMF_EVENT_MOUSE_OUT, 105 ECORE_IMF_EVENT_MOUSE_OUT, /**< Mouse Out event */
84 ECORE_IMF_EVENT_MOUSE_MOVE, 106 ECORE_IMF_EVENT_MOUSE_MOVE, /**< Mouse Move event */
85 ECORE_IMF_EVENT_MOUSE_WHEEL, 107 ECORE_IMF_EVENT_MOUSE_WHEEL, /**< Mouse Wheel event */
86 ECORE_IMF_EVENT_KEY_DOWN, 108 ECORE_IMF_EVENT_KEY_DOWN, /**< Key Down event */
87 ECORE_IMF_EVENT_KEY_UP 109 ECORE_IMF_EVENT_KEY_UP /**< Key Up event */
88} Ecore_IMF_Event_Type; 110} Ecore_IMF_Event_Type;
89 111
90typedef enum 112typedef enum
@@ -123,22 +145,46 @@ typedef enum
123 ECORE_IMF_INPUT_MODE_AUTOCAP = 1 << 30 145 ECORE_IMF_INPUT_MODE_AUTOCAP = 1 << 30
124} Ecore_IMF_Input_Mode; 146} Ecore_IMF_Input_Mode;
125 147
148/**
149 * @enum _Ecore_IMF_Preedit_Type
150 * @typedef Ecore_IMF_Preedit_Type
151 *
152 * Ecore IMF Preedit style types
153 *
154 * @see ecore_imf_context_preedit_string_with_attributes_get()
155 */
126typedef enum 156typedef enum
127{ 157{
128 ECORE_IMF_PREEDIT_TYPE_NONE, 158 ECORE_IMF_PREEDIT_TYPE_NONE, /**< None style */
129 ECORE_IMF_PREEDIT_TYPE_SUB1, 159 ECORE_IMF_PREEDIT_TYPE_SUB1, /**< Substring style 1 */
130 ECORE_IMF_PREEDIT_TYPE_SUB2, 160 ECORE_IMF_PREEDIT_TYPE_SUB2, /**< Substring style 2 */
131 ECORE_IMF_PREEDIT_TYPE_SUB3 161 ECORE_IMF_PREEDIT_TYPE_SUB3 /**< Substring style 3 */
132} Ecore_IMF_Preedit_Type; 162} Ecore_IMF_Preedit_Type;
133 163
164/**
165 * @enum _Ecore_IMF_Autocapital_Type
166 * @typedef Ecore_IMF_Autocapital_Type
167 *
168 * Autocapitalization Types.
169 *
170 * @see ecore_imf_context_autocapital_type_set()
171 */
134typedef enum 172typedef enum
135{ 173{
136 ECORE_IMF_AUTOCAPITAL_TYPE_NONE, 174 ECORE_IMF_AUTOCAPITAL_TYPE_NONE, /**< No auto-capitalization when typing */
137 ECORE_IMF_AUTOCAPITAL_TYPE_WORD, 175 ECORE_IMF_AUTOCAPITAL_TYPE_WORD, /**< Autocapitalize each word typed */
138 ECORE_IMF_AUTOCAPITAL_TYPE_SENTENCE, 176 ECORE_IMF_AUTOCAPITAL_TYPE_SENTENCE, /**< Autocapitalize the start of each sentence */
139 ECORE_IMF_AUTOCAPITAL_TYPE_ALLCHARACTER 177 ECORE_IMF_AUTOCAPITAL_TYPE_ALLCHARACTER, /**< Autocapitalize all letters */
140} Ecore_IMF_Autocapital_Type; 178} Ecore_IMF_Autocapital_Type;
141 179
180/**
181 * @enum _Ecore_IMF_Input_Panel_Layout
182 * @typedef Ecore_IMF_Input_Panel_Layout
183 *
184 * Input panel (virtual keyboard) layout types.
185 *
186 * @see ecore_imf_context_input_panel_layout_set()
187 */
142typedef enum 188typedef enum
143{ 189{
144 ECORE_IMF_INPUT_PANEL_LAYOUT_NORMAL, /**< Default layout */ 190 ECORE_IMF_INPUT_PANEL_LAYOUT_NORMAL, /**< Default layout */
@@ -155,12 +201,40 @@ typedef enum
155 ECORE_IMF_INPUT_PANEL_LAYOUT_PASSWORD /**< Like normal, but no auto-correct, no auto-capitalization etc. @since 1.2 */ 201 ECORE_IMF_INPUT_PANEL_LAYOUT_PASSWORD /**< Like normal, but no auto-correct, no auto-capitalization etc. @since 1.2 */
156} Ecore_IMF_Input_Panel_Layout; 202} Ecore_IMF_Input_Panel_Layout;
157 203
204/**
205 * @enum _Ecore_IMF_Input_Panel_Lang
206 * @typedef Ecore_IMF_Input_Panel_Lang
207 *
208 * Input panel (virtual keyboard) language modes.
209 *
210 * @see ecore_imf_context_input_panel_language_set()
211 */
158typedef enum 212typedef enum
159{ 213{
160 ECORE_IMF_INPUT_PANEL_LANG_AUTOMATIC, /**< Automatic */ 214 ECORE_IMF_INPUT_PANEL_LANG_AUTOMATIC, /**< Automatic @since 1.2 */
161 ECORE_IMF_INPUT_PANEL_LANG_ALPHABET /**< Alphabet */ 215 ECORE_IMF_INPUT_PANEL_LANG_ALPHABET /**< Alphabet @since 1.2 */
162} Ecore_IMF_Input_Panel_Lang; 216} Ecore_IMF_Input_Panel_Lang;
163 217
218/**
219 * @enum _Ecore_IMF_Input_Panel_Return_Key_Type
220 * @typedef Ecore_IMF_Input_Panel_Return_Key_Type
221 *
222 * "Return" Key types on the input panel (virtual keyboard).
223 *
224 * @see ecore_imf_context_input_panel_return_key_type_set()
225 */
226typedef enum
227{
228 ECORE_IMF_INPUT_PANEL_RETURN_KEY_TYPE_DEFAULT, /**< Default @since 1.2 */
229 ECORE_IMF_INPUT_PANEL_RETURN_KEY_TYPE_DONE, /**< Done @since 1.2 */
230 ECORE_IMF_INPUT_PANEL_RETURN_KEY_TYPE_GO, /**< Go @since 1.2 */
231 ECORE_IMF_INPUT_PANEL_RETURN_KEY_TYPE_JOIN, /**< Join @since 1.2 */
232 ECORE_IMF_INPUT_PANEL_RETURN_KEY_TYPE_LOGIN, /**< Login @since 1.2 */
233 ECORE_IMF_INPUT_PANEL_RETURN_KEY_TYPE_NEXT, /**< Next @since 1.2 */
234 ECORE_IMF_INPUT_PANEL_RETURN_KEY_TYPE_SEARCH, /**< Search or magnifier icon @since 1.2 */
235 ECORE_IMF_INPUT_PANEL_RETURN_KEY_TYPE_SEND /**< Send @since 1.2 */
236} Ecore_IMF_Input_Panel_Return_Key_Type;
237
164struct _Ecore_IMF_Event_Preedit_Start 238struct _Ecore_IMF_Event_Preedit_Start
165{ 239{
166 Ecore_IMF_Context *ctx; 240 Ecore_IMF_Context *ctx;
@@ -314,9 +388,9 @@ union _Ecore_IMF_Event
314 388
315struct _Ecore_IMF_Preedit_Attr 389struct _Ecore_IMF_Preedit_Attr
316{ 390{
317 Ecore_IMF_Preedit_Type preedit_type; 391 Ecore_IMF_Preedit_Type preedit_type; /**< preedit style type */
318 unsigned int start_index; 392 unsigned int start_index; /**< start index of the range (in bytes) */
319 unsigned int end_index; 393 unsigned int end_index; /**< end index of the range (in bytes) */
320}; 394};
321 395
322struct _Ecore_IMF_Context_Class 396struct _Ecore_IMF_Context_Class
@@ -345,6 +419,11 @@ struct _Ecore_IMF_Context_Class
345 void (*input_panel_language_set) (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Lang lang); 419 void (*input_panel_language_set) (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Lang lang);
346 Ecore_IMF_Input_Panel_Lang (*input_panel_language_get) (Ecore_IMF_Context *ctx); 420 Ecore_IMF_Input_Panel_Lang (*input_panel_language_get) (Ecore_IMF_Context *ctx);
347 void (*cursor_location_set) (Ecore_IMF_Context *ctx, int x, int y, int w, int h); 421 void (*cursor_location_set) (Ecore_IMF_Context *ctx, int x, int y, int w, int h);
422 void (*input_panel_imdata_set)(Ecore_IMF_Context *ctx, const void* data, int len);
423 void (*input_panel_imdata_get)(Ecore_IMF_Context *ctx, void* data, int *len);
424 void (*input_panel_return_key_type_set) (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Return_Key_Type return_key_type);
425 void (*input_panel_return_key_disabled_set) (Ecore_IMF_Context *ctx, Eina_Bool disabled);
426 void (*input_panel_caps_lock_mode_set) (Ecore_IMF_Context *ctx, Eina_Bool mode);
348}; 427};
349 428
350struct _Ecore_IMF_Context_Info 429struct _Ecore_IMF_Context_Info
@@ -418,6 +497,14 @@ EAPI void ecore_imf_context_input_panel_language_set(Ec
418EAPI Ecore_IMF_Input_Panel_Lang ecore_imf_context_input_panel_language_get(Ecore_IMF_Context *ctx); 497EAPI Ecore_IMF_Input_Panel_Lang ecore_imf_context_input_panel_language_get(Ecore_IMF_Context *ctx);
419EAPI void ecore_imf_context_input_panel_enabled_set(Ecore_IMF_Context *ctx, Eina_Bool enable); 498EAPI void ecore_imf_context_input_panel_enabled_set(Ecore_IMF_Context *ctx, Eina_Bool enable);
420EAPI Eina_Bool ecore_imf_context_input_panel_enabled_get(Ecore_IMF_Context *ctx); 499EAPI Eina_Bool ecore_imf_context_input_panel_enabled_get(Ecore_IMF_Context *ctx);
500EAPI void ecore_imf_context_input_panel_imdata_set(Ecore_IMF_Context *ctx, const void *data, int len);
501EAPI void ecore_imf_context_input_panel_imdata_get(Ecore_IMF_Context *ctx, void *data, int *len);
502EAPI void ecore_imf_context_input_panel_return_key_type_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Return_Key_Type return_key_type);
503EAPI Ecore_IMF_Input_Panel_Return_Key_Type ecore_imf_context_input_panel_return_key_type_get(Ecore_IMF_Context *ctx);
504EAPI void ecore_imf_context_input_panel_return_key_disabled_set(Ecore_IMF_Context *ctx, Eina_Bool disabled);
505EAPI Eina_Bool ecore_imf_context_input_panel_return_key_disabled_get(Ecore_IMF_Context *ctx);
506EAPI void ecore_imf_context_input_panel_caps_lock_mode_set(Ecore_IMF_Context *ctx, Eina_Bool mode);
507EAPI Eina_Bool ecore_imf_context_input_panel_caps_lock_mode_get(Ecore_IMF_Context *ctx);
421 508
422/* The following entry points must be exported by each input method module 509/* The following entry points must be exported by each input method module
423 */ 510 */
@@ -433,3 +520,7 @@ EAPI Eina_Bool ecore_imf_context_input_panel_enabled_get(Eco
433#endif 520#endif
434 521
435#endif 522#endif
523
524/**
525 * @}
526 */
diff --git a/libraries/ecore/src/lib/ecore_imf/Makefile.in b/libraries/ecore/src/lib/ecore_imf/Makefile.in
index 9f91360..4d71b5d 100644
--- a/libraries/ecore/src/lib/ecore_imf/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_imf/Makefile.in
@@ -50,16 +50,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
53 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 53 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
54 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 54 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
55 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 55 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
56 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 56 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
57 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 57 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
58 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 58 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
59 $(top_srcdir)/configure.ac
60am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 59am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4) 60 $(ACLOCAL_M4)
62mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 61mkinstalldirs = $(install_sh) -d
63CONFIG_HEADER = $(top_builddir)/config.h 62CONFIG_HEADER = $(top_builddir)/config.h
64CONFIG_CLEAN_FILES = 63CONFIG_CLEAN_FILES =
65CONFIG_CLEAN_VPATH_FILES = 64CONFIG_CLEAN_VPATH_FILES =
@@ -193,6 +192,8 @@ EVAS_LIBS = @EVAS_LIBS@
193EVIL_CFLAGS = @EVIL_CFLAGS@ 192EVIL_CFLAGS = @EVIL_CFLAGS@
194EVIL_LIBS = @EVIL_LIBS@ 193EVIL_LIBS = @EVIL_LIBS@
195EXEEXT = @EXEEXT@ 194EXEEXT = @EXEEXT@
195EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
196EXOTIC_LIBS = @EXOTIC_LIBS@
196FGREP = @FGREP@ 197FGREP = @FGREP@
197GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 198GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
198GLIB_CFLAGS = @GLIB_CFLAGS@ 199GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -248,6 +249,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
248PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 249PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
249PIXMAN_LIBS = @PIXMAN_LIBS@ 250PIXMAN_LIBS = @PIXMAN_LIBS@
250PKG_CONFIG = @PKG_CONFIG@ 251PKG_CONFIG = @PKG_CONFIG@
252PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
253PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
251POSUB = @POSUB@ 254POSUB = @POSUB@
252RANLIB = @RANLIB@ 255RANLIB = @RANLIB@
253SCIM_CFLAGS = @SCIM_CFLAGS@ 256SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -258,6 +261,7 @@ SDL_LIBS = @SDL_LIBS@
258SED = @SED@ 261SED = @SED@
259SET_MAKE = @SET_MAKE@ 262SET_MAKE = @SET_MAKE@
260SHELL = @SHELL@ 263SHELL = @SHELL@
264SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
261SSL_CFLAGS = @SSL_CFLAGS@ 265SSL_CFLAGS = @SSL_CFLAGS@
262SSL_LIBS = @SSL_LIBS@ 266SSL_LIBS = @SSL_LIBS@
263STRIP = @STRIP@ 267STRIP = @STRIP@
diff --git a/libraries/ecore/src/lib/ecore_imf/ecore_imf_context.c b/libraries/ecore/src/lib/ecore_imf/ecore_imf_context.c
index b65ee26..423c461 100644
--- a/libraries/ecore/src/lib/ecore_imf/ecore_imf_context.c
+++ b/libraries/ecore/src/lib/ecore_imf/ecore_imf_context.c
@@ -143,6 +143,32 @@ ecore_imf_context_default_id_by_canvas_type_get(const char *canvas_type)
143 * @return Return a #Ecore_IMF_Context_Info for the Input Method Context with @p id; 143 * @return Return a #Ecore_IMF_Context_Info for the Input Method Context with @p id;
144 * on failure it returns NULL. 144 * on failure it returns NULL.
145 * @ingroup Ecore_IMF_Context_Group 145 * @ingroup Ecore_IMF_Context_Group
146 *
147 * Example
148 * @code
149 *
150 * const char *ctx_id;
151 * const Ecore_IMF_Context_Info *ctx_info;
152 * Ecore_IMF_Context *imf_context;
153 * ctx_id = ecore_imf_context_default_id_get();
154 * if (ctx_id)
155 * {
156 * ctx_info = ecore_imf_context_info_by_id_get(ctx_id);
157 * if (!ctx_info->canvas_type ||
158 * strcmp(ctx_info->canvas_type, "evas") == 0)
159 * {
160 * imf_context = ecore_imf_context_add(ctx_id);
161 * }
162 * else
163 * {
164 * ctx_id = ecore_imf_context_default_id_by_canvas_type_get("evas");
165 * if (ctx_id)
166 * {
167 * imf_context = ecore_imf_context_add(ctx_id);
168 * }
169 * }
170 * }
171 * @endcode
146 */ 172 */
147EAPI const Ecore_IMF_Context_Info * 173EAPI const Ecore_IMF_Context_Info *
148ecore_imf_context_info_by_id_get(const char *id) 174ecore_imf_context_info_by_id_get(const char *id)
@@ -188,6 +214,10 @@ ecore_imf_context_add(const char *id)
188 * set on the immodule */ 214 * set on the immodule */
189 ecore_imf_context_input_panel_enabled_set(ctx, EINA_TRUE); 215 ecore_imf_context_input_panel_enabled_set(ctx, EINA_TRUE);
190 216
217 /* default input panel layout type is NORMAL type, so let's make sure it's
218 * set on the immodule */
219 ecore_imf_context_input_panel_layout_set(ctx, ECORE_IMF_INPUT_PANEL_LAYOUT_NORMAL);
220
191 /* default input_mode is ECORE_IMF_INPUT_MODE_FULL, so let's make sure it's 221 /* default input_mode is ECORE_IMF_INPUT_MODE_FULL, so let's make sure it's
192 * set on the immodule */ 222 * set on the immodule */
193 ecore_imf_context_input_mode_set(ctx, ECORE_IMF_INPUT_MODE_FULL); 223 ecore_imf_context_input_mode_set(ctx, ECORE_IMF_INPUT_MODE_FULL);
@@ -403,7 +433,7 @@ ecore_imf_context_preedit_string_get(Ecore_IMF_Context *ctx, char **str, int *cu
403} 433}
404 434
405/** 435/**
406 * Retrieve the current preedit string, atrributes and 436 * Retrieve the current preedit string, attributes and
407 * cursor position for the Input Method Context. 437 * cursor position for the Input Method Context.
408 * 438 *
409 * @param ctx An #Ecore_IMF_Context. 439 * @param ctx An #Ecore_IMF_Context.
@@ -413,6 +443,49 @@ ecore_imf_context_preedit_string_get(Ecore_IMF_Context *ctx, char **str, int *cu
413 * @param cursor_pos Location to store position of cursor (in characters) 443 * @param cursor_pos Location to store position of cursor (in characters)
414 * within the preedit string. 444 * within the preedit string.
415 * @ingroup Ecore_IMF_Context_Group 445 * @ingroup Ecore_IMF_Context_Group
446 *
447 * Example
448 * @code
449 * char *preedit_string;
450 * int cursor_pos;
451 * Eina_List *attrs = NULL, *l = NULL;
452 * Ecore_IMF_Preedit_Attr *attr;
453 *
454 * ecore_imf_context_preedit_string_with_attributes_get(imf_context,
455 * &preedit_string,
456 * &attrs, &cursor_pos);
457 * if (!preedit_string) return;
458 *
459 * if (strlen(preedit_string) > 0)
460 * {
461 * if (attrs)
462 * {
463 * EINA_LIST_FOREACH(attrs, l, attr)
464 * {
465 * if (attr->preedit_type == ECORE_IMF_PREEDIT_TYPE_SUB1)
466 * {
467 * // Something to do
468 * }
469 * else if (attr->preedit_type == ECORE_IMF_PREEDIT_TYPE_SUB2)
470 * {
471 * // Something to do
472 * }
473 * else if (attr->preedit_type == ECORE_IMF_PREEDIT_TYPE_SUB3)
474 * {
475 * // Something to do
476 * }
477 * }
478 * }
479 * }
480 *
481 * // delete attribute list
482 * if (attrs)
483 * {
484 * EINA_LIST_FREE(attrs, attr) free(attr);
485 * }
486 *
487 * free(preedit_string);
488 * @endcode
416 * @since 1.1.0 489 * @since 1.1.0
417 */ 490 */
418EAPI void 491EAPI void
@@ -440,6 +513,18 @@ ecore_imf_context_preedit_string_with_attributes_get(Ecore_IMF_Context *ctx, cha
440 * 513 *
441 * @param ctx An #Ecore_IMF_Context. 514 * @param ctx An #Ecore_IMF_Context.
442 * @ingroup Ecore_IMF_Context_Group 515 * @ingroup Ecore_IMF_Context_Group
516 *
517 * Example
518 * @code
519 * static void
520 * _focus_in_cb(void *data, Evas_Object *o, const char *emission, const char *source)
521 * {
522 * ecore_imf_context_reset(imf_context);
523 * ecore_imf_context_focus_in(imf_context);
524 * }
525 *
526 * evas_object_event_callback_add(obj, EVAS_CALLBACK_FOCUS_IN, _focus_in_cb, ed);
527 * @endcode
443 */ 528 */
444EAPI void 529EAPI void
445ecore_imf_context_focus_in(Ecore_IMF_Context *ctx) 530ecore_imf_context_focus_in(Ecore_IMF_Context *ctx)
@@ -459,6 +544,18 @@ ecore_imf_context_focus_in(Ecore_IMF_Context *ctx)
459 * 544 *
460 * @param ctx An #Ecore_IMF_Context. 545 * @param ctx An #Ecore_IMF_Context.
461 * @ingroup Ecore_IMF_Context_Group 546 * @ingroup Ecore_IMF_Context_Group
547 *
548 * Example
549 * @code
550 * static void
551 * _focus_out_cb(void *data, Evas_Object *o, const char *emission, const char *source)
552 * {
553 * ecore_imf_context_reset(imf_context);
554 * ecore_imf_context_focus_out(imf_context);
555 * }
556 *
557 * evas_object_event_callback_add(obj, EVAS_CALLBACK_FOCUS_OUT, _focus_out_cb, ed);
558 * @endcode
462 */ 559 */
463EAPI void 560EAPI void
464ecore_imf_context_focus_out(Ecore_IMF_Context *ctx) 561ecore_imf_context_focus_out(Ecore_IMF_Context *ctx)
@@ -479,6 +576,18 @@ ecore_imf_context_focus_out(Ecore_IMF_Context *ctx)
479 * 576 *
480 * @param ctx An #Ecore_IMF_Context. 577 * @param ctx An #Ecore_IMF_Context.
481 * @ingroup Ecore_IMF_Context_Group 578 * @ingroup Ecore_IMF_Context_Group
579 *
580 * Example
581 * @code
582 * static void
583 * _focus_out_cb(void *data, Evas_Object *o, const char *emission, const char *source)
584 * {
585 * ecore_imf_context_reset(imf_context);
586 * ecore_imf_context_focus_out(imf_context);
587 * }
588 *
589 * evas_object_event_callback_add(obj, EVAS_CALLBACK_FOCUS_OUT, _focus_out_cb, ed);
590 * @endcode
482 */ 591 */
483EAPI void 592EAPI void
484ecore_imf_context_reset(Ecore_IMF_Context *ctx) 593ecore_imf_context_reset(Ecore_IMF_Context *ctx)
@@ -515,10 +624,12 @@ ecore_imf_context_cursor_position_set(Ecore_IMF_Context *ctx, int cursor_pos)
515/** 624/**
516 * Notify the Input Method Context that a change in the cursor 625 * Notify the Input Method Context that a change in the cursor
517 * location has been made. The location is relative to the canvas. 626 * location has been made. The location is relative to the canvas.
627 * The cursor location can be used to determine the position of
628 * candidate word window in the immodule.
518 * 629 *
519 * @param ctx An #Ecore_IMF_Context. 630 * @param ctx An #Ecore_IMF_Context.
520 * @param x cursor x position. 631 * @param x cursor x position.
521 * @param x cursor y position. 632 * @param y cursor y position.
522 * @param w cursor width. 633 * @param w cursor width.
523 * @param h cursor height. 634 * @param h cursor height.
524 * @ingroup Ecore_IMF_Context_Group 635 * @ingroup Ecore_IMF_Context_Group
@@ -605,7 +716,7 @@ ecore_imf_context_prediction_allow_get(Ecore_IMF_Context *ctx)
605} 716}
606 717
607/** 718/**
608 * Set the autocapitalization type on the immodule. 719 * Set the autocapitalization type on the immodule.
609 * 720 *
610 * @param ctx An #Ecore_IMF_Context. 721 * @param ctx An #Ecore_IMF_Context.
611 * @param autocapital_type the autocapitalization type. 722 * @param autocapital_type the autocapitalization type.
@@ -732,6 +843,28 @@ ecore_imf_context_input_mode_get(Ecore_IMF_Context *ctx)
732 * @param event The event itself. 843 * @param event The event itself.
733 * @return EINA_TRUE if the event was handled; otherwise EINA_FALSE. 844 * @return EINA_TRUE if the event was handled; otherwise EINA_FALSE.
734 * @ingroup Ecore_IMF_Context_Group 845 * @ingroup Ecore_IMF_Context_Group
846 *
847 * Example
848 * @code
849 * static void
850 * _key_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
851 * {
852 * Evas_Event_Key_Down *ev = event_info;
853 * if (!ev->keyname) return;
854 *
855 * if (imf_context)
856 * {
857 * Ecore_IMF_Event_Key_Down ecore_ev;
858 * ecore_imf_evas_event_key_down_wrap(ev, &ecore_ev);
859 * if (ecore_imf_context_filter_event(imf_context,
860 * ECORE_IMF_EVENT_KEY_DOWN,
861 * (Ecore_IMF_Event *)&ecore_ev))
862 * return;
863 * }
864 * }
865 *
866 * evas_object_event_callback_add(obj, EVAS_CALLBACK_KEY_DOWN, _key_down_cb, data);
867 * @endcode
735 */ 868 */
736EAPI Eina_Bool 869EAPI Eina_Bool
737ecore_imf_context_filter_event(Ecore_IMF_Context *ctx, Ecore_IMF_Event_Type type, Ecore_IMF_Event *event) 870ecore_imf_context_filter_event(Ecore_IMF_Context *ctx, Ecore_IMF_Event_Type type, Ecore_IMF_Event *event)
@@ -839,7 +972,7 @@ EAPI void *ecore_imf_context_data_get(Ecore_IMF_Context *ctx)
839 * If the function returns EINA_TRUE, then you must free 972 * If the function returns EINA_TRUE, then you must free
840 * the result stored in this location with free(). 973 * the result stored in this location with free().
841 * @param cursor_pos Location to store the position in characters of 974 * @param cursor_pos Location to store the position in characters of
842 * the insertion cursor within @text. 975 * the insertion cursor within @p text.
843 * @return EINA_TRUE if surrounding text was provided; otherwise EINA_FALSE. 976 * @return EINA_TRUE if surrounding text was provided; otherwise EINA_FALSE.
844 * @ingroup Ecore_IMF_Context_Module_Group 977 * @ingroup Ecore_IMF_Context_Module_Group
845 */ 978 */
@@ -877,6 +1010,8 @@ _ecore_imf_event_free_preedit(void *data __UNUSED__, void *event)
877 * Adds ECORE_IMF_EVENT_PREEDIT_START to the event queue. 1010 * Adds ECORE_IMF_EVENT_PREEDIT_START to the event queue.
878 * 1011 *
879 * ECORE_IMF_EVENT_PREEDIT_START should be added when a new preedit sequence starts. 1012 * ECORE_IMF_EVENT_PREEDIT_START should be added when a new preedit sequence starts.
1013 * It's asynchronous method to put event to the event queue.
1014 * ecore_imf_context_event_callback_call() can be used as synchronous method.
880 * 1015 *
881 * @param ctx An #Ecore_IMF_Context. 1016 * @param ctx An #Ecore_IMF_Context.
882 * @ingroup Ecore_IMF_Context_Module_Group 1017 * @ingroup Ecore_IMF_Context_Module_Group
@@ -903,6 +1038,8 @@ ecore_imf_context_preedit_start_event_add(Ecore_IMF_Context *ctx)
903 * Adds ECORE_IMF_EVENT_PREEDIT_END to the event queue. 1038 * Adds ECORE_IMF_EVENT_PREEDIT_END to the event queue.
904 * 1039 *
905 * ECORE_IMF_EVENT_PREEDIT_END should be added when a new preedit sequence has been completed or canceled. 1040 * ECORE_IMF_EVENT_PREEDIT_END should be added when a new preedit sequence has been completed or canceled.
1041 * It's asynchronous method to put event to the event queue.
1042 * ecore_imf_context_event_callback_call() can be used as synchronous method.
906 * 1043 *
907 * @param ctx An #Ecore_IMF_Context. 1044 * @param ctx An #Ecore_IMF_Context.
908 * @ingroup Ecore_IMF_Context_Module_Group 1045 * @ingroup Ecore_IMF_Context_Module_Group
@@ -928,6 +1065,9 @@ ecore_imf_context_preedit_end_event_add(Ecore_IMF_Context *ctx)
928/** 1065/**
929 * Adds ECORE_IMF_EVENT_PREEDIT_CHANGED to the event queue. 1066 * Adds ECORE_IMF_EVENT_PREEDIT_CHANGED to the event queue.
930 * 1067 *
1068 * It's asynchronous method to put event to the event queue.
1069 * ecore_imf_context_event_callback_call() can be used as synchronous method.
1070 *
931 * @param ctx An #Ecore_IMF_Context. 1071 * @param ctx An #Ecore_IMF_Context.
932 * @ingroup Ecore_IMF_Context_Module_Group 1072 * @ingroup Ecore_IMF_Context_Module_Group
933 */ 1073 */
@@ -962,6 +1102,9 @@ _ecore_imf_event_free_commit(void *data __UNUSED__, void *event)
962/** 1102/**
963 * Adds ECORE_IMF_EVENT_COMMIT to the event queue. 1103 * Adds ECORE_IMF_EVENT_COMMIT to the event queue.
964 * 1104 *
1105 * It's asynchronous method to put event to the event queue.
1106 * ecore_imf_context_event_callback_call() can be used as synchronous method.
1107 *
965 * @param ctx An #Ecore_IMF_Context. 1108 * @param ctx An #Ecore_IMF_Context.
966 * @param str The committed string. 1109 * @param str The committed string.
967 * @ingroup Ecore_IMF_Context_Module_Group 1110 * @ingroup Ecore_IMF_Context_Module_Group
@@ -999,6 +1142,9 @@ _ecore_imf_event_free_delete_surrounding(void *data __UNUSED__, void *event)
999 * by adding the ECORE_IMF_EVENT_DELETE_SURROUNDING to the event queue. 1142 * by adding the ECORE_IMF_EVENT_DELETE_SURROUNDING to the event queue.
1000 * Note that offset and n_chars are in characters not in bytes. 1143 * Note that offset and n_chars are in characters not in bytes.
1001 * 1144 *
1145 * It's asynchronous method to put ECORE_IMF_EVENT_DELETE_SURROUNDING event to the event queue.
1146 * ecore_imf_context_event_callback_call() can be used as synchronous method.
1147 *
1002 * @param ctx An #Ecore_IMF_Context. 1148 * @param ctx An #Ecore_IMF_Context.
1003 * @param offset The start offset of surrounding to be deleted. 1149 * @param offset The start offset of surrounding to be deleted.
1004 * @param n_chars The number of characters to be deleted. 1150 * @param n_chars The number of characters to be deleted.
@@ -1041,8 +1187,20 @@ ecore_imf_context_delete_surrounding_event_add(Ecore_IMF_Context *ctx, int offse
1041 * @param func The (callback) function to be called when the event is 1187 * @param func The (callback) function to be called when the event is
1042 * triggered 1188 * triggered
1043 * @param data The data pointer to be passed to @p func 1189 * @param data The data pointer to be passed to @p func
1044 * @ingroup Ecore_IMF_Context_Module_Group 1190 * @ingroup Ecore_IMF_Context_Group
1045 * @since 1.2.0 1191 * @since 1.2.0
1192 *
1193 * Example
1194 * @code
1195 * static void
1196 * _imf_event_commit_cb(void *data, Ecore_IMF_Context *ctx, void *event_info)
1197 * {
1198 * char *commit_str = event_info;
1199 * // something to do
1200 * }
1201 *
1202 * ecore_imf_context_event_callback_add(en->imf_context, ECORE_IMF_CALLBACK_COMMIT, _imf_event_commit_cb, data);
1203 * @endcode
1046 */ 1204 */
1047EAPI void 1205EAPI void
1048ecore_imf_context_event_callback_add(Ecore_IMF_Context *ctx, Ecore_IMF_Callback_Type type, Ecore_IMF_Event_Cb func, const void *data) 1206ecore_imf_context_event_callback_add(Ecore_IMF_Context *ctx, Ecore_IMF_Callback_Type type, Ecore_IMF_Event_Cb func, const void *data)
@@ -1079,10 +1237,10 @@ ecore_imf_context_event_callback_add(Ecore_IMF_Context *ctx, Ecore_IMF_Callback_
1079 * @see ecore_imf_context_event_callback_add() for more details 1237 * @see ecore_imf_context_event_callback_add() for more details
1080 * 1238 *
1081 * @param ctx Ecore_IMF_Context to remove a callback from. 1239 * @param ctx Ecore_IMF_Context to remove a callback from.
1082 * @param type The type of event that was trigerring the callback 1240 * @param type The type of event that was triggering the callback
1083 * @param func The (callback) function that was to be called when the event was triggered 1241 * @param func The (callback) function that was to be called when the event was triggered
1084 * @return the data pointer 1242 * @return the data pointer
1085 * @ingroup Ecore_IMF_Context_Module_Group 1243 * @ingroup Ecore_IMF_Context_Group
1086 * @since 1.2.0 1244 * @since 1.2.0
1087 */ 1245 */
1088EAPI void * 1246EAPI void *
@@ -1096,7 +1254,7 @@ ecore_imf_context_event_callback_del(Ecore_IMF_Context *ctx, Ecore_IMF_Callback_
1096 { 1254 {
1097 ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT, 1255 ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
1098 "ecore_imf_context_event_callback_del"); 1256 "ecore_imf_context_event_callback_del");
1099 return; 1257 return NULL;
1100 } 1258 }
1101 1259
1102 if (!func) return NULL; 1260 if (!func) return NULL;
@@ -1106,7 +1264,7 @@ ecore_imf_context_event_callback_del(Ecore_IMF_Context *ctx, Ecore_IMF_Callback_
1106 { 1264 {
1107 if ((fn) && (fn->func == func) && (fn->type == type)) 1265 if ((fn) && (fn->func == func) && (fn->type == type))
1108 { 1266 {
1109 void *tmp = fn->data; 1267 void *tmp = (void *)fn->data;
1110 free(fn); 1268 free(fn);
1111 ctx->callbacks = eina_list_remove_list(ctx->callbacks, l); 1269 ctx->callbacks = eina_list_remove_list(ctx->callbacks, l);
1112 return tmp; 1270 return tmp;
@@ -1156,11 +1314,11 @@ ecore_imf_context_event_callback_call(Ecore_IMF_Context *ctx, Ecore_IMF_Callback
1156 * Ask the Input Method Context to show the control panel of using Input Method. 1314 * Ask the Input Method Context to show the control panel of using Input Method.
1157 * 1315 *
1158 * @param ctx An #Ecore_IMF_Context. 1316 * @param ctx An #Ecore_IMF_Context.
1159 * @ingroup Ecore_IMF_Context_IMControl_Group 1317 * @ingroup Ecore_IMF_Context_Group
1160 * @since 1.1.0 1318 * @since 1.1.0
1161 */ 1319 */
1162EAPI void 1320EAPI void
1163ecore_imf_context_control_panel_show (Ecore_IMF_Context *ctx) 1321ecore_imf_context_control_panel_show(Ecore_IMF_Context *ctx)
1164{ 1322{
1165 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT)) 1323 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
1166 { 1324 {
@@ -1176,11 +1334,11 @@ ecore_imf_context_control_panel_show (Ecore_IMF_Context *ctx)
1176 * Ask the Input Method Context to hide the control panel of using Input Method. 1334 * Ask the Input Method Context to hide the control panel of using Input Method.
1177 * 1335 *
1178 * @param ctx An #Ecore_IMF_Context. 1336 * @param ctx An #Ecore_IMF_Context.
1179 * @ingroup Ecore_IMF_Context_IMControl_Group 1337 * @ingroup Ecore_IMF_Context_Group
1180 * @since 1.1.0 1338 * @since 1.1.0
1181 */ 1339 */
1182EAPI void 1340EAPI void
1183ecore_imf_context_control_panel_hide (Ecore_IMF_Context *ctx) 1341ecore_imf_context_control_panel_hide(Ecore_IMF_Context *ctx)
1184{ 1342{
1185 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT)) 1343 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
1186 { 1344 {
@@ -1196,7 +1354,7 @@ ecore_imf_context_control_panel_hide (Ecore_IMF_Context *ctx)
1196 * Ask the Input Method Context to show the input panel (virtual keyboard). 1354 * Ask the Input Method Context to show the input panel (virtual keyboard).
1197 * 1355 *
1198 * @param ctx An #Ecore_IMF_Context. 1356 * @param ctx An #Ecore_IMF_Context.
1199 * @ingroup Ecore_IMF_Context_IMControl_Group 1357 * @ingroup Ecore_IMF_Context_Group
1200 * @since 1.1.0 1358 * @since 1.1.0
1201 */ 1359 */
1202EAPI void 1360EAPI void
@@ -1216,7 +1374,7 @@ ecore_imf_context_input_panel_show(Ecore_IMF_Context *ctx)
1216 * Ask the Input Method Context to hide the input panel. 1374 * Ask the Input Method Context to hide the input panel.
1217 * 1375 *
1218 * @param ctx An #Ecore_IMF_Context. 1376 * @param ctx An #Ecore_IMF_Context.
1219 * @ingroup Ecore_IMF_Context_IMControl_Group 1377 * @ingroup Ecore_IMF_Context_Group
1220 * @since 1.1.0 1378 * @since 1.1.0
1221 */ 1379 */
1222EAPI void 1380EAPI void
@@ -1236,12 +1394,12 @@ ecore_imf_context_input_panel_hide(Ecore_IMF_Context *ctx)
1236 * Set the layout of the input panel. 1394 * Set the layout of the input panel.
1237 * 1395 *
1238 * @param ctx An #Ecore_IMF_Context. 1396 * @param ctx An #Ecore_IMF_Context.
1239 * @param layout see #ECORE_IMF_INPUT_PANEL_LAYOUT 1397 * @param layout see #Ecore_IMF_Input_Panel_Layout
1240 * @ingroup Ecore_IMF_Context_IMControl_Group 1398 * @ingroup Ecore_IMF_Context_Group
1241 * @since 1.1.0 1399 * @since 1.1.0
1242 */ 1400 */
1243EAPI void 1401EAPI void
1244ecore_imf_context_input_panel_layout_set (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Layout layout) 1402ecore_imf_context_input_panel_layout_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Layout layout)
1245{ 1403{
1246 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT)) 1404 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
1247 { 1405 {
@@ -1261,11 +1419,11 @@ ecore_imf_context_input_panel_layout_set (Ecore_IMF_Context *ctx, Ecore_IMF_Inpu
1261 * 1419 *
1262 * @param ctx An #Ecore_IMF_Context. 1420 * @param ctx An #Ecore_IMF_Context.
1263 * @return layout see #Ecore_IMF_Input_Panel_Layout 1421 * @return layout see #Ecore_IMF_Input_Panel_Layout
1264 * @ingroup Ecore_IMF_Context_IMControl_Group 1422 * @ingroup Ecore_IMF_Context_Group
1265 * @since 1.1.0 1423 * @since 1.1.0
1266 */ 1424 */
1267EAPI Ecore_IMF_Input_Panel_Layout 1425EAPI Ecore_IMF_Input_Panel_Layout
1268ecore_imf_context_input_panel_layout_get (Ecore_IMF_Context *ctx) 1426ecore_imf_context_input_panel_layout_get(Ecore_IMF_Context *ctx)
1269{ 1427{
1270 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT)) 1428 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
1271 { 1429 {
@@ -1275,9 +1433,7 @@ ecore_imf_context_input_panel_layout_get (Ecore_IMF_Context *ctx)
1275 } 1433 }
1276 1434
1277 if (ctx->klass->input_panel_layout_get) 1435 if (ctx->klass->input_panel_layout_get)
1278 { 1436 return ctx->input_panel_layout;
1279 return ctx->input_panel_layout;
1280 }
1281 else 1437 else
1282 return ECORE_IMF_INPUT_PANEL_LAYOUT_INVALID; 1438 return ECORE_IMF_INPUT_PANEL_LAYOUT_INVALID;
1283} 1439}
@@ -1288,11 +1444,11 @@ ecore_imf_context_input_panel_layout_get (Ecore_IMF_Context *ctx)
1288 * 1444 *
1289 * @param ctx An #Ecore_IMF_Context. 1445 * @param ctx An #Ecore_IMF_Context.
1290 * @param lang the language to be set to the input panel. 1446 * @param lang the language to be set to the input panel.
1291 * @ingroup Ecore_IMF_Context_IMControl_Group 1447 * @ingroup Ecore_IMF_Context_Group
1292 * @since 1.1.0 1448 * @since 1.1.0
1293 */ 1449 */
1294EAPI void 1450EAPI void
1295ecore_imf_context_input_panel_language_set (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Lang lang) 1451ecore_imf_context_input_panel_language_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Lang lang)
1296{ 1452{
1297 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT)) 1453 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
1298 { 1454 {
@@ -1312,11 +1468,11 @@ ecore_imf_context_input_panel_language_set (Ecore_IMF_Context *ctx, Ecore_IMF_In
1312 * 1468 *
1313 * @param ctx An #Ecore_IMF_Context. 1469 * @param ctx An #Ecore_IMF_Context.
1314 * @return Ecore_IMF_Input_Panel_Lang 1470 * @return Ecore_IMF_Input_Panel_Lang
1315 * @ingroup Ecore_IMF_Context_IMControl_Group 1471 * @ingroup Ecore_IMF_Context_Group
1316 * @since 1.1.0 1472 * @since 1.1.0
1317 */ 1473 */
1318EAPI Ecore_IMF_Input_Panel_Lang 1474EAPI Ecore_IMF_Input_Panel_Lang
1319ecore_imf_context_input_panel_language_get (Ecore_IMF_Context *ctx) 1475ecore_imf_context_input_panel_language_get(Ecore_IMF_Context *ctx)
1320{ 1476{
1321 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT)) 1477 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
1322 { 1478 {
@@ -1338,7 +1494,7 @@ ecore_imf_context_input_panel_language_get (Ecore_IMF_Context *ctx)
1338 * @since 1.1.0 1494 * @since 1.1.0
1339 */ 1495 */
1340EAPI void 1496EAPI void
1341ecore_imf_context_input_panel_enabled_set (Ecore_IMF_Context *ctx, 1497ecore_imf_context_input_panel_enabled_set(Ecore_IMF_Context *ctx,
1342 Eina_Bool enabled) 1498 Eina_Bool enabled)
1343{ 1499{
1344 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT)) 1500 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
@@ -1360,7 +1516,7 @@ ecore_imf_context_input_panel_enabled_set (Ecore_IMF_Context *ctx,
1360 * @since 1.1.0 1516 * @since 1.1.0
1361 */ 1517 */
1362EAPI Eina_Bool 1518EAPI Eina_Bool
1363ecore_imf_context_input_panel_enabled_get (Ecore_IMF_Context *ctx) 1519ecore_imf_context_input_panel_enabled_get(Ecore_IMF_Context *ctx)
1364{ 1520{
1365 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT)) 1521 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
1366 { 1522 {
@@ -1372,3 +1528,191 @@ ecore_imf_context_input_panel_enabled_get (Ecore_IMF_Context *ctx)
1372 return ctx->input_panel_enabled; 1528 return ctx->input_panel_enabled;
1373} 1529}
1374 1530
1531/**
1532 * Set the input panel-specific data to deliver to the input panel.
1533 * This API is used by applications to deliver specific data to the input panel.
1534 * The data format MUST be negotiated by both application and the input panel.
1535 * The size and format of data are defined by the input panel.
1536 *
1537 * @param ctx An #Ecore_IMF_Context.
1538 * @param data The specific data to be set to the input panel.
1539 * @param len the length of data, in bytes, to send to the input panel
1540 * @ingroup Ecore_IMF_Context_Group
1541 * @since 1.2.0
1542 */
1543EAPI void
1544ecore_imf_context_input_panel_imdata_set(Ecore_IMF_Context *ctx, const void *data, int len)
1545{
1546 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
1547 {
1548 ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
1549 "ecore_imf_context_input_panel_imdata_set");
1550 return;
1551 }
1552
1553 if (!data) return;
1554
1555 if (ctx->klass->input_panel_imdata_set)
1556 ctx->klass->input_panel_imdata_set(ctx, data, len);
1557}
1558
1559/**
1560 * Get the specific data of the current active input panel.
1561 *
1562 * @param ctx An #Ecore_IMF_Context.
1563 * @param data The specific data to be got from the input panel
1564 * @param len The length of data
1565 * @ingroup Ecore_IMF_Context_Group
1566 * @since 1.2.0
1567 */
1568EAPI void
1569ecore_imf_context_input_panel_imdata_get(Ecore_IMF_Context *ctx, void *data, int *len)
1570{
1571 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
1572 {
1573 ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
1574 "ecore_imf_context_input_panel_imdata_get");
1575 return;
1576 }
1577
1578 if (!data) return;
1579
1580 if (ctx->klass->input_panel_imdata_get)
1581 ctx->klass->input_panel_imdata_get(ctx, data, len);
1582}
1583
1584/**
1585 * Set the "return" key type. This type is used to set string or icon on the "return" key of the input panel.
1586 *
1587 * An input panel displays the string or icon associated with this type
1588 *
1589 * @param ctx An #Ecore_IMF_Context.
1590 * @param return_key_type The type of "return" key on the input panel
1591 * @ingroup Ecore_IMF_Context_Group
1592 * @since 1.2.0
1593 */
1594EAPI void
1595ecore_imf_context_input_panel_return_key_type_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Return_Key_Type return_key_type)
1596{
1597 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
1598 {
1599 ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
1600 "ecore_imf_context_input_panel_return_key_type_set");
1601 return;
1602 }
1603
1604 ctx->input_panel_return_key_type = return_key_type;
1605 if (ctx->klass->input_panel_return_key_type_set) ctx->klass->input_panel_return_key_type_set(ctx, return_key_type);
1606}
1607
1608/**
1609 * Get the "return" key type.
1610 *
1611 * @see ecore_imf_context_input_panel_return_key_type_set() for more details
1612 *
1613 * @param ctx An #Ecore_IMF_Context.
1614 * @return The type of "return" key on the input panel
1615 * @ingroup Ecore_IMF_Context_Group
1616 * @since 1.2.0
1617 */
1618EAPI Ecore_IMF_Input_Panel_Return_Key_Type
1619ecore_imf_context_input_panel_return_key_type_get(Ecore_IMF_Context *ctx)
1620{
1621 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
1622 {
1623 ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
1624 "ecore_imf_context_input_panel_return_key_type_get");
1625 return EINA_FALSE;
1626 }
1627
1628 return ctx->input_panel_return_key_type;
1629}
1630
1631/**
1632 * Set the return key on the input panel to be disabled.
1633 *
1634 * @param ctx An #Ecore_IMF_Context.
1635 * @param disabled The state
1636 * @ingroup Ecore_IMF_Context_Group
1637 * @since 1.2.0
1638 */
1639EAPI void
1640ecore_imf_context_input_panel_return_key_disabled_set(Ecore_IMF_Context *ctx, Eina_Bool disabled)
1641{
1642 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
1643 {
1644 ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
1645 "ecore_imf_context_input_panel_return_key_disabled_set");
1646 return;
1647 }
1648
1649 ctx->input_panel_return_key_disabled = disabled;
1650 if (ctx->klass->input_panel_return_key_disabled_set) ctx->klass->input_panel_return_key_disabled_set(ctx, disabled);
1651}
1652
1653/**
1654 * Get whether the return key on the input panel should be disabled or not.
1655 *
1656 * @param ctx An #Ecore_IMF_Context.
1657 * @return EINA_TRUE if it should be disabled
1658 * @ingroup Ecore_IMF_Context_Group
1659 * @since 1.2.0
1660 */
1661EAPI Eina_Bool
1662ecore_imf_context_input_panel_return_key_disabled_get(Ecore_IMF_Context *ctx)
1663{
1664 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
1665 {
1666 ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
1667 "ecore_imf_context_input_panel_return_key_disabled_get");
1668 return EINA_FALSE;
1669 }
1670
1671 return ctx->input_panel_return_key_disabled;
1672}
1673
1674/**
1675 * Set the caps lock mode on the input panel.
1676 *
1677 * @param ctx An #Ecore_IMF_Context.
1678 * @param mode Turn on caps lock on the input panel if EINA_TRUE
1679 * @ingroup Ecore_IMF_Context_Group
1680 * @since 1.2.0
1681 */
1682EAPI void
1683ecore_imf_context_input_panel_caps_lock_mode_set(Ecore_IMF_Context *ctx, Eina_Bool mode)
1684{
1685 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
1686 {
1687 ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
1688 "ecore_imf_context_input_panel_caps_lock_mode_set");
1689 return;
1690 }
1691
1692 if (ctx->klass->input_panel_caps_lock_mode_set)
1693 ctx->klass->input_panel_caps_lock_mode_set(ctx, mode);
1694
1695 ctx->input_panel_caps_lock_mode = mode;
1696}
1697
1698/**
1699 * Get the caps lock mode on the input panel.
1700 *
1701 * @param ctx An #Ecore_IMF_Context.
1702 * @return EINA_TRUE if the caps lock is turned on.
1703 * @ingroup Ecore_IMF_Context_Group
1704 * @since 1.2.0
1705 */
1706EAPI Eina_Bool
1707ecore_imf_context_input_panel_caps_lock_mode_get(Ecore_IMF_Context *ctx)
1708{
1709 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
1710 {
1711 ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
1712 "ecore_imf_context_input_panel_caps_lock_mode_get");
1713 return EINA_FALSE;
1714 }
1715
1716 return ctx->input_panel_caps_lock_mode;
1717}
1718
diff --git a/libraries/ecore/src/lib/ecore_imf/ecore_imf_private.h b/libraries/ecore/src/lib/ecore_imf/ecore_imf_private.h
index d9dae80..b4ff0f2 100644
--- a/libraries/ecore/src/lib/ecore_imf/ecore_imf_private.h
+++ b/libraries/ecore/src/lib/ecore_imf/ecore_imf_private.h
@@ -52,8 +52,11 @@ struct _Ecore_IMF_Context
52 Ecore_IMF_Autocapital_Type autocapital_type; 52 Ecore_IMF_Autocapital_Type autocapital_type;
53 Ecore_IMF_Input_Panel_Layout input_panel_layout; 53 Ecore_IMF_Input_Panel_Layout input_panel_layout;
54 Ecore_IMF_Input_Panel_Lang input_panel_lang; 54 Ecore_IMF_Input_Panel_Lang input_panel_lang;
55 Ecore_IMF_Input_Panel_Return_Key_Type input_panel_return_key_type;
55 Eina_Bool allow_prediction : 1; 56 Eina_Bool allow_prediction : 1;
56 Eina_Bool input_panel_enabled : 1; 57 Eina_Bool input_panel_enabled : 1;
58 Eina_Bool input_panel_return_key_disabled : 1;
59 Eina_Bool input_panel_caps_lock_mode : 1;
57}; 60};
58 61
59struct _Ecore_IMF_Module 62struct _Ecore_IMF_Module
diff --git a/libraries/ecore/src/lib/ecore_imf_evas/Makefile.in b/libraries/ecore/src/lib/ecore_imf_evas/Makefile.in
index ab6503b..1542919 100644
--- a/libraries/ecore/src/lib/ecore_imf_evas/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_imf_evas/Makefile.in
@@ -50,16 +50,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
53 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 53 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
54 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 54 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
55 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 55 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
56 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 56 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
57 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 57 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
58 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 58 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
59 $(top_srcdir)/configure.ac
60am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 59am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4) 60 $(ACLOCAL_M4)
62mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 61mkinstalldirs = $(install_sh) -d
63CONFIG_HEADER = $(top_builddir)/config.h 62CONFIG_HEADER = $(top_builddir)/config.h
64CONFIG_CLEAN_FILES = 63CONFIG_CLEAN_FILES =
65CONFIG_CLEAN_VPATH_FILES = 64CONFIG_CLEAN_VPATH_FILES =
@@ -192,6 +191,8 @@ EVAS_LIBS = @EVAS_LIBS@
192EVIL_CFLAGS = @EVIL_CFLAGS@ 191EVIL_CFLAGS = @EVIL_CFLAGS@
193EVIL_LIBS = @EVIL_LIBS@ 192EVIL_LIBS = @EVIL_LIBS@
194EXEEXT = @EXEEXT@ 193EXEEXT = @EXEEXT@
194EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
195EXOTIC_LIBS = @EXOTIC_LIBS@
195FGREP = @FGREP@ 196FGREP = @FGREP@
196GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 197GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
197GLIB_CFLAGS = @GLIB_CFLAGS@ 198GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -247,6 +248,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
247PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 248PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
248PIXMAN_LIBS = @PIXMAN_LIBS@ 249PIXMAN_LIBS = @PIXMAN_LIBS@
249PKG_CONFIG = @PKG_CONFIG@ 250PKG_CONFIG = @PKG_CONFIG@
251PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
252PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
250POSUB = @POSUB@ 253POSUB = @POSUB@
251RANLIB = @RANLIB@ 254RANLIB = @RANLIB@
252SCIM_CFLAGS = @SCIM_CFLAGS@ 255SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -257,6 +260,7 @@ SDL_LIBS = @SDL_LIBS@
257SED = @SED@ 260SED = @SED@
258SET_MAKE = @SET_MAKE@ 261SET_MAKE = @SET_MAKE@
259SHELL = @SHELL@ 262SHELL = @SHELL@
263SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
260SSL_CFLAGS = @SSL_CFLAGS@ 264SSL_CFLAGS = @SSL_CFLAGS@
261SSL_LIBS = @SSL_LIBS@ 265SSL_LIBS = @SSL_LIBS@
262STRIP = @STRIP@ 266STRIP = @STRIP@
diff --git a/libraries/ecore/src/lib/ecore_imf_evas/ecore_imf_evas.c b/libraries/ecore/src/lib/ecore_imf_evas/ecore_imf_evas.c
index 86badf5..62ba4c8 100644
--- a/libraries/ecore/src/lib/ecore_imf_evas/ecore_imf_evas.c
+++ b/libraries/ecore/src/lib/ecore_imf_evas/ecore_imf_evas.c
@@ -221,6 +221,28 @@ ecore_imf_evas_event_mouse_wheel_wrap(Evas_Event_Mouse_Wheel *evas_event,
221 * @param evas_event The received Evas event. 221 * @param evas_event The received Evas event.
222 * @param imf_event The location to store the converted Ecore_IMF event. 222 * @param imf_event The location to store the converted Ecore_IMF event.
223 * @ingroup Ecore_IMF_Evas_Group 223 * @ingroup Ecore_IMF_Evas_Group
224 *
225 * Example
226 * @code
227 * static void
228 * _key_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
229 * {
230 * Evas_Event_Key_Down *ev = event_info;
231 * if (!ev->keyname) return;
232 *
233 * if (imf_context)
234 * {
235 * Ecore_IMF_Event_Key_Down ecore_ev;
236 * ecore_imf_evas_event_key_down_wrap(ev, &ecore_ev);
237 * if (ecore_imf_context_filter_event(imf_context,
238 * ECORE_IMF_EVENT_KEY_DOWN,
239 * (Ecore_IMF_Event *)&ecore_ev))
240 * return;
241 * }
242 * }
243 *
244 * evas_object_event_callback_add(obj, EVAS_CALLBACK_KEY_DOWN, _key_down_cb, data);
245 * @endcode
224 */ 246 */
225EAPI void 247EAPI void
226ecore_imf_evas_event_key_down_wrap(Evas_Event_Key_Down *evas_event, 248ecore_imf_evas_event_key_down_wrap(Evas_Event_Key_Down *evas_event,
@@ -244,6 +266,28 @@ ecore_imf_evas_event_key_down_wrap(Evas_Event_Key_Down *evas_event,
244 * @param evas_event The received Evas event. 266 * @param evas_event The received Evas event.
245 * @param imf_event The location to store the converted Ecore_IMF event. 267 * @param imf_event The location to store the converted Ecore_IMF event.
246 * @ingroup Ecore_IMF_Evas_Group 268 * @ingroup Ecore_IMF_Evas_Group
269 *
270 * Example
271 * @code
272 * static void
273 * _key_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
274 * {
275 * Evas_Event_Key_Up *ev = event_info;
276 * if (!ev->keyname) return;
277 *
278 * if (imf_context)
279 * {
280 * Ecore_IMF_Event_Key_Up ecore_ev;
281 * ecore_imf_evas_event_key_up_wrap(ev, &ecore_ev);
282 * if (ecore_imf_context_filter_event(imf_context,
283 * ECORE_IMF_EVENT_KEY_UP,
284 * (Ecore_IMF_Event *)&ecore_ev))
285 * return;
286 * }
287 * }
288 *
289 * evas_object_event_callback_add(obj, EVAS_CALLBACK_KEY_UP, _key_up_cb, data);
290 * @endcode
247 */ 291 */
248EAPI void 292EAPI void
249ecore_imf_evas_event_key_up_wrap(Evas_Event_Key_Up *evas_event, 293ecore_imf_evas_event_key_up_wrap(Evas_Event_Key_Up *evas_event,
diff --git a/libraries/ecore/src/lib/ecore_input/Makefile.in b/libraries/ecore/src/lib/ecore_input/Makefile.in
index f9fc99a..a3eeb2e 100644
--- a/libraries/ecore/src/lib/ecore_input/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_input/Makefile.in
@@ -50,16 +50,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
53 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 53 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
54 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 54 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
55 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 55 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
56 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 56 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
57 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 57 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
58 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 58 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
59 $(top_srcdir)/configure.ac
60am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 59am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4) 60 $(ACLOCAL_M4)
62mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 61mkinstalldirs = $(install_sh) -d
63CONFIG_HEADER = $(top_builddir)/config.h 62CONFIG_HEADER = $(top_builddir)/config.h
64CONFIG_CLEAN_FILES = 63CONFIG_CLEAN_FILES =
65CONFIG_CLEAN_VPATH_FILES = 64CONFIG_CLEAN_VPATH_FILES =
@@ -192,6 +191,8 @@ EVAS_LIBS = @EVAS_LIBS@
192EVIL_CFLAGS = @EVIL_CFLAGS@ 191EVIL_CFLAGS = @EVIL_CFLAGS@
193EVIL_LIBS = @EVIL_LIBS@ 192EVIL_LIBS = @EVIL_LIBS@
194EXEEXT = @EXEEXT@ 193EXEEXT = @EXEEXT@
194EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
195EXOTIC_LIBS = @EXOTIC_LIBS@
195FGREP = @FGREP@ 196FGREP = @FGREP@
196GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 197GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
197GLIB_CFLAGS = @GLIB_CFLAGS@ 198GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -247,6 +248,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
247PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 248PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
248PIXMAN_LIBS = @PIXMAN_LIBS@ 249PIXMAN_LIBS = @PIXMAN_LIBS@
249PKG_CONFIG = @PKG_CONFIG@ 250PKG_CONFIG = @PKG_CONFIG@
251PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
252PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
250POSUB = @POSUB@ 253POSUB = @POSUB@
251RANLIB = @RANLIB@ 254RANLIB = @RANLIB@
252SCIM_CFLAGS = @SCIM_CFLAGS@ 255SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -257,6 +260,7 @@ SDL_LIBS = @SDL_LIBS@
257SED = @SED@ 260SED = @SED@
258SET_MAKE = @SET_MAKE@ 261SET_MAKE = @SET_MAKE@
259SHELL = @SHELL@ 262SHELL = @SHELL@
263SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
260SSL_CFLAGS = @SSL_CFLAGS@ 264SSL_CFLAGS = @SSL_CFLAGS@
261SSL_LIBS = @SSL_LIBS@ 265SSL_LIBS = @SSL_LIBS@
262STRIP = @STRIP@ 266STRIP = @STRIP@
diff --git a/libraries/ecore/src/lib/ecore_input_evas/Makefile.in b/libraries/ecore/src/lib/ecore_input_evas/Makefile.in
index d0ac95e..d3937d9 100644
--- a/libraries/ecore/src/lib/ecore_input_evas/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_input_evas/Makefile.in
@@ -50,16 +50,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
53 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 53 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
54 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 54 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
55 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 55 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
56 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 56 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
57 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 57 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
58 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 58 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
59 $(top_srcdir)/configure.ac
60am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 59am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4) 60 $(ACLOCAL_M4)
62mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 61mkinstalldirs = $(install_sh) -d
63CONFIG_HEADER = $(top_builddir)/config.h 62CONFIG_HEADER = $(top_builddir)/config.h
64CONFIG_CLEAN_FILES = 63CONFIG_CLEAN_FILES =
65CONFIG_CLEAN_VPATH_FILES = 64CONFIG_CLEAN_VPATH_FILES =
@@ -193,6 +192,8 @@ EVAS_LIBS = @EVAS_LIBS@
193EVIL_CFLAGS = @EVIL_CFLAGS@ 192EVIL_CFLAGS = @EVIL_CFLAGS@
194EVIL_LIBS = @EVIL_LIBS@ 193EVIL_LIBS = @EVIL_LIBS@
195EXEEXT = @EXEEXT@ 194EXEEXT = @EXEEXT@
195EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
196EXOTIC_LIBS = @EXOTIC_LIBS@
196FGREP = @FGREP@ 197FGREP = @FGREP@
197GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 198GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
198GLIB_CFLAGS = @GLIB_CFLAGS@ 199GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -248,6 +249,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
248PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 249PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
249PIXMAN_LIBS = @PIXMAN_LIBS@ 250PIXMAN_LIBS = @PIXMAN_LIBS@
250PKG_CONFIG = @PKG_CONFIG@ 251PKG_CONFIG = @PKG_CONFIG@
252PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
253PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
251POSUB = @POSUB@ 254POSUB = @POSUB@
252RANLIB = @RANLIB@ 255RANLIB = @RANLIB@
253SCIM_CFLAGS = @SCIM_CFLAGS@ 256SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -258,6 +261,7 @@ SDL_LIBS = @SDL_LIBS@
258SED = @SED@ 261SED = @SED@
259SET_MAKE = @SET_MAKE@ 262SET_MAKE = @SET_MAKE@
260SHELL = @SHELL@ 263SHELL = @SHELL@
264SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
261SSL_CFLAGS = @SSL_CFLAGS@ 265SSL_CFLAGS = @SSL_CFLAGS@
262SSL_LIBS = @SSL_LIBS@ 266SSL_LIBS = @SSL_LIBS@
263STRIP = @STRIP@ 267STRIP = @STRIP@
diff --git a/libraries/ecore/src/lib/ecore_ipc/Makefile.in b/libraries/ecore/src/lib/ecore_ipc/Makefile.in
index ac2cf6f..e339ffc 100644
--- a/libraries/ecore/src/lib/ecore_ipc/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_ipc/Makefile.in
@@ -50,16 +50,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
53 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 53 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
54 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 54 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
55 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 55 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
56 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 56 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
57 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 57 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
58 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 58 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
59 $(top_srcdir)/configure.ac
60am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 59am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4) 60 $(ACLOCAL_M4)
62mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 61mkinstalldirs = $(install_sh) -d
63CONFIG_HEADER = $(top_builddir)/config.h 62CONFIG_HEADER = $(top_builddir)/config.h
64CONFIG_CLEAN_FILES = 63CONFIG_CLEAN_FILES =
65CONFIG_CLEAN_VPATH_FILES = 64CONFIG_CLEAN_VPATH_FILES =
@@ -193,6 +192,8 @@ EVAS_LIBS = @EVAS_LIBS@
193EVIL_CFLAGS = @EVIL_CFLAGS@ 192EVIL_CFLAGS = @EVIL_CFLAGS@
194EVIL_LIBS = @EVIL_LIBS@ 193EVIL_LIBS = @EVIL_LIBS@
195EXEEXT = @EXEEXT@ 194EXEEXT = @EXEEXT@
195EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
196EXOTIC_LIBS = @EXOTIC_LIBS@
196FGREP = @FGREP@ 197FGREP = @FGREP@
197GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 198GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
198GLIB_CFLAGS = @GLIB_CFLAGS@ 199GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -248,6 +249,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
248PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 249PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
249PIXMAN_LIBS = @PIXMAN_LIBS@ 250PIXMAN_LIBS = @PIXMAN_LIBS@
250PKG_CONFIG = @PKG_CONFIG@ 251PKG_CONFIG = @PKG_CONFIG@
252PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
253PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
251POSUB = @POSUB@ 254POSUB = @POSUB@
252RANLIB = @RANLIB@ 255RANLIB = @RANLIB@
253SCIM_CFLAGS = @SCIM_CFLAGS@ 256SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -258,6 +261,7 @@ SDL_LIBS = @SDL_LIBS@
258SED = @SED@ 261SED = @SED@
259SET_MAKE = @SET_MAKE@ 262SET_MAKE = @SET_MAKE@
260SHELL = @SHELL@ 263SHELL = @SHELL@
264SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
261SSL_CFLAGS = @SSL_CFLAGS@ 265SSL_CFLAGS = @SSL_CFLAGS@
262SSL_LIBS = @SSL_LIBS@ 266SSL_LIBS = @SSL_LIBS@
263STRIP = @STRIP@ 267STRIP = @STRIP@
diff --git a/libraries/ecore/src/lib/ecore_ipc/ecore_ipc.c b/libraries/ecore/src/lib/ecore_ipc/ecore_ipc.c
index e27134d..0210f1d 100644
--- a/libraries/ecore/src/lib/ecore_ipc/ecore_ipc.c
+++ b/libraries/ecore/src/lib/ecore_ipc/ecore_ipc.c
@@ -316,7 +316,10 @@ ecore_ipc_shutdown(void)
316 if (--_ecore_ipc_init_count != 0) 316 if (--_ecore_ipc_init_count != 0)
317 return _ecore_ipc_init_count; 317 return _ecore_ipc_init_count;
318 318
319 while (servers) ecore_ipc_server_del(eina_list_data_get(servers)); 319 Eina_List *l, *l2;
320 Ecore_Ipc_Server *svr;
321 EINA_LIST_FOREACH_SAFE(servers, l, l2, svr)
322 ecore_ipc_server_del(svr);
320 323
321 for (i = 0; i < 6; i++) 324 for (i = 0; i < 6; i++)
322 ecore_event_handler_del(handler[i]); 325 ecore_event_handler_del(handler[i]);
diff --git a/libraries/ecore/src/lib/ecore_psl1ght/Makefile.in b/libraries/ecore/src/lib/ecore_psl1ght/Makefile.in
index 487231b..54a0435 100644
--- a/libraries/ecore/src/lib/ecore_psl1ght/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_psl1ght/Makefile.in
@@ -50,16 +50,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
53 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 53 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
54 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 54 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
55 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 55 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
56 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 56 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
57 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 57 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
58 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 58 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
59 $(top_srcdir)/configure.ac
60am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 59am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4) 60 $(ACLOCAL_M4)
62mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 61mkinstalldirs = $(install_sh) -d
63CONFIG_HEADER = $(top_builddir)/config.h 62CONFIG_HEADER = $(top_builddir)/config.h
64CONFIG_CLEAN_FILES = 63CONFIG_CLEAN_FILES =
65CONFIG_CLEAN_VPATH_FILES = 64CONFIG_CLEAN_VPATH_FILES =
@@ -194,6 +193,8 @@ EVAS_LIBS = @EVAS_LIBS@
194EVIL_CFLAGS = @EVIL_CFLAGS@ 193EVIL_CFLAGS = @EVIL_CFLAGS@
195EVIL_LIBS = @EVIL_LIBS@ 194EVIL_LIBS = @EVIL_LIBS@
196EXEEXT = @EXEEXT@ 195EXEEXT = @EXEEXT@
196EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
197EXOTIC_LIBS = @EXOTIC_LIBS@
197FGREP = @FGREP@ 198FGREP = @FGREP@
198GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 199GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
199GLIB_CFLAGS = @GLIB_CFLAGS@ 200GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -249,6 +250,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
249PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 250PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
250PIXMAN_LIBS = @PIXMAN_LIBS@ 251PIXMAN_LIBS = @PIXMAN_LIBS@
251PKG_CONFIG = @PKG_CONFIG@ 252PKG_CONFIG = @PKG_CONFIG@
253PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
254PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
252POSUB = @POSUB@ 255POSUB = @POSUB@
253RANLIB = @RANLIB@ 256RANLIB = @RANLIB@
254SCIM_CFLAGS = @SCIM_CFLAGS@ 257SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -259,6 +262,7 @@ SDL_LIBS = @SDL_LIBS@
259SED = @SED@ 262SED = @SED@
260SET_MAKE = @SET_MAKE@ 263SET_MAKE = @SET_MAKE@
261SHELL = @SHELL@ 264SHELL = @SHELL@
265SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
262SSL_CFLAGS = @SSL_CFLAGS@ 266SSL_CFLAGS = @SSL_CFLAGS@
263SSL_LIBS = @SSL_LIBS@ 267SSL_LIBS = @SSL_LIBS@
264STRIP = @STRIP@ 268STRIP = @STRIP@
diff --git a/libraries/ecore/src/lib/ecore_sdl/Makefile.in b/libraries/ecore/src/lib/ecore_sdl/Makefile.in
index c0312b0..50003ab 100644
--- a/libraries/ecore/src/lib/ecore_sdl/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_sdl/Makefile.in
@@ -50,16 +50,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
53 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 53 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
54 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 54 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
55 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 55 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
56 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 56 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
57 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 57 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
58 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 58 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
59 $(top_srcdir)/configure.ac
60am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 59am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4) 60 $(ACLOCAL_M4)
62mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 61mkinstalldirs = $(install_sh) -d
63CONFIG_HEADER = $(top_builddir)/config.h 62CONFIG_HEADER = $(top_builddir)/config.h
64CONFIG_CLEAN_FILES = 63CONFIG_CLEAN_FILES =
65CONFIG_CLEAN_VPATH_FILES = 64CONFIG_CLEAN_VPATH_FILES =
@@ -193,6 +192,8 @@ EVAS_LIBS = @EVAS_LIBS@
193EVIL_CFLAGS = @EVIL_CFLAGS@ 192EVIL_CFLAGS = @EVIL_CFLAGS@
194EVIL_LIBS = @EVIL_LIBS@ 193EVIL_LIBS = @EVIL_LIBS@
195EXEEXT = @EXEEXT@ 194EXEEXT = @EXEEXT@
195EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
196EXOTIC_LIBS = @EXOTIC_LIBS@
196FGREP = @FGREP@ 197FGREP = @FGREP@
197GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 198GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
198GLIB_CFLAGS = @GLIB_CFLAGS@ 199GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -248,6 +249,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
248PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 249PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
249PIXMAN_LIBS = @PIXMAN_LIBS@ 250PIXMAN_LIBS = @PIXMAN_LIBS@
250PKG_CONFIG = @PKG_CONFIG@ 251PKG_CONFIG = @PKG_CONFIG@
252PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
253PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
251POSUB = @POSUB@ 254POSUB = @POSUB@
252RANLIB = @RANLIB@ 255RANLIB = @RANLIB@
253SCIM_CFLAGS = @SCIM_CFLAGS@ 256SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -258,6 +261,7 @@ SDL_LIBS = @SDL_LIBS@
258SED = @SED@ 261SED = @SED@
259SET_MAKE = @SET_MAKE@ 262SET_MAKE = @SET_MAKE@
260SHELL = @SHELL@ 263SHELL = @SHELL@
264SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
261SSL_CFLAGS = @SSL_CFLAGS@ 265SSL_CFLAGS = @SSL_CFLAGS@
262SSL_LIBS = @SSL_LIBS@ 266SSL_LIBS = @SSL_LIBS@
263STRIP = @STRIP@ 267STRIP = @STRIP@
diff --git a/libraries/ecore/src/lib/ecore_wayland/Ecore_Wayland.h b/libraries/ecore/src/lib/ecore_wayland/Ecore_Wayland.h
index fdf6314..7dab37c 100644
--- a/libraries/ecore/src/lib/ecore_wayland/Ecore_Wayland.h
+++ b/libraries/ecore/src/lib/ecore_wayland/Ecore_Wayland.h
@@ -1,8 +1,13 @@
1#ifndef _ECORE_WAYLAND_H_ 1#ifndef _ECORE_WAYLAND_H_
2# define _ECORE_WAYLAND_H_ 2# define _ECORE_WAYLAND_H_
3 3
4# define GL_GLEXT_PROTOTYPES
5
4# include <Eina.h> 6# include <Eina.h>
5# include <wayland-client.h> 7# include <wayland-client.h>
8# include <wayland-egl.h> // NB: already includes wayland-client.h
9# include <EGL/egl.h>
10# include <EGL/eglext.h>
6 11
7# ifdef EAPI 12# ifdef EAPI
8# undef EAPI 13# undef EAPI
@@ -18,71 +23,233 @@
18# define EAPI 23# define EAPI
19# endif 24# endif
20 25
26typedef enum _Ecore_Wl_Window_Type Ecore_Wl_Window_Type;
27typedef enum _Ecore_Wl_Window_Buffer_Type Ecore_Wl_Window_Buffer_Type;
28
29typedef struct _Ecore_Wl_Display Ecore_Wl_Display;
30typedef struct _Ecore_Wl_Output Ecore_Wl_Output;
31typedef struct _Ecore_Wl_Input Ecore_Wl_Input;
32# ifndef _ECORE_WAYLAND_WINDOW_PREDEF
33typedef struct _Ecore_Wl_Window Ecore_Wl_Window;
34# endif
35typedef struct _Ecore_Wl_Dnd_Source Ecore_Wl_Dnd_Source;
36typedef struct _Ecore_Wl_Dnd_Target Ecore_Wl_Dnd_Target;
37
21typedef struct _Ecore_Wl_Event_Mouse_In Ecore_Wl_Event_Mouse_In; 38typedef struct _Ecore_Wl_Event_Mouse_In Ecore_Wl_Event_Mouse_In;
22typedef struct _Ecore_Wl_Event_Mouse_Out Ecore_Wl_Event_Mouse_Out; 39typedef struct _Ecore_Wl_Event_Mouse_Out Ecore_Wl_Event_Mouse_Out;
23typedef struct _Ecore_Wl_Event_Focus_In Ecore_Wl_Event_Focus_In; 40typedef struct _Ecore_Wl_Event_Focus_In Ecore_Wl_Event_Focus_In;
24typedef struct _Ecore_Wl_Event_Focus_Out Ecore_Wl_Event_Focus_Out; 41typedef struct _Ecore_Wl_Event_Focus_Out Ecore_Wl_Event_Focus_Out;
42typedef struct _Ecore_Wl_Event_Window_Configure Ecore_Wl_Event_Window_Configure;
43typedef struct _Ecore_Wl_Event_Dnd_Enter Ecore_Wl_Event_Dnd_Enter;
44typedef struct _Ecore_Wl_Event_Dnd_Position Ecore_Wl_Event_Dnd_Position;
45typedef struct _Ecore_Wl_Event_Dnd_Leave Ecore_Wl_Event_Dnd_Leave;
46typedef struct _Ecore_Wl_Event_Dnd_Drop Ecore_Wl_Event_Dnd_Drop;
47typedef struct _Ecore_Wl_Event_Interfaces_Bound Ecore_Wl_Event_Interfaces_Bound;
25 48
26typedef struct _Ecore_Wl_Drag_Source Ecore_Wl_Drag_Source; 49enum _Ecore_Wl_Window_Type
50{
51 ECORE_WL_WINDOW_TYPE_TOPLEVEL,
52 ECORE_WL_WINDOW_TYPE_FULLSCREEN,
53 ECORE_WL_WINDOW_TYPE_MAXIMIZED,
54 ECORE_WL_WINDOW_TYPE_TRANSIENT,
55 ECORE_WL_WINDOW_TYPE_MENU,
56 ECORE_WL_WINDOW_TYPE_CUSTOM
57};
27 58
28typedef struct _Ecore_Wl_Event_Drag_Start Ecore_Wl_Event_Drag_Start; 59enum _Ecore_Wl_Window_Buffer_Type
29typedef struct _Ecore_Wl_Event_Drag_Stop Ecore_Wl_Event_Drag_Stop; 60{
61 ECORE_WL_WINDOW_BUFFER_TYPE_EGL_WINDOW,
62 ECORE_WL_WINDOW_BUFFER_TYPE_EGL_IMAGE,
63 ECORE_WL_WINDOW_BUFFER_TYPE_SHM
64};
30 65
31struct _Ecore_Wl_Event_Mouse_In 66struct _Ecore_Wl_Display
32{ 67{
33 int modifiers; 68 struct
34 int x, y; 69 {
70 struct wl_display *display;
71 struct wl_compositor *compositor;
72 struct wl_shell *shell;
73 struct wl_shm *shm;
74 struct wl_data_device_manager *data_device_manager;
75 } wl;
35 76
36 struct 77 struct
37 { 78 {
38 int x, y; 79 EGLDisplay display;
39 } root; 80 EGLConfig rgb_config;
81 EGLConfig argb_config;
82 EGLContext rgb_context;
83 EGLContext argb_context;
84 } egl;
85
86 int fd;
87 unsigned int mask;
88 Ecore_Fd_Handler *fd_hdl;
89
90 struct wl_list inputs;
91 struct wl_list outputs;
92
93 struct xkb_desc *xkb;
94
95 Ecore_Wl_Output *output;
96
97 PFNEGLCREATEIMAGEKHRPROC create_image;
98 PFNEGLDESTROYIMAGEKHRPROC destroy_image;
99
100 void (*output_configure)(Ecore_Wl_Output *output, void *data);
101 void *data;
102};
103
104struct _Ecore_Wl_Output
105{
106 Ecore_Wl_Display *display;
107 struct wl_output *output;
108 Eina_Rectangle allocation;
109 struct wl_list link;
110
111 void (*destroy) (Ecore_Wl_Output *output, void *data);
112 void *data;
113};
114
115struct _Ecore_Wl_Input
116{
117 Ecore_Wl_Display *display;
118 struct wl_input_device *input_device;
119 struct wl_data_device *data_device;
120
121 Ecore_Wl_Window *pointer_focus;
122 Ecore_Wl_Window *keyboard_focus;
123
124 unsigned int button;
125 unsigned int timestamp;
126 unsigned int modifiers;
127 int sx, sy;
128
129 struct wl_list link;
130
131 /* TODO: grab */
132 unsigned int grab_button;
133
134 Ecore_Wl_Dnd_Source *drag_source;
135 Ecore_Wl_Dnd_Source *selection_source;
136};
40 137
41 unsigned int window; 138struct _Ecore_Wl_Window
139{
140 Ecore_Wl_Display *display;
141 Ecore_Wl_Window *parent;
142
143 struct wl_surface *surface;
144 struct wl_shell_surface *shell_surface;
145
146 int id;
147 int x, y;
148 int edges;
149
150 Eina_Rectangle allocation, pending_allocation;
151 Eina_Rectangle saved_allocation, server_allocation;
42 152
43 unsigned int time; 153 /* Eina_Bool redraw_scheduled : 1; */
154 /* Eina_Bool resize_scheduled : 1; */
155 Eina_Bool transparent : 1;
156
157 Ecore_Wl_Window_Type type;
158 Ecore_Wl_Window_Buffer_Type buffer_type;
159
160 Ecore_Wl_Input *pointer_device;
161 Ecore_Wl_Input *keyboard_device;
162
163 void *data;
44}; 164};
45 165
46struct _Ecore_Wl_Event_Mouse_Out 166struct _Ecore_Wl_Event_Mouse_In
47{ 167{
48 int modifiers; 168 int modifiers;
49 int x, y; 169 int x, y;
170 struct
171 {
172 int x, y;
173 } root;
174 unsigned int win;
175 unsigned int event_win;
176 unsigned int root_win;
177 unsigned int timestamp;
178};
50 179
180struct _Ecore_Wl_Event_Mouse_Out
181{
182 int modifiers;
183 int x, y;
51 struct 184 struct
52 { 185 {
53 int x, y; 186 int x, y;
54 } root; 187 } root;
188 unsigned int win;
189 unsigned int event_win;
190 unsigned int root_win;
191 unsigned int timestamp;
192};
55 193
56 unsigned int window; 194struct _Ecore_Wl_Event_Focus_In
195{
196 unsigned int win;
197 unsigned int timestamp;
198};
57 199
58 unsigned int time; 200struct _Ecore_Wl_Event_Focus_Out
201{
202 unsigned int win;
203 unsigned int timestamp;
59}; 204};
60 205
61struct _Ecore_Wl_Event_Focus_In 206struct _Ecore_Wl_Event_Window_Configure
62{ 207{
63 unsigned int window; 208 unsigned int win;
64 /* TODO: mode & detail */ 209 unsigned int event_win;
65 unsigned int time; 210 int x, y, w, h;
211 unsigned int timestamp;
66}; 212};
67 213
68struct _Ecore_Wl_Event_Focus_Out 214struct _Ecore_Wl_Event_Dnd_Enter
69{ 215{
70 unsigned int window; 216 unsigned int win, source;
71 /* TODO: mode & detail */ 217 char **types;
72 unsigned int time; 218 int num_types;
219 struct
220 {
221 int x, y;
222 } position;
73}; 223};
74 224
75struct _Ecore_Wl_Event_Drag_Start 225struct _Ecore_Wl_Event_Dnd_Position
76{ 226{
77 struct wl_data_device *device; 227 unsigned int win, source;
78 struct wl_surface *surface; 228 struct
79 const char *mime_type; 229 {
80 uint32_t timestamp; 230 int x, y;
231 } position;
81}; 232};
82 233
83struct _Ecore_Wl_Event_Drag_Stop 234struct _Ecore_Wl_Event_Dnd_Leave
84{ 235{
236 unsigned int win, source;
237};
85 238
239struct _Ecore_Wl_Event_Dnd_Drop
240{
241 unsigned int win, source;
242 struct
243 {
244 int x, y;
245 } position;
246};
247
248struct _Ecore_Wl_Event_Interfaces_Bound
249{
250 Eina_Bool compositor : 1;
251 Eina_Bool shm : 1;
252 Eina_Bool shell : 1;
86}; 253};
87 254
88/** 255/**
@@ -92,32 +259,46 @@ struct _Ecore_Wl_Event_Drag_Stop
92 * Ecore_Wl provides a wrapper and convenience functions for using the 259 * Ecore_Wl provides a wrapper and convenience functions for using the
93 * Wayland window system. Function groups for this part of the library 260 * Wayland window system. Function groups for this part of the library
94 * include the following: 261 * include the following:
262 *
95 * @li @ref Ecore_Wl_Init_Group 263 * @li @ref Ecore_Wl_Init_Group
264 * @li @ref Ecore_Wl_Display_Group
265 * @li @ref Ecore_Wl_Flush_Group
266 * @li @ref Ecore_Wl_Window_Group
96 */ 267 */
97 268
269EAPI extern int ECORE_WL_EVENT_MOUSE_IN;
270EAPI extern int ECORE_WL_EVENT_MOUSE_OUT;
271EAPI extern int ECORE_WL_EVENT_FOCUS_IN;
272EAPI extern int ECORE_WL_EVENT_FOCUS_OUT;
273EAPI extern int ECORE_WL_EVENT_WINDOW_CONFIGURE;
274EAPI extern int ECORE_WL_EVENT_DND_ENTER;
275EAPI extern int ECORE_WL_EVENT_DND_POSITION;
276EAPI extern int ECORE_WL_EVENT_DND_LEAVE;
277EAPI extern int ECORE_WL_EVENT_DND_DROP;
278EAPI extern int ECORE_WL_EVENT_INTERFACES_BOUND;
279
98EAPI int ecore_wl_init(const char *name); 280EAPI int ecore_wl_init(const char *name);
99EAPI int ecore_wl_shutdown(void); 281EAPI int ecore_wl_shutdown(void);
100
101EAPI struct wl_display *ecore_wl_display_get(void);
102EAPI struct wl_shm *ecore_wl_shm_get(void);
103EAPI struct wl_compositor *ecore_wl_compositor_get(void);
104EAPI struct wl_shell *ecore_wl_shell_get(void);
105EAPI struct wl_input_device *ecore_wl_input_device_get(void);
106EAPI void ecore_wl_screen_size_get(int *w, int *h);
107EAPI unsigned int ecore_wl_format_get(void);
108EAPI void ecore_wl_flush(void); 282EAPI void ecore_wl_flush(void);
109EAPI void ecore_wl_sync(void); 283EAPI void ecore_wl_sync(void);
284EAPI struct wl_shm *ecore_wl_shm_get(void);
285EAPI struct wl_display *ecore_wl_display_get(void);
286EAPI void ecore_wl_screen_size_get(int *w, int *h);
110EAPI void ecore_wl_pointer_xy_get(int *x, int *y); 287EAPI void ecore_wl_pointer_xy_get(int *x, int *y);
111 288
112EAPI Ecore_Wl_Drag_Source *ecore_wl_drag_source_create(int hotspot_x, int hotspot_y, int offset_x, int offset_y, const char *mimetype, unsigned int timestamp, void *data); 289EAPI Ecore_Wl_Window *ecore_wl_window_new(Ecore_Wl_Window *parent, int x, int y, int w, int h, int buffer_type);
113EAPI void ecore_wl_drag_start(Ecore_Wl_Drag_Source *source, struct wl_surface *surface, struct wl_buffer *buffer); 290EAPI void ecore_wl_window_free(Ecore_Wl_Window *win);
114EAPI void ecore_wl_drag_stop(void); 291EAPI void ecore_wl_window_move(Ecore_Wl_Window *win, int x, int y);
115 292EAPI void ecore_wl_window_resize(Ecore_Wl_Window *win, int w, int h, int location);
116EAPI extern int ECORE_WL_EVENT_MOUSE_IN; 293EAPI void ecore_wl_window_damage(Ecore_Wl_Window *win, int x, int y, int w, int h);
117EAPI extern int ECORE_WL_EVENT_MOUSE_OUT; 294EAPI void ecore_wl_window_buffer_attach(Ecore_Wl_Window *win, struct wl_buffer *buffer, int x, int y);
118EAPI extern int ECORE_WL_EVENT_FOCUS_IN; 295EAPI void ecore_wl_window_show(Ecore_Wl_Window *win);
119EAPI extern int ECORE_WL_EVENT_FOCUS_OUT; 296EAPI void ecore_wl_window_hide(Ecore_Wl_Window *win);
120EAPI extern int ECORE_WL_EVENT_DRAG_START; 297EAPI void ecore_wl_window_raise(Ecore_Wl_Window *win);
121EAPI extern int ECORE_WL_EVENT_DRAG_STOP; 298EAPI void ecore_wl_window_maximized_set(Ecore_Wl_Window *win, Eina_Bool maximized);
299EAPI void ecore_wl_window_fullscreen_set(Ecore_Wl_Window *win, Eina_Bool fullscreen);
300EAPI void ecore_wl_window_update_size(Ecore_Wl_Window *win, int w, int h);
301EAPI struct wl_surface *ecore_wl_window_surface_get(Ecore_Wl_Window *win);
302EAPI Ecore_Wl_Window *ecore_wl_window_find(unsigned int id);
122 303
123#endif 304#endif
diff --git a/libraries/ecore/src/lib/ecore_wayland/Makefile.am b/libraries/ecore/src/lib/ecore_wayland/Makefile.am
index ea005b2..f6b801d 100644
--- a/libraries/ecore/src/lib/ecore_wayland/Makefile.am
+++ b/libraries/ecore/src/lib/ecore_wayland/Makefile.am
@@ -14,9 +14,11 @@ includes_HEADERS = Ecore_Wayland.h
14includesdir = $(includedir)/ecore-@VMAJ@ 14includesdir = $(includedir)/ecore-@VMAJ@
15 15
16libecore_wayland_la_SOURCES = \ 16libecore_wayland_la_SOURCES = \
17ecore_wl.c 17ecore_wl.c \
18 18ecore_wl_output.c \
19## ecore_wl_window.c 19ecore_wl_input.c \
20ecore_wl_window.c \
21ecore_wl_dnd.c
20 22
21libecore_wayland_la_LIBADD = \ 23libecore_wayland_la_LIBADD = \
22$(top_builddir)/src/lib/ecore/libecore.la \ 24$(top_builddir)/src/lib/ecore/libecore.la \
diff --git a/libraries/ecore/src/lib/ecore_wayland/Makefile.in b/libraries/ecore/src/lib/ecore_wayland/Makefile.in
index 411da19..39c633d 100644
--- a/libraries/ecore/src/lib/ecore_wayland/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_wayland/Makefile.in
@@ -50,16 +50,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
53 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 53 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
54 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 54 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
55 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 55 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
56 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 56 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
57 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 57 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
58 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 58 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
59 $(top_srcdir)/configure.ac
60am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 59am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4) 60 $(ACLOCAL_M4)
62mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 61mkinstalldirs = $(install_sh) -d
63CONFIG_HEADER = $(top_builddir)/config.h 62CONFIG_HEADER = $(top_builddir)/config.h
64CONFIG_CLEAN_FILES = 63CONFIG_CLEAN_FILES =
65CONFIG_CLEAN_VPATH_FILES = 64CONFIG_CLEAN_VPATH_FILES =
@@ -86,7 +85,8 @@ am__base_list = \
86 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' 85 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
87am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includesdir)" 86am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includesdir)"
88LTLIBRARIES = $(lib_LTLIBRARIES) 87LTLIBRARIES = $(lib_LTLIBRARIES)
89am_libecore_wayland_la_OBJECTS = ecore_wl.lo 88am_libecore_wayland_la_OBJECTS = ecore_wl.lo ecore_wl_output.lo \
89 ecore_wl_input.lo ecore_wl_window.lo ecore_wl_dnd.lo
90libecore_wayland_la_OBJECTS = $(am_libecore_wayland_la_OBJECTS) 90libecore_wayland_la_OBJECTS = $(am_libecore_wayland_la_OBJECTS)
91AM_V_lt = $(am__v_lt_$(V)) 91AM_V_lt = $(am__v_lt_$(V))
92am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) 92am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
@@ -190,6 +190,8 @@ EVAS_LIBS = @EVAS_LIBS@
190EVIL_CFLAGS = @EVIL_CFLAGS@ 190EVIL_CFLAGS = @EVIL_CFLAGS@
191EVIL_LIBS = @EVIL_LIBS@ 191EVIL_LIBS = @EVIL_LIBS@
192EXEEXT = @EXEEXT@ 192EXEEXT = @EXEEXT@
193EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
194EXOTIC_LIBS = @EXOTIC_LIBS@
193FGREP = @FGREP@ 195FGREP = @FGREP@
194GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 196GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
195GLIB_CFLAGS = @GLIB_CFLAGS@ 197GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -245,6 +247,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
245PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 247PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
246PIXMAN_LIBS = @PIXMAN_LIBS@ 248PIXMAN_LIBS = @PIXMAN_LIBS@
247PKG_CONFIG = @PKG_CONFIG@ 249PKG_CONFIG = @PKG_CONFIG@
250PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
251PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
248POSUB = @POSUB@ 252POSUB = @POSUB@
249RANLIB = @RANLIB@ 253RANLIB = @RANLIB@
250SCIM_CFLAGS = @SCIM_CFLAGS@ 254SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -255,6 +259,7 @@ SDL_LIBS = @SDL_LIBS@
255SED = @SED@ 259SED = @SED@
256SET_MAKE = @SET_MAKE@ 260SET_MAKE = @SET_MAKE@
257SHELL = @SHELL@ 261SHELL = @SHELL@
262SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
258SSL_CFLAGS = @SSL_CFLAGS@ 263SSL_CFLAGS = @SSL_CFLAGS@
259SSL_LIBS = @SSL_LIBS@ 264SSL_LIBS = @SSL_LIBS@
260STRIP = @STRIP@ 265STRIP = @STRIP@
@@ -482,7 +487,11 @@ lib_LTLIBRARIES = libecore_wayland.la
482includes_HEADERS = Ecore_Wayland.h 487includes_HEADERS = Ecore_Wayland.h
483includesdir = $(includedir)/ecore-@VMAJ@ 488includesdir = $(includedir)/ecore-@VMAJ@
484libecore_wayland_la_SOURCES = \ 489libecore_wayland_la_SOURCES = \
485ecore_wl.c 490ecore_wl.c \
491ecore_wl_output.c \
492ecore_wl_input.c \
493ecore_wl_window.c \
494ecore_wl_dnd.c
486 495
487libecore_wayland_la_LIBADD = \ 496libecore_wayland_la_LIBADD = \
488$(top_builddir)/src/lib/ecore/libecore.la \ 497$(top_builddir)/src/lib/ecore/libecore.la \
@@ -569,6 +578,10 @@ distclean-compile:
569 -rm -f *.tab.c 578 -rm -f *.tab.c
570 579
571@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_wl.Plo@am__quote@ 580@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_wl.Plo@am__quote@
581@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_wl_dnd.Plo@am__quote@
582@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_wl_input.Plo@am__quote@
583@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_wl_output.Plo@am__quote@
584@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_wl_window.Plo@am__quote@
572 585
573.c.o: 586.c.o:
574@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< 587@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
diff --git a/libraries/ecore/src/lib/ecore_wayland/ecore_wl.c b/libraries/ecore/src/lib/ecore_wayland/ecore_wl.c
index f62503b..5f1b20d 100644
--- a/libraries/ecore/src/lib/ecore_wayland/ecore_wl.c
+++ b/libraries/ecore/src/lib/ecore_wayland/ecore_wl.c
@@ -1,16 +1,11 @@
1#ifdef HAVE_CONFIG_H 1#ifdef HAVE_CONFIG_H
2# include "config.h" 2# include <config.h>
3#endif 3#endif
4 4
5#include "Ecore.h" 5#include <fcntl.h>
6#include "ecore_private.h"
7#include "Ecore_Input.h"
8#include "ecore_wl_private.h"
9#include "Ecore_Wayland.h"
10 6
11/* FIXME: This gives BTN_LEFT/RIGHT/MIDDLE for linux systems ... 7/* FIXME: This gives BTN_LEFT/RIGHT/MIDDLE for linux systems ...
12 * What about other OSs ?? */ 8 * What about other OSs ?? */
13#include <fcntl.h>
14#ifdef __linux__ 9#ifdef __linux__
15# include <linux/input.h> 10# include <linux/input.h>
16#else 11#else
@@ -23,150 +18,86 @@
23# define BTN_BACK 0x116 18# define BTN_BACK 0x116
24#endif 19#endif
25 20
26#include <X11/extensions/XKBcommon.h> 21#include "Ecore.h"
22#include "ecore_private.h"
23#include "Ecore_Input.h"
24#include "ecore_wl_private.h"
25#include "Ecore_Wayland.h"
27 26
28/* local function prototypes */ 27/* local function prototypes */
29static Eina_Bool _ecore_wl_shutdown(Eina_Bool close_display); 28static Eina_Bool _ecore_wl_shutdown(Eina_Bool close);
30static void _ecore_wl_cb_disp_handle_global(struct wl_display *disp, uint32_t id, const char *interface, uint32_t version __UNUSED__, void *data __UNUSED__); 29static int _ecore_wl_cb_event_mask_update(unsigned int mask, void *data);
31static int _ecore_wl_cb_disp_event_mask_update(uint32_t mask, void *data __UNUSED__); 30static Eina_Bool _ecore_wl_cb_handle_data(void *data, Ecore_Fd_Handler *hdl __UNUSED__);
32static void _ecore_wl_cb_disp_handle_geometry(void *data __UNUSED__, struct wl_output *output __UNUSED__, int x, int y, int pw __UNUSED__, int ph __UNUSED__, int subpixel __UNUSED__, const char *make __UNUSED__, const char *model __UNUSED__); 31static void _ecore_wl_cb_handle_global(struct wl_display *disp, unsigned int id, const char *interface, unsigned int version __UNUSED__, void *data);
33static void _ecore_wl_cb_disp_handle_mode(void *data __UNUSED__, struct wl_output *output __UNUSED__, uint32_t flags, int w, int h, int refresh __UNUSED__); 32static Eina_Bool _ecore_wl_egl_init(Ecore_Wl_Display *ewd);
34static Eina_Bool _ecore_wl_cb_fd_handle(void *data, Ecore_Fd_Handler *hdl __UNUSED__); 33static Eina_Bool _ecore_wl_egl_shutdown(Ecore_Wl_Display *ewd);
35static void _ecore_wl_cb_handle_motion(void *data __UNUSED__, struct wl_input_device *dev, uint32_t t, int32_t x, int32_t y, int32_t sx, int32_t sy); 34static Eina_Bool _ecore_wl_xkb_init(Ecore_Wl_Display *ewd);
36static void _ecore_wl_cb_handle_button(void *data __UNUSED__, struct wl_input_device *dev, uint32_t t, uint32_t btn, uint32_t state); 35static Eina_Bool _ecore_wl_xkb_shutdown(Ecore_Wl_Display *ewd);
37static void _ecore_wl_cb_handle_key(void *data __UNUSED__, struct wl_input_device *dev, uint32_t t __UNUSED__, uint32_t key, uint32_t state);
38static void _ecore_wl_cb_handle_pointer_focus(void *data __UNUSED__, struct wl_input_device *dev, uint32_t t, struct wl_surface *surface, int32_t x, int32_t y, int32_t sx, int32_t sy);
39static void _ecore_wl_cb_handle_keyboard_focus(void *data __UNUSED__, struct wl_input_device *dev, uint32_t t __UNUSED__, struct wl_surface *surface, struct wl_array *keys);
40static void _ecore_wl_cb_handle_touch_down(void *data __UNUSED__, struct wl_input_device *dev __UNUSED__, uint32_t timestamp, struct wl_surface *surface, int32_t id, int32_t x, int32_t y);
41static void _ecore_wl_cb_handle_touch_up(void *data __UNUSED__, struct wl_input_device *dev __UNUSED__, uint32_t timestamp, int32_t id);
42static void _ecore_wl_cb_handle_touch_motion(void *data __UNUSED__, struct wl_input_device *dev __UNUSED__, uint32_t timestamp, int32_t id, int32_t x, int32_t y);
43static void _ecore_wl_cb_handle_touch_frame(void *data __UNUSED__, struct wl_input_device *dev __UNUSED__);
44static void _ecore_wl_cb_handle_touch_cancel(void *data __UNUSED__, struct wl_input_device *dev __UNUSED__);
45static void _ecore_wl_cb_source_target(void *data, struct wl_data_source *source __UNUSED__, const char *mime_type __UNUSED__);
46static void _ecore_wl_cb_source_send(void *data, struct wl_data_source *source, const char *mime_type, int32_t fd);
47static void _ecore_wl_cb_source_cancelled(void *data, struct wl_data_source *source __UNUSED__);
48static void _ecore_wl_cb_source_offer(void *data, struct wl_data_offer *offer __UNUSED__, const char *type);
49static void _ecore_wl_cb_data_offer(void *data, struct wl_data_device *data_dev, uint32_t id);
50static void _ecore_wl_cb_data_enter(void *data __UNUSED__, struct wl_data_device *data_dev, uint32_t timestamp, struct wl_surface *surface, int32_t x, int32_t y, struct wl_data_offer *offer);
51static void _ecore_wl_cb_data_leave(void *data __UNUSED__, struct wl_data_device *data_dev);
52static void _ecore_wl_cb_data_motion(void *data __UNUSED__, struct wl_data_device *data_dev, uint32_t timestamp, int32_t x, int32_t y);
53static void _ecore_wl_cb_data_drop(void *data __UNUSED__, struct wl_data_device *data_dev);
54static void _ecore_wl_cb_data_selection(void *data, struct wl_data_device *data_dev, struct wl_data_offer *offer);
55
56static void _ecore_wl_mouse_move_send(uint32_t timestamp);
57static void _ecore_wl_mouse_out_send(struct wl_surface *surface, uint32_t timestamp);
58static void _ecore_wl_mouse_in_send(struct wl_surface *surface, uint32_t timestamp);
59static void _ecore_wl_mouse_up_send(struct wl_surface *surface, uint32_t button, uint32_t timestamp);
60static void _ecore_wl_mouse_down_send(struct wl_surface *surface, uint32_t button, uint32_t timestamp);
61static void _ecore_wl_focus_out_send(struct wl_surface *surface, uint32_t timestamp);
62static void _ecore_wl_focus_in_send(struct wl_surface *surface, uint32_t timestamp);
63 36
64/* local variables */ 37/* local variables */
65static int _ecore_wl_init_count = 0; 38static int _ecore_wl_init_count = 0;
66static struct wl_display *_ecore_wl_disp = NULL;
67static uint32_t _ecore_wl_disp_mask = 0;
68static uint32_t _ecore_wl_disp_format = WL_SHM_FORMAT_ARGB8888;
69static Eina_Rectangle _ecore_wl_screen;
70static Ecore_Fd_Handler *_ecore_wl_fd_hdl = NULL;
71static int _ecore_wl_screen_x = 0;
72static int _ecore_wl_screen_y = 0;
73static int _ecore_wl_surface_x = 0;
74static int _ecore_wl_surface_y = 0;
75static int _ecore_wl_touch_x = 0;
76static int _ecore_wl_touch_y = 0;
77static int _ecore_wl_input_modifiers = 0;
78static struct xkb_desc *_ecore_wl_xkb;
79static uint32_t _ecore_wl_input_button = 0;
80
81static struct wl_compositor *_ecore_wl_comp;
82static struct wl_shm *_ecore_wl_shm;
83static struct wl_shell *_ecore_wl_shell;
84static struct wl_output *_ecore_wl_output;
85static struct wl_input_device *_ecore_wl_input_dev;
86static struct wl_surface *_ecore_wl_input_surface;
87static struct wl_surface *_ecore_wl_touch_surface;
88static struct wl_data_device_manager *_ecore_wl_data_manager;
89static struct wl_data_device *_ecore_wl_data_dev;
90
91static const struct wl_output_listener _ecore_wl_output_listener =
92{
93 _ecore_wl_cb_disp_handle_geometry,
94 _ecore_wl_cb_disp_handle_mode
95};
96static const struct wl_input_device_listener _ecore_wl_input_listener =
97{
98 _ecore_wl_cb_handle_motion,
99 _ecore_wl_cb_handle_button,
100 _ecore_wl_cb_handle_key,
101 _ecore_wl_cb_handle_pointer_focus,
102 _ecore_wl_cb_handle_keyboard_focus,
103 _ecore_wl_cb_handle_touch_down,
104 _ecore_wl_cb_handle_touch_up,
105 _ecore_wl_cb_handle_touch_motion,
106 _ecore_wl_cb_handle_touch_frame,
107 _ecore_wl_cb_handle_touch_cancel,
108};
109static const struct wl_data_source_listener _ecore_wl_source_listener =
110{
111 _ecore_wl_cb_source_target,
112 _ecore_wl_cb_source_send,
113 _ecore_wl_cb_source_cancelled
114};
115static const struct wl_data_device_listener _ecore_wl_data_listener =
116{
117 _ecore_wl_cb_data_offer,
118 _ecore_wl_cb_data_enter,
119 _ecore_wl_cb_data_leave,
120 _ecore_wl_cb_data_motion,
121 _ecore_wl_cb_data_drop,
122 _ecore_wl_cb_data_selection
123};
124static const struct wl_data_offer_listener _ecore_wl_offer_listener =
125{
126 _ecore_wl_cb_source_offer,
127};
128 39
129/* external variables */ 40/* external variables */
130int _ecore_wl_log_dom = -1; 41int _ecore_wl_log_dom = -1;
42Ecore_Wl_Display *_ecore_wl_disp = NULL;
43
131EAPI int ECORE_WL_EVENT_MOUSE_IN = 0; 44EAPI int ECORE_WL_EVENT_MOUSE_IN = 0;
132EAPI int ECORE_WL_EVENT_MOUSE_OUT = 0; 45EAPI int ECORE_WL_EVENT_MOUSE_OUT = 0;
133EAPI int ECORE_WL_EVENT_FOCUS_IN = 0; 46EAPI int ECORE_WL_EVENT_FOCUS_IN = 0;
134EAPI int ECORE_WL_EVENT_FOCUS_OUT = 0; 47EAPI int ECORE_WL_EVENT_FOCUS_OUT = 0;
135EAPI int ECORE_WL_EVENT_DRAG_START = 0; 48EAPI int ECORE_WL_EVENT_WINDOW_CONFIGURE = 0;
136EAPI int ECORE_WL_EVENT_DRAG_STOP = 0; 49EAPI int ECORE_WL_EVENT_DND_ENTER = 0;
137 50EAPI int ECORE_WL_EVENT_DND_POSITION = 0;
51EAPI int ECORE_WL_EVENT_DND_LEAVE = 0;
52EAPI int ECORE_WL_EVENT_DND_DROP = 0;
53EAPI int ECORE_WL_EVENT_INTERFACES_BOUND = 0;
54
55/**
56 * @defgroup Ecore_Wl_Init_Group Wayland Library Init and Shutdown Functions
57 *
58 * Functions that start and shutdown the Ecore Wayland Library.
59 */
60
61/**
62 * Initialize the Wayland display connection to the given display.
63 *
64 * @param name Display target name. if @c NULL, the default display is
65 * assumed.
66 * @return The number of times the library has been initialized without being
67 * shut down. 0 is returned if an error occurs.
68 *
69 * @ingroup Ecore_Wl_Init_Group
70 */
138EAPI int 71EAPI int
139ecore_wl_init(const char *name) 72ecore_wl_init(const char *name)
140{ 73{
141 struct xkb_rule_names xkb_names;
142 int fd = 0;
143
144 if (++_ecore_wl_init_count != 1)
145 return _ecore_wl_init_count;
146
147 LOGFN(__FILE__, __LINE__, __FUNCTION__); 74 LOGFN(__FILE__, __LINE__, __FUNCTION__);
148 75
76 if (++_ecore_wl_init_count != 1) return _ecore_wl_init_count;
77
149 if (!eina_init()) return --_ecore_wl_init_count; 78 if (!eina_init()) return --_ecore_wl_init_count;
150 79
151 _ecore_wl_log_dom = 80 _ecore_wl_log_dom =
152 eina_log_domain_register("ecore_wl", ECORE_WL_DEFAULT_LOG_COLOR); 81 eina_log_domain_register("ecore_wl", ECORE_WL_DEFAULT_LOG_COLOR);
153 if (_ecore_wl_log_dom < 0) 82 if (_ecore_wl_log_dom < 0)
154 { 83 {
155 EINA_LOG_ERR("Cannot create a log domain for Ecore Wayland."); 84 EINA_LOG_ERR("Cannot create a log domain for Ecore Wayland");
156 eina_shutdown(); 85 eina_shutdown();
157 return --_ecore_wl_init_count; 86 return --_ecore_wl_init_count;
158 } 87 }
159 88
160 if (!ecore_init()) 89 if (!ecore_init())
161 { 90 {
91 ERR("Could not initialize ecore");
162 eina_log_domain_unregister(_ecore_wl_log_dom); 92 eina_log_domain_unregister(_ecore_wl_log_dom);
163 _ecore_wl_log_dom = -1; 93 _ecore_wl_log_dom = -1;
164 eina_shutdown(); 94 eina_shutdown();
165 return --_ecore_wl_init_count; 95 return --_ecore_wl_init_count;
166 } 96 }
167 97
168 if (!ecore_event_init()) 98 if (!ecore_event_init())
169 { 99 {
100 ERR("Could not initialize ecore_event");
170 eina_log_domain_unregister(_ecore_wl_log_dom); 101 eina_log_domain_unregister(_ecore_wl_log_dom);
171 _ecore_wl_log_dom = -1; 102 _ecore_wl_log_dom = -1;
172 ecore_shutdown(); 103 ecore_shutdown();
@@ -174,26 +105,23 @@ ecore_wl_init(const char *name)
174 return --_ecore_wl_init_count; 105 return --_ecore_wl_init_count;
175 } 106 }
176 107
177 if (!ECORE_WL_EVENT_MOUSE_IN) 108 if (!ECORE_WL_EVENT_MOUSE_IN)
178 { 109 {
179 ECORE_WL_EVENT_MOUSE_IN = ecore_event_type_new(); 110 ECORE_WL_EVENT_MOUSE_IN = ecore_event_type_new();
180 ECORE_WL_EVENT_MOUSE_OUT = ecore_event_type_new(); 111 ECORE_WL_EVENT_MOUSE_OUT = ecore_event_type_new();
181 ECORE_WL_EVENT_FOCUS_IN = ecore_event_type_new(); 112 ECORE_WL_EVENT_FOCUS_IN = ecore_event_type_new();
182 ECORE_WL_EVENT_FOCUS_OUT = ecore_event_type_new(); 113 ECORE_WL_EVENT_FOCUS_OUT = ecore_event_type_new();
183 ECORE_WL_EVENT_DRAG_START = ecore_event_type_new(); 114 ECORE_WL_EVENT_WINDOW_CONFIGURE = ecore_event_type_new();
184 ECORE_WL_EVENT_DRAG_STOP = ecore_event_type_new(); 115 ECORE_WL_EVENT_DND_ENTER = ecore_event_type_new();
116 ECORE_WL_EVENT_DND_POSITION = ecore_event_type_new();
117 ECORE_WL_EVENT_DND_LEAVE = ecore_event_type_new();
118 ECORE_WL_EVENT_DND_DROP = ecore_event_type_new();
119 ECORE_WL_EVENT_INTERFACES_BOUND = ecore_event_type_new();
185 } 120 }
186 121
187 /* init xkb */ 122 if (!(_ecore_wl_disp = malloc(sizeof(Ecore_Wl_Display))))
188 /* FIXME: Somehow make this portable to other languages/countries */
189 xkb_names.rules = "evdev";
190 xkb_names.model = "evdev";
191 xkb_names.layout = "us";
192 xkb_names.variant = "";
193 xkb_names.options = "";
194 if (!(_ecore_wl_xkb = xkb_compile_keymap_from_rules(&xkb_names)))
195 { 123 {
196 ERR("Could not compile keymap"); 124 ERR("Could not allocate memory for Ecore_Wl_Display structure");
197 eina_log_domain_unregister(_ecore_wl_log_dom); 125 eina_log_domain_unregister(_ecore_wl_log_dom);
198 _ecore_wl_log_dom = -1; 126 _ecore_wl_log_dom = -1;
199 ecore_event_shutdown(); 127 ecore_event_shutdown();
@@ -202,9 +130,11 @@ ecore_wl_init(const char *name)
202 return --_ecore_wl_init_count; 130 return --_ecore_wl_init_count;
203 } 131 }
204 132
205 /* connect to the wayland display */ 133 memset(_ecore_wl_disp, 0, sizeof(Ecore_Wl_Display));
206 if (!(_ecore_wl_disp = wl_display_connect(name))) 134
135 if (!(_ecore_wl_disp->wl.display = wl_display_connect(name)))
207 { 136 {
137 ERR("Could not connect to Wayland display");
208 eina_log_domain_unregister(_ecore_wl_log_dom); 138 eina_log_domain_unregister(_ecore_wl_log_dom);
209 _ecore_wl_log_dom = -1; 139 _ecore_wl_log_dom = -1;
210 ecore_event_shutdown(); 140 ecore_event_shutdown();
@@ -213,23 +143,48 @@ ecore_wl_init(const char *name)
213 return --_ecore_wl_init_count; 143 return --_ecore_wl_init_count;
214 } 144 }
215 145
216 /* setup handler for wayland interfaces */ 146 _ecore_wl_disp->fd =
217 wl_display_add_global_listener(_ecore_wl_disp, 147 wl_display_get_fd(_ecore_wl_disp->wl.display,
218 _ecore_wl_cb_disp_handle_global, NULL); 148 _ecore_wl_cb_event_mask_update, _ecore_wl_disp);
149
150 _ecore_wl_disp->fd_hdl =
151 ecore_main_fd_handler_add(_ecore_wl_disp->fd, ECORE_FD_READ,
152 _ecore_wl_cb_handle_data, _ecore_wl_disp,
153 NULL, NULL);
154
155 wl_list_init(&_ecore_wl_disp->inputs);
156 wl_list_init(&_ecore_wl_disp->outputs);
157
158 wl_display_add_global_listener(_ecore_wl_disp->wl.display,
159 _ecore_wl_cb_handle_global, _ecore_wl_disp);
160
161 /* FIXME: Process connection events ?? */
162 wl_display_iterate(_ecore_wl_disp->wl.display, WL_DISPLAY_READABLE);
163
164 /* if (!_ecore_wl_egl_init(_ecore_wl_disp)) */
165 /* { */
166 /* ERR("Could not initialize EGL"); */
167 /* free(_ecore_wl_disp); */
168 /* eina_log_domain_unregister(_ecore_wl_log_dom); */
169 /* _ecore_wl_log_dom = -1; */
170 /* ecore_event_shutdown(); */
171 /* ecore_shutdown(); */
172 /* eina_shutdown(); */
173 /* return --_ecore_wl_init_count; */
174 /* } */
219 175
220 /* process connection events */ 176 /* _ecore_wl_disp->create_image = */
221 wl_display_iterate(_ecore_wl_disp, WL_DISPLAY_READABLE); 177 /* (void *)eglGetProcAddress("eglCreateImageKHR"); */
178 /* _ecore_wl_disp->destroy_image = */
179 /* (void *)eglGetProcAddress("eglDestroyImageKHR"); */
222 180
223 fd = wl_display_get_fd(_ecore_wl_disp, 181 /* TODO: create pointer surfaces */
224 _ecore_wl_cb_disp_event_mask_update, NULL);
225 182
226 _ecore_wl_fd_hdl = 183 if (!_ecore_wl_xkb_init(_ecore_wl_disp))
227 ecore_main_fd_handler_add(fd, ECORE_FD_READ, _ecore_wl_cb_fd_handle,
228 _ecore_wl_disp, NULL, NULL);
229 if (!_ecore_wl_fd_hdl)
230 { 184 {
231 wl_display_destroy(_ecore_wl_disp); 185 ERR("Could not initialize XKB");
232 _ecore_wl_disp = NULL; 186 _ecore_wl_egl_shutdown(_ecore_wl_disp);
187 free(_ecore_wl_disp);
233 eina_log_domain_unregister(_ecore_wl_log_dom); 188 eina_log_domain_unregister(_ecore_wl_log_dom);
234 _ecore_wl_log_dom = -1; 189 _ecore_wl_log_dom = -1;
235 ecore_event_shutdown(); 190 ecore_event_shutdown();
@@ -238,976 +193,359 @@ ecore_wl_init(const char *name)
238 return --_ecore_wl_init_count; 193 return --_ecore_wl_init_count;
239 } 194 }
240 195
196 _ecore_wl_window_init();
197
241 return _ecore_wl_init_count; 198 return _ecore_wl_init_count;
242} 199}
243 200
201/**
202 * Shuts down the Ecore Wayland Library
203 *
204 * In shutting down the library, the Wayland display connection is terminated
205 * and any event handlers for it are removed.
206 *
207 * @return The number of times the library has been initialized without
208 * being shut down.
209 *
210 * @ingroup Ecore_Wl_Init_Group
211 */
244EAPI int 212EAPI int
245ecore_wl_shutdown(void) 213ecore_wl_shutdown(void)
246{ 214{
247 return _ecore_wl_shutdown(EINA_TRUE); 215 LOGFN(__FILE__, __LINE__, __FUNCTION__);
248}
249
250EAPI struct wl_display *
251ecore_wl_display_get(void)
252{
253 return _ecore_wl_disp;
254}
255
256EAPI struct wl_shm *
257ecore_wl_shm_get(void)
258{
259 return _ecore_wl_shm;
260}
261
262EAPI struct wl_compositor *
263ecore_wl_compositor_get(void)
264{
265 return _ecore_wl_comp;
266}
267 216
268EAPI struct wl_shell * 217 return _ecore_wl_shutdown(EINA_TRUE);
269ecore_wl_shell_get(void)
270{
271 return _ecore_wl_shell;
272} 218}
273 219
274EAPI struct wl_input_device * 220/**
275ecore_wl_input_device_get(void) 221 * @defgroup Ecore_Wl_Flush_Group Wayland Synchronization Functions
276{ 222 *
277 return _ecore_wl_input_dev; 223 * Functions that ensure that all commands which have been issued by the
278} 224 * Ecore Wayland library have been sent to the server.
225 */
279 226
227/**
228 * Sends all Wayland commands to the Wayland Display.
229 *
230 * @ingroup Ecore_Wl_Flush_Group
231 * @since 1.2
232 */
280EAPI void 233EAPI void
281ecore_wl_screen_size_get(int *w, int *h) 234ecore_wl_flush(void)
282{ 235{
283 if (w) *w = _ecore_wl_screen.w; 236 LOGFN(__FILE__, __LINE__, __FUNCTION__);
284 if (h) *h = _ecore_wl_screen.h;
285}
286
287EAPI unsigned int
288ecore_wl_format_get(void)
289{
290 return _ecore_wl_disp_format;
291}
292 237
293EAPI void 238 while (_ecore_wl_disp->mask & WL_DISPLAY_WRITABLE)
294ecore_wl_flush(void) 239 wl_display_iterate(_ecore_wl_disp->wl.display, WL_DISPLAY_WRITABLE);
295{ 240// wl_display_flush(_ecore_wl_disp->wl.display); // old flush code
296 wl_display_flush(_ecore_wl_disp);
297} 241}
298 242
243/**
244 * Flushes the command buffer and waits until all requests have been
245 * processed by the server.
246 *
247 * @ingroup Ecore_Wl_Flush_Group
248 * @since 1.2
249 */
299EAPI void 250EAPI void
300ecore_wl_sync(void) 251ecore_wl_sync(void)
301{ 252{
302 wl_display_iterate(_ecore_wl_disp, WL_DISPLAY_READABLE); 253 LOGFN(__FILE__, __LINE__, __FUNCTION__);
303}
304 254
305EAPI void 255 wl_display_roundtrip(_ecore_wl_disp->wl.display);
306ecore_wl_pointer_xy_get(int *x, int *y) 256 // old sync code
257// wl_display_iterate(_ecore_wl_disp->wl.display, WL_DISPLAY_READABLE);
258}
259
260/**
261 * @defgroup Ecore_Wl_Display_Group Wayland Display Functions
262 *
263 * Functions that set and retrieve various information about the Wayland Display.
264 */
265
266/**
267 * Retrieves the Wayland Shm Interface used for the current Wayland connection.
268 *
269 * @return The current wayland shm interface
270 *
271 * @ingroup Ecore_Wl_Display_Group
272 * @since 1.2
273 */
274EAPI struct wl_shm *
275ecore_wl_shm_get(void)
307{ 276{
308 if (x) *x = _ecore_wl_screen_x; 277 return _ecore_wl_disp->wl.shm;
309 if (y) *y = _ecore_wl_screen_y;
310} 278}
311 279
312EAPI Ecore_Wl_Drag_Source * 280/**
313ecore_wl_drag_source_create(int hotspot_x, int hotspot_y, int offset_x, int offset_y, const char *mimetype, unsigned int timestamp, void *data) 281 * Retrieves the Wayland Display Interface used for the current Wayland connection.
282 *
283 * @return The current wayland display interface
284 *
285 * @ingroup Ecore_Wl_Display_Group
286 * @since 1.2
287 */
288EAPI struct wl_display *
289ecore_wl_display_get(void)
314{ 290{
315 Ecore_Wl_Drag_Source *source; 291 return _ecore_wl_disp->wl.display;
316
317 if (!(source = calloc(1, sizeof(Ecore_Wl_Drag_Source)))) return NULL;
318
319 source->data_dev = _ecore_wl_data_dev;
320 source->hotspot_x = hotspot_x;
321 source->hotspot_y = hotspot_y;
322 source->offset_x = offset_x;
323 source->offset_y = offset_y;
324 source->mimetype = mimetype;
325 source->timestamp = timestamp;
326 source->data = data;
327
328 source->data_source =
329 wl_data_device_manager_create_data_source(_ecore_wl_data_manager);
330
331 wl_data_source_add_listener(source->data_source,
332 &_ecore_wl_source_listener, source);
333
334 wl_data_source_offer(source->data_source, source->mimetype);
335
336 /* NB: Do we add some default mimetypes here ?? */
337 /* text/plain, etc */
338
339 return source;
340} 292}
341 293
294/**
295 * Retrieves the size of the current screen.
296 *
297 * @param w where to return the width. May be NULL. Returns 0 on error.
298 * @param h where to return the height. May be NULL. Returns 0 on error.
299 *
300 * @ingroup Ecore_Wl_Display_Group
301 * @since 1.2
302 */
342EAPI void 303EAPI void
343ecore_wl_drag_start(Ecore_Wl_Drag_Source *source, struct wl_surface *surface, struct wl_buffer *buffer) 304ecore_wl_screen_size_get(int *w, int *h)
344{ 305{
345 source->buffer = buffer; 306 LOGFN(__FILE__, __LINE__, __FUNCTION__);
346 307
347 wl_data_device_start_drag(source->data_dev, source->data_source, 308 if (w) *w = _ecore_wl_disp->output->allocation.w;
348 surface, source->timestamp); 309 if (h) *h = _ecore_wl_disp->output->allocation.h;
349} 310}
350 311
312/* @since 1.2 */
351EAPI void 313EAPI void
352ecore_wl_drag_stop(void) 314ecore_wl_pointer_xy_get(int *x, int *y)
353{ 315{
316 LOGFN(__FILE__, __LINE__, __FUNCTION__);
354 317
318 _ecore_wl_input_pointer_xy_get(x, y);
355} 319}
356 320
357/* local functions */ 321/* local functions */
358static Eina_Bool 322static Eina_Bool
359_ecore_wl_shutdown(Eina_Bool close_display) 323_ecore_wl_shutdown(Eina_Bool close)
360{ 324{
361 LOGFN(__FILE__, __LINE__, __FUNCTION__); 325 LOGFN(__FILE__, __LINE__, __FUNCTION__);
362 326
363 if (--_ecore_wl_init_count != 0) 327 if (--_ecore_wl_init_count != 0) return _ecore_wl_init_count;
364 return _ecore_wl_init_count;
365
366 if (!_ecore_wl_disp) return _ecore_wl_init_count; 328 if (!_ecore_wl_disp) return _ecore_wl_init_count;
367 329
368 if (_ecore_wl_xkb) free(_ecore_wl_xkb); 330 _ecore_wl_window_shutdown();
369 331
370 if (_ecore_wl_fd_hdl) ecore_main_fd_handler_del(_ecore_wl_fd_hdl); 332 if (_ecore_wl_disp->fd_hdl)
371 _ecore_wl_fd_hdl = NULL; 333 ecore_main_fd_handler_del(_ecore_wl_disp->fd_hdl);
372 334
373 if (close_display) 335 if (close)
374 { 336 {
375 if (_ecore_wl_data_dev) wl_data_device_destroy(_ecore_wl_data_dev); 337 Ecore_Wl_Output *out, *tout;
376 if (_ecore_wl_input_dev) wl_input_device_destroy(_ecore_wl_input_dev); 338 Ecore_Wl_Input *in, *tin;
377 if (_ecore_wl_data_manager) 339
378 wl_data_device_manager_destroy(_ecore_wl_data_manager); 340 wl_list_for_each_safe(out, tout, &_ecore_wl_disp->outputs, link)
379 if (_ecore_wl_shell) wl_shell_destroy(_ecore_wl_shell); 341 _ecore_wl_output_del(out);
380 if (_ecore_wl_shm) wl_shm_destroy(_ecore_wl_shm); 342
381 if (_ecore_wl_comp) wl_compositor_destroy(_ecore_wl_comp); 343 wl_list_for_each_safe(in, tin, &_ecore_wl_disp->inputs, link)
382 if (_ecore_wl_disp) 344 _ecore_wl_input_del(in);
345
346 _ecore_wl_xkb_shutdown(_ecore_wl_disp);
347 /* _ecore_wl_egl_shutdown(_ecore_wl_disp); */
348
349 if (_ecore_wl_disp->wl.shell)
350 wl_shell_destroy(_ecore_wl_disp->wl.shell);
351 if (_ecore_wl_disp->wl.shm) wl_shm_destroy(_ecore_wl_disp->wl.shm);
352 if (_ecore_wl_disp->wl.data_device_manager)
353 wl_data_device_manager_destroy(_ecore_wl_disp->wl.data_device_manager);
354 if (_ecore_wl_disp->wl.compositor)
355 wl_compositor_destroy(_ecore_wl_disp->wl.compositor);
356 if (_ecore_wl_disp->wl.display)
383 { 357 {
384 wl_display_flush(_ecore_wl_disp); 358 wl_display_flush(_ecore_wl_disp->wl.display);
385 wl_display_destroy(_ecore_wl_disp); 359 wl_display_disconnect(_ecore_wl_disp->wl.display);
386 } 360 }
387 _ecore_wl_disp = NULL; 361 free(_ecore_wl_disp);
388 } 362 }
389 363
390 eina_log_domain_unregister(_ecore_wl_log_dom);
391 _ecore_wl_log_dom = -1;
392
393 ecore_event_shutdown(); 364 ecore_event_shutdown();
394 ecore_shutdown(); 365 ecore_shutdown();
366
367 eina_log_domain_unregister(_ecore_wl_log_dom);
368 _ecore_wl_log_dom = -1;
395 eina_shutdown(); 369 eina_shutdown();
396 370
397 return _ecore_wl_init_count; 371 return _ecore_wl_init_count;
398} 372}
399 373
400static void
401_ecore_wl_cb_disp_handle_global(struct wl_display *disp, uint32_t id, const char *interface, uint32_t version __UNUSED__, void *data __UNUSED__)
402{
403// LOGFN(__FILE__, __LINE__, __FUNCTION__);
404
405 if (disp != _ecore_wl_disp) return;
406 if (!strcmp(interface, "wl_compositor"))
407 {
408 _ecore_wl_comp =
409 wl_display_bind(_ecore_wl_disp, id, &wl_compositor_interface);
410 }
411 else if (!strcmp(interface, "wl_shm"))
412 {
413 _ecore_wl_shm =
414 wl_display_bind(_ecore_wl_disp, id, &wl_shm_interface);
415 }
416 else if (!strcmp(interface, "wl_output"))
417 {
418 _ecore_wl_output =
419 wl_display_bind(_ecore_wl_disp, id, &wl_output_interface);
420 wl_output_add_listener(_ecore_wl_output,
421 &_ecore_wl_output_listener, NULL);
422 }
423 else if (!strcmp(interface, "wl_shell"))
424 {
425 _ecore_wl_shell =
426 wl_display_bind(_ecore_wl_disp, id, &wl_shell_interface);
427 }
428 else if (!strcmp(interface, "wl_input_device"))
429 {
430 _ecore_wl_input_dev =
431 wl_display_bind(_ecore_wl_disp, id, &wl_input_device_interface);
432 wl_input_device_add_listener(_ecore_wl_input_dev,
433 &_ecore_wl_input_listener, NULL);
434 }
435 else if (!strcmp(interface, "wl_data_device_manager"))
436 {
437 _ecore_wl_data_manager =
438 wl_display_bind(_ecore_wl_disp, id,
439 &wl_data_device_manager_interface);
440 }
441
442 if ((_ecore_wl_input_dev) && (_ecore_wl_data_manager) && (!_ecore_wl_data_dev))
443 {
444 _ecore_wl_data_dev =
445 wl_data_device_manager_get_data_device(_ecore_wl_data_manager,
446 _ecore_wl_input_dev);
447 wl_data_device_add_listener(_ecore_wl_data_dev,
448 &_ecore_wl_data_listener, NULL);
449 }
450}
451
452static int 374static int
453_ecore_wl_cb_disp_event_mask_update(uint32_t mask, void *data __UNUSED__) 375_ecore_wl_cb_event_mask_update(unsigned int mask, void *data)
454{ 376{
455// LOGFN(__FILE__, __LINE__, __FUNCTION__); 377 Ecore_Wl_Display *ewd;
456 378
457 _ecore_wl_disp_mask = mask; 379 LOGFN(__FILE__, __LINE__, __FUNCTION__);
458 380
381 ewd = data;
382 ewd->mask = mask;
459 return 0; 383 return 0;
460} 384}
461 385
462static void
463_ecore_wl_cb_disp_handle_geometry(void *data __UNUSED__, struct wl_output *output __UNUSED__, int x, int y, int pw __UNUSED__, int ph __UNUSED__, int subpixel __UNUSED__, const char *make __UNUSED__, const char *model __UNUSED__)
464{
465 _ecore_wl_screen.x = x;
466 _ecore_wl_screen.y = y;
467}
468
469static void
470_ecore_wl_cb_disp_handle_mode(void *data __UNUSED__, struct wl_output *output __UNUSED__, uint32_t flags, int w, int h, int refresh __UNUSED__)
471{
472 if (flags & WL_OUTPUT_MODE_CURRENT)
473 {
474 _ecore_wl_screen.w = w;
475 _ecore_wl_screen.h = h;
476 }
477}
478
479static Eina_Bool 386static Eina_Bool
480_ecore_wl_cb_fd_handle(void *data, Ecore_Fd_Handler *hdl __UNUSED__) 387_ecore_wl_cb_handle_data(void *data, Ecore_Fd_Handler *hdl __UNUSED__)
481{ 388{
482 struct wl_display *disp; 389 Ecore_Wl_Display *ewd;
483
484// LOGFN(__FILE__, __LINE__, __FUNCTION__);
485
486 if (!(disp = data)) return ECORE_CALLBACK_RENEW;
487 if (disp != _ecore_wl_disp) return ECORE_CALLBACK_RENEW;
488 390
489 if (_ecore_wl_disp_mask & WL_DISPLAY_WRITABLE) 391 LOGFN(__FILE__, __LINE__, __FUNCTION__);
490 wl_display_iterate(_ecore_wl_disp, WL_DISPLAY_WRITABLE);
491
492 if (_ecore_wl_disp_mask & WL_DISPLAY_READABLE)
493 wl_display_iterate(_ecore_wl_disp, WL_DISPLAY_READABLE);
494 392
393 if (!(ewd = data)) return ECORE_CALLBACK_RENEW;
394 wl_display_iterate(ewd->wl.display, ewd->mask);
495 return ECORE_CALLBACK_RENEW; 395 return ECORE_CALLBACK_RENEW;
496} 396}
497 397
498static void 398static void
499_ecore_wl_cb_handle_motion(void *data __UNUSED__, struct wl_input_device *dev, uint32_t t, int32_t x, int32_t y, int32_t sx, int32_t sy) 399_ecore_wl_cb_handle_global(struct wl_display *disp, unsigned int id, const char *interface, unsigned int version __UNUSED__, void *data)
500{
501 if (dev != _ecore_wl_input_dev) return;
502
503 _ecore_wl_screen_x = x;
504 _ecore_wl_screen_y = y;
505 _ecore_wl_surface_x = sx;
506 _ecore_wl_surface_y = sy;
507
508 _ecore_wl_mouse_move_send(t);
509}
510
511static void
512_ecore_wl_cb_handle_button(void *data __UNUSED__, struct wl_input_device *dev, uint32_t t, uint32_t btn, uint32_t state)
513{
514 if (dev != _ecore_wl_input_dev) return;
515
516 if ((btn >= BTN_SIDE) && (btn <= BTN_BACK))
517 {
518 Ecore_Event_Mouse_Wheel *ev;
519
520 if (!(ev = malloc(sizeof(Ecore_Event_Mouse_Wheel)))) return;
521
522 ev->timestamp = t;
523 ev->x = _ecore_wl_surface_x;
524 ev->y = _ecore_wl_surface_y;
525 ev->root.x = _ecore_wl_screen_x;
526 ev->root.y = _ecore_wl_screen_y;
527 ev->modifiers = _ecore_wl_input_modifiers;
528 ev->direction = 0;
529
530 if (_ecore_wl_input_surface)
531 {
532 unsigned int id = 0;
533
534 if ((id = (unsigned int)wl_surface_get_user_data(_ecore_wl_input_surface)))
535 {
536 ev->window = id;
537 ev->event_window = id;
538 }
539 }
540
541 /* NB: (FIXME) Currently Wayland provides no measure of how much the
542 * wheel has scrolled (read: delta of movement). So for now, we will
543 * just assume that the amount scrolled is 1 */
544 if ((btn == BTN_EXTRA) || (btn == BTN_FORWARD)) // down
545 ev->z = 1;
546 else if ((btn == BTN_SIDE) || (btn == BTN_BACK)) // up
547 ev->z = -1;
548
549 ecore_event_add(ECORE_EVENT_MOUSE_WHEEL, ev, NULL, NULL);
550 }
551 else
552 {
553 if (state)
554 {
555 _ecore_wl_input_button = btn;
556 _ecore_wl_mouse_down_send(_ecore_wl_input_surface, btn, t);
557 /* NB: Ideally, this is not the place to check for drags.
558 * IMO, drags should be handled by the client. EG: we raise the
559 * mouse_down to the client, and the client can 'request' a
560 * drag_start from ecore_wl */
561 if ((_ecore_wl_input_surface) || (_ecore_wl_touch_surface))
562 {
563 /* record item which was grabbed.
564 * create drag source. start drag */
565 }
566 }
567 else
568 {
569 if ((_ecore_wl_input_surface) || (_ecore_wl_touch_surface))
570 {
571 /* release grabbed button and finish drag */
572 if ((_ecore_wl_input_button) &&
573 (_ecore_wl_input_button == btn))
574 {
575
576 }
577 }
578 _ecore_wl_input_button = 0;
579 _ecore_wl_mouse_up_send(_ecore_wl_input_surface, btn, t);
580 }
581 }
582}
583
584static void
585_ecore_wl_cb_handle_key(void *data __UNUSED__, struct wl_input_device *dev, uint32_t t __UNUSED__, uint32_t key, uint32_t state)
586{ 400{
587 unsigned int keycode = 0; 401 Ecore_Wl_Display *ewd;
588 402
589 if (dev != _ecore_wl_input_dev) return; 403 LOGFN(__FILE__, __LINE__, __FUNCTION__);
590 404
591 keycode = key + _ecore_wl_xkb->min_key_code; 405 if ((!strcmp(interface, "wl_display")) ||
406 (!strcmp(interface, "wl_drm")) ||
407 (!strcmp(interface, "desktop_shell")))
408 return;
592 409
593 if (state) 410 ewd = data;
594 _ecore_wl_input_modifiers |= _ecore_wl_xkb->map->modmap[keycode];
595 else
596 _ecore_wl_input_modifiers &= ~_ecore_wl_xkb->map->modmap[keycode];
597}
598 411
599static void 412 if (!strcmp(interface, "wl_compositor"))
600_ecore_wl_cb_handle_pointer_focus(void *data __UNUSED__, struct wl_input_device *dev, uint32_t t, struct wl_surface *surface, int32_t x, int32_t y, int32_t sx, int32_t sy) 413 ewd->wl.compositor = wl_display_bind(disp, id, &wl_compositor_interface);
601{ 414 else if (!strcmp(interface, "wl_output"))
602 if (dev != _ecore_wl_input_dev) return; 415 _ecore_wl_output_add(ewd, id);
603 416 else if (!strcmp(interface, "wl_input_device"))
604 /* NB: Wayland pointer focus is weird. It's not pointer focus in the normal 417 _ecore_wl_input_add(ewd, id);
605 * sense...Wayland 'moving/resizing' (and maybe other stuff) has a habit 418 else if (!strcmp(interface, "wl_shell"))
606 * of stealing the pointer focus and thus this cannot be used to control 419 ewd->wl.shell = wl_display_bind(disp, id, &wl_shell_interface);
607 * normal pointer focus. On mouse down, the 'active' surface is stolen 420 else if (!strcmp(interface, "wl_shm"))
608 * by Wayland for the grab, so 'surface' here ends up being NULL. When a 421 ewd->wl.shm = wl_display_bind(disp, id, &wl_shm_interface);
609 * move or resize is finished, we get this event again, but this time 422 else if (!strcmp(interface, "wl_data_device_manager"))
610 * with an active surface */
611 _ecore_wl_screen_x = x;
612 _ecore_wl_screen_y = y;
613 _ecore_wl_surface_x = sx;
614 _ecore_wl_surface_y = sy;
615
616 if ((_ecore_wl_input_surface) && (_ecore_wl_input_surface != surface))
617 { 423 {
618 if (!_ecore_wl_input_button) 424 ewd->wl.data_device_manager =
619 _ecore_wl_mouse_out_send(_ecore_wl_input_surface, t); 425 wl_display_bind(disp, id, &wl_data_device_manager_interface);
620 } 426 }
621 427
622 if (surface) 428 if ((ewd->wl.compositor) && (ewd->wl.shm) && (ewd->wl.shell))
623 { 429 {
624 if (_ecore_wl_input_button) 430 Ecore_Wl_Event_Interfaces_Bound *ev;
625 {
626 _ecore_wl_mouse_up_send(surface, _ecore_wl_input_button, t);
627 _ecore_wl_input_button = 0;
628 }
629 else
630 _ecore_wl_mouse_in_send(surface, t);
631 }
632}
633
634static void
635_ecore_wl_cb_handle_keyboard_focus(void *data __UNUSED__, struct wl_input_device *dev, uint32_t t, struct wl_surface *surface, struct wl_array *keys)
636{
637 unsigned int *keyend = 0, *i = 0;
638
639 if (dev != _ecore_wl_input_dev) return;
640
641 /* NB: Remove old keyboard focus */
642 if ((_ecore_wl_input_surface) && (_ecore_wl_input_surface != surface))
643 _ecore_wl_focus_out_send(_ecore_wl_input_surface, t);
644 431
645 _ecore_wl_input_surface = NULL; 432 if (!(ev = calloc(1, sizeof(Ecore_Wl_Event_Interfaces_Bound))))
433 return;
646 434
647 keyend = keys->data + keys->size; 435 ev->compositor = (ewd->wl.compositor != NULL);
648 _ecore_wl_input_modifiers = 0; 436 ev->shm = (ewd->wl.shm != NULL);
649 for (i = keys->data; i < keyend; i++) 437 ev->shell = (ewd->wl.shell != NULL);
650 _ecore_wl_input_modifiers |= _ecore_wl_xkb->map->modmap[*i];
651 438
652 if (surface) 439 ecore_event_add(ECORE_WL_EVENT_INTERFACES_BOUND, ev, NULL, NULL);
653 {
654 /* set new input surface */
655 _ecore_wl_input_surface = surface;
656
657 /* send mouse in to new surface */
658 /* _ecore_wl_mouse_in_send(surface, t); */
659
660 /* send focus to new surface */
661 _ecore_wl_focus_in_send(surface, t);
662 } 440 }
663} 441}
664 442
665static void 443static Eina_Bool
666_ecore_wl_cb_handle_touch_down(void *data __UNUSED__, struct wl_input_device *dev __UNUSED__, uint32_t timestamp, struct wl_surface *surface, int32_t id, int32_t x, int32_t y) 444_ecore_wl_egl_init(Ecore_Wl_Display *ewd)
667{ 445{
668 Ecore_Event_Mouse_Button *ev; 446 EGLint major, minor, n;
669 447 static const EGLint context_attribs[] =
670 LOGFN(__FILE__, __LINE__, __FUNCTION__);
671
672 _ecore_wl_touch_surface = surface;
673 _ecore_wl_touch_x = x;
674 _ecore_wl_touch_y = y;
675
676 if (!(ev = malloc(sizeof(Ecore_Event_Mouse_Button)))) return;
677
678 ev->timestamp = timestamp;
679
680 /* NB: Need to verify using x,y for these */
681 ev->x = x;
682 ev->y = y;
683 ev->root.x = x;
684 ev->root.y = y;
685 ev->modifiers = 0;
686 ev->buttons = 0;
687 ev->same_screen = 1;
688
689 /* FIXME: Need to get these from Wayland somehow */
690 ev->double_click = 0;
691 ev->triple_click = 0;
692
693 ev->multi.device = id;
694 ev->multi.radius = 1;
695 ev->multi.radius_x = 1;
696 ev->multi.radius_y = 1;
697 ev->multi.pressure = 1.0;
698 ev->multi.angle = 0.0;
699 /* NB: Need to verify using x,y for these */
700 ev->multi.x = x;
701 ev->multi.y = y;
702 ev->multi.root.x = x;
703 ev->multi.root.y = y;
704
705 { 448 {
706 unsigned int id = 0; 449 EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE
707 450 };
708 if ((id = (unsigned int)wl_surface_get_user_data(surface))) 451 static const EGLint argb_attribs[] =
709 { 452 {
710 ev->window = id; 453 EGL_RED_SIZE, 8, EGL_GREEN_SIZE, 8, EGL_BLUE_SIZE, 8,
711 ev->event_window = id; 454 EGL_ALPHA_SIZE, 1, EGL_DEPTH_SIZE, 0, EGL_STENCIL_SIZE, 0,
712 } 455 EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, EGL_SURFACE_TYPE,
713 } 456 EGL_WINDOW_BIT, EGL_NONE
714 457 };
715 ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, ev, NULL, NULL);
716}
717
718static void
719_ecore_wl_cb_handle_touch_up(void *data __UNUSED__, struct wl_input_device *dev __UNUSED__, uint32_t timestamp, int32_t id)
720{
721 Ecore_Event_Mouse_Button *ev;
722 458
723 LOGFN(__FILE__, __LINE__, __FUNCTION__); 459 LOGFN(__FILE__, __LINE__, __FUNCTION__);
724 460
725 if (!(ev = malloc(sizeof(Ecore_Event_Mouse_Button)))) return; 461 ewd->egl.display = eglGetDisplay(ewd->wl.display);
726 462 if (!eglInitialize(ewd->egl.display, &major, &minor))
727 ev->timestamp = timestamp;
728
729 /* TODO: Need to verify using x,y for these */
730 ev->x = _ecore_wl_touch_x;
731 ev->y = _ecore_wl_touch_y;
732 ev->root.x = _ecore_wl_touch_x;
733 ev->root.y = _ecore_wl_touch_y;
734 ev->modifiers = 0;
735 ev->buttons = 0;
736 ev->same_screen = 1;
737
738 /* FIXME: Need to get these from Wayland somehow */
739 ev->double_click = 0;
740 ev->triple_click = 0;
741
742 ev->multi.device = id;
743 ev->multi.radius = 1;
744 ev->multi.radius_x = 1;
745 ev->multi.radius_y = 1;
746 ev->multi.pressure = 1.0;
747 ev->multi.angle = 0.0;
748
749 /* TODO: Need to verify using x,y for these */
750 ev->multi.x = _ecore_wl_touch_x;
751 ev->multi.y = _ecore_wl_touch_y;
752 ev->multi.root.x = _ecore_wl_touch_x;
753 ev->multi.root.y = _ecore_wl_touch_y;
754
755 { 463 {
756 unsigned int id = 0; 464 ERR("Failed to initialize EGL display");
757 465 return EINA_FALSE;
758 if ((id = (unsigned int)wl_surface_get_user_data(_ecore_wl_touch_surface)))
759 {
760 ev->window = id;
761 ev->event_window = id;
762 }
763 } 466 }
764 467
765 _ecore_wl_touch_surface = NULL; 468 if (!eglBindAPI(EGL_OPENGL_ES_API))
766
767 ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_UP, ev, NULL, NULL);
768}
769
770static void
771_ecore_wl_cb_handle_touch_motion(void *data __UNUSED__, struct wl_input_device *dev __UNUSED__, uint32_t timestamp, int32_t id, int32_t x, int32_t y)
772{
773 Ecore_Event_Mouse_Move *ev;
774
775 LOGFN(__FILE__, __LINE__, __FUNCTION__);
776
777 if (!_ecore_wl_touch_surface) return;
778
779 if (!(ev = malloc(sizeof(Ecore_Event_Mouse_Move)))) return;
780
781 ev->timestamp = timestamp;
782 /* TODO: Need to verify using x,y for these */
783 ev->x = x;
784 ev->y = y;
785 ev->root.x = x;
786 ev->root.y = y;
787 ev->modifiers = 0; //_ecore_wl_input_modifiers;
788 ev->same_screen = 1;
789
790 ev->multi.device = id;
791 ev->multi.radius = 1;
792 ev->multi.radius_x = 1;
793 ev->multi.radius_y = 1;
794 ev->multi.pressure = 1.0;
795 ev->multi.angle = 0.0;
796
797 /* TODO: Need to verify using x,y for these */
798 ev->multi.x = x;
799 ev->multi.y = y;
800 ev->multi.root.x = x;
801 ev->multi.root.y = y;
802
803 { 469 {
804 unsigned int id = 0; 470 ERR("Failed to bind EGL Api");
805 471 return EINA_FALSE;
806 if ((id = (unsigned int)wl_surface_get_user_data(_ecore_wl_touch_surface)))
807 {
808 ev->window = id;
809 ev->event_window = id;
810 }
811 } 472 }
812 473
813 ecore_event_add(ECORE_EVENT_MOUSE_MOVE, ev, NULL, NULL); 474 if ((!eglChooseConfig(ewd->egl.display, argb_attribs, &ewd->egl.argb_config,
814} 475 1, &n)) || (n == 0))
815
816static void
817_ecore_wl_cb_handle_touch_frame(void *data __UNUSED__, struct wl_input_device *dev __UNUSED__)
818{
819 LOGFN(__FILE__, __LINE__, __FUNCTION__);
820
821 /* FIXME: Need to get a device and actually test what happens here */
822}
823
824static void
825_ecore_wl_cb_handle_touch_cancel(void *data __UNUSED__, struct wl_input_device *dev __UNUSED__)
826{
827 LOGFN(__FILE__, __LINE__, __FUNCTION__);
828
829 /* FIXME: Need to get a device and actually test what happens here */
830 _ecore_wl_touch_surface = NULL;
831}
832
833static void
834_ecore_wl_cb_source_target(void *data, struct wl_data_source *source __UNUSED__, const char *mime_type __UNUSED__)
835{
836 Ecore_Wl_Drag_Source *s;
837
838 LOGFN(__FILE__, __LINE__, __FUNCTION__);
839
840 printf("Ecore_Wl Source Target\n");
841 if (!(s = data)) return;
842 printf("\tHave Drag Source\n");
843
844 /* FIXME: buffer here should really be the mouse cursor buffer */
845 wl_data_device_attach(s->data_dev, s->timestamp, s->buffer,
846 s->hotspot_x, s->hotspot_y);
847}
848
849static void
850_ecore_wl_cb_source_send(void *data, struct wl_data_source *source, const char *mime_type, int32_t fd)
851{
852 Ecore_Wl_Drag_Source *s;
853
854 LOGFN(__FILE__, __LINE__, __FUNCTION__);
855
856 printf("Ecore_Wl Source Send\n");
857 if (!(s = data)) return;
858 printf("\tHave Drag Source\n");
859
860 /* FIXME: write message to fd */
861
862 /* NB: Wayland really sucks in this regard. Why should selection stuff
863 * require an 'fd' ?? */
864}
865
866static void
867_ecore_wl_cb_source_cancelled(void *data, struct wl_data_source *source __UNUSED__)
868{
869 Ecore_Wl_Drag_Source *s;
870
871 LOGFN(__FILE__, __LINE__, __FUNCTION__);
872
873 /* The cancelled event usually means source is no longer in use by
874 * the drag (or selection). */
875
876 printf("Ecore_Wl Source Cancel\n");
877 if (!(s = data)) return;
878 printf("\tHave Drag Source\n");
879
880 /* FIXME: raise this to ecore_evas so the surface/buffer
881 * of the drag can be destroyed */
882
883 if (s->data_source) wl_data_source_destroy(s->data_source);
884 s->data_source = NULL;
885
886 free(s);
887}
888
889static void
890_ecore_wl_cb_source_offer(void *data, struct wl_data_offer *offer __UNUSED__, const char *type)
891{
892 Ecore_Wl_Dnd_Source *s;
893
894 if (!(s = data)) return;
895 eina_array_push(s->types, strdup(type));
896}
897
898static void
899_ecore_wl_cb_data_offer(void *data, struct wl_data_device *data_dev, uint32_t id)
900{
901 Ecore_Wl_Dnd_Source *source;
902
903 /* create a new 'data offer' structure and setup a listener for it */
904 if (!(source = calloc(1, sizeof(Ecore_Wl_Dnd_Source)))) return;
905
906 source->types = eina_array_new(1);
907 source->data = data;
908 source->refs = 1;
909
910 /* FIXME: This will need to change when Wayland has typesafe wrappers for this */
911 source->offer = (struct wl_data_offer *)
912 wl_proxy_create_for_id((struct wl_proxy *)data_dev,
913 id, &wl_data_offer_interface);
914
915 wl_data_device_set_user_data(data_dev, source);
916 wl_data_offer_add_listener(source->offer, &_ecore_wl_offer_listener, source);
917}
918
919static void
920_ecore_wl_cb_data_enter(void *data __UNUSED__, struct wl_data_device *data_dev, uint32_t timestamp, struct wl_surface *surface, int32_t x, int32_t y, struct wl_data_offer *offer)
921{
922 Ecore_Wl_Dnd_Source *source;
923
924 if (!(source = wl_data_device_get_user_data(data_dev))) return;
925
926 /* TODO: maybe set pointer focus here ?? */
927
928 source->timestamp = timestamp;
929}
930
931static void
932_ecore_wl_cb_data_leave(void *data __UNUSED__, struct wl_data_device *data_dev)
933{
934 Ecore_Wl_Dnd_Source *source;
935
936 if (!(source = wl_data_device_get_user_data(data_dev))) return;
937
938 /* destroy drag offer */
939 wl_data_offer_destroy(source->offer);
940
941 while (eina_array_count(source->types))
942 free(eina_array_pop(source->types));
943
944 eina_array_free(source->types);
945 free(source);
946
947 wl_data_device_set_user_data(data_dev, NULL);
948}
949
950static void
951_ecore_wl_cb_data_motion(void *data __UNUSED__, struct wl_data_device *data_dev, uint32_t timestamp, int32_t x, int32_t y)
952{
953 Ecore_Wl_Dnd_Source *source;
954
955 if (!(source = wl_data_device_get_user_data(data_dev))) return;
956 /* TODO: Here we should raise motion events for dragging */
957}
958
959static void
960_ecore_wl_cb_data_drop(void *data __UNUSED__, struct wl_data_device *data_dev)
961{
962 Ecore_Wl_Dnd_Source *source;
963
964 if (!(source = wl_data_device_get_user_data(data_dev))) return;
965
966 /* TODO: Raise event for drop */
967
968 wl_data_offer_accept(source->offer, source->timestamp, NULL);
969// eina_array_data_get(source->types, 0));
970}
971
972static void
973_ecore_wl_cb_data_selection(void *data, struct wl_data_device *data_dev, struct wl_data_offer *offer)
974{
975 Ecore_Wl_Dnd_Source *source;
976
977 printf("Ecore_Wl Data Selection\n");
978 if ((source = wl_data_device_get_user_data(data_dev)))
979 { 476 {
980 /* destroy old source */ 477 ERR("Failed to choose ARGB config");
981 wl_data_offer_destroy(source->offer); 478 return EINA_FALSE;
982
983 while (eina_array_count(source->types))
984 free(eina_array_pop(source->types));
985
986 eina_array_free(source->types);
987 free(source);
988
989 wl_data_device_set_user_data(data_dev, NULL);
990 } 479 }
991}
992
993static void
994_ecore_wl_mouse_move_send(uint32_t timestamp)
995{
996 Ecore_Event_Mouse_Move *ev;
997
998// if (!_ecore_wl_input_surface) return;
999
1000 if (!(ev = malloc(sizeof(Ecore_Event_Mouse_Move)))) return;
1001
1002 ev->timestamp = timestamp;
1003 ev->x = _ecore_wl_surface_x;
1004 ev->y = _ecore_wl_surface_y;
1005 ev->root.x = _ecore_wl_screen_x;
1006 ev->root.y = _ecore_wl_screen_y;
1007 ev->modifiers = _ecore_wl_input_modifiers;
1008
1009 ev->multi.device = 0;
1010 ev->multi.radius = 1;
1011 ev->multi.radius_x = 1;
1012 ev->multi.radius_y = 1;
1013 ev->multi.pressure = 1.0;
1014 ev->multi.angle = 0.0;
1015 ev->multi.x = _ecore_wl_surface_x;
1016 ev->multi.y = _ecore_wl_surface_y;
1017 ev->multi.root.x = _ecore_wl_screen_x;
1018 ev->multi.root.y = _ecore_wl_screen_y;
1019 480
481 ewd->egl.argb_context =
482 eglCreateContext(ewd->egl.display, ewd->egl.argb_config,
483 EGL_NO_CONTEXT, context_attribs);
484 if (!ewd->egl.argb_context)
1020 { 485 {
1021 unsigned int id = 0; 486 ERR("Failed to create ARGB context");
1022 487 return EINA_FALSE;
1023 if ((id = (unsigned int)wl_surface_get_user_data(_ecore_wl_input_surface)))
1024 {
1025 ev->window = id;
1026 ev->event_window = id;
1027 }
1028 } 488 }
1029 489
1030 ecore_event_add(ECORE_EVENT_MOUSE_MOVE, ev, NULL, NULL); 490 if (!eglMakeCurrent(ewd->egl.display, EGL_NO_SURFACE,
1031} 491 EGL_NO_SURFACE, ewd->egl.argb_context))
1032
1033static void
1034_ecore_wl_mouse_out_send(struct wl_surface *surface, uint32_t timestamp)
1035{
1036 Ecore_Wl_Event_Mouse_Out *ev;
1037
1038 if (!(ev = calloc(1, sizeof(Ecore_Wl_Event_Mouse_Out)))) return;
1039
1040 ev->x = _ecore_wl_surface_x;
1041 ev->y = _ecore_wl_surface_y;
1042 ev->root.x = _ecore_wl_screen_x;
1043 ev->root.y = _ecore_wl_screen_y;
1044 ev->modifiers = _ecore_wl_input_modifiers;
1045 ev->time = timestamp;
1046
1047 if (surface)
1048 { 492 {
1049 unsigned int id = 0; 493 ERR("Failed to make ARGB context current");
1050 494 return EINA_FALSE;
1051 if ((id = (unsigned int)wl_surface_get_user_data(surface)))
1052 ev->window = id;
1053 } 495 }
1054 496
1055 ecore_event_add(ECORE_WL_EVENT_MOUSE_OUT, ev, NULL, NULL); 497 return EINA_TRUE;
1056} 498}
1057 499
1058static void 500static Eina_Bool
1059_ecore_wl_mouse_in_send(struct wl_surface *surface, uint32_t timestamp) 501_ecore_wl_egl_shutdown(Ecore_Wl_Display *ewd)
1060{ 502{
1061 Ecore_Wl_Event_Mouse_In *ev; 503 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1062
1063 if (!(ev = calloc(1, sizeof(Ecore_Wl_Event_Mouse_In)))) return;
1064
1065 ev->x = _ecore_wl_surface_x;
1066 ev->y = _ecore_wl_surface_y;
1067 ev->root.x = _ecore_wl_screen_x;
1068 ev->root.y = _ecore_wl_screen_y;
1069 ev->modifiers = _ecore_wl_input_modifiers;
1070 ev->time = timestamp;
1071 504
1072 if (surface) 505 eglMakeCurrent(ewd->egl.display,
1073 { 506 EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
1074 unsigned int id = 0;
1075 507
1076 if ((id = (unsigned int)wl_surface_get_user_data(surface))) 508 eglDestroyContext(ewd->egl.display, ewd->egl.argb_context);
1077 ev->window = id;
1078 }
1079
1080 ecore_event_add(ECORE_WL_EVENT_MOUSE_IN, ev, NULL, NULL);
1081}
1082 509
1083static void 510 /* NB: This is hanging when we run elm apps as wayland clients
1084_ecore_wl_mouse_up_send(struct wl_surface *surface, uint32_t button, uint32_t timestamp) 511 * inside the weston compositor */
1085{
1086 Ecore_Event_Mouse_Button *ev;
1087
1088 if (!(ev = malloc(sizeof(Ecore_Event_Mouse_Button)))) return;
1089
1090 if (button == BTN_LEFT)
1091 ev->buttons = 1;
1092 else if (button == BTN_MIDDLE)
1093 ev->buttons = 2;
1094 else if (button == BTN_RIGHT)
1095 ev->buttons = 3;
1096
1097 ev->timestamp = timestamp;
1098 ev->x = _ecore_wl_surface_x;
1099 ev->y = _ecore_wl_surface_y;
1100 ev->root.x = _ecore_wl_screen_x;
1101 ev->root.y = _ecore_wl_screen_y;
1102 ev->modifiers = _ecore_wl_input_modifiers;
1103
1104 /* FIXME: Need to get these from Wayland somehow */
1105 ev->double_click = 0;
1106 ev->triple_click = 0;
1107
1108 ev->multi.device = 0;
1109 ev->multi.radius = 1;
1110 ev->multi.radius_x = 1;
1111 ev->multi.radius_y = 1;
1112 ev->multi.pressure = 1.0;
1113 ev->multi.angle = 0.0;
1114 ev->multi.x = _ecore_wl_surface_x;
1115 ev->multi.y = _ecore_wl_surface_y;
1116 ev->multi.root.x = _ecore_wl_screen_x;
1117 ev->multi.root.y = _ecore_wl_screen_y;
1118 512
1119 { 513 /* printf("Egl Terminate\n"); */
1120 unsigned int id = 0; 514 /* eglTerminate(ewd->egl.display); */
515 /* printf("Egl Terminate Done\n"); */
1121 516
1122 if ((id = (unsigned int)wl_surface_get_user_data(surface))) 517 eglReleaseThread();
1123 {
1124 ev->window = id;
1125 ev->event_window = id;
1126 }
1127 }
1128 518
1129 ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_UP, ev, NULL, NULL); 519 return EINA_TRUE;
1130} 520}
1131 521
1132static void 522static Eina_Bool
1133_ecore_wl_mouse_down_send(struct wl_surface *surface, uint32_t button, uint32_t timestamp) 523_ecore_wl_xkb_init(Ecore_Wl_Display *ewd)
1134{ 524{
1135 Ecore_Event_Mouse_Button *ev; 525 struct xkb_rule_names names;
1136
1137 if (!(ev = malloc(sizeof(Ecore_Event_Mouse_Button)))) return;
1138
1139 if (button == BTN_LEFT)
1140 ev->buttons = 1;
1141 else if (button == BTN_MIDDLE)
1142 ev->buttons = 2;
1143 else if (button == BTN_RIGHT)
1144 ev->buttons = 3;
1145
1146 ev->timestamp = timestamp;
1147 ev->x = _ecore_wl_surface_x;
1148 ev->y = _ecore_wl_surface_y;
1149 ev->root.x = _ecore_wl_screen_x;
1150 ev->root.y = _ecore_wl_screen_y;
1151 ev->modifiers = _ecore_wl_input_modifiers;
1152
1153 /* FIXME: Need to get these from Wayland somehow */
1154 ev->double_click = 0;
1155 ev->triple_click = 0;
1156
1157 ev->multi.device = 0;
1158 ev->multi.radius = 1;
1159 ev->multi.radius_x = 1;
1160 ev->multi.radius_y = 1;
1161 ev->multi.pressure = 1.0;
1162 ev->multi.angle = 0.0;
1163 ev->multi.x = _ecore_wl_surface_x;
1164 ev->multi.y = _ecore_wl_surface_y;
1165 ev->multi.root.x = _ecore_wl_screen_x;
1166 ev->multi.root.y = _ecore_wl_screen_y;
1167 526
1168 { 527 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1169 unsigned int id = 0;
1170
1171 if ((id = (unsigned int)wl_surface_get_user_data(surface)))
1172 {
1173 ev->window = id;
1174 ev->event_window = id;
1175 }
1176 }
1177 528
1178 ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, ev, NULL, NULL); 529 names.rules = "evdev";
1179} 530 names.model = "evdev";
531 names.layout = "us";
532 names.variant = "";
533 names.options = "";
1180 534
1181static void 535 if (!(ewd->xkb = xkb_compile_keymap_from_rules(&names)))
1182_ecore_wl_focus_out_send(struct wl_surface *surface, uint32_t timestamp)
1183{
1184 Ecore_Wl_Event_Focus_Out *ev;
1185
1186 if (!(ev = calloc(1, sizeof(Ecore_Wl_Event_Focus_Out)))) return;
1187 ev->time = timestamp;
1188 if (surface)
1189 { 536 {
1190 unsigned int id = 0; 537 ERR("Failed to compile keymap");
1191 538 return EINA_FALSE;
1192 if ((id = (unsigned int)wl_surface_get_user_data(surface)))
1193 ev->window = id;
1194 } 539 }
1195 ecore_event_add(ECORE_WL_EVENT_FOCUS_OUT, ev, NULL, NULL); 540
541 return EINA_TRUE;
1196} 542}
1197 543
1198static void 544static Eina_Bool
1199_ecore_wl_focus_in_send(struct wl_surface *surface, uint32_t timestamp) 545_ecore_wl_xkb_shutdown(Ecore_Wl_Display *ewd)
1200{ 546{
1201 Ecore_Wl_Event_Focus_In *ev; 547 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1202
1203 if (!(ev = calloc(1, sizeof(Ecore_Wl_Event_Focus_In)))) return;
1204 ev->time = timestamp;
1205 if (surface)
1206 {
1207 unsigned int id = 0;
1208 548
1209 if ((id = (unsigned int)wl_surface_get_user_data(surface))) 549 if (ewd->xkb) xkb_free_keymap(ewd->xkb);
1210 ev->window = id; 550 return EINA_TRUE;
1211 }
1212 ecore_event_add(ECORE_WL_EVENT_FOCUS_IN, ev, NULL, NULL);
1213} 551}
diff --git a/libraries/ecore/src/lib/ecore_wayland/ecore_wl_private.h b/libraries/ecore/src/lib/ecore_wayland/ecore_wl_private.h
index eec5ffe..31956a1 100644
--- a/libraries/ecore/src/lib/ecore_wayland/ecore_wl_private.h
+++ b/libraries/ecore/src/lib/ecore_wayland/ecore_wl_private.h
@@ -2,6 +2,9 @@
2# define _ECORE_WAYLAND_PRIVATE_H 2# define _ECORE_WAYLAND_PRIVATE_H
3 3
4# include <limits.h> 4# include <limits.h>
5# include <xkbcommon/xkbcommon.h>
6
7# include "Ecore_Wayland.h"
5 8
6//# define LOGFNS 1 9//# define LOGFNS 1
7 10
@@ -13,6 +16,7 @@
13# endif 16# endif
14 17
15extern int _ecore_wl_log_dom; 18extern int _ecore_wl_log_dom;
19extern Ecore_Wl_Display *_ecore_wl_disp;
16 20
17# ifdef ECORE_WL_DEFAULT_LOG_COLOR 21# ifdef ECORE_WL_DEFAULT_LOG_COLOR
18# undef ECORE_WL_DEFAULT_LOG_COLOR 22# undef ECORE_WL_DEFAULT_LOG_COLOR
@@ -44,42 +48,40 @@ extern int _ecore_wl_log_dom;
44# endif 48# endif
45# define CRIT(...) EINA_LOG_DOM_CRIT(_ecore_wl_log_dom, __VA_ARGS__) 49# define CRIT(...) EINA_LOG_DOM_CRIT(_ecore_wl_log_dom, __VA_ARGS__)
46 50
47typedef struct _Ecore_Wl_Dnd_Source 51struct _Ecore_Wl_Dnd_Source
48{ 52{
49 struct wl_data_offer *offer; 53 struct wl_data_offer *offer;
50 int refs; 54 Ecore_Wl_Input *input;
51 55 struct wl_array types;
52 Eina_Array *types; 56 int refcount;
57 int fd;
58 int x, y;
53 59
54 uint32_t timestamp; 60 /* TODO: task & data_func */
55 void *data; 61 void *data;
56} Ecore_Wl_Dnd_Source; 62};
57 63
58typedef struct _Ecore_Wl_Dnd_Target 64struct _Ecore_Wl_Dnd_Target
59{ 65{
60 /* NB: These are not the real fields for this structure, 66 Ecore_Wl_Dnd_Source *source;
61 * and it is Bound to change....soon */ 67};
62 struct wl_data_offer *offer;
63 int refs;
64
65 Eina_Array *types;
66 68
67 uint32_t timestamp; 69void _ecore_wl_window_init(void);
68 void *data; 70void _ecore_wl_window_shutdown(void);
69} Ecore_Wl_Dnd_Target;
70 71
71struct _Ecore_Wl_Drag_Source 72void _ecore_wl_output_add(Ecore_Wl_Display *ewd, unsigned int id);
72{ 73void _ecore_wl_output_del(Ecore_Wl_Output *output);
73 struct wl_data_device *data_dev;
74 struct wl_buffer *buffer;
75 74
76 int32_t hotspot_x, hotspot_y; 75void _ecore_wl_input_add(Ecore_Wl_Display *ewd, unsigned int id);
77 int32_t offset_x, offset_y; 76void _ecore_wl_input_del(Ecore_Wl_Input *input);
78 const char *mimetype; 77void _ecore_wl_input_pointer_xy_get(int *x, int *y);
79 uint32_t timestamp;
80 void *data;
81 78
82 struct wl_data_source *data_source; 79void _ecore_wl_dnd_add(Ecore_Wl_Input *input, struct wl_data_device *data_device, unsigned int id);
83}; 80void _ecore_wl_dnd_enter(void *data, struct wl_data_device *data_device __UNUSED__, unsigned int timestamp __UNUSED__, struct wl_surface *surface, int x, int y, struct wl_data_offer *offer);
81void _ecore_wl_dnd_leave(void *data, struct wl_data_device *data_device __UNUSED__);
82void _ecore_wl_dnd_motion(void *data, struct wl_data_device *data_device __UNUSED__, unsigned int timestamp __UNUSED__, int x, int y);
83void _ecore_wl_dnd_drop(void *data, struct wl_data_device *data_device __UNUSED__);
84void _ecore_wl_dnd_selection(void *data, struct wl_data_device *data_device __UNUSED__, struct wl_data_offer *offer);
85void _ecore_wl_dnd_del(Ecore_Wl_Dnd_Source *source);
84 86
85#endif 87#endif
diff --git a/libraries/ecore/src/lib/ecore_win32/Ecore_Win32.h b/libraries/ecore/src/lib/ecore_win32/Ecore_Win32.h
index 95e3749..5df3346 100644
--- a/libraries/ecore/src/lib/ecore_win32/Ecore_Win32.h
+++ b/libraries/ecore/src/lib/ecore_win32/Ecore_Win32.h
@@ -460,7 +460,9 @@ EAPI void ecore_win32_window_lower(Ecore_Win32_Window *window);
460EAPI void ecore_win32_window_title_set(Ecore_Win32_Window *window, 460EAPI void ecore_win32_window_title_set(Ecore_Win32_Window *window,
461 const char *title); 461 const char *title);
462 462
463EAPI void ecore_win32_window_focus_set(Ecore_Win32_Window *window); 463EAPI void ecore_win32_window_focus(Ecore_Win32_Window *window);
464
465EAPI void *ecore_win32_window_focus_get(void);
464 466
465EAPI void ecore_win32_window_iconified_set(Ecore_Win32_Window *window, 467EAPI void ecore_win32_window_iconified_set(Ecore_Win32_Window *window,
466 Eina_Bool on); 468 Eina_Bool on);
@@ -471,11 +473,6 @@ EAPI void ecore_win32_window_borderless_set(Ecore_Win32_Window *window,
471EAPI void ecore_win32_window_fullscreen_set(Ecore_Win32_Window *window, 473EAPI void ecore_win32_window_fullscreen_set(Ecore_Win32_Window *window,
472 Eina_Bool on); 474 Eina_Bool on);
473 475
474EINA_DEPRECATED EAPI void ecore_win32_window_shape_set(Ecore_Win32_Window *window,
475 unsigned short width,
476 unsigned short height,
477 unsigned char *mask);
478
479EAPI void ecore_win32_window_cursor_set(Ecore_Win32_Window *window, 476EAPI void ecore_win32_window_cursor_set(Ecore_Win32_Window *window,
480 Ecore_Win32_Cursor *cursor); 477 Ecore_Win32_Cursor *cursor);
481 478
diff --git a/libraries/ecore/src/lib/ecore_win32/Makefile.in b/libraries/ecore/src/lib/ecore_win32/Makefile.in
index 9994ee7..b512021 100644
--- a/libraries/ecore/src/lib/ecore_win32/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_win32/Makefile.in
@@ -50,16 +50,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
53 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 53 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
54 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 54 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
55 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 55 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
56 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 56 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
57 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 57 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
58 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 58 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
59 $(top_srcdir)/configure.ac
60am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 59am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4) 60 $(ACLOCAL_M4)
62mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 61mkinstalldirs = $(install_sh) -d
63CONFIG_HEADER = $(top_builddir)/config.h 62CONFIG_HEADER = $(top_builddir)/config.h
64CONFIG_CLEAN_FILES = 63CONFIG_CLEAN_FILES =
65CONFIG_CLEAN_VPATH_FILES = 64CONFIG_CLEAN_VPATH_FILES =
@@ -213,6 +212,8 @@ EVAS_LIBS = @EVAS_LIBS@
213EVIL_CFLAGS = @EVIL_CFLAGS@ 212EVIL_CFLAGS = @EVIL_CFLAGS@
214EVIL_LIBS = @EVIL_LIBS@ 213EVIL_LIBS = @EVIL_LIBS@
215EXEEXT = @EXEEXT@ 214EXEEXT = @EXEEXT@
215EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
216EXOTIC_LIBS = @EXOTIC_LIBS@
216FGREP = @FGREP@ 217FGREP = @FGREP@
217GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 218GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
218GLIB_CFLAGS = @GLIB_CFLAGS@ 219GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -268,6 +269,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
268PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 269PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
269PIXMAN_LIBS = @PIXMAN_LIBS@ 270PIXMAN_LIBS = @PIXMAN_LIBS@
270PKG_CONFIG = @PKG_CONFIG@ 271PKG_CONFIG = @PKG_CONFIG@
272PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
273PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
271POSUB = @POSUB@ 274POSUB = @POSUB@
272RANLIB = @RANLIB@ 275RANLIB = @RANLIB@
273SCIM_CFLAGS = @SCIM_CFLAGS@ 276SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -278,6 +281,7 @@ SDL_LIBS = @SDL_LIBS@
278SED = @SED@ 281SED = @SED@
279SET_MAKE = @SET_MAKE@ 282SET_MAKE = @SET_MAKE@
280SHELL = @SHELL@ 283SHELL = @SHELL@
284SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
281SSL_CFLAGS = @SSL_CFLAGS@ 285SSL_CFLAGS = @SSL_CFLAGS@
282SSL_LIBS = @SSL_LIBS@ 286SSL_LIBS = @SSL_LIBS@
283STRIP = @STRIP@ 287STRIP = @STRIP@
diff --git a/libraries/ecore/src/lib/ecore_win32/ecore_win32_private.h b/libraries/ecore/src/lib/ecore_win32/ecore_win32_private.h
index ab54763..e3e4426 100644
--- a/libraries/ecore/src/lib/ecore_win32/ecore_win32_private.h
+++ b/libraries/ecore/src/lib/ecore_win32/ecore_win32_private.h
@@ -71,8 +71,8 @@ struct _Ecore_Win32_Window
71 unsigned int min_height; 71 unsigned int min_height;
72 unsigned int max_width; 72 unsigned int max_width;
73 unsigned int max_height; 73 unsigned int max_height;
74 unsigned int base_width; 74 int base_width;
75 unsigned int base_height; 75 int base_height;
76 unsigned int step_width; 76 unsigned int step_width;
77 unsigned int step_height; 77 unsigned int step_height;
78 78
diff --git a/libraries/ecore/src/lib/ecore_win32/ecore_win32_window.c b/libraries/ecore/src/lib/ecore_win32/ecore_win32_window.c
index 459f051..058aef0 100644
--- a/libraries/ecore/src/lib/ecore_win32/ecore_win32_window.c
+++ b/libraries/ecore/src/lib/ecore_win32/ecore_win32_window.c
@@ -107,8 +107,8 @@ ecore_win32_window_internal_new(Ecore_Win32_Window *parent,
107 w->min_height = 0; 107 w->min_height = 0;
108 w->max_width = 32767; 108 w->max_width = 32767;
109 w->max_height = 32767; 109 w->max_height = 32767;
110 w->base_width = 0; 110 w->base_width = -1;
111 w->base_height = 0; 111 w->base_height = -1;
112 w->step_width = 1; 112 w->step_width = 1;
113 w->step_height = 1; 113 w->step_height = 1;
114 114
@@ -249,6 +249,8 @@ ecore_win32_window_free(Ecore_Win32_Window *window)
249 * 249 *
250 * This function returns the window HANDLE associated to @p window. If 250 * This function returns the window HANDLE associated to @p window. If
251 * @p window is @c NULL, this function returns @c NULL. 251 * @p window is @c NULL, this function returns @c NULL.
252 *
253 * @note The returned value is of type HWND.
252 */ 254 */
253EAPI void * 255EAPI void *
254ecore_win32_window_hwnd_get(Ecore_Win32_Window *window) 256ecore_win32_window_hwnd_get(Ecore_Win32_Window *window)
@@ -755,140 +757,6 @@ ecore_win32_window_size_step_get(Ecore_Win32_Window *window,
755 if (step_height) *step_height = window->step_height; 757 if (step_height) *step_height = window->step_height;
756} 758}
757 759
758EAPI void
759ecore_win32_window_shape_set(Ecore_Win32_Window *window,
760 unsigned short width,
761 unsigned short height,
762 unsigned char *mask)
763{
764 HRGN rgn;
765 int x;
766 int y;
767 OSVERSIONINFO version_info;
768
769 if (!window)
770 return;
771
772 if (!mask)
773 {
774 window->shape.enabled = 0;
775 if (window->shape.layered != 0)
776 {
777 window->shape.layered = 0;
778#if defined(WS_EX_LAYERED)
779 SetLastError(0);
780 if (!SetWindowLongPtr(window->window, GWL_EXSTYLE,
781 GetWindowLong(window->window, GWL_EXSTYLE) & (~WS_EX_LAYERED)) &&
782 (GetLastError() != 0))
783 {
784 ERR("SetWindowLongPtr() failed");
785 return;
786 }
787 if (!RedrawWindow(window->window, NULL, NULL,
788 RDW_ERASE | RDW_INVALIDATE | RDW_FRAME | RDW_ALLCHILDREN))
789 {
790 ERR("RedrawWindow() failed");
791 return;
792 }
793#endif
794 }
795 else
796 if (!SetWindowRgn(window->window, NULL, TRUE))
797 {
798 ERR("SetWindowRgn() failed");
799 }
800 return;
801 }
802
803 if (width == 0 || height == 0)
804 return;
805
806 window->shape.enabled = 1;
807
808 if (width != window->shape.width || height != window->shape.height)
809 {
810 window->shape.width = width;
811 window->shape.height = height;
812 if (window->shape.mask)
813 {
814 free(window->shape.mask);
815 window->shape.mask = NULL;
816 }
817 window->shape.mask = malloc(width * height);
818 }
819 memcpy(window->shape.mask, mask, width * height);
820
821 window->shape.layered = 0;
822
823#if defined(WS_EX_LAYERED)
824 version_info.dwOSVersionInfoSize = sizeof(version_info);
825 if (GetVersionEx(&version_info) == TRUE && version_info.dwMajorVersion == 5)
826 {
827 SetLastError(0);
828 if (!SetWindowLongPtr(window->window, GWL_EXSTYLE,
829 GetWindowLong(window->window, GWL_EXSTYLE) | WS_EX_LAYERED) &&
830 (GetLastError() != 0))
831 {
832 ERR("SetWindowLongPtr() failed");
833 return;
834 }
835 window->shape.layered = 1;
836 return;
837 }
838#endif
839
840 if (!(rgn = CreateRectRgn(0, 0, 0, 0)))
841 {
842 ERR("CreateRectRgn() failed");
843 return;
844 }
845 for (y = 0; y < height; y++)
846 {
847 HRGN rgnLine;
848
849 if (!(rgnLine = CreateRectRgn(0, 0, 0, 0)))
850 {
851 ERR("CreateRectRgn() failed");
852 return;
853 }
854 for (x = 0; x < width; x++)
855 {
856 if (mask[y * width + x] > 0)
857 {
858 HRGN rgnDot;
859
860 if (!(rgnDot = CreateRectRgn(x, y, x + 1, y + 1)))
861 {
862 ERR("CreateRectRgn() failed");
863 return;
864 }
865 if (CombineRgn(rgnLine, rgnLine, rgnDot, RGN_OR) == ERROR)
866 {
867 ERR("CombineRgn() has not created a new region");
868 }
869 if (!DeleteObject(rgnDot))
870 {
871 ERR("DeleteObject() failed");
872 return;
873 }
874 }
875 }
876 if (CombineRgn(rgn, rgn, rgnLine, RGN_OR) == ERROR)
877 {
878 ERR("CombineRgn() has not created a new region");
879 }
880 if (!DeleteObject(rgnLine))
881 {
882 ERR("DeleteObject() failed");
883 return;
884 }
885 }
886 if (!SetWindowRgn(window->window, rgn, TRUE))
887 {
888 ERR("SetWindowRgn() failed");
889 }
890}
891
892/** 760/**
893 * @brief Show the given window. 761 * @brief Show the given window.
894 * 762 *
@@ -1011,7 +879,7 @@ ecore_win32_window_title_set(Ecore_Win32_Window *window,
1011 * @c NULL, this function does nothing. 879 * @c NULL, this function does nothing.
1012 */ 880 */
1013EAPI void 881EAPI void
1014ecore_win32_window_focus_set(Ecore_Win32_Window *window) 882ecore_win32_window_focus(Ecore_Win32_Window *window)
1015{ 883{
1016 if (!window) return; 884 if (!window) return;
1017 885
@@ -1024,6 +892,37 @@ ecore_win32_window_focus_set(Ecore_Win32_Window *window)
1024} 892}
1025 893
1026/** 894/**
895 * @brief Get the current focused window.
896 *
897 * @return The window that has focus.
898 *
899 * This function returns the window that has focus. If the calling
900 * thread's message queue does not have an associated window with the
901 * keyboard focus, the return value is @c NULL.
902 *
903 * @note Even if the returned value is @c NULL, another thread's queue
904 * may be associated with a window that has the keyboard focus.
905 *
906 * @note The returned value is of type HWND.
907 */
908EAPI void *
909ecore_win32_window_focus_get(void)
910{
911 HWND focused;
912
913 INF("getting focused window");
914
915 focused = GetFocus();
916 if (!focused)
917 {
918 ERR("GetFocus() failed");
919 return NULL;
920 }
921
922 return focused;
923}
924
925/**
1027 * @brief Iconify or restore the given window. 926 * @brief Iconify or restore the given window.
1028 * 927 *
1029 * @param window The window. 928 * @param window The window.
diff --git a/libraries/ecore/src/lib/ecore_wince/Ecore_WinCE.h b/libraries/ecore/src/lib/ecore_wince/Ecore_WinCE.h
index 681b334..63e20d5 100644
--- a/libraries/ecore/src/lib/ecore_wince/Ecore_WinCE.h
+++ b/libraries/ecore/src/lib/ecore_wince/Ecore_WinCE.h
@@ -280,6 +280,10 @@ EAPI void ecore_wince_window_hide(Ecore_WinCE_Window *window);
280EAPI void ecore_wince_window_title_set(Ecore_WinCE_Window *window, 280EAPI void ecore_wince_window_title_set(Ecore_WinCE_Window *window,
281 const char *title); 281 const char *title);
282 282
283EAPI void ecore_wince_window_focus(Ecore_WinCE_Window *window);
284
285EAPI void *ecore_wince_window_focus_get(void);
286
283EAPI void ecore_wince_window_backend_set(Ecore_WinCE_Window *window, int backend); 287EAPI void ecore_wince_window_backend_set(Ecore_WinCE_Window *window, int backend);
284 288
285EAPI void ecore_wince_window_suspend_cb_set(Ecore_WinCE_Window *window, int (*suspend_cb)(int)); 289EAPI void ecore_wince_window_suspend_cb_set(Ecore_WinCE_Window *window, int (*suspend_cb)(int));
diff --git a/libraries/ecore/src/lib/ecore_wince/Makefile.in b/libraries/ecore/src/lib/ecore_wince/Makefile.in
index d23bf51..340416b 100644
--- a/libraries/ecore/src/lib/ecore_wince/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_wince/Makefile.in
@@ -50,16 +50,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
53 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 53 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
54 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 54 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
55 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 55 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
56 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 56 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
57 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 57 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
58 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 58 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
59 $(top_srcdir)/configure.ac
60am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 59am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4) 60 $(ACLOCAL_M4)
62mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 61mkinstalldirs = $(install_sh) -d
63CONFIG_HEADER = $(top_builddir)/config.h 62CONFIG_HEADER = $(top_builddir)/config.h
64CONFIG_CLEAN_FILES = 63CONFIG_CLEAN_FILES =
65CONFIG_CLEAN_VPATH_FILES = 64CONFIG_CLEAN_VPATH_FILES =
@@ -194,6 +193,8 @@ EVAS_LIBS = @EVAS_LIBS@
194EVIL_CFLAGS = @EVIL_CFLAGS@ 193EVIL_CFLAGS = @EVIL_CFLAGS@
195EVIL_LIBS = @EVIL_LIBS@ 194EVIL_LIBS = @EVIL_LIBS@
196EXEEXT = @EXEEXT@ 195EXEEXT = @EXEEXT@
196EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
197EXOTIC_LIBS = @EXOTIC_LIBS@
197FGREP = @FGREP@ 198FGREP = @FGREP@
198GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 199GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
199GLIB_CFLAGS = @GLIB_CFLAGS@ 200GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -249,6 +250,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
249PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 250PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
250PIXMAN_LIBS = @PIXMAN_LIBS@ 251PIXMAN_LIBS = @PIXMAN_LIBS@
251PKG_CONFIG = @PKG_CONFIG@ 252PKG_CONFIG = @PKG_CONFIG@
253PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
254PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
252POSUB = @POSUB@ 255POSUB = @POSUB@
253RANLIB = @RANLIB@ 256RANLIB = @RANLIB@
254SCIM_CFLAGS = @SCIM_CFLAGS@ 257SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -259,6 +262,7 @@ SDL_LIBS = @SDL_LIBS@
259SED = @SED@ 262SED = @SED@
260SET_MAKE = @SET_MAKE@ 263SET_MAKE = @SET_MAKE@
261SHELL = @SHELL@ 264SHELL = @SHELL@
265SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
262SSL_CFLAGS = @SSL_CFLAGS@ 266SSL_CFLAGS = @SSL_CFLAGS@
263SSL_LIBS = @SSL_LIBS@ 267SSL_LIBS = @SSL_LIBS@
264STRIP = @STRIP@ 268STRIP = @STRIP@
diff --git a/libraries/ecore/src/lib/ecore_wince/ecore_wince_window.c b/libraries/ecore/src/lib/ecore_wince/ecore_wince_window.c
index 4e8b7b1..72353ce 100644
--- a/libraries/ecore/src/lib/ecore_wince/ecore_wince_window.c
+++ b/libraries/ecore/src/lib/ecore_wince/ecore_wince_window.c
@@ -447,6 +447,58 @@ ecore_wince_window_title_set(Ecore_WinCE_Window *window,
447} 447}
448 448
449/** 449/**
450 * @brief Set the focus to the given window.
451 *
452 * @param window The window to give focus to.
453 *
454 * This function gives the focus to @p window. If @p window is
455 * @c NULL, this function does nothing.
456 */
457EAPI void
458ecore_wince_window_focus(Ecore_WinCE_Window *window)
459{
460 if (!window) return;
461
462 INF("focusing window");
463
464 if (!SetFocus(window->window))
465 {
466 ERR("SetFocus() failed");
467 }
468}
469
470/**
471 * @brief Get the current focused window.
472 *
473 * @return The window that has focus.
474 *
475 * This function returns the window that has focus. If the calling
476 * thread's message queue does not have an associated window with the
477 * keyboard focus, the return value is @c NULL.
478 *
479 * @note Even if the returned value is @c NULL, another thread's queue
480 * may be associated with a window that has the keyboard focus.
481 *
482 * @note The returned value is of type HWND.
483 */
484EAPI void *
485ecore_wince_window_focus_get(void)
486{
487 HWND focused;
488
489 INF("getting focused window");
490
491 focused = GetFocus();
492 if (!focused)
493 {
494 ERR("GetFocus() failed");
495 return NULL;
496 }
497
498 return focused;
499}
500
501/**
450 * @brief Set the graphic backend used for the given window. 502 * @brief Set the graphic backend used for the given window.
451 * 503 *
452 * @param window The window. 504 * @param window The window.
diff --git a/libraries/ecore/src/lib/ecore_x/Ecore_X.h b/libraries/ecore/src/lib/ecore_x/Ecore_X.h
index b5d2c3f..336b656 100644
--- a/libraries/ecore/src/lib/ecore_x/Ecore_X.h
+++ b/libraries/ecore/src/lib/ecore_x/Ecore_X.h
@@ -1104,6 +1104,28 @@ typedef enum _Ecore_X_Illume_Quickpanel_State
1104 ECORE_X_ILLUME_QUICKPANEL_STATE_ON 1104 ECORE_X_ILLUME_QUICKPANEL_STATE_ON
1105} Ecore_X_Illume_Quickpanel_State; 1105} Ecore_X_Illume_Quickpanel_State;
1106 1106
1107typedef enum _Ecore_X_Illume_Indicator_State
1108{
1109 ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN = 0,
1110 ECORE_X_ILLUME_INDICATOR_STATE_OFF,
1111 ECORE_X_ILLUME_INDICATOR_STATE_ON
1112} Ecore_X_Illume_Indicator_State;
1113
1114typedef enum _Ecore_X_Illume_Clipboard_State
1115{
1116 ECORE_X_ILLUME_CLIPBOARD_STATE_UNKNOWN = 0,
1117 ECORE_X_ILLUME_CLIPBOARD_STATE_OFF,
1118 ECORE_X_ILLUME_CLIPBOARD_STATE_ON
1119} Ecore_X_Illume_Clipboard_State;
1120
1121typedef enum _Ecore_X_Illume_Indicator_Opacity_Mode
1122{
1123 ECORE_X_ILLUME_INDICATOR_OPACITY_UNKNOWN = 0,
1124 ECORE_X_ILLUME_INDICATOR_OPAQUE,
1125 ECORE_X_ILLUME_INDICATOR_TRANSLUCENT,
1126 ECORE_X_ILLUME_INDICATOR_TRANSPARENT
1127} Ecore_X_Illume_Indicator_Opacity_Mode;
1128
1107/* Window layer constants */ 1129/* Window layer constants */
1108#define ECORE_X_WINDOW_LAYER_BELOW 2 1130#define ECORE_X_WINDOW_LAYER_BELOW 2
1109#define ECORE_X_WINDOW_LAYER_NORMAL 4 1131#define ECORE_X_WINDOW_LAYER_NORMAL 4
@@ -2159,6 +2181,11 @@ ecore_x_netwm_strut_partial_get(Ecore_X_Window win,
2159 int *bottom_start_x, 2181 int *bottom_start_x,
2160 int *bottom_end_x); 2182 int *bottom_end_x);
2161 2183
2184EAPI void
2185ecore_x_netwm_icons_set(Ecore_X_Window win,
2186 Ecore_X_Icon *icon,
2187 int num);
2188
2162EAPI Eina_Bool 2189EAPI Eina_Bool
2163ecore_x_netwm_icons_get(Ecore_X_Window win, 2190ecore_x_netwm_icons_get(Ecore_X_Window win,
2164 Ecore_X_Icon **icon, 2191 Ecore_X_Icon **icon,
@@ -2399,6 +2426,25 @@ EAPI void
2399 ecore_x_e_illume_quickpanel_position_update_send(Ecore_X_Window win); 2426 ecore_x_e_illume_quickpanel_position_update_send(Ecore_X_Window win);
2400 2427
2401EAPI void 2428EAPI void
2429ecore_x_e_illume_clipboard_state_set(Ecore_X_Window win,
2430 Ecore_X_Illume_Clipboard_State state);
2431
2432EAPI Ecore_X_Illume_Clipboard_State
2433ecore_x_e_illume_clipboard_state_get(Ecore_X_Window win);
2434
2435EAPI void
2436ecore_x_e_illume_clipboard_geometry_set(Ecore_X_Window win,
2437 int x,
2438 int y,
2439 int w,
2440 int h);
2441EAPI Eina_Bool
2442ecore_x_e_illume_clipboard_geometry_get(Ecore_X_Window win,
2443 int *x,
2444 int *y,
2445 int *w,
2446 int *h);
2447EAPI void
2402ecore_x_e_comp_sync_counter_set(Ecore_X_Window win, 2448ecore_x_e_comp_sync_counter_set(Ecore_X_Window win,
2403 Ecore_X_Sync_Counter counter); 2449 Ecore_X_Sync_Counter counter);
2404EAPI Ecore_X_Sync_Counter 2450EAPI Ecore_X_Sync_Counter
@@ -2657,7 +2703,7 @@ ecore_x_xregion_rect_contain(Ecore_X_XRegion *region,
2657/* The usage of 'Ecore_X_Randr_None' or 'Ecore_X_Randr_Unset' 2703/* The usage of 'Ecore_X_Randr_None' or 'Ecore_X_Randr_Unset'
2658 * depends on the context. In most cases 'Ecore_X_Randr_Unset' 2704 * depends on the context. In most cases 'Ecore_X_Randr_Unset'
2659 * can be used, but in some cases -1 is a special value to 2705 * can be used, but in some cases -1 is a special value to
2660 * functions, thus 'Ecore_X_Randr_None' (=0) musst be used. 2706 * functions, thus 'Ecore_X_Randr_None' (=0) must be used.
2661 */ 2707 */
2662 2708
2663typedef short Ecore_X_Randr_Refresh_Rate; 2709typedef short Ecore_X_Randr_Refresh_Rate;
@@ -2749,6 +2795,11 @@ EAPI Eina_Bool
2749EAPI Ecore_X_Randr_Mode_Info ** 2795EAPI Ecore_X_Randr_Mode_Info **
2750ecore_x_randr_modes_info_get(Ecore_X_Window root, 2796ecore_x_randr_modes_info_get(Ecore_X_Window root,
2751 int *num); 2797 int *num);
2798EAPI Ecore_X_Randr_Mode
2799ecore_x_randr_mode_info_add(Ecore_X_Window root,
2800 Ecore_X_Randr_Mode_Info *mode_info);
2801EAPI void
2802ecore_x_randr_mode_del(Ecore_X_Randr_Mode mode);
2752EAPI Ecore_X_Randr_Mode_Info * 2803EAPI Ecore_X_Randr_Mode_Info *
2753ecore_x_randr_mode_info_get(Ecore_X_Window root, 2804ecore_x_randr_mode_info_get(Ecore_X_Window root,
2754 Ecore_X_Randr_Mode mode); 2805 Ecore_X_Randr_Mode mode);
@@ -2762,10 +2813,13 @@ EAPI Ecore_X_Randr_Output *ecore_x_randr_outputs_get(Ecore_X_Window root,
2762EAPI Ecore_X_Randr_Output * 2813EAPI Ecore_X_Randr_Output *
2763ecore_x_randr_window_outputs_get(Ecore_X_Window window, 2814ecore_x_randr_window_outputs_get(Ecore_X_Window window,
2764 int *num); 2815 int *num);
2765EINA_DEPRECATED EAPI Ecore_X_Randr_Output * 2816EAPI Ecore_X_Randr_Output *
2766ecore_x_randr_current_output_get(Ecore_X_Window window, 2817ecore_x_randr_current_output_get(Ecore_X_Window window,
2767 int *num); 2818 int *num);
2768EAPI Ecore_X_Randr_Crtc * 2819EAPI Ecore_X_Randr_Crtc *
2820ecore_x_randr_window_crtcs_get(Ecore_X_Window window,
2821 int *num);
2822EAPI Ecore_X_Randr_Crtc *
2769ecore_x_randr_current_crtc_get(Ecore_X_Window window, 2823ecore_x_randr_current_crtc_get(Ecore_X_Window window,
2770 int *num); 2824 int *num);
2771EAPI Ecore_X_Randr_Output * 2825EAPI Ecore_X_Randr_Output *
@@ -2840,6 +2894,12 @@ ecore_x_randr_crtc_pos_relative_set(Ecore_X_Window root,
2840 Ecore_X_Randr_Crtc crtc_r2, 2894 Ecore_X_Randr_Crtc crtc_r2,
2841 Ecore_X_Randr_Output_Policy policy, 2895 Ecore_X_Randr_Output_Policy policy,
2842 Ecore_X_Randr_Relative_Alignment alignment); 2896 Ecore_X_Randr_Relative_Alignment alignment);
2897EAPI Eina_Bool
2898ecore_x_randr_output_mode_add(Ecore_X_Randr_Output output,
2899 Ecore_X_Randr_Mode mode);
2900EAPI void
2901ecore_x_randr_output_mode_del(Ecore_X_Randr_Output output,
2902 Ecore_X_Randr_Mode mode);
2843EAPI Ecore_X_Randr_Mode * 2903EAPI Ecore_X_Randr_Mode *
2844ecore_x_randr_output_modes_get(Ecore_X_Window root, 2904ecore_x_randr_output_modes_get(Ecore_X_Window root,
2845 Ecore_X_Randr_Output output, 2905 Ecore_X_Randr_Output output,
@@ -3408,6 +3468,13 @@ EAPI Eina_Bool
3408EAPI const char * 3468EAPI const char *
3409 ecore_x_keysym_string_get(int keysym); 3469 ecore_x_keysym_string_get(int keysym);
3410 3470
3471/**
3472 * Given a keyname, return the keycode representing that key
3473 *
3474 * @since 1.2.0
3475 */
3476EAPI int ecore_x_keysym_keycode_get(const char *keyname);
3477
3411typedef struct _Ecore_X_Image Ecore_X_Image; 3478typedef struct _Ecore_X_Image Ecore_X_Image;
3412 3479
3413EAPI Ecore_X_Image * 3480EAPI Ecore_X_Image *
@@ -3617,6 +3684,26 @@ ecore_x_gesture_event_ungrab(Ecore_X_Window win,
3617 Ecore_X_Gesture_Event_Type type, 3684 Ecore_X_Gesture_Event_Type type,
3618 int num_fingers); 3685 int num_fingers);
3619 3686
3687EAPI void
3688ecore_x_e_illume_indicator_state_set(Ecore_X_Window win,
3689 Ecore_X_Illume_Indicator_State state);
3690EAPI Ecore_X_Illume_Indicator_State
3691ecore_x_e_illume_indicator_state_get(Ecore_X_Window win);
3692EAPI void
3693ecore_x_e_illume_indicator_state_send(Ecore_X_Window win,
3694 Ecore_X_Illume_Indicator_State state);
3695
3696EAPI void
3697ecore_x_e_illume_indicator_opacity_set(Ecore_X_Window win,
3698 Ecore_X_Illume_Indicator_Opacity_Mode mode);
3699
3700EAPI Ecore_X_Illume_Indicator_Opacity_Mode
3701ecore_x_e_illume_indicator_opacity_get(Ecore_X_Window win);
3702
3703EAPI void
3704ecore_x_e_illume_indicator_opacity_send(Ecore_X_Window win,
3705 Ecore_X_Illume_Indicator_Opacity_Mode mode);
3706
3620#ifdef __cplusplus 3707#ifdef __cplusplus
3621} 3708}
3622#endif // ifdef __cplusplus 3709#endif // ifdef __cplusplus
diff --git a/libraries/ecore/src/lib/ecore_x/Ecore_X_Atoms.h b/libraries/ecore/src/lib/ecore_x/Ecore_X_Atoms.h
index 6788a5e..1341716 100644
--- a/libraries/ecore/src/lib/ecore_x/Ecore_X_Atoms.h
+++ b/libraries/ecore/src/lib/ecore_x/Ecore_X_Atoms.h
@@ -238,6 +238,20 @@ EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR;
238EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR; 238EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR;
239EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE; 239EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE;
240EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_QUICKPANEL_POSITION_UPDATE; 240EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_QUICKPANEL_POSITION_UPDATE;
241EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE;
242EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_ON;
243EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF;
244EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE;
245EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE;
246EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT;
247EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT;
248EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_AVAILABLE_ANGLE;
249EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE;
250EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ROTATE_ROOT_ANGLE;
251EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE;
252EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON;
253EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF;
254EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY;
241 255
242EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_COMP_SYNC_COUNTER; 256EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_COMP_SYNC_COUNTER;
243EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE; 257EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE;
diff --git a/libraries/ecore/src/lib/ecore_x/Makefile.in b/libraries/ecore/src/lib/ecore_x/Makefile.in
index 3b53cfe..fb446ef 100644
--- a/libraries/ecore/src/lib/ecore_x/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_x/Makefile.in
@@ -50,16 +50,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
53 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 53 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
54 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 54 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
55 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 55 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
56 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 56 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
57 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 57 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
58 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 58 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
59 $(top_srcdir)/configure.ac
60am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 59am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4) 60 $(ACLOCAL_M4)
62mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 61mkinstalldirs = $(install_sh) -d
63CONFIG_HEADER = $(top_builddir)/config.h 62CONFIG_HEADER = $(top_builddir)/config.h
64CONFIG_CLEAN_FILES = 63CONFIG_CLEAN_FILES =
65CONFIG_CLEAN_VPATH_FILES = 64CONFIG_CLEAN_VPATH_FILES =
@@ -224,6 +223,8 @@ EVAS_LIBS = @EVAS_LIBS@
224EVIL_CFLAGS = @EVIL_CFLAGS@ 223EVIL_CFLAGS = @EVIL_CFLAGS@
225EVIL_LIBS = @EVIL_LIBS@ 224EVIL_LIBS = @EVIL_LIBS@
226EXEEXT = @EXEEXT@ 225EXEEXT = @EXEEXT@
226EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
227EXOTIC_LIBS = @EXOTIC_LIBS@
227FGREP = @FGREP@ 228FGREP = @FGREP@
228GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 229GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
229GLIB_CFLAGS = @GLIB_CFLAGS@ 230GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -279,6 +280,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
279PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 280PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
280PIXMAN_LIBS = @PIXMAN_LIBS@ 281PIXMAN_LIBS = @PIXMAN_LIBS@
281PKG_CONFIG = @PKG_CONFIG@ 282PKG_CONFIG = @PKG_CONFIG@
283PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
284PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
282POSUB = @POSUB@ 285POSUB = @POSUB@
283RANLIB = @RANLIB@ 286RANLIB = @RANLIB@
284SCIM_CFLAGS = @SCIM_CFLAGS@ 287SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -289,6 +292,7 @@ SDL_LIBS = @SDL_LIBS@
289SED = @SED@ 292SED = @SED@
290SET_MAKE = @SET_MAKE@ 293SET_MAKE = @SET_MAKE@
291SHELL = @SHELL@ 294SHELL = @SHELL@
295SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
292SSL_CFLAGS = @SSL_CFLAGS@ 296SSL_CFLAGS = @SSL_CFLAGS@
293SSL_LIBS = @SSL_LIBS@ 297SSL_LIBS = @SSL_LIBS@
294STRIP = @STRIP@ 298STRIP = @STRIP@
diff --git a/libraries/ecore/src/lib/ecore_x/ecore_x_atoms_decl.h b/libraries/ecore/src/lib/ecore_x/ecore_x_atoms_decl.h
index 3f22356..8952df3 100644
--- a/libraries/ecore/src/lib/ecore_x/ecore_x_atoms_decl.h
+++ b/libraries/ecore/src/lib/ecore_x/ecore_x_atoms_decl.h
@@ -264,6 +264,20 @@ EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR = 0;
264EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR = 0; 264EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR = 0;
265EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE = 0; 265EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE = 0;
266EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_QUICKPANEL_POSITION_UPDATE = 0; 266EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_QUICKPANEL_POSITION_UPDATE = 0;
267EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE = 0;
268EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_ON = 0;
269EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF = 0;
270EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE = 0;
271EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE= 0;
272EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT = 0;
273EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT = 0;
274EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_AVAILABLE_ANGLE = 0;
275EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE = 0;
276EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ROTATE_ROOT_ANGLE = 0;
277EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE = 0;
278EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY = 0;
279EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON = 0;
280EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF = 0;
267 281
268EAPI Ecore_X_Atom ECORE_X_ATOM_E_COMP_SYNC_COUNTER = 0; 282EAPI Ecore_X_Atom ECORE_X_ATOM_E_COMP_SYNC_COUNTER = 0;
269EAPI Ecore_X_Atom ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE = 0; 283EAPI Ecore_X_Atom ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE = 0;
diff --git a/libraries/ecore/src/lib/ecore_x/xcb/Makefile.in b/libraries/ecore/src/lib/ecore_x/xcb/Makefile.in
index 9108f23..ff2227c 100644
--- a/libraries/ecore/src/lib/ecore_x/xcb/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_x/xcb/Makefile.in
@@ -48,16 +48,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
48 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 48 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
49 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 49 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
50 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 50 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
51 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 51 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
52 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 52 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
53 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 53 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
54 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 54 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
55 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 55 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
56 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 56 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
57 $(top_srcdir)/configure.ac
58am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 57am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
59 $(ACLOCAL_M4) 58 $(ACLOCAL_M4)
60mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 59mkinstalldirs = $(install_sh) -d
61CONFIG_HEADER = $(top_builddir)/config.h 60CONFIG_HEADER = $(top_builddir)/config.h
62CONFIG_CLEAN_FILES = 61CONFIG_CLEAN_FILES =
63CONFIG_CLEAN_VPATH_FILES = 62CONFIG_CLEAN_VPATH_FILES =
@@ -206,6 +205,8 @@ EVAS_LIBS = @EVAS_LIBS@
206EVIL_CFLAGS = @EVIL_CFLAGS@ 205EVIL_CFLAGS = @EVIL_CFLAGS@
207EVIL_LIBS = @EVIL_LIBS@ 206EVIL_LIBS = @EVIL_LIBS@
208EXEEXT = @EXEEXT@ 207EXEEXT = @EXEEXT@
208EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
209EXOTIC_LIBS = @EXOTIC_LIBS@
209FGREP = @FGREP@ 210FGREP = @FGREP@
210GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 211GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
211GLIB_CFLAGS = @GLIB_CFLAGS@ 212GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -261,6 +262,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
261PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 262PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
262PIXMAN_LIBS = @PIXMAN_LIBS@ 263PIXMAN_LIBS = @PIXMAN_LIBS@
263PKG_CONFIG = @PKG_CONFIG@ 264PKG_CONFIG = @PKG_CONFIG@
265PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
266PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
264POSUB = @POSUB@ 267POSUB = @POSUB@
265RANLIB = @RANLIB@ 268RANLIB = @RANLIB@
266SCIM_CFLAGS = @SCIM_CFLAGS@ 269SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -271,6 +274,7 @@ SDL_LIBS = @SDL_LIBS@
271SED = @SED@ 274SED = @SED@
272SET_MAKE = @SET_MAKE@ 275SET_MAKE = @SET_MAKE@
273SHELL = @SHELL@ 276SHELL = @SHELL@
277SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
274SSL_CFLAGS = @SSL_CFLAGS@ 278SSL_CFLAGS = @SSL_CFLAGS@
275SSL_LIBS = @SSL_LIBS@ 279SSL_LIBS = @SSL_LIBS@
276STRIP = @STRIP@ 280STRIP = @STRIP@
diff --git a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_atoms.c b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_atoms.c
index 769ffac..ec2daaf 100644
--- a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_atoms.c
+++ b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_atoms.c
@@ -249,7 +249,20 @@ static Xcb_Atom atoms[] =
249 { "_E_ILLUME_QUICKPANEL_ZONE", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE }, 249 { "_E_ILLUME_QUICKPANEL_ZONE", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE },
250 { "_E_ILLUME_QUICKPANEL_POSITION_UPDATE", 250 { "_E_ILLUME_QUICKPANEL_POSITION_UPDATE",
251 &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_POSITION_UPDATE }, 251 &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_POSITION_UPDATE },
252 252 { "_E_ILLUME_INDICATOR_STATE", &ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE },
253 { "_E_ILLUME_INDICATOR_ON", &ECORE_X_ATOM_E_ILLUME_INDICATOR_ON },
254 { "_E_ILLUME_INDICATOR_OFF", &ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF },
255 { "_E_ILLUME_INDICATOR_OPACITY_MODE", &ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE },
256 { "_E_ILLUME_INDICATOR_OPAQUE", &ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE },
257 { "_E_ILLUME_INDICATOR_TRANSLUCENT", &ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT },
258 { "_E_ILLUME_INDICATOR_TRANSPARENT", &ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT },
259 { "_E_ILLUME_ROTATE_WINDOW_AVAILABLE_ANGLES", &ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_AVAILABLE_ANGLE },
260 { "_E_ILLUME_ROTATE_WINDOW_ANGLE", &ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE },
261 { "_E_ILLUME_ROTATE_ROOT_ANGLE", &ECORE_X_ATOM_E_ILLUME_ROTATE_ROOT_ANGLE },
262 { "_E_ILLUME_CLIPBOARD_STATE", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE },
263 { "_E_ILLUME_CLIPBOARD_ON", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON },
264 { "_E_ILLUME_CLIPBOARD_OFF", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF },
265 { "_E_ILLUME_CLIPBOARD_GEOMETRY", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY },
253 { "_E_COMP_SYNC_COUNTER", &ECORE_X_ATOM_E_COMP_SYNC_COUNTER }, 266 { "_E_COMP_SYNC_COUNTER", &ECORE_X_ATOM_E_COMP_SYNC_COUNTER },
254 { "_E_COMP_SYNC_DRAW_DONE", &ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE }, 267 { "_E_COMP_SYNC_DRAW_DONE", &ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE },
255 { "_E_COMP_SYNC_SUPPORTED", &ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED }, 268 { "_E_COMP_SYNC_SUPPORTED", &ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED },
diff --git a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_e.c b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_e.c
index c868f5e..60bfc9c 100644
--- a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_e.c
+++ b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_e.c
@@ -7,6 +7,8 @@ static Ecore_X_Atom _ecore_xcb_e_quickpanel_atom_get(Ecore_X_
7static Ecore_X_Illume_Quickpanel_State _ecore_xcb_e_quickpanel_state_get(Ecore_X_Atom atom); 7static Ecore_X_Illume_Quickpanel_State _ecore_xcb_e_quickpanel_state_get(Ecore_X_Atom atom);
8static Ecore_X_Atom _ecore_xcb_e_illume_atom_get(Ecore_X_Illume_Mode mode); 8static Ecore_X_Atom _ecore_xcb_e_illume_atom_get(Ecore_X_Illume_Mode mode);
9static Ecore_X_Illume_Mode _ecore_xcb_e_illume_mode_get(Ecore_X_Atom atom); 9static Ecore_X_Illume_Mode _ecore_xcb_e_illume_mode_get(Ecore_X_Atom atom);
10static Ecore_X_Atom _ecore_xcb_e_indicator_atom_get(Ecore_X_Illume_Indicator_State state);
11static Ecore_X_Illume_Indicator_State _ecore_xcb_e_indicator_state_get(Ecore_X_Atom atom);
10 12
11EAPI void 13EAPI void
12ecore_x_e_init(void) 14ecore_x_e_init(void)
@@ -719,6 +721,99 @@ ecore_x_e_illume_quickpanel_state_toggle(Ecore_X_Window win)
719 0, 0, 0, 0, 0); 721 0, 0, 0, 0, 0);
720} 722}
721 723
724static Ecore_X_Atom
725_ecore_xcb_e_clipboard_atom_get(Ecore_X_Illume_Clipboard_State state)
726{
727 switch (state)
728 {
729 case ECORE_X_ILLUME_CLIPBOARD_STATE_ON:
730 return ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON;
731 case ECORE_X_ILLUME_CLIPBOARD_STATE_OFF:
732 return ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF;
733 default:
734 break;
735 }
736 return 0;
737}
738
739static Ecore_X_Illume_Clipboard_State
740_ecore_xcb_e_clipboard_state_get(Ecore_X_Atom atom)
741{
742 if (atom == ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON)
743 return ECORE_X_ILLUME_CLIPBOARD_STATE_ON;
744
745 if (atom == ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF)
746 return ECORE_X_ILLUME_CLIPBOARD_STATE_OFF;
747
748 return ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN;
749}
750
751EAPI void
752ecore_x_e_illume_clipboard_state_set(Ecore_X_Window win,
753 Ecore_X_Illume_Clipboard_State state)
754{
755 Ecore_X_Atom atom = 0;
756
757 LOGFN(__FILE__, __LINE__, __FUNCTION__);
758 atom = _ecore_xcb_e_clipboard_atom_get(state);
759
760 ecore_x_window_prop_atom_set(win,
761 ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE,
762 &atom, 1);
763}
764
765EAPI Ecore_X_Illume_Clipboard_State
766ecore_x_e_illume_clipboard_state_get(Ecore_X_Window win)
767{
768 Ecore_X_Atom atom = 0;
769
770 LOGFN(__FILE__, __LINE__, __FUNCTION__);
771
772 if (!ecore_x_window_prop_atom_get(win,
773 ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE,
774 &atom, 1))
775 return ECORE_X_ILLUME_CLIPBOARD_STATE_UNKNOWN;
776 return _ecore_xcb_e_clipboard_state_get(atom);
777}
778
779EAPI void
780ecore_x_e_illume_clipboard_geometry_set(Ecore_X_Window win,
781 int x, int y, int w, int h)
782{
783 unsigned int geom[4];
784
785 LOGFN(__FILE__, __LINE__, __FUNCTION__);
786 geom[0] = x;
787 geom[1] = y;
788 geom[2] = w;
789 geom[3] = h;
790 ecore_x_window_prop_card32_set(win,
791 ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY,
792 geom, 4);
793}
794
795EAPI Eina_Bool
796ecore_x_e_illume_clipboard_geometry_get(Ecore_X_Window win,
797 int *x, int *y, int *w, int *h)
798{
799 int ret = 0;
800 unsigned int geom[4];
801
802 LOGFN(__FILE__, __LINE__, __FUNCTION__);
803 ret =
804 ecore_x_window_prop_card32_get(win,
805 ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY,
806 geom, 4);
807 if (ret != 4) return EINA_FALSE;
808
809 if (x) *x = geom[0];
810 if (y) *y = geom[1];
811 if (w) *w = geom[2];
812 if (h) *h = geom[3];
813
814 return EINA_TRUE;
815}
816
722EAPI void 817EAPI void
723ecore_x_e_illume_mode_set(Ecore_X_Window win, 818ecore_x_e_illume_mode_set(Ecore_X_Window win,
724 Ecore_X_Illume_Mode mode) 819 Ecore_X_Illume_Mode mode)
@@ -1069,3 +1164,144 @@ _ecore_xcb_e_illume_mode_get(Ecore_X_Atom atom)
1069 return ECORE_X_ILLUME_MODE_UNKNOWN; 1164 return ECORE_X_ILLUME_MODE_UNKNOWN;
1070} 1165}
1071 1166
1167static Ecore_X_Atom
1168_ecore_xcb_e_indicator_atom_get(Ecore_X_Illume_Indicator_State state)
1169{
1170 switch (state)
1171 {
1172 case ECORE_X_ILLUME_INDICATOR_STATE_ON:
1173 return ECORE_X_ATOM_E_ILLUME_INDICATOR_ON;
1174
1175 case ECORE_X_ILLUME_INDICATOR_STATE_OFF:
1176 return ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF;
1177
1178 default:
1179 break;
1180 }
1181 return 0;
1182}
1183
1184static Ecore_X_Illume_Indicator_State
1185_ecore_xcb_e_indicator_state_get(Ecore_X_Atom atom)
1186{
1187 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_ON)
1188 return ECORE_X_ILLUME_INDICATOR_STATE_ON;
1189 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF)
1190 return ECORE_X_ILLUME_INDICATOR_STATE_OFF;
1191
1192 return ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN;
1193}
1194
1195EAPI void
1196ecore_x_e_illume_indicator_state_set(Ecore_X_Window win,
1197 Ecore_X_Illume_Indicator_State state)
1198{
1199 Ecore_X_Atom atom = 0;
1200
1201 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1202
1203 atom = _ecore_xcb_e_indicator_atom_get(state);
1204 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE,
1205 &atom, 1);
1206}
1207
1208EAPI Ecore_X_Illume_Indicator_State
1209ecore_x_e_illume_indicator_state_get(Ecore_X_Window win)
1210{
1211 Ecore_X_Atom atom = 0;
1212
1213 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1214
1215 if (!ecore_x_window_prop_atom_get(win,
1216 ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE,
1217 &atom, 1))
1218 return ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN;
1219
1220 return _ecore_xcb_e_indicator_state_get(atom);
1221}
1222
1223EAPI void
1224ecore_x_e_illume_indicator_state_send(Ecore_X_Window win,
1225 Ecore_X_Illume_Indicator_State state)
1226{
1227 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1228 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE,
1229 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
1230 _ecore_xcb_e_indicator_atom_get(state),
1231 0, 0, 0, 0);
1232}
1233
1234static Ecore_X_Atom
1235_ecore_x_e_indicator_opacity_atom_get(Ecore_X_Illume_Indicator_Opacity_Mode mode)
1236{
1237 switch (mode)
1238 {
1239 case ECORE_X_ILLUME_INDICATOR_OPAQUE:
1240 return ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE;
1241
1242 case ECORE_X_ILLUME_INDICATOR_TRANSLUCENT:
1243 return ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT;
1244
1245 case ECORE_X_ILLUME_INDICATOR_TRANSPARENT:
1246 return ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT;
1247
1248 default:
1249 break;
1250 }
1251 return 0;
1252}
1253
1254static Ecore_X_Illume_Indicator_Opacity_Mode
1255_ecore_x_e_indicator_opacity_get(Ecore_X_Atom atom)
1256{
1257 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE)
1258 return ECORE_X_ILLUME_INDICATOR_OPAQUE;
1259
1260 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT)
1261 return ECORE_X_ILLUME_INDICATOR_TRANSLUCENT;
1262
1263 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT)
1264 return ECORE_X_ILLUME_INDICATOR_TRANSPARENT;
1265
1266 return ECORE_X_ILLUME_INDICATOR_OPACITY_UNKNOWN;
1267}
1268
1269EAPI void
1270ecore_x_e_illume_indicator_opacity_set(Ecore_X_Window win,
1271 Ecore_X_Illume_Indicator_Opacity_Mode mode)
1272{
1273 Ecore_X_Atom atom = 0;
1274
1275 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1276 atom = _ecore_x_e_indicator_opacity_atom_get(mode);
1277 ecore_x_window_prop_atom_set(win,
1278 ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE,
1279 &atom, 1);
1280}
1281
1282EAPI Ecore_X_Illume_Indicator_Opacity_Mode
1283ecore_x_e_illume_indicator_opacity_get(Ecore_X_Window win)
1284{
1285 Ecore_X_Atom atom;
1286
1287 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1288 if (!ecore_x_window_prop_atom_get(win,
1289 ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE,
1290 &atom, 1))
1291 return ECORE_X_ILLUME_INDICATOR_OPACITY_UNKNOWN;
1292
1293 return _ecore_x_e_indicator_opacity_get(atom);
1294}
1295
1296EAPI void
1297ecore_x_e_illume_indicator_opacity_send(Ecore_X_Window win,
1298 Ecore_X_Illume_Indicator_Opacity_Mode mode)
1299{
1300 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1301 ecore_x_client_message32_send(win,
1302 ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE,
1303 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
1304 _ecore_x_e_indicator_opacity_atom_get(mode),
1305 0, 0, 0, 0);
1306}
1307
diff --git a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_keymap.c b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_keymap.c
index 40304df..b1c7528 100644
--- a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_keymap.c
+++ b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_keymap.c
@@ -279,6 +279,14 @@ ecore_x_keysym_string_get(int keysym)
279 return _ecore_xcb_keymap_keysym_to_string(keysym); 279 return _ecore_xcb_keymap_keysym_to_string(keysym);
280} 280}
281 281
282EAPI int
283ecore_x_keysym_keycode_get(const char *keyname)
284{
285 LOGFN(__FILE__, __LINE__, __FUNCTION__);
286
287 return _ecore_xcb_keymap_string_to_keycode(keyname);
288}
289
282/* local functions */ 290/* local functions */
283static int 291static int
284_ecore_xcb_keymap_mask_get(void *reply, 292_ecore_xcb_keymap_mask_get(void *reply,
diff --git a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_netwm.c b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_netwm.c
index 0a523b9..b1e0622 100644
--- a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_netwm.c
+++ b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_netwm.c
@@ -838,6 +838,56 @@ ecore_x_netwm_icon_name_set(Ecore_X_Window win,
838 ecore_x_window_prop_string_set(win, ECORE_X_ATOM_NET_WM_ICON_NAME, name); 838 ecore_x_window_prop_string_set(win, ECORE_X_ATOM_NET_WM_ICON_NAME, name);
839} 839}
840 840
841EAPI void
842ecore_x_netwm_icons_set(Ecore_X_Window win,
843 Ecore_X_Icon *icon,
844 int num)
845{
846 unsigned int *data, *p, *p2;
847 unsigned int i, size, x, y;
848
849 LOGFN(__FILE__, __LINE__, __FUNCTION__);
850 size = 0;
851 for (i = 0; i < (unsigned int)num; i++)
852 {
853 size += 2 + (icon[i].width * icon[i].height);
854 }
855 data = malloc(size * sizeof(unsigned int));
856 if (!data) return;
857 p = data;
858 for (i = 0; i < (unsigned int)num; i++)
859 {
860 p[0] = icon[i].width;
861 p[1] = icon[i].height;
862 p += 2;
863 p2 = icon[i].data;
864 for (y = 0; y < icon[i].height; y++)
865 {
866 for (x = 0; x < icon[i].width; x++)
867 {
868 unsigned int r, g, b, a;
869
870 a = (*p2 >> 24) & 0xff;
871 r = (*p2 >> 16) & 0xff;
872 g = (*p2 >> 8 ) & 0xff;
873 b = (*p2 ) & 0xff;
874 if ((a > 0) && (a < 255))
875 {
876 r = (r * 255) / a;
877 g = (g * 255) / a;
878 b = (b * 255) / a;
879 }
880 *p = (a << 24) | (r << 16) | (g << 8) | b;
881 p++;
882 p2++;
883 }
884 }
885 }
886 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_NET_WM_ICON,
887 data, size);
888 free(data);
889}
890
841EAPI Eina_Bool 891EAPI Eina_Bool
842ecore_x_netwm_icons_get(Ecore_X_Window win, 892ecore_x_netwm_icons_get(Ecore_X_Window win,
843 Ecore_X_Icon **icon, 893 Ecore_X_Icon **icon,
diff --git a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_randr.c b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_randr.c
index 62f7618..81a7c3f 100644
--- a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_randr.c
+++ b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_randr.c
@@ -1,7 +1,6 @@
1/* TODO: List of missing functions 1/* TODO: List of missing functions
2 * 2 *
3 * ecore_x_randr_crtc_clone_set 3 * ecore_x_randr_crtc_clone_set
4 * ecore_x_randr_output_size_mm_get
5 * ecore_x_randr_output_crtc_set 4 * ecore_x_randr_output_crtc_set
6 * ecore_x_randr_edid_version_get 5 * ecore_x_randr_edid_version_get
7 * ecore_x_randr_edid_info_has_valid_checksum 6 * ecore_x_randr_edid_info_has_valid_checksum
@@ -776,6 +775,24 @@ ecore_x_randr_output_modes_get(Ecore_X_Window root,
776 return modes; 775 return modes;
777} 776}
778 777
778EAPI Eina_Bool
779ecore_x_randr_output_mode_add(Ecore_X_Randr_Output output, Ecore_X_Randr_Mode mode)
780{
781 LOGFN(__FILE__, __LINE__, __FUNCTION__);
782 CHECK_XCB_CONN;
783
784#ifdef ECORE_XCB_RANDR
785 RANDR_CHECK_1_2_RET(EINA_FALSE);
786
787 if ((output == Ecore_X_Randr_None) || (mode == Ecore_X_Randr_None))
788 return EINA_FALSE;
789
790 xcb_randr_add_output_mode(_ecore_xcb_conn, output, mode);
791 return EINA_TRUE;
792#endif
793 return EINA_FALSE;
794}
795
779/* 796/*
780 * @brief get detailed information for a given mode id 797 * @brief get detailed information for a given mode id
781 * @param root window which's screen's ressources are queried 798 * @param root window which's screen's ressources are queried
@@ -805,6 +822,63 @@ ecore_x_randr_mode_info_get(Ecore_X_Window root,
805} 822}
806 823
807/* 824/*
825 * @brief add a mode to a display
826 * @param root window to which's screen's ressources are added
827 * @param mode_info
828 * @return Ecore_X_Randr_Mode of the added mode. Ecore_X_Randr_None if mode
829 * adding failed.
830 * @since 1.2.0
831 */
832EAPI Ecore_X_Randr_Mode
833ecore_x_randr_mode_info_add(Ecore_X_Window root, Ecore_X_Randr_Mode_Info *mode_info)
834{
835#ifdef ECORE_XCB_RANDR
836 Ecore_X_Randr_Mode mode = Ecore_X_Randr_None;
837 xcb_randr_create_mode_cookie_t cookie;
838 xcb_randr_create_mode_reply_t *reply;
839 xcb_randr_mode_info_t info;
840 int namelen = 0;
841#endif
842
843 LOGFN(__FILE__, __LINE__, __FUNCTION__);
844 CHECK_XCB_CONN;
845
846#ifdef ECORE_XCB_RANDR
847 RANDR_CHECK_1_2_RET(EINA_FALSE);
848
849 if (!mode_info) return Ecore_X_Randr_None;
850 if (!_ecore_xcb_randr_root_validate(root)) return Ecore_X_Randr_None;
851
852 namelen = strlen(mode_info->name);
853
854 memset(&info, 0, sizeof(info));
855 info.width = mode_info->width;
856 info.height = mode_info->height;
857 info.dot_clock = mode_info->dotClock;
858 info.hsync_start = mode_info->hSyncStart;
859 info.hsync_end = mode_info->hSyncEnd;
860 info.htotal = mode_info->hTotal;
861 info.hskew = mode_info->hSkew;
862 info.vsync_start = mode_info->vSyncStart;
863 info.vsync_end = mode_info->vSyncEnd;
864 info.vtotal = mode_info->vTotal;
865 info.mode_flags = mode_info->modeFlags;
866 info.name_len = namelen;
867
868 cookie =
869 xcb_randr_create_mode_unchecked(_ecore_xcb_conn, root, info,
870 namelen, mode_info->name);
871 reply = xcb_randr_create_mode_reply(_ecore_xcb_conn, cookie, NULL);
872 if (reply)
873 {
874 mode = mode_info->xid;
875 free(reply);
876 }
877#endif
878 return mode;
879}
880
881/*
808 * @brief get detailed information for all modes related to a root window's screen 882 * @brief get detailed information for all modes related to a root window's screen
809 * @param root window which's screen's ressources are queried 883 * @param root window which's screen's ressources are queried
810 * @param num number of modes returned 884 * @param num number of modes returned
@@ -1057,6 +1131,53 @@ ecore_x_randr_output_crtc_get(Ecore_X_Window root,
1057 return Ecore_X_Randr_None; 1131 return Ecore_X_Randr_None;
1058} 1132}
1059 1133
1134EAPI void
1135ecore_x_randr_output_size_mm_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *w_mm, int *h_mm)
1136{
1137#ifdef ECORE_XCB_RANDR
1138 xcb_randr_get_output_info_cookie_t ocookie;
1139 xcb_randr_get_output_info_reply_t *oreply;
1140 xcb_timestamp_t timestamp = 0;
1141#endif
1142
1143 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1144 CHECK_XCB_CONN;
1145
1146 if (w_mm) *w_mm = 0;
1147 if (h_mm) *h_mm = 0;
1148
1149#ifdef ECORE_XCB_RANDR
1150 RANDR_CHECK_1_2_RET();
1151
1152 if ((output != Ecore_X_Randr_None) && (_randr_version >= RANDR_1_3))
1153 {
1154 xcb_randr_get_screen_resources_current_reply_t *reply;
1155
1156 reply = _ecore_xcb_randr_13_get_resources(root);
1157 timestamp = reply->config_timestamp;
1158 free(reply);
1159 }
1160 else if ((output != Ecore_X_Randr_None) && (_randr_version == RANDR_1_2))
1161 {
1162 xcb_randr_get_screen_resources_reply_t *reply;
1163
1164 reply = _ecore_xcb_randr_12_get_resources(root);
1165 timestamp = reply->config_timestamp;
1166 free(reply);
1167 }
1168
1169 ocookie =
1170 xcb_randr_get_output_info_unchecked(_ecore_xcb_conn, output, timestamp);
1171 oreply = xcb_randr_get_output_info_reply(_ecore_xcb_conn, ocookie, NULL);
1172 if (oreply)
1173 {
1174 if (w_mm) *w_mm = oreply->mm_width;
1175 if (h_mm) *h_mm = oreply->mm_height;
1176 free(oreply);
1177 }
1178#endif
1179}
1180
1060/** 1181/**
1061 * @brief sets the demanded parameters for a given CRTC. Note that the CRTC is 1182 * @brief sets the demanded parameters for a given CRTC. Note that the CRTC is
1062 * auto enabled in it's preferred mode, when it was disabled before. 1183 * auto enabled in it's preferred mode, when it was disabled before.
@@ -1439,6 +1560,87 @@ ecore_x_randr_crtcs_get(Ecore_X_Window root,
1439} 1560}
1440 1561
1441/* 1562/*
1563 * @deprecated bad naming. Use ecore_x_randr_window_crtcs_get instead.
1564 * @brief get the CRTCs, which display a certain window
1565 * @param window window the displaying CRTCs shall be found for
1566 * @param num the number of CRTCs displaying the window
1567 * @return array of CRTCs that display a certain window. NULL if no CRTCs
1568 * was found that displays the specified window.
1569 */
1570EAPI Ecore_X_Randr_Crtc *
1571ecore_x_randr_current_crtc_get(Ecore_X_Window window,
1572 int *num)
1573{
1574 return ecore_x_randr_window_crtcs_get(window, num);
1575}
1576
1577/*
1578 * @brief get the CRTCs, which display a certain window
1579 * @param window window the displaying crtcs shall be found for
1580 * @param num the number of crtcs displaying the window
1581 * @return array of crtcs that display a certain window. NULL if no crtcs
1582 * was found that displays the specified window.
1583 * @since 1.2.0
1584 */
1585EAPI Ecore_X_Randr_Crtc *
1586ecore_x_randr_window_crtcs_get(Ecore_X_Window window,
1587 int *num)
1588{
1589#ifdef ECORE_XCB_RANDR
1590 Ecore_X_Window root;
1591 Eina_Rectangle w_geo, c_geo;
1592 Ecore_X_Randr_Crtc *crtcs, *ret = NULL;
1593 Ecore_X_Randr_Mode mode;
1594 int ncrtcs, i, nret = 0;
1595 xcb_translate_coordinates_cookie_t cookie;
1596 xcb_translate_coordinates_reply_t *trans;
1597#endif
1598
1599 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1600 CHECK_XCB_CONN;
1601
1602#ifdef ECORE_XCB_RANDR
1603 RANDR_CHECK_1_2_RET(NULL);
1604
1605 ecore_x_window_geometry_get(window, &w_geo.x, &w_geo.y, &w_geo.w, &w_geo.h);
1606
1607 root = ecore_x_window_root_get(window);
1608 crtcs = ecore_x_randr_crtcs_get(root, &ncrtcs);
1609 if (!crtcs) return NULL;
1610
1611 /* now get window RELATIVE to root window - thats what matters. */
1612 cookie = xcb_translate_coordinates(_ecore_xcb_conn, window, root, 0, 0);
1613 trans = xcb_translate_coordinates_reply(_ecore_xcb_conn, cookie, NULL);
1614 w_geo.x = trans->dst_x;
1615 w_geo.y = trans->dst_y;
1616 free(trans);
1617
1618 for (i = 0, nret = 0; i < ncrtcs; i++)
1619 {
1620 /* if crtc is not enabled, don't bother about it any further */
1621 mode = ecore_x_randr_crtc_mode_get(root, crtcs[i]);
1622 if (mode == Ecore_X_Randr_None) continue;
1623
1624 ecore_x_randr_crtc_geometry_get(root, crtcs[i], &c_geo.x, &c_geo.y,
1625 &c_geo.w, &c_geo.h);
1626 if (eina_rectangles_intersect(&w_geo, &c_geo))
1627 {
1628 ret = realloc(ret, (++nret *
1629 sizeof(Ecore_X_Randr_Output)));
1630 ret[nret] = crtcs[i];
1631 }
1632 }
1633 free(crtcs);
1634
1635 if (num) *num = nret;
1636 return ret;
1637
1638#endif
1639 if (num) *num = 0;
1640 return NULL;
1641}
1642
1643/*
1442 * @brief get a CRTC's outputs. 1644 * @brief get a CRTC's outputs.
1443 * @param root the root window which's screen will be queried 1645 * @param root the root window which's screen will be queried
1444 * @param num number of outputs referenced by given CRTC 1646 * @param num number of outputs referenced by given CRTC
@@ -2172,6 +2374,22 @@ ecore_x_randr_screen_current_size_set(Ecore_X_Window root,
2172} 2374}
2173 2375
2174/* 2376/*
2377 * @deprecated bad naming. Use ecore_x_randr_window_outputs_get instead.
2378 * @brief get the outputs, which display a certain window
2379 * @param window window the displaying outputs shall be found for
2380 * @param num the number of outputs displaying the window
2381 * @return array of outputs that display a certain window. NULL if no outputs
2382 * was found that displays the specified window.
2383 */
2384
2385Ecore_X_Randr_Output *
2386ecore_x_randr_current_output_get(Ecore_X_Window window,
2387 int *num)
2388{
2389 return ecore_x_randr_window_outputs_get(window, num);
2390}
2391
2392/*
2175 * @brief get the outputs, which display a certain window 2393 * @brief get the outputs, which display a certain window
2176 * @param window window the displaying outputs shall be found for 2394 * @param window window the displaying outputs shall be found for
2177 * @param num the number of outputs displaying the window 2395 * @param num the number of outputs displaying the window
@@ -2184,13 +2402,9 @@ ecore_x_randr_window_outputs_get(Ecore_X_Window window,
2184{ 2402{
2185#ifdef ECORE_XCB_RANDR 2403#ifdef ECORE_XCB_RANDR
2186 Ecore_X_Window root; 2404 Ecore_X_Window root;
2187 Eina_Rectangle w_geo, c_geo;
2188 Ecore_X_Randr_Crtc *crtcs; 2405 Ecore_X_Randr_Crtc *crtcs;
2189 Ecore_X_Randr_Mode mode; 2406 Ecore_X_Randr_Output *outputs, *ret = NULL;
2190 Ecore_X_Randr_Output *outputs, *ret = NULL, *tret;
2191 int ncrtcs, noutputs, i, nret = 0; 2407 int ncrtcs, noutputs, i, nret = 0;
2192 xcb_translate_coordinates_cookie_t cookie;
2193 xcb_translate_coordinates_reply_t *trans;
2194#endif 2408#endif
2195 2409
2196 LOGFN(__FILE__, __LINE__, __FUNCTION__); 2410 LOGFN(__FILE__, __LINE__, __FUNCTION__);
@@ -2199,64 +2413,36 @@ ecore_x_randr_window_outputs_get(Ecore_X_Window window,
2199 if (num) *num = 0; 2413 if (num) *num = 0;
2200 2414
2201#ifdef ECORE_XCB_RANDR 2415#ifdef ECORE_XCB_RANDR
2202 RANDR_CHECK_1_2_RET(NULL); 2416 if (_randr_version < RANDR_1_2) goto _ecore_x_randr_current_output_get_fail;
2203
2204 ecore_x_window_geometry_get(window, &w_geo.x, &w_geo.y, &w_geo.w, &w_geo.h);
2205 2417
2206 root = ecore_x_window_root_get(window); 2418 root = ecore_x_window_root_get(window);
2207 crtcs = ecore_x_randr_crtcs_get(root, &ncrtcs); 2419 if (!(crtcs = ecore_x_randr_window_crtcs_get(window, &ncrtcs)))
2208 if (!crtcs) return NULL; 2420 goto _ecore_x_randr_current_output_get_fail;
2209 2421
2210 /* now get window RELATIVE to root window - thats what matters. */ 2422 for (i = 0, nret = 0; i < ncrtcs; i++)
2211 cookie = xcb_translate_coordinates(_ecore_xcb_conn, window, root, 0, 0);
2212 trans = xcb_translate_coordinates_reply(_ecore_xcb_conn, cookie, NULL);
2213 w_geo.x = trans->dst_x;
2214 w_geo.y = trans->dst_y;
2215 free(trans);
2216
2217 for (i = 0; i < ncrtcs; i++)
2218 { 2423 {
2219 /* if crtc is not enabled, don't bother about it any further */
2220 mode = ecore_x_randr_crtc_mode_get(root, crtcs[i]);
2221 if (mode == Ecore_X_Randr_None) continue;
2222 2424
2223 ecore_x_randr_crtc_geometry_get(root, crtcs[i], &c_geo.x, &c_geo.y, 2425 outputs = ecore_x_randr_crtc_outputs_get(root, crtcs[i],
2224 &c_geo.w, &c_geo.h); 2426 &noutputs);
2225 if (eina_rectangles_intersect(&w_geo, &c_geo)) 2427 if (!outputs)
2226 { 2428 goto _ecore_x_randr_current_output_get_fail_free;
2227 outputs = 2429 nret += noutputs;
2228 ecore_x_randr_crtc_outputs_get(root, crtcs[i], &noutputs); 2430 ret = realloc(ret, (nret * sizeof(Ecore_X_Randr_Output)));
2229 /* The case below should be impossible, but for safety reasons 2431 memcpy(&ret[nret], outputs, (noutputs * sizeof(Ecore_X_Randr_Output)));
2230 * remains */ 2432 free(outputs);
2231 if (!outputs)
2232 {
2233 if (num) *num = 0;
2234 free(ret);
2235 free(crtcs);
2236 return NULL;
2237 }
2238 tret = realloc(ret, ((nret + noutputs) *
2239 sizeof(Ecore_X_Randr_Output)));
2240 if (!tret)
2241 {
2242 if (num) *num = 0;
2243 free(outputs);
2244 free(ret);
2245 free(crtcs);
2246 return NULL;
2247 }
2248 ret = tret;
2249 memcpy(&ret[nret], outputs,
2250 (noutputs * sizeof(Ecore_X_Randr_Output)));
2251 nret += noutputs;
2252 free(outputs);
2253 }
2254 } 2433 }
2255 free(crtcs); 2434 free(crtcs);
2256 2435
2257 if (num) *num = nret; 2436 if (num)
2437 *num = nret;
2438
2258 return ret; 2439 return ret;
2259 2440
2441_ecore_x_randr_current_output_get_fail_free:
2442 free(outputs);
2443 free(crtcs);
2444 free(ret);
2445_ecore_x_randr_current_output_get_fail:
2260#endif 2446#endif
2261 if (num) *num = 0; 2447 if (num) *num = 0;
2262 return NULL; 2448 return NULL;
diff --git a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_window.c b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_window.c
index 27bceaf..3458729 100644
--- a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_window.c
+++ b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_window.c
@@ -651,7 +651,7 @@ ecore_x_window_depth_get(Ecore_X_Window win)
651 * @c _NET_WM_PID. 651 * @c _NET_WM_PID.
652 * 652 *
653 * @param win The given window. 653 * @param win The given window.
654 * @ingroup Ecore_X_Window_Properties_Groups 654 * @ingroup Ecore_X_Window_Properties_Group
655 */ 655 */
656EAPI void 656EAPI void
657ecore_x_window_defaults_set(Ecore_X_Window win) 657ecore_x_window_defaults_set(Ecore_X_Window win)
@@ -1119,7 +1119,7 @@ ecore_x_window_save_set_del(Ecore_X_Window win)
1119} 1119}
1120 1120
1121/** 1121/**
1122 * gets the focus to the window @p win. 1122 * gets the window that has focus.
1123 * @return The window that has focus. 1123 * @return The window that has focus.
1124 * @ingroup Ecore_X_Window_Focus_Functions 1124 * @ingroup Ecore_X_Window_Focus_Functions
1125 */ 1125 */
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/Makefile.in b/libraries/ecore/src/lib/ecore_x/xlib/Makefile.in
index 27a2841..cada69a 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_x/xlib/Makefile.in
@@ -48,16 +48,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
48 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 48 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
49 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 49 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
50 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 50 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
51 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 51 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
52 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 52 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
53 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 53 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
54 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 54 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
55 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 55 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
56 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 56 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
57 $(top_srcdir)/configure.ac
58am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 57am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
59 $(ACLOCAL_M4) 58 $(ACLOCAL_M4)
60mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 59mkinstalldirs = $(install_sh) -d
61CONFIG_HEADER = $(top_builddir)/config.h 60CONFIG_HEADER = $(top_builddir)/config.h
62CONFIG_CLEAN_FILES = 61CONFIG_CLEAN_FILES =
63CONFIG_CLEAN_VPATH_FILES = 62CONFIG_CLEAN_VPATH_FILES =
@@ -197,6 +196,8 @@ EVAS_LIBS = @EVAS_LIBS@
197EVIL_CFLAGS = @EVIL_CFLAGS@ 196EVIL_CFLAGS = @EVIL_CFLAGS@
198EVIL_LIBS = @EVIL_LIBS@ 197EVIL_LIBS = @EVIL_LIBS@
199EXEEXT = @EXEEXT@ 198EXEEXT = @EXEEXT@
199EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
200EXOTIC_LIBS = @EXOTIC_LIBS@
200FGREP = @FGREP@ 201FGREP = @FGREP@
201GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 202GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
202GLIB_CFLAGS = @GLIB_CFLAGS@ 203GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -252,6 +253,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
252PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 253PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
253PIXMAN_LIBS = @PIXMAN_LIBS@ 254PIXMAN_LIBS = @PIXMAN_LIBS@
254PKG_CONFIG = @PKG_CONFIG@ 255PKG_CONFIG = @PKG_CONFIG@
256PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
257PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
255POSUB = @POSUB@ 258POSUB = @POSUB@
256RANLIB = @RANLIB@ 259RANLIB = @RANLIB@
257SCIM_CFLAGS = @SCIM_CFLAGS@ 260SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -262,6 +265,7 @@ SDL_LIBS = @SDL_LIBS@
262SED = @SED@ 265SED = @SED@
263SET_MAKE = @SET_MAKE@ 266SET_MAKE = @SET_MAKE@
264SHELL = @SHELL@ 267SHELL = @SHELL@
268SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
265SSL_CFLAGS = @SSL_CFLAGS@ 269SSL_CFLAGS = @SSL_CFLAGS@
266SSL_LIBS = @SSL_LIBS@ 270SSL_LIBS = @SSL_LIBS@
267STRIP = @STRIP@ 271STRIP = @STRIP@
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_atoms.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_atoms.c
index ee981fe..7a8bffa 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_atoms.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_atoms.c
@@ -270,7 +270,20 @@ _ecore_x_atoms_init(void)
270 { "_E_ILLUME_QUICKPANEL_ZONE", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE }, 270 { "_E_ILLUME_QUICKPANEL_ZONE", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE },
271 { "_E_ILLUME_QUICKPANEL_POSITION_UPDATE", 271 { "_E_ILLUME_QUICKPANEL_POSITION_UPDATE",
272 &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_POSITION_UPDATE }, 272 &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_POSITION_UPDATE },
273 273 { "_E_ILLUME_INDICATOR_STATE", &ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE },
274 { "_E_ILLUME_INDICATOR_ON", &ECORE_X_ATOM_E_ILLUME_INDICATOR_ON },
275 { "_E_ILLUME_INDICATOR_OFF", &ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF },
276 { "_E_ILLUME_INDICATOR_OPACITY_MODE", &ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE },
277 { "_E_ILLUME_INDICATOR_OPAQUE", &ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE },
278 { "_E_ILLUME_INDICATOR_TRANSLUCENT", &ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT },
279 { "_E_ILLUME_INDICATOR_TRANSPARENT", &ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT },
280 { "_E_ILLUME_ROTATE_WINDOW_AVAILABLE_ANGLES", &ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_AVAILABLE_ANGLE },
281 { "_E_ILLUME_ROTATE_WINDOW_ANGLE", &ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE },
282 { "_E_ILLUME_ROTATE_ROOT_ANGLE", &ECORE_X_ATOM_E_ILLUME_ROTATE_ROOT_ANGLE },
283 { "_E_ILLUME_CLIPBOARD_STATE", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE },
284 { "_E_ILLUME_CLIPBOARD_ON", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON },
285 { "_E_ILLUME_CLIPBOARD_OFF", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF },
286 { "_E_ILLUME_CLIPBOARD_GEOMETRY", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY },
274 { "_E_COMP_SYNC_COUNTER", &ECORE_X_ATOM_E_COMP_SYNC_COUNTER }, 287 { "_E_COMP_SYNC_COUNTER", &ECORE_X_ATOM_E_COMP_SYNC_COUNTER },
275 { "_E_COMP_SYNC_DRAW_DONE", &ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE }, 288 { "_E_COMP_SYNC_DRAW_DONE", &ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE },
276 { "_E_COMP_SYNC_SUPPORTED", &ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED }, 289 { "_E_COMP_SYNC_SUPPORTED", &ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED },
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_e.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_e.c
index 5966bbd..4bd5218 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_e.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_e.c
@@ -768,6 +768,99 @@ ecore_x_e_illume_quickpanel_position_update_send(Ecore_X_Window win)
768 1, 0, 0, 0, 0); 768 1, 0, 0, 0, 0);
769} 769}
770 770
771static Ecore_X_Atom
772_ecore_x_e_clipboard_atom_get(Ecore_X_Illume_Clipboard_State state)
773{
774 switch (state)
775 {
776 case ECORE_X_ILLUME_CLIPBOARD_STATE_ON:
777 return ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON;
778 case ECORE_X_ILLUME_CLIPBOARD_STATE_OFF:
779 return ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF;
780 default:
781 break;
782 }
783 return 0;
784}
785
786static Ecore_X_Illume_Clipboard_State
787_ecore_x_e_clipboard_state_get(Ecore_X_Atom atom)
788{
789 if (atom == ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON)
790 return ECORE_X_ILLUME_CLIPBOARD_STATE_ON;
791
792 if (atom == ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF)
793 return ECORE_X_ILLUME_CLIPBOARD_STATE_OFF;
794
795 return ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN;
796}
797
798EAPI void
799ecore_x_e_illume_clipboard_state_set(Ecore_X_Window win,
800 Ecore_X_Illume_Clipboard_State state)
801{
802 Ecore_X_Atom atom = 0;
803
804 LOGFN(__FILE__, __LINE__, __FUNCTION__);
805 atom = _ecore_x_e_clipboard_atom_get(state);
806
807 ecore_x_window_prop_atom_set(win,
808 ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE,
809 &atom, 1);
810}
811
812EAPI Ecore_X_Illume_Clipboard_State
813ecore_x_e_illume_clipboard_state_get(Ecore_X_Window win)
814{
815 Ecore_X_Atom atom = 0;
816
817 LOGFN(__FILE__, __LINE__, __FUNCTION__);
818
819 if (!ecore_x_window_prop_atom_get(win,
820 ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE,
821 &atom, 1))
822 return ECORE_X_ILLUME_CLIPBOARD_STATE_UNKNOWN;
823 return _ecore_x_e_clipboard_state_get(atom);
824}
825
826EAPI void
827ecore_x_e_illume_clipboard_geometry_set(Ecore_X_Window win,
828 int x, int y, int w, int h)
829{
830 unsigned int geom[4];
831
832 LOGFN(__FILE__, __LINE__, __FUNCTION__);
833 geom[0] = x;
834 geom[1] = y;
835 geom[2] = w;
836 geom[3] = h;
837 ecore_x_window_prop_card32_set(win,
838 ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY,
839 geom, 4);
840}
841
842EAPI Eina_Bool
843ecore_x_e_illume_clipboard_geometry_get(Ecore_X_Window win,
844 int *x, int *y, int *w, int *h)
845{
846 int ret = 0;
847 unsigned int geom[4];
848
849 LOGFN(__FILE__, __LINE__, __FUNCTION__);
850 ret =
851 ecore_x_window_prop_card32_get(win,
852 ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY,
853 geom, 4);
854 if (ret != 4) return EINA_FALSE;
855
856 if (x) *x = geom[0];
857 if (y) *y = geom[1];
858 if (w) *w = geom[2];
859 if (h) *h = geom[3];
860
861 return EINA_TRUE;
862}
863
771EAPI void 864EAPI void
772ecore_x_e_comp_sync_counter_set(Ecore_X_Window win, 865ecore_x_e_comp_sync_counter_set(Ecore_X_Window win,
773 Ecore_X_Sync_Counter counter) 866 Ecore_X_Sync_Counter counter)
@@ -1058,3 +1151,143 @@ ecore_x_e_comp_pixmap_get(Ecore_X_Window win)
1058 return pixmap; 1151 return pixmap;
1059} 1152}
1060 1153
1154static Ecore_X_Atom
1155_ecore_x_e_indicator_atom_get(Ecore_X_Illume_Indicator_State state)
1156{
1157 switch (state)
1158 {
1159 case ECORE_X_ILLUME_INDICATOR_STATE_ON:
1160 return ECORE_X_ATOM_E_ILLUME_INDICATOR_ON;
1161
1162 case ECORE_X_ILLUME_INDICATOR_STATE_OFF:
1163 return ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF;
1164
1165 default:
1166 break;
1167 }
1168 return 0;
1169}
1170
1171static Ecore_X_Illume_Indicator_State
1172_ecore_x_e_indicator_state_get(Ecore_X_Atom atom)
1173{
1174 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_ON)
1175 return ECORE_X_ILLUME_INDICATOR_STATE_ON;
1176
1177 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF)
1178 return ECORE_X_ILLUME_INDICATOR_STATE_OFF;
1179
1180 return ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN;
1181}
1182
1183EAPI void
1184ecore_x_e_illume_indicator_state_set(Ecore_X_Window win,
1185 Ecore_X_Illume_Indicator_State state)
1186{
1187 Ecore_X_Atom atom = 0;
1188
1189 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1190 atom = _ecore_x_e_indicator_atom_get(state);
1191 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE,
1192 &atom, 1);
1193}
1194
1195EAPI Ecore_X_Illume_Indicator_State
1196ecore_x_e_illume_indicator_state_get(Ecore_X_Window win)
1197{
1198 Ecore_X_Atom atom;
1199
1200 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1201 if (!ecore_x_window_prop_atom_get(win,
1202 ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE,
1203 &atom, 1))
1204 return ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN;
1205
1206 return _ecore_x_e_indicator_state_get(atom);
1207}
1208
1209EAPI void
1210ecore_x_e_illume_indicator_state_send(Ecore_X_Window win,
1211 Ecore_X_Illume_Indicator_State state)
1212{
1213 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1214 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE,
1215 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
1216 _ecore_x_e_indicator_atom_get(state),
1217 0, 0, 0, 0);
1218}
1219
1220static Ecore_X_Atom
1221_ecore_x_e_indicator_opacity_atom_get(Ecore_X_Illume_Indicator_Opacity_Mode mode)
1222{
1223 switch (mode)
1224 {
1225 case ECORE_X_ILLUME_INDICATOR_OPAQUE:
1226 return ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE;
1227
1228 case ECORE_X_ILLUME_INDICATOR_TRANSLUCENT:
1229 return ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT;
1230
1231 case ECORE_X_ILLUME_INDICATOR_TRANSPARENT:
1232 return ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT;
1233
1234 default:
1235 break;
1236 }
1237 return 0;
1238}
1239
1240static Ecore_X_Illume_Indicator_Opacity_Mode
1241_ecore_x_e_indicator_opacity_get(Ecore_X_Atom atom)
1242{
1243 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE)
1244 return ECORE_X_ILLUME_INDICATOR_OPAQUE;
1245
1246 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT)
1247 return ECORE_X_ILLUME_INDICATOR_TRANSLUCENT;
1248
1249 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT)
1250 return ECORE_X_ILLUME_INDICATOR_TRANSPARENT;
1251
1252 return ECORE_X_ILLUME_INDICATOR_OPACITY_UNKNOWN;
1253}
1254
1255EAPI void
1256ecore_x_e_illume_indicator_opacity_set(Ecore_X_Window win,
1257 Ecore_X_Illume_Indicator_Opacity_Mode mode)
1258{
1259 Ecore_X_Atom atom = 0;
1260
1261 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1262 atom = _ecore_x_e_indicator_opacity_atom_get(mode);
1263 ecore_x_window_prop_atom_set(win,
1264 ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE,
1265 &atom, 1);
1266}
1267
1268EAPI Ecore_X_Illume_Indicator_Opacity_Mode
1269ecore_x_e_illume_indicator_opacity_get(Ecore_X_Window win)
1270{
1271 Ecore_X_Atom atom;
1272
1273 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1274 if (!ecore_x_window_prop_atom_get(win,
1275 ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE,
1276 &atom, 1))
1277 return ECORE_X_ILLUME_INDICATOR_OPACITY_UNKNOWN;
1278
1279 return _ecore_x_e_indicator_opacity_get(atom);
1280}
1281
1282EAPI void
1283ecore_x_e_illume_indicator_opacity_send(Ecore_X_Window win,
1284 Ecore_X_Illume_Indicator_Opacity_Mode mode)
1285{
1286 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1287 ecore_x_client_message32_send(win,
1288 ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE,
1289 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
1290 _ecore_x_e_indicator_opacity_atom_get(mode),
1291 0, 0, 0, 0);
1292}
1293
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_netwm.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_netwm.c
index 9fc428a..3076c3c 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_netwm.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_netwm.c
@@ -661,6 +661,57 @@ ecore_x_netwm_strut_partial_get(Ecore_X_Window win,
661 return EINA_TRUE; 661 return EINA_TRUE;
662} 662}
663 663
664EAPI void
665ecore_x_netwm_icons_set(Ecore_X_Window win,
666 Ecore_X_Icon *icon,
667 int num)
668{
669 unsigned int *data, *p, *p2;
670 unsigned int i, size, x, y;
671
672 LOGFN(__FILE__, __LINE__, __FUNCTION__);
673 size = 0;
674 for (i = 0; i < (unsigned int)num; i++)
675 {
676 size += 2 + (icon[i].width * icon[i].height);
677 }
678 data = malloc(size * sizeof(unsigned int));
679 if (!data) return;
680 p = data;
681 for (i = 0; i < (unsigned int)num; i++)
682 {
683 p[0] = icon[i].width;
684 p[1] = icon[i].height;
685 p += 2;
686 p2 = icon[i].data;
687 for (y = 0; y < icon[i].height; y++)
688 {
689 for (x = 0; x < icon[i].width; x++)
690 {
691 unsigned int r, g, b, a;
692
693 a = (*p2 >> 24) & 0xff;
694 r = (*p2 >> 16) & 0xff;
695 g = (*p2 >> 8 ) & 0xff;
696 b = (*p2 ) & 0xff;
697 if ((a > 0) && (a < 255))
698 {
699 // unpremul
700 r = (r * 255) / a;
701 g = (g * 255) / a;
702 b = (b * 255) / a;
703 }
704 *p = (a << 24) | (r << 16) | (g << 8) | b;
705 p++;
706 p2++;
707 }
708 }
709 }
710 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_NET_WM_ICON,
711 data, size);
712 free(data);
713}
714
664EAPI Eina_Bool 715EAPI Eina_Bool
665ecore_x_netwm_icons_get(Ecore_X_Window win, 716ecore_x_netwm_icons_get(Ecore_X_Window win,
666 Ecore_X_Icon **icon, 717 Ecore_X_Icon **icon,
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_randr_12.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_randr_12.c
index 38218a5..ec23b3c 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_randr_12.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_randr_12.c
@@ -347,9 +347,9 @@ ecore_x_randr_modes_info_get(Ecore_X_Window root,
347 ret[i]->vSyncStart = res->modes[i].vSyncStart; 347 ret[i]->vSyncStart = res->modes[i].vSyncStart;
348 ret[i]->vSyncEnd = res->modes[i].vSyncEnd; 348 ret[i]->vSyncEnd = res->modes[i].vSyncEnd;
349 ret[i]->vTotal = res->modes[i].vTotal; 349 ret[i]->vTotal = res->modes[i].vTotal;
350 if ((ret[i]->name = (malloc(res->modes[i].nameLength)))) 350 if ((ret[i]->name = (malloc(res->modes[i].nameLength + 1))))
351 strncpy(ret[i]->name, res->modes[i].name, 351 strncpy(ret[i]->name, res->modes[i].name,
352 res->modes[i].nameLength); 352 (res->modes[i].nameLength + 1));
353 else 353 else
354 ret[i]->name = NULL; 354 ret[i]->name = NULL;
355 355
@@ -380,6 +380,48 @@ ecore_x_randr_modes_info_get(Ecore_X_Window root,
380} 380}
381 381
382/* 382/*
383 * @brief add a mode to a display
384 * @param root window to which's screen's ressources are added
385 * @param mode_info
386 * @return Ecore_X_Randr_Mode of the added mode. Ecore_X_Randr_None if mode
387 * adding failed.
388 * @since 1.2.0
389 */
390EAPI Ecore_X_Randr_Mode
391ecore_x_randr_mode_info_add(Ecore_X_Window root,
392 Ecore_X_Randr_Mode_Info *mode_info)
393{
394#ifdef ECORE_XRANDR
395 RANDR_CHECK_1_2_RET(EINA_FALSE);
396 Ecore_X_Randr_Mode mode = Ecore_X_Randr_None;
397
398 if (_ecore_x_randr_root_validate(root) && mode_info)
399 mode = XRRCreateMode(_ecore_x_disp, root, (XRRModeInfo*)mode_info);
400
401 return mode;
402#else
403 return Ecore_X_Randr_None;
404#endif
405}
406
407/*
408 * @brief delete a mode from the display
409 * @param mode_info
410 * @since 1.2.0
411 */
412EAPI void
413ecore_x_randr_mode_del(Ecore_X_Randr_Mode mode)
414{
415#ifdef ECORE_XRANDR
416 RANDR_CHECK_1_2_RET();
417
418 XRRDestroyMode(_ecore_x_disp, mode);
419#else
420 return;
421#endif
422}
423
424/*
383 * @brief get detailed information for a given mode id 425 * @brief get detailed information for a given mode id
384 * @param root window which's screen's ressources are queried 426 * @param root window which's screen's ressources are queried
385 * @param mode the XID which identifies the mode of interest 427 * @param mode the XID which identifies the mode of interest
@@ -491,6 +533,83 @@ ecore_x_randr_crtcs_get(Ecore_X_Window root,
491#endif 533#endif
492} 534}
493 535
536/*
537 * @deprecated bad naming. Use ecore_x_randr_window_crtcs_get instead.
538 * @brief get the CRTCs, which display a certain window
539 * @param window window the displaying crtcs shall be found for
540 * @param num the number of crtcs displaying the window
541 * @return array of crtcs that display a certain window. NULL if no crtcs
542 * was found that displays the specified window.
543 */
544EAPI Ecore_X_Randr_Crtc *
545ecore_x_randr_current_crtc_get(Ecore_X_Window window,
546 int *num)
547{
548 return ecore_x_randr_window_crtcs_get(window, num);
549}
550
551/*
552 * @brief get the CRTCs, which display a certain window
553 * @param window window the displaying crtcs shall be found for
554 * @param num the number of crtcs displaying the window
555 * @return array of crtcs that display a certain window. NULL if no crtcs
556 * was found that displays the specified window.
557 * @since 1.2.0
558 */
559EAPI Ecore_X_Randr_Crtc *
560ecore_x_randr_window_crtcs_get(Ecore_X_Window window,
561 int *num)
562{
563#ifdef ECORE_XRANDR
564 Ecore_X_Window root;
565 Eina_Rectangle w_geo, c_geo;
566 Ecore_X_Randr_Crtc *crtcs;
567 Ecore_X_Randr_Mode mode;
568 Ecore_X_Randr_Output *ret = NULL;
569 Window tw;
570 int ncrtcs, i, nret = 0, rx = 0, ry = 0;
571
572 if (_randr_version < RANDR_1_2) goto _ecore_x_randr_window_crtcs_get_fail;
573
574 ecore_x_window_geometry_get(window,
575 &w_geo.x, &w_geo.y,
576 &w_geo.w, &w_geo.h);
577
578 root = ecore_x_window_root_get(window);
579 crtcs = ecore_x_randr_crtcs_get(root, &ncrtcs);
580 if (!crtcs) goto _ecore_x_randr_window_crtcs_get_fail;
581
582 /* now get window RELATIVE to root window - thats what matters. */
583 XTranslateCoordinates(_ecore_x_disp, window, root, 0, 0, &rx, &ry, &tw);
584 w_geo.x = rx;
585 w_geo.y = ry;
586
587 for (i = 0, nret = 0; i < ncrtcs; i++)
588 {
589 /* if crtc is not enabled, don't bother about it any further */
590 mode = ecore_x_randr_crtc_mode_get(root, crtcs[i]);
591 if (mode == Ecore_X_Randr_None) continue;
592
593 ecore_x_randr_crtc_geometry_get(root, crtcs[i],
594 &c_geo.x, &c_geo.y,
595 &c_geo.w, &c_geo.h);
596 if (eina_rectangles_intersect(&w_geo, &c_geo))
597 {
598 ret = realloc(ret, (sizeof(Ecore_X_Randr_Crtc) * ++nret));
599 ret[nret] = crtcs[i];
600 }
601 }
602 free(crtcs);
603
604 if (num) *num = nret;
605 return ret;
606
607_ecore_x_randr_window_crtcs_get_fail:
608#endif
609 if (num) *num = 0;
610 return NULL;
611}
612
494EAPI Ecore_X_Randr_Output * 613EAPI Ecore_X_Randr_Output *
495ecore_x_randr_outputs_get(Ecore_X_Window root, 614ecore_x_randr_outputs_get(Ecore_X_Window root,
496 int *num) 615 int *num)
@@ -1364,6 +1483,54 @@ ecore_x_randr_crtc_pos_relative_set(Ecore_X_Window root,
1364#endif 1483#endif
1365} 1484}
1366 1485
1486/*
1487 * @brief add given mode to given output
1488 * @param output the output the mode is added to
1489 * @param mode the mode added to the output
1490 * @return EINA_FALSE if output or mode equal Ecore_X_Randr_None, else EINA_TRUE
1491 * Additionally, if xcb backend is used, the success of the addition is reported
1492 * back directly.
1493 * @since 1.2.0
1494 */
1495EAPI Eina_Bool
1496ecore_x_randr_output_mode_add(Ecore_X_Randr_Output output,
1497 Ecore_X_Randr_Mode mode)
1498{
1499#ifdef ECORE_XRANDR
1500 RANDR_CHECK_1_2_RET(EINA_FALSE);
1501
1502 if ((output == Ecore_X_Randr_None) || (mode == Ecore_X_Randr_None))
1503 return EINA_FALSE;
1504
1505 XRRAddOutputMode(_ecore_x_disp, output, mode);
1506 return EINA_TRUE;
1507#else
1508 return EINA_FALSE;
1509#endif
1510}
1511
1512/*
1513 * @brief delete given mode from given output
1514 * @param output the output the mode is removed from
1515 * @param mode the mode removed from the output
1516 * @since 1.2.0
1517 */
1518EAPI void
1519ecore_x_randr_output_mode_del(Ecore_X_Randr_Output output,
1520 Ecore_X_Randr_Mode mode)
1521{
1522#ifdef ECORE_XRANDR
1523 RANDR_CHECK_1_2_RET();
1524
1525 if ((output == Ecore_X_Randr_None) || (mode == Ecore_X_Randr_None))
1526 return;
1527
1528 XRRDeleteOutputMode(_ecore_x_disp, output, mode);
1529#else
1530 return;
1531#endif
1532}
1533
1367EAPI Ecore_X_Randr_Mode * 1534EAPI Ecore_X_Randr_Mode *
1368ecore_x_randr_output_modes_get(Ecore_X_Window root, 1535ecore_x_randr_output_modes_get(Ecore_X_Window root,
1369 Ecore_X_Randr_Output output, 1536 Ecore_X_Randr_Output output,
@@ -2136,70 +2303,39 @@ ecore_x_randr_window_outputs_get(Ecore_X_Window window,
2136{ 2303{
2137#ifdef ECORE_XRANDR 2304#ifdef ECORE_XRANDR
2138 Ecore_X_Window root; 2305 Ecore_X_Window root;
2139 Eina_Rectangle w_geo, c_geo;
2140 Ecore_X_Randr_Crtc *crtcs; 2306 Ecore_X_Randr_Crtc *crtcs;
2141 Ecore_X_Randr_Mode mode; 2307 Ecore_X_Randr_Output *outputs, *ret = NULL;
2142 Ecore_X_Randr_Output *outputs, *ret = NULL, *tret; 2308 int ncrtcs, noutputs, i, nret = 0;
2143 Window tw;
2144 int ncrtcs, noutputs, i, nret = 0, rx = 0, ry = 0;
2145 2309
2146 if (_randr_version < RANDR_1_2) goto _ecore_x_randr_current_output_get_fail; 2310 if (_randr_version < RANDR_1_2) goto _ecore_x_randr_current_output_get_fail;
2147 2311
2148 ecore_x_window_geometry_get(window,
2149 &w_geo.x, &w_geo.y,
2150 &w_geo.w, &w_geo.h);
2151
2152 root = ecore_x_window_root_get(window); 2312 root = ecore_x_window_root_get(window);
2153 crtcs = ecore_x_randr_crtcs_get(root, &ncrtcs); 2313 if (!(crtcs = ecore_x_randr_window_crtcs_get(window, &ncrtcs)))
2154 if (!crtcs) goto _ecore_x_randr_current_output_get_fail; 2314 goto _ecore_x_randr_current_output_get_fail;
2155
2156 /* now get window RELATIVE to root window - thats what matters. */
2157 XTranslateCoordinates(_ecore_x_disp, window, root, 0, 0, &rx, &ry, &tw);
2158 w_geo.x = rx;
2159 w_geo.y = ry;
2160 2315
2161 for (i = 0; i < ncrtcs; i++) 2316 for (i = 0, nret = 0; i < ncrtcs; i++)
2162 { 2317 {
2163 /* if crtc is not enabled, don't bother about it any further */
2164 mode = ecore_x_randr_crtc_mode_get(root, crtcs[i]);
2165 if (mode == Ecore_X_Randr_None) continue;
2166 2318
2167 ecore_x_randr_crtc_geometry_get(root, crtcs[i], 2319 outputs = ecore_x_randr_crtc_outputs_get(root, crtcs[i],
2168 &c_geo.x, &c_geo.y, 2320 &noutputs);
2169 &c_geo.w, &c_geo.h); 2321 if (!outputs)
2170 if (eina_rectangles_intersect(&w_geo, &c_geo)) 2322 goto _ecore_x_randr_current_output_get_fail_free;
2171 { 2323 nret += noutputs;
2172 outputs = ecore_x_randr_crtc_outputs_get(root, crtcs[i], 2324 ret = realloc(ret, (nret * sizeof(Ecore_X_Randr_Output)));
2173 &noutputs); 2325 memcpy(&ret[nret], outputs, (noutputs * sizeof(Ecore_X_Randr_Output)));
2174 /* The case below should be impossible, but for safety reasons 2326 free(outputs);
2175 * remains */
2176 if (!outputs)
2177 {
2178 if (num) *num = 0;
2179 free(ret);
2180 free(crtcs);
2181 return NULL;
2182 }
2183 tret = realloc(ret, ((nret + noutputs) * sizeof(Ecore_X_Randr_Output)));
2184 if (!tret)
2185 {
2186 if (num) *num = 0;
2187 free(outputs);
2188 free(ret);
2189 free(crtcs);
2190 return NULL;
2191 }
2192 ret = tret;
2193 memcpy(&ret[nret], outputs, (noutputs * sizeof(Ecore_X_Randr_Output)));
2194 nret += noutputs;
2195 free(outputs);
2196 }
2197 } 2327 }
2198 free(crtcs); 2328 free(crtcs);
2199 2329
2200 if (num) *num = nret; 2330 if (num)
2331 *num = nret;
2332
2201 return ret; 2333 return ret;
2202 2334
2335_ecore_x_randr_current_output_get_fail_free:
2336 free(outputs);
2337 free(crtcs);
2338 free(ret);
2203_ecore_x_randr_current_output_get_fail: 2339_ecore_x_randr_current_output_get_fail:
2204#endif 2340#endif
2205 if (num) *num = 0; 2341 if (num) *num = 0;
@@ -2207,7 +2343,7 @@ _ecore_x_randr_current_output_get_fail:
2207} 2343}
2208 2344
2209/* 2345/*
2210 * @depricated bad naming. Use ecore_x_randr_window_outputs_get instead. 2346 * @deprecated bad naming. Use ecore_x_randr_window_outputs_get instead.
2211 * @brief get the outputs, which display a certain window 2347 * @brief get the outputs, which display a certain window
2212 * @param window window the displaying outputs shall be found for 2348 * @param window window the displaying outputs shall be found for
2213 * @param num the number of outputs displaying the window 2349 * @param num the number of outputs displaying the window
@@ -2215,7 +2351,7 @@ _ecore_x_randr_current_output_get_fail:
2215 * was found that displays the specified window. 2351 * was found that displays the specified window.
2216 */ 2352 */
2217 2353
2218EINA_DEPRECATED EAPI Ecore_X_Randr_Output * 2354EAPI Ecore_X_Randr_Output *
2219ecore_x_randr_current_output_get(Ecore_X_Window window, 2355ecore_x_randr_current_output_get(Ecore_X_Window window,
2220 int *num) 2356 int *num)
2221{ 2357{
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_test.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_test.c
index c8c04e4..23eea10 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_test.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_test.c
@@ -153,3 +153,15 @@ ecore_x_keysym_string_get(int keysym)
153 return XKeysymToString(keysym); 153 return XKeysymToString(keysym);
154} 154}
155 155
156EAPI int
157ecore_x_keysym_keycode_get(const char *keyname)
158{
159 int keycode = 0;
160
161 if (!strncmp(keyname, "Keycode-", 8))
162 keycode = atoi(keyname + 8);
163 else
164 keycode = XKeysymToKeycode(_ecore_x_disp, XStringToKeysym(keyname));
165
166 return keycode;
167}
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_window.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_window.c
index 1adb36b..90392bf 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_window.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_window.c
@@ -224,7 +224,7 @@ ecore_x_window_input_new(Ecore_X_Window parent,
224 * @c _NET_WM_PID. 224 * @c _NET_WM_PID.
225 * 225 *
226 * @param win The given window. 226 * @param win The given window.
227 * @ingroup Ecore_X_Window_Properties_Groups 227 * @ingroup Ecore_X_Window_Properties_Group
228 */ 228 */
229EAPI void 229EAPI void
230ecore_x_window_defaults_set(Ecore_X_Window win) 230ecore_x_window_defaults_set(Ecore_X_Window win)
@@ -597,7 +597,7 @@ ecore_x_window_focus_at_time(Ecore_X_Window win,
597} 597}
598 598
599/** 599/**
600 * gets the focus to the window @p win. 600 * gets the window that has focus.
601 * @return The window that has focus. 601 * @return The window that has focus.
602 * @ingroup Ecore_X_Window_Focus_Functions 602 * @ingroup Ecore_X_Window_Focus_Functions
603 */ 603 */
diff --git a/libraries/ecore/src/modules/Makefile.in b/libraries/ecore/src/modules/Makefile.in
index 4bb9420..e2cf44a 100644
--- a/libraries/ecore/src/modules/Makefile.in
+++ b/libraries/ecore/src/modules/Makefile.in
@@ -47,16 +47,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
47 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 47 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
48 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 48 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
49 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 49 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
50 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 50 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
51 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 51 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
52 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 52 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
53 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 53 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 54 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
55 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 55 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
56 $(top_srcdir)/configure.ac
57am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 56am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
58 $(ACLOCAL_M4) 57 $(ACLOCAL_M4)
59mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 58mkinstalldirs = $(install_sh) -d
60CONFIG_HEADER = $(top_builddir)/config.h 59CONFIG_HEADER = $(top_builddir)/config.h
61CONFIG_CLEAN_FILES = 60CONFIG_CLEAN_FILES =
62CONFIG_CLEAN_VPATH_FILES = 61CONFIG_CLEAN_VPATH_FILES =
@@ -172,6 +171,8 @@ EVAS_LIBS = @EVAS_LIBS@
172EVIL_CFLAGS = @EVIL_CFLAGS@ 171EVIL_CFLAGS = @EVIL_CFLAGS@
173EVIL_LIBS = @EVIL_LIBS@ 172EVIL_LIBS = @EVIL_LIBS@
174EXEEXT = @EXEEXT@ 173EXEEXT = @EXEEXT@
174EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
175EXOTIC_LIBS = @EXOTIC_LIBS@
175FGREP = @FGREP@ 176FGREP = @FGREP@
176GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 177GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
177GLIB_CFLAGS = @GLIB_CFLAGS@ 178GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -227,6 +228,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
227PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 228PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
228PIXMAN_LIBS = @PIXMAN_LIBS@ 229PIXMAN_LIBS = @PIXMAN_LIBS@
229PKG_CONFIG = @PKG_CONFIG@ 230PKG_CONFIG = @PKG_CONFIG@
231PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
232PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
230POSUB = @POSUB@ 233POSUB = @POSUB@
231RANLIB = @RANLIB@ 234RANLIB = @RANLIB@
232SCIM_CFLAGS = @SCIM_CFLAGS@ 235SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -237,6 +240,7 @@ SDL_LIBS = @SDL_LIBS@
237SED = @SED@ 240SED = @SED@
238SET_MAKE = @SET_MAKE@ 241SET_MAKE = @SET_MAKE@
239SHELL = @SHELL@ 242SHELL = @SHELL@
243SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
240SSL_CFLAGS = @SSL_CFLAGS@ 244SSL_CFLAGS = @SSL_CFLAGS@
241SSL_LIBS = @SSL_LIBS@ 245SSL_LIBS = @SSL_LIBS@
242STRIP = @STRIP@ 246STRIP = @STRIP@
diff --git a/libraries/ecore/src/modules/immodules/Makefile.in b/libraries/ecore/src/modules/immodules/Makefile.in
index e65881c..5dacbed 100644
--- a/libraries/ecore/src/modules/immodules/Makefile.in
+++ b/libraries/ecore/src/modules/immodules/Makefile.in
@@ -49,16 +49,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
49 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 49 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
50 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 50 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
51 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 51 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
52 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 52 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
53 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 53 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
54 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 54 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
55 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 55 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
56 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 56 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
57 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 57 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
58 $(top_srcdir)/configure.ac
59am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 58am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
60 $(ACLOCAL_M4) 59 $(ACLOCAL_M4)
61mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 60mkinstalldirs = $(install_sh) -d
62CONFIG_HEADER = $(top_builddir)/config.h 61CONFIG_HEADER = $(top_builddir)/config.h
63CONFIG_CLEAN_FILES = 62CONFIG_CLEAN_FILES =
64CONFIG_CLEAN_VPATH_FILES = 63CONFIG_CLEAN_VPATH_FILES =
@@ -174,6 +173,8 @@ EVAS_LIBS = @EVAS_LIBS@
174EVIL_CFLAGS = @EVIL_CFLAGS@ 173EVIL_CFLAGS = @EVIL_CFLAGS@
175EVIL_LIBS = @EVIL_LIBS@ 174EVIL_LIBS = @EVIL_LIBS@
176EXEEXT = @EXEEXT@ 175EXEEXT = @EXEEXT@
176EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
177EXOTIC_LIBS = @EXOTIC_LIBS@
177FGREP = @FGREP@ 178FGREP = @FGREP@
178GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 179GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
179GLIB_CFLAGS = @GLIB_CFLAGS@ 180GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -229,6 +230,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
229PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 230PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
230PIXMAN_LIBS = @PIXMAN_LIBS@ 231PIXMAN_LIBS = @PIXMAN_LIBS@
231PKG_CONFIG = @PKG_CONFIG@ 232PKG_CONFIG = @PKG_CONFIG@
233PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
234PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
232POSUB = @POSUB@ 235POSUB = @POSUB@
233RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
234SCIM_CFLAGS = @SCIM_CFLAGS@ 237SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -239,6 +242,7 @@ SDL_LIBS = @SDL_LIBS@
239SED = @SED@ 242SED = @SED@
240SET_MAKE = @SET_MAKE@ 243SET_MAKE = @SET_MAKE@
241SHELL = @SHELL@ 244SHELL = @SHELL@
245SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
242SSL_CFLAGS = @SSL_CFLAGS@ 246SSL_CFLAGS = @SSL_CFLAGS@
243SSL_LIBS = @SSL_LIBS@ 247SSL_LIBS = @SSL_LIBS@
244STRIP = @STRIP@ 248STRIP = @STRIP@
diff --git a/libraries/ecore/src/modules/immodules/scim/Makefile.in b/libraries/ecore/src/modules/immodules/scim/Makefile.in
index 9fc3283..ae6fc7d 100644
--- a/libraries/ecore/src/modules/immodules/scim/Makefile.in
+++ b/libraries/ecore/src/modules/immodules/scim/Makefile.in
@@ -48,16 +48,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
48 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 48 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
49 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 49 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
50 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 50 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
51 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 51 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
52 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 52 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
53 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 53 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
54 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 54 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
55 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 55 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
56 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 56 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
57 $(top_srcdir)/configure.ac
58am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 57am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
59 $(ACLOCAL_M4) 58 $(ACLOCAL_M4)
60mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 59mkinstalldirs = $(install_sh) -d
61CONFIG_HEADER = $(top_builddir)/config.h 60CONFIG_HEADER = $(top_builddir)/config.h
62CONFIG_CLEAN_FILES = 61CONFIG_CLEAN_FILES =
63CONFIG_CLEAN_VPATH_FILES = 62CONFIG_CLEAN_VPATH_FILES =
@@ -205,6 +204,8 @@ EVAS_LIBS = @EVAS_LIBS@
205EVIL_CFLAGS = @EVIL_CFLAGS@ 204EVIL_CFLAGS = @EVIL_CFLAGS@
206EVIL_LIBS = @EVIL_LIBS@ 205EVIL_LIBS = @EVIL_LIBS@
207EXEEXT = @EXEEXT@ 206EXEEXT = @EXEEXT@
207EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
208EXOTIC_LIBS = @EXOTIC_LIBS@
208FGREP = @FGREP@ 209FGREP = @FGREP@
209GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 210GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
210GLIB_CFLAGS = @GLIB_CFLAGS@ 211GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -260,6 +261,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
260PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 261PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
261PIXMAN_LIBS = @PIXMAN_LIBS@ 262PIXMAN_LIBS = @PIXMAN_LIBS@
262PKG_CONFIG = @PKG_CONFIG@ 263PKG_CONFIG = @PKG_CONFIG@
264PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
265PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
263POSUB = @POSUB@ 266POSUB = @POSUB@
264RANLIB = @RANLIB@ 267RANLIB = @RANLIB@
265SCIM_CFLAGS = @SCIM_CFLAGS@ 268SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -270,6 +273,7 @@ SDL_LIBS = @SDL_LIBS@
270SED = @SED@ 273SED = @SED@
271SET_MAKE = @SET_MAKE@ 274SET_MAKE = @SET_MAKE@
272SHELL = @SHELL@ 275SHELL = @SHELL@
276SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
273SSL_CFLAGS = @SSL_CFLAGS@ 277SSL_CFLAGS = @SSL_CFLAGS@
274SSL_LIBS = @SSL_LIBS@ 278SSL_LIBS = @SSL_LIBS@
275STRIP = @STRIP@ 279STRIP = @STRIP@
diff --git a/libraries/ecore/src/modules/immodules/scim/scim_imcontext.cpp b/libraries/ecore/src/modules/immodules/scim/scim_imcontext.cpp
index 6cb72c2..eb9b5c9 100644
--- a/libraries/ecore/src/modules/immodules/scim/scim_imcontext.cpp
+++ b/libraries/ecore/src/modules/immodules/scim/scim_imcontext.cpp
@@ -223,18 +223,18 @@ static int __current_super_mask = 0;
223static int __current_hyper_mask = 0; 223static int __current_hyper_mask = 0;
224static int __current_numlock_mask = Mod2Mask; 224static int __current_numlock_mask = Mod2Mask;
225 225
226// A hack to shutdown the immodule cleanly even if im_module_exit () is not called when exiting. 226// A hack to shutdown the immodule cleanly even if im_module_exit() is not called when exiting.
227class FinalizeHandler 227class FinalizeHandler
228{ 228{
229public: 229public:
230 FinalizeHandler () 230 FinalizeHandler()
231 { 231 {
232 SCIM_DEBUG_FRONTEND(1) << "FinalizeHandler::FinalizeHandler ()\n"; 232 SCIM_DEBUG_FRONTEND(1) << "FinalizeHandler::FinalizeHandler()\n";
233 } 233 }
234 ~FinalizeHandler () 234 ~FinalizeHandler()
235 { 235 {
236 SCIM_DEBUG_FRONTEND(1) << "FinalizeHandler::~FinalizeHandler ()\n"; 236 SCIM_DEBUG_FRONTEND(1) << "FinalizeHandler::~FinalizeHandler()\n";
237 isf_imf_context_shutdown (); 237 isf_imf_context_shutdown();
238 } 238 }
239}; 239};
240 240
@@ -254,12 +254,12 @@ utf8_offset_to_index(const char *str, int offset)
254} 254}
255 255
256static unsigned int 256static unsigned int
257get_time (void) 257get_time(void)
258{ 258{
259 unsigned int tint; 259 unsigned int tint;
260 struct timeval tv; 260 struct timeval tv;
261 struct timezone tz; /* is not used since ages */ 261 struct timezone tz; /* is not used since ages */
262 gettimeofday (&tv, &tz); 262 gettimeofday(&tv, &tz);
263 tint = tv.tv_sec * 1000; 263 tint = tv.tv_sec * 1000;
264 tint = tint / 1000 * 1000; 264 tint = tint / 1000 * 1000;
265 tint = tint + tv.tv_usec / 1000; 265 tint = tint + tv.tv_usec / 1000;
@@ -268,7 +268,7 @@ get_time (void)
268 268
269/* Function Implementations */ 269/* Function Implementations */
270static EcoreIMFContextISFImpl * 270static EcoreIMFContextISFImpl *
271new_ic_impl (EcoreIMFContextISF *parent) 271new_ic_impl(EcoreIMFContextISF *parent)
272{ 272{
273 EcoreIMFContextISFImpl *impl = NULL; 273 EcoreIMFContextISFImpl *impl = NULL;
274 274
@@ -295,7 +295,7 @@ new_ic_impl (EcoreIMFContextISF *parent)
295} 295}
296 296
297static void 297static void
298delete_ic_impl (EcoreIMFContextISFImpl *impl) 298delete_ic_impl(EcoreIMFContextISFImpl *impl)
299{ 299{
300 EcoreIMFContextISFImpl *rec = _used_ic_impl_list, *last = 0; 300 EcoreIMFContextISFImpl *rec = _used_ic_impl_list, *last = 0;
301 301
@@ -312,10 +312,10 @@ delete_ic_impl (EcoreIMFContextISFImpl *impl)
312 _free_ic_impl_list = rec; 312 _free_ic_impl_list = rec;
313 313
314 rec->parent = 0; 314 rec->parent = 0;
315 rec->si.reset (); 315 rec->si.reset();
316 rec->client_window = 0; 316 rec->client_window = 0;
317 rec->preedit_string = WideString (); 317 rec->preedit_string = WideString();
318 rec->preedit_attrlist.clear (); 318 rec->preedit_attrlist.clear();
319 319
320 return; 320 return;
321 } 321 }
@@ -323,7 +323,7 @@ delete_ic_impl (EcoreIMFContextISFImpl *impl)
323} 323}
324 324
325static void 325static void
326delete_all_ic_impl (void) 326delete_all_ic_impl(void)
327{ 327{
328 EcoreIMFContextISFImpl *it = _used_ic_impl_list; 328 EcoreIMFContextISFImpl *it = _used_ic_impl_list;
329 329
@@ -344,7 +344,7 @@ delete_all_ic_impl (void)
344} 344}
345 345
346static EcoreIMFContextISF * 346static EcoreIMFContextISF *
347find_ic (int id) 347find_ic(int id)
348{ 348{
349 EcoreIMFContextISFImpl *rec = _used_ic_impl_list; 349 EcoreIMFContextISFImpl *rec = _used_ic_impl_list;
350 350
@@ -363,17 +363,18 @@ analyze_surrounding_text(Ecore_IMF_Context *ctx)
363{ 363{
364 char *plain_str = NULL; 364 char *plain_str = NULL;
365 char *markup_str = NULL; 365 char *markup_str = NULL;
366 const char *puncs[3] = {". ", "! ", "? "}; 366 const char *puncs[] = {". ", "! ", "? "};
367 Eina_Bool ret = EINA_FALSE; 367 Eina_Bool ret = EINA_FALSE;
368 int cursor_pos = 0; 368 int cursor_pos = 0;
369 int i = 0; 369 int i = 0;
370 Eina_Unicode *tail = NULL; 370 Eina_Unicode *tail = NULL;
371 Eina_Unicode *ustr = NULL; 371 Eina_Unicode *ustr = NULL;
372 Eina_Unicode *uni_puncs[3]; 372 const int punc_num = sizeof(puncs) / sizeof(puncs[0]);
373 Eina_Unicode *uni_puncs[punc_num];
373 EcoreIMFContextISF *context_scim; 374 EcoreIMFContextISF *context_scim;
374 375
375 if (!ctx) return EINA_FALSE; 376 if (!ctx) return EINA_FALSE;
376 context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx); 377 context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get(ctx);
377 if (!context_scim || !context_scim->impl) return EINA_FALSE; 378 if (!context_scim || !context_scim->impl) return EINA_FALSE;
378 379
379 switch (context_scim->impl->autocapital_type) 380 switch (context_scim->impl->autocapital_type)
@@ -386,7 +387,7 @@ analyze_surrounding_text(Ecore_IMF_Context *ctx)
386 break; 387 break;
387 } 388 }
388 389
389 for (i=0; i<3; i++) 390 for (i = 0; i < punc_num; i++)
390 uni_puncs[i] = eina_unicode_utf8_to_unicode(puncs[i], NULL); 391 uni_puncs[i] = eina_unicode_utf8_to_unicode(puncs[i], NULL);
391 392
392 ecore_imf_context_surrounding_get(ctx, &markup_str, &cursor_pos); 393 ecore_imf_context_surrounding_get(ctx, &markup_str, &cursor_pos);
@@ -432,7 +433,7 @@ analyze_surrounding_text(Ecore_IMF_Context *ctx)
432 433
433 if (tail) 434 if (tail)
434 { 435 {
435 for (i=0; i<3; i++) 436 for (i = 0; i < punc_num; i++)
436 { 437 {
437 if (!eina_unicode_strcmp(tail, uni_puncs[i])) 438 if (!eina_unicode_strcmp(tail, uni_puncs[i]))
438 { 439 {
@@ -450,7 +451,7 @@ done:
450 if (markup_str) free(markup_str); 451 if (markup_str) free(markup_str);
451 if (plain_str) free(plain_str); 452 if (plain_str) free(plain_str);
452 453
453 for (i=0; i<3; i++) 454 for (i = 0; i < punc_num; i++)
454 if (uni_puncs[i]) free(uni_puncs[i]); 455 if (uni_puncs[i]) free(uni_puncs[i]);
455 456
456 return ret; 457 return ret;
@@ -463,7 +464,7 @@ caps_mode_check(Ecore_IMF_Context *ctx, Eina_Bool force)
463 EcoreIMFContextISF *context_scim; 464 EcoreIMFContextISF *context_scim;
464 465
465 if (!ctx) return; 466 if (!ctx) return;
466 context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx); 467 context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get(ctx);
467 468
468 if (autocap_allow == EINA_FALSE) 469 if (autocap_allow == EINA_FALSE)
469 return; 470 return;
@@ -485,28 +486,52 @@ caps_mode_check(Ecore_IMF_Context *ctx, Eina_Bool force)
485} 486}
486 487
487static void 488static void
488feed_key_event (Evas *evas, const char *str, Eina_Bool fake) 489feed_key_event(Evas *evas, const char *str, Eina_Bool fake)
489{ 490{
490 char key_string[128] = {0}; 491 char key_string[128] = {0};
491 unsigned int timestamp = 0; 492 unsigned int timestamp = 0;
492 493
493 if (!fake) 494 if (!fake)
494 timestamp = get_time (); 495 timestamp = get_time();
495 496
496 if (strncmp (str, "KeyRelease+", 11) == 0) 497 if (strncmp(str, "KeyRelease+", 11) == 0)
497 { 498 {
498 strncpy(key_string, str + 11, strlen(str)-11); 499 strncpy(key_string, str + 11, strlen(str)-11);
499 evas_event_feed_key_up (evas, key_string, key_string, NULL, NULL, timestamp, NULL); 500 evas_event_feed_key_up(evas, key_string, key_string, NULL, NULL, timestamp, NULL);
500 SCIM_DEBUG_FRONTEND(1) << " evas_event_feed_key_up ()...\n"; 501 SCIM_DEBUG_FRONTEND(1) << " evas_event_feed_key_up()...\n";
501 } 502 }
502 else 503 else
503 { 504 {
504 strncpy(key_string, str, strlen(str)); 505 strncpy(key_string, str, strlen(str));
505 evas_event_feed_key_down (evas, key_string, key_string, NULL, NULL, timestamp, NULL); 506 evas_event_feed_key_down(evas, key_string, key_string, NULL, NULL, timestamp, NULL);
506 SCIM_DEBUG_FRONTEND(1) << " evas_event_feed_key_down ()...\n"; 507 SCIM_DEBUG_FRONTEND(1) << " evas_event_feed_key_down()...\n";
507 } 508 }
508} 509}
509 510
511static void
512window_to_screen_geometry_get(Ecore_X_Window client_win, int *x, int *y)
513{
514 Ecore_X_Window root_window, win;
515 int win_x, win_y;
516 int sum_x = 0, sum_y = 0;
517
518 root_window = ecore_x_window_root_get(client_win);
519 win = client_win;
520
521 while (root_window != win)
522 {
523 ecore_x_window_geometry_get(win, &win_x, &win_y, NULL, NULL);
524 sum_x += win_x;
525 sum_y += win_y;
526 win = ecore_x_window_parent_get(win);
527 }
528
529 if (x)
530 *x = sum_x;
531 if (y)
532 *y = sum_y;
533}
534
510/* Public functions */ 535/* Public functions */
511/** 536/**
512 * isf_imf_context_new 537 * isf_imf_context_new
@@ -517,18 +542,11 @@ feed_key_event (Evas *evas, const char *str, Eina_Bool fake)
517 * Return value: A pointer to the newly created EcoreIMFContextISF instance 542 * Return value: A pointer to the newly created EcoreIMFContextISF instance
518 */ 543 */
519EAPI EcoreIMFContextISF * 544EAPI EcoreIMFContextISF *
520isf_imf_context_new (void) 545isf_imf_context_new(void)
521{ 546{
522 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 547 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
523 char *env; 548 char *env;
524 549
525 Ecore_X_Display *display = ecore_x_display_get ();
526 if (!display)
527 {
528 std::cerr << "ecore_x_display_get () failed !!!";
529 return NULL;
530 }
531
532 EcoreIMFContextISF *context_scim = new EcoreIMFContextISF; 550 EcoreIMFContextISF *context_scim = new EcoreIMFContextISF;
533 if (context_scim == NULL) 551 if (context_scim == NULL)
534 { 552 {
@@ -540,7 +558,7 @@ isf_imf_context_new (void)
540 558
541 if (!_scim_initialized) 559 if (!_scim_initialized)
542 { 560 {
543 initialize (); 561 initialize();
544 _scim_initialized = true; 562 _scim_initialized = true;
545 } 563 }
546 564
@@ -558,61 +576,61 @@ isf_imf_context_new (void)
558 * cleanup job. 576 * cleanup job.
559 */ 577 */
560EAPI void 578EAPI void
561isf_imf_context_shutdown (void) 579isf_imf_context_shutdown(void)
562{ 580{
563 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 581 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
564 582
565 if (_scim_initialized) 583 if (_scim_initialized)
566 { 584 {
567 _scim_initialized = false; 585 _scim_initialized = false;
568 finalize (); 586 finalize();
569 } 587 }
570} 588}
571 589
572EAPI void 590EAPI void
573isf_imf_context_add (Ecore_IMF_Context *ctx) 591isf_imf_context_add(Ecore_IMF_Context *ctx)
574{ 592{
575 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 593 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
576 594
577 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF*)ecore_imf_context_data_get (ctx); 595 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF*)ecore_imf_context_data_get(ctx);
578 596
579 if (!context_scim) return; 597 if (!context_scim) return;
580 598
581 context_scim->impl = NULL; 599 context_scim->impl = NULL;
582 600
583 if (_backend.null ()) 601 if (_backend.null())
584 return; 602 return;
585 603
586 IMEngineInstancePointer si; 604 IMEngineInstancePointer si;
587 605
588 // Use the default instance if "shared input method" mode is enabled. 606 // Use the default instance if "shared input method" mode is enabled.
589 if (_shared_input_method && !_default_instance.null ()) 607 if (_shared_input_method && !_default_instance.null())
590 { 608 {
591 si = _default_instance; 609 si = _default_instance;
592 SCIM_DEBUG_FRONTEND(2) << "use default instance: " << si->get_id () << " " << si->get_factory_uuid () << "\n"; 610 SCIM_DEBUG_FRONTEND(2) << "use default instance: " << si->get_id() << " " << si->get_factory_uuid() << "\n";
593 } 611 }
594 612
595 // Not in "shared input method" mode, or no default instance, create an instance. 613 // Not in "shared input method" mode, or no default instance, create an instance.
596 if (si.null ()) 614 if (si.null())
597 { 615 {
598 IMEngineFactoryPointer factory = _backend->get_default_factory (_language, "UTF-8"); 616 IMEngineFactoryPointer factory = _backend->get_default_factory(_language, "UTF-8");
599 if (factory.null ()) return; 617 if (factory.null()) return;
600 si = factory->create_instance ("UTF-8", _instance_count++); 618 si = factory->create_instance("UTF-8", _instance_count++);
601 if (si.null ()) return; 619 if (si.null()) return;
602 attach_instance (si); 620 attach_instance(si);
603 SCIM_DEBUG_FRONTEND(2) << "create new instance: " << si->get_id () << " " << si->get_factory_uuid () << "\n"; 621 SCIM_DEBUG_FRONTEND(2) << "create new instance: " << si->get_id() << " " << si->get_factory_uuid() << "\n";
604 } 622 }
605 623
606 // If "shared input method" mode is enabled, and there is no default instance, 624 // If "shared input method" mode is enabled, and there is no default instance,
607 // then store this instance as default one. 625 // then store this instance as default one.
608 if (_shared_input_method && _default_instance.null ()) 626 if (_shared_input_method && _default_instance.null())
609 { 627 {
610 SCIM_DEBUG_FRONTEND(2) << "update default instance.\n"; 628 SCIM_DEBUG_FRONTEND(2) << "update default instance.\n";
611 _default_instance = si; 629 _default_instance = si;
612 } 630 }
613 631
614 context_scim->ctx = ctx; 632 context_scim->ctx = ctx;
615 context_scim->impl = new_ic_impl (context_scim); 633 context_scim->impl = new_ic_impl(context_scim);
616 if (context_scim->impl == NULL) 634 if (context_scim->impl == NULL)
617 { 635 {
618 std::cerr << "memory allocation failed in " << __FUNCTION__ << "\n"; 636 std::cerr << "memory allocation failed in " << __FUNCTION__ << "\n";
@@ -640,24 +658,24 @@ isf_imf_context_add (Ecore_IMF_Context *ctx)
640 _ic_list = context_scim; 658 _ic_list = context_scim;
641 659
642 if (_shared_input_method) 660 if (_shared_input_method)
643 context_scim->impl->is_on = _config->read (String (SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), context_scim->impl->is_on); 661 context_scim->impl->is_on = _config->read(String(SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), context_scim->impl->is_on);
644 662
645 _panel_client.prepare (context_scim->id); 663 _panel_client.prepare(context_scim->id);
646 _panel_client.register_input_context (context_scim->id, si->get_factory_uuid ()); 664 _panel_client.register_input_context(context_scim->id, si->get_factory_uuid());
647 set_ic_capabilities (context_scim); 665 set_ic_capabilities(context_scim);
648 _panel_client.send (); 666 _panel_client.send();
649 667
650 SCIM_DEBUG_FRONTEND(2) << "input context created: id = " << context_scim->id << "\n"; 668 SCIM_DEBUG_FRONTEND(2) << "input context created: id = " << context_scim->id << "\n";
651} 669}
652 670
653EAPI void 671EAPI void
654isf_imf_context_del (Ecore_IMF_Context *ctx) 672isf_imf_context_del(Ecore_IMF_Context *ctx)
655{ 673{
656 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 674 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
657 675
658 if (!_ic_list) return; 676 if (!_ic_list) return;
659 677
660 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF*)ecore_imf_context_data_get (ctx); 678 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF*)ecore_imf_context_data_get(ctx);
661 679
662 if (context_scim) 680 if (context_scim)
663 { 681 {
@@ -682,32 +700,32 @@ isf_imf_context_del (Ecore_IMF_Context *ctx)
682 700
683 if (context_scim && context_scim->impl) 701 if (context_scim && context_scim->impl)
684 { 702 {
685 _panel_client.prepare (context_scim->id); 703 _panel_client.prepare(context_scim->id);
686 704
687 if (context_scim == _focused_ic) 705 if (context_scim == _focused_ic)
688 context_scim->impl->si->focus_out (); 706 context_scim->impl->si->focus_out();
689 707
690 // Delete the instance. 708 // Delete the instance.
691 EcoreIMFContextISF *old_focused = _focused_ic; 709 EcoreIMFContextISF *old_focused = _focused_ic;
692 _focused_ic = context_scim; 710 _focused_ic = context_scim;
693 context_scim->impl->si.reset (); 711 context_scim->impl->si.reset();
694 _focused_ic = old_focused; 712 _focused_ic = old_focused;
695 713
696 if (context_scim == _focused_ic) 714 if (context_scim == _focused_ic)
697 { 715 {
698 _panel_client.turn_off (context_scim->id); 716 _panel_client.turn_off(context_scim->id);
699 _panel_client.focus_out (context_scim->id); 717 _panel_client.focus_out(context_scim->id);
700 } 718 }
701 719
702 _panel_client.remove_input_context (context_scim->id); 720 _panel_client.remove_input_context(context_scim->id);
703 _panel_client.send (); 721 _panel_client.send();
704 722
705 if (context_scim->impl->client_window) 723 if (context_scim->impl->client_window)
706 isf_imf_context_client_window_set (ctx, NULL); 724 isf_imf_context_client_window_set(ctx, NULL);
707 725
708 if (context_scim->impl) 726 if (context_scim->impl)
709 { 727 {
710 delete_ic_impl (context_scim->impl); 728 delete_ic_impl(context_scim->impl);
711 context_scim->impl = 0; 729 context_scim->impl = 0;
712 } 730 }
713 } 731 }
@@ -738,11 +756,11 @@ isf_imf_context_del (Ecore_IMF_Context *ctx)
738 * be used for purposes internal to the Input Method Context. 756 * be used for purposes internal to the Input Method Context.
739 */ 757 */
740EAPI void 758EAPI void
741isf_imf_context_client_canvas_set (Ecore_IMF_Context *ctx, void *canvas) 759isf_imf_context_client_canvas_set(Ecore_IMF_Context *ctx, void *canvas)
742{ 760{
743 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 761 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
744 762
745 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx); 763 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get(ctx);
746 764
747 if (context_scim && context_scim->impl && context_scim->impl->client_canvas != (Evas*) canvas) 765 if (context_scim && context_scim->impl && context_scim->impl->client_canvas != (Evas*) canvas)
748 context_scim->impl->client_canvas = (Evas*)canvas; 766 context_scim->impl->client_canvas = (Evas*)canvas;
@@ -762,11 +780,11 @@ isf_imf_context_client_canvas_set (Ecore_IMF_Context *ctx, void *canvas)
762 * and may also be used for purposes internal to the Input Method Context. 780 * and may also be used for purposes internal to the Input Method Context.
763 */ 781 */
764EAPI void 782EAPI void
765isf_imf_context_client_window_set (Ecore_IMF_Context *ctx, void *window) 783isf_imf_context_client_window_set(Ecore_IMF_Context *ctx, void *window)
766{ 784{
767 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 785 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
768 786
769 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx); 787 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get(ctx);
770 788
771 if (context_scim && context_scim->impl && context_scim->impl->client_window != (Ecore_X_Window)((Ecore_Window)window)) 789 if (context_scim && context_scim->impl && context_scim->impl->client_window != (Ecore_X_Window)((Ecore_Window)window))
772 { 790 {
@@ -789,29 +807,29 @@ isf_imf_context_client_window_set (Ecore_IMF_Context *ctx, void *window)
789 * to clear the preedit state. 807 * to clear the preedit state.
790 */ 808 */
791EAPI void 809EAPI void
792isf_imf_context_reset (Ecore_IMF_Context *ctx) 810isf_imf_context_reset(Ecore_IMF_Context *ctx)
793{ 811{
794 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 812 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
795 813
796 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx); 814 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get(ctx);
797 815
798 if (context_scim && context_scim->impl && context_scim == _focused_ic) 816 if (context_scim && context_scim->impl && context_scim == _focused_ic)
799 { 817 {
800 WideString wstr = context_scim->impl->preedit_string; 818 WideString wstr = context_scim->impl->preedit_string;
801 819
802 _panel_client.prepare (context_scim->id); 820 _panel_client.prepare(context_scim->id);
803 context_scim->impl->si->reset (); 821 context_scim->impl->si->reset();
804 _panel_client.send (); 822 _panel_client.send();
805 823
806 if (context_scim->impl->need_commit_preedit) 824 if (context_scim->impl->need_commit_preedit)
807 { 825 {
808 if (wstr.length ()) 826 if (wstr.length())
809 { 827 {
810 ecore_imf_context_commit_event_add (context_scim->ctx, utf8_wcstombs (wstr).c_str ()); 828 ecore_imf_context_commit_event_add(context_scim->ctx, utf8_wcstombs(wstr).c_str());
811 ecore_imf_context_event_callback_call(context_scim->ctx, ECORE_IMF_CALLBACK_COMMIT, (void *)utf8_wcstombs(wstr).c_str()); 829 ecore_imf_context_event_callback_call(context_scim->ctx, ECORE_IMF_CALLBACK_COMMIT, (void *)utf8_wcstombs(wstr).c_str());
812 } 830 }
813 _panel_client.prepare (context_scim->id); 831 _panel_client.prepare(context_scim->id);
814 _panel_client.send (); 832 _panel_client.send();
815 } 833 }
816 } 834 }
817} 835}
@@ -825,9 +843,9 @@ isf_imf_context_reset (Ecore_IMF_Context *ctx)
825 * Notify the Input Method Context that the widget to which its correspond has gained focus. 843 * Notify the Input Method Context that the widget to which its correspond has gained focus.
826 */ 844 */
827EAPI void 845EAPI void
828isf_imf_context_focus_in (Ecore_IMF_Context *ctx) 846isf_imf_context_focus_in(Ecore_IMF_Context *ctx)
829{ 847{
830 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx); 848 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get(ctx);
831 849
832 if (!context_scim) 850 if (!context_scim)
833 return; 851 return;
@@ -839,12 +857,11 @@ isf_imf_context_focus_in (Ecore_IMF_Context *ctx)
839 if (_focused_ic == context_scim) 857 if (_focused_ic == context_scim)
840 { 858 {
841 SCIM_DEBUG_FRONTEND(1) << "It's already focused.\n"; 859 SCIM_DEBUG_FRONTEND(1) << "It's already focused.\n";
842 //isf_imf_context_cursor_position_set (ctx, 0);
843 return; 860 return;
844 } 861 }
845 SCIM_DEBUG_FRONTEND(1) << "Focus out previous IC first: " << _focused_ic->id << "\n"; 862 SCIM_DEBUG_FRONTEND(1) << "Focus out previous IC first: " << _focused_ic->id << "\n";
846 if (_focused_ic->ctx) 863 if (_focused_ic->ctx)
847 isf_imf_context_focus_out (_focused_ic->ctx); 864 isf_imf_context_focus_out(_focused_ic->ctx);
848 } 865 }
849 866
850 bool need_cap = false; 867 bool need_cap = false;
@@ -854,28 +871,28 @@ isf_imf_context_focus_in (Ecore_IMF_Context *ctx)
854 if (context_scim && context_scim->impl) 871 if (context_scim && context_scim->impl)
855 { 872 {
856 _focused_ic = context_scim; 873 _focused_ic = context_scim;
857 _panel_client.prepare (context_scim->id); 874 _panel_client.prepare(context_scim->id);
858 875
859 // Handle the "Shared Input Method" mode. 876 // Handle the "Shared Input Method" mode.
860 if (_shared_input_method) 877 if (_shared_input_method)
861 { 878 {
862 SCIM_DEBUG_FRONTEND(2) << "shared input method.\n"; 879 SCIM_DEBUG_FRONTEND(2) << "shared input method.\n";
863 IMEngineFactoryPointer factory = _backend->get_default_factory (_language, "UTF-8"); 880 IMEngineFactoryPointer factory = _backend->get_default_factory(_language, "UTF-8");
864 if (!factory.null ()) 881 if (!factory.null())
865 { 882 {
866 if (_default_instance.null () || _default_instance->get_factory_uuid () != factory->get_uuid ()) 883 if (_default_instance.null() || _default_instance->get_factory_uuid() != factory->get_uuid())
867 { 884 {
868 _default_instance = factory->create_instance ("UTF-8", _default_instance.null () ? _instance_count++ : _default_instance->get_id ()); 885 _default_instance = factory->create_instance("UTF-8", _default_instance.null() ? _instance_count++ : _default_instance->get_id());
869 attach_instance (_default_instance); 886 attach_instance(_default_instance);
870 SCIM_DEBUG_FRONTEND(2) << "create new default instance: " << _default_instance->get_id () << " " << _default_instance->get_factory_uuid () << "\n"; 887 SCIM_DEBUG_FRONTEND(2) << "create new default instance: " << _default_instance->get_id() << " " << _default_instance->get_factory_uuid() << "\n";
871 } 888 }
872 889
873 context_scim->impl->shared_si = true; 890 context_scim->impl->shared_si = true;
874 context_scim->impl->si = _default_instance; 891 context_scim->impl->si = _default_instance;
875 892
876 context_scim->impl->is_on = _config->read (String (SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), context_scim->impl->is_on); 893 context_scim->impl->is_on = _config->read(String(SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), context_scim->impl->is_on);
877 context_scim->impl->preedit_string.clear (); 894 context_scim->impl->preedit_string.clear();
878 context_scim->impl->preedit_attrlist.clear (); 895 context_scim->impl->preedit_attrlist.clear();
879 context_scim->impl->preedit_caret = 0; 896 context_scim->impl->preedit_caret = 0;
880 context_scim->impl->preedit_started = false; 897 context_scim->impl->preedit_started = false;
881 need_cap = true; 898 need_cap = true;
@@ -886,47 +903,50 @@ isf_imf_context_focus_in (Ecore_IMF_Context *ctx)
886 else if (context_scim->impl->shared_si) 903 else if (context_scim->impl->shared_si)
887 { 904 {
888 SCIM_DEBUG_FRONTEND(2) << "exit shared input method.\n"; 905 SCIM_DEBUG_FRONTEND(2) << "exit shared input method.\n";
889 IMEngineFactoryPointer factory = _backend->get_default_factory (_language, "UTF-8"); 906 IMEngineFactoryPointer factory = _backend->get_default_factory(_language, "UTF-8");
890 if (!factory.null ()) 907 if (!factory.null())
891 { 908 {
892 context_scim->impl->si = factory->create_instance ("UTF-8", _instance_count++); 909 context_scim->impl->si = factory->create_instance("UTF-8", _instance_count++);
893 context_scim->impl->preedit_string.clear (); 910 context_scim->impl->preedit_string.clear();
894 context_scim->impl->preedit_attrlist.clear (); 911 context_scim->impl->preedit_attrlist.clear();
895 context_scim->impl->preedit_caret = 0; 912 context_scim->impl->preedit_caret = 0;
896 context_scim->impl->preedit_started = false; 913 context_scim->impl->preedit_started = false;
897 attach_instance (context_scim->impl->si); 914 attach_instance(context_scim->impl->si);
898 need_cap = true; 915 need_cap = true;
899 need_reg = true; 916 need_reg = true;
900 context_scim->impl->shared_si = false; 917 context_scim->impl->shared_si = false;
901 SCIM_DEBUG_FRONTEND(2) << "create new instance: " << context_scim->impl->si->get_id () << " " << context_scim->impl->si->get_factory_uuid () << "\n"; 918 SCIM_DEBUG_FRONTEND(2) << "create new instance: " << context_scim->impl->si->get_id() << " " << context_scim->impl->si->get_factory_uuid() << "\n";
902 } 919 }
903 } 920 }
904 921
905 context_scim->impl->si->set_frontend_data (static_cast <void*> (context_scim)); 922 context_scim->impl->si->set_frontend_data(static_cast <void*>(context_scim));
906 923
907 if (need_reg) _panel_client.register_input_context (context_scim->id, context_scim->impl->si->get_factory_uuid ()); 924 if (need_reg) _panel_client.register_input_context(context_scim->id, context_scim->impl->si->get_factory_uuid());
908 if (need_cap) set_ic_capabilities (context_scim); 925 if (need_cap) set_ic_capabilities(context_scim);
909 if (need_reset) context_scim->impl->si->reset (); 926 if (need_reset) context_scim->impl->si->reset();
910 927
911 panel_req_focus_in (context_scim); 928 panel_req_focus_in(context_scim);
912 panel_req_update_spot_location (context_scim); 929 panel_req_update_spot_location(context_scim);
913 panel_req_update_factory_info (context_scim); 930 panel_req_update_factory_info(context_scim);
914 931
915 if (context_scim->impl->is_on) 932 if (context_scim->impl->is_on)
916 { 933 {
917 _panel_client.turn_on (context_scim->id); 934 _panel_client.turn_on(context_scim->id);
918 _panel_client.hide_preedit_string (context_scim->id); 935 _panel_client.hide_preedit_string(context_scim->id);
919 _panel_client.hide_aux_string (context_scim->id); 936 _panel_client.hide_aux_string(context_scim->id);
920 _panel_client.hide_lookup_table (context_scim->id); 937 _panel_client.hide_lookup_table(context_scim->id);
921 context_scim->impl->si->focus_in (); 938 context_scim->impl->si->focus_in();
922 } 939 }
923 else 940 else
924 { 941 {
925 _panel_client.turn_off (context_scim->id); 942 _panel_client.turn_off(context_scim->id);
926 } 943 }
927 944
928 _panel_client.send (); 945 _panel_client.send();
929 } 946 }
947
948 if (ecore_imf_context_input_panel_enabled_get(ctx))
949 ecore_imf_context_input_panel_show(ctx);
930} 950}
931 951
932/** 952/**
@@ -938,9 +958,9 @@ isf_imf_context_focus_in (Ecore_IMF_Context *ctx)
938 * Notify the Input Method Context that the widget to which its correspond has lost focus. 958 * Notify the Input Method Context that the widget to which its correspond has lost focus.
939 */ 959 */
940EAPI void 960EAPI void
941isf_imf_context_focus_out (Ecore_IMF_Context *ctx) 961isf_imf_context_focus_out(Ecore_IMF_Context *ctx)
942{ 962{
943 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx); 963 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get(ctx);
944 964
945 if (!context_scim) return; 965 if (!context_scim) return;
946 966
@@ -952,23 +972,26 @@ isf_imf_context_focus_out (Ecore_IMF_Context *ctx)
952 972
953 if (context_scim->impl->need_commit_preedit) 973 if (context_scim->impl->need_commit_preedit)
954 { 974 {
955 if (wstr.length ()) 975 if (wstr.length())
956 { 976 {
957 ecore_imf_context_commit_event_add (context_scim->ctx, utf8_wcstombs (wstr).c_str ()); 977 ecore_imf_context_commit_event_add(context_scim->ctx, utf8_wcstombs(wstr).c_str());
958 ecore_imf_context_event_callback_call(context_scim->ctx, ECORE_IMF_CALLBACK_COMMIT, (void *)utf8_wcstombs(wstr).c_str()); 978 ecore_imf_context_event_callback_call(context_scim->ctx, ECORE_IMF_CALLBACK_COMMIT, (void *)utf8_wcstombs(wstr).c_str());
959 } 979 }
960 _panel_client.prepare (context_scim->id); 980 _panel_client.prepare(context_scim->id);
961 _panel_client.send (); 981 _panel_client.send();
962 } 982 }
963 983
964 _panel_client.prepare (context_scim->id); 984 _panel_client.prepare(context_scim->id);
965 context_scim->impl->si->focus_out (); 985 context_scim->impl->si->focus_out();
966 context_scim->impl->si->reset (); 986 context_scim->impl->si->reset();
967 _panel_client.turn_off (context_scim->id); 987 _panel_client.turn_off(context_scim->id);
968 _panel_client.focus_out (context_scim->id); 988 _panel_client.focus_out(context_scim->id);
969 _panel_client.send (); 989 _panel_client.send();
970 _focused_ic = 0; 990 _focused_ic = 0;
971 } 991 }
992
993 if (ecore_imf_context_input_panel_enabled_get(ctx))
994 ecore_imf_context_input_panel_hide(ctx);
972} 995}
973 996
974/** 997/**
@@ -984,11 +1007,11 @@ isf_imf_context_focus_out (Ecore_IMF_Context *ctx)
984 * Notify the Input Method Context that a change in the cursor location has been made. 1007 * Notify the Input Method Context that a change in the cursor location has been made.
985 */ 1008 */
986EAPI void 1009EAPI void
987isf_imf_context_cursor_location_set (Ecore_IMF_Context *ctx, int cx, int cy, int cw, int ch) 1010isf_imf_context_cursor_location_set(Ecore_IMF_Context *ctx, int cx, int cy, int cw, int ch)
988{ 1011{
989 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 1012 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
990 1013
991 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx); 1014 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get(ctx);
992 Ecore_Evas *ee; 1015 Ecore_Evas *ee;
993 int canvas_x, canvas_y; 1016 int canvas_x, canvas_y;
994 1017
@@ -1001,21 +1024,28 @@ isf_imf_context_cursor_location_set (Ecore_IMF_Context *ctx, int cx, int cy, int
1001 if (context_scim->impl->preedit_updating) 1024 if (context_scim->impl->preedit_updating)
1002 return; 1025 return;
1003 1026
1004 if (!context_scim->impl->client_canvas) 1027 if (context_scim->impl->client_canvas)
1005 return; 1028 {
1006 1029 ee = ecore_evas_ecore_evas_get(context_scim->impl->client_canvas);
1007 ee = ecore_evas_ecore_evas_get(context_scim->impl->client_canvas); 1030 if (!ee) return;
1008 if (!ee) return;
1009 1031
1010 ecore_evas_geometry_get (ee, &canvas_x, &canvas_y, NULL, NULL); 1032 ecore_evas_geometry_get(ee, &canvas_x, &canvas_y, NULL, NULL);
1033 }
1034 else
1035 {
1036 if (context_scim->impl->client_window)
1037 window_to_screen_geometry_get(context_scim->impl->client_window, &canvas_x, &canvas_y);
1038 else
1039 return;
1040 }
1011 1041
1012 if (context_scim->impl->cursor_x != canvas_x + cx || context_scim->impl->cursor_y != canvas_y + cy + ch) 1042 if (context_scim->impl->cursor_x != canvas_x + cx || context_scim->impl->cursor_y != canvas_y + cy + ch)
1013 { 1043 {
1014 context_scim->impl->cursor_x = canvas_x + cx; 1044 context_scim->impl->cursor_x = canvas_x + cx;
1015 context_scim->impl->cursor_y = canvas_y + cy + ch; 1045 context_scim->impl->cursor_y = canvas_y + cy + ch;
1016 _panel_client.prepare (context_scim->id); 1046 _panel_client.prepare(context_scim->id);
1017 panel_req_update_spot_location (context_scim); 1047 panel_req_update_spot_location(context_scim);
1018 _panel_client.send (); 1048 _panel_client.send();
1019 SCIM_DEBUG_FRONTEND(2) << "new cursor location = " << context_scim->impl->cursor_x << "," << context_scim->impl->cursor_y << "\n"; 1049 SCIM_DEBUG_FRONTEND(2) << "new cursor location = " << context_scim->impl->cursor_x << "," << context_scim->impl->cursor_y << "\n";
1020 } 1050 }
1021 } 1051 }
@@ -1033,11 +1063,11 @@ isf_imf_context_cursor_location_set (Ecore_IMF_Context *ctx, int cx, int cy, int
1033 * display feedback, such as displaying it in a child of the root window. 1063 * display feedback, such as displaying it in a child of the root window.
1034 */ 1064 */
1035EAPI void 1065EAPI void
1036isf_imf_context_use_preedit_set (Ecore_IMF_Context* ctx, Eina_Bool use_preedit) 1066isf_imf_context_use_preedit_set(Ecore_IMF_Context* ctx, Eina_Bool use_preedit)
1037{ 1067{
1038 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " = " << (use_preedit ? "true" : "false") << "...\n"; 1068 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " = " << (use_preedit ? "true" : "false") << "...\n";
1039 1069
1040 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF*)ecore_imf_context_data_get (ctx); 1070 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF*)ecore_imf_context_data_get(ctx);
1041 1071
1042 if (!_on_the_spot) return; 1072 if (!_on_the_spot) return;
1043 1073
@@ -1047,36 +1077,36 @@ isf_imf_context_use_preedit_set (Ecore_IMF_Context* ctx, Eina_Bool use_preedit)
1047 context_scim->impl->use_preedit = use_preedit; 1077 context_scim->impl->use_preedit = use_preedit;
1048 if (context_scim == _focused_ic) 1078 if (context_scim == _focused_ic)
1049 { 1079 {
1050 _panel_client.prepare (context_scim->id); 1080 _panel_client.prepare(context_scim->id);
1051 1081
1052 if (old != use_preedit) 1082 if (old != use_preedit)
1053 set_ic_capabilities (context_scim); 1083 set_ic_capabilities(context_scim);
1054 1084
1055 if (context_scim->impl->preedit_string.length ()) 1085 if (context_scim->impl->preedit_string.length())
1056 slot_show_preedit_string (context_scim->impl->si); 1086 slot_show_preedit_string(context_scim->impl->si);
1057 1087
1058 _panel_client.send (); 1088 _panel_client.send();
1059 } 1089 }
1060 } 1090 }
1061} 1091}
1062 1092
1063EAPI void 1093EAPI void
1064isf_imf_context_preedit_string_with_attributes_get (Ecore_IMF_Context *ctx, char** str, Eina_List **attrs, int *cursor_pos) 1094isf_imf_context_preedit_string_with_attributes_get(Ecore_IMF_Context *ctx, char** str, Eina_List **attrs, int *cursor_pos)
1065{ 1095{
1066 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 1096 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1067 1097
1068 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF*)ecore_imf_context_data_get (ctx); 1098 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF*)ecore_imf_context_data_get(ctx);
1069 1099
1070 if (context_scim && context_scim->impl && context_scim->impl->is_on) 1100 if (context_scim && context_scim->impl && context_scim->impl->is_on)
1071 { 1101 {
1072 String mbs = utf8_wcstombs (context_scim->impl->preedit_string); 1102 String mbs = utf8_wcstombs(context_scim->impl->preedit_string);
1073 1103
1074 if (str) 1104 if (str)
1075 { 1105 {
1076 if (mbs.length ()) 1106 if (mbs.length())
1077 *str = strdup (mbs.c_str ()); 1107 *str = strdup(mbs.c_str());
1078 else 1108 else
1079 *str = strdup (""); 1109 *str = strdup("");
1080 } 1110 }
1081 1111
1082 if (cursor_pos) 1112 if (cursor_pos)
@@ -1086,28 +1116,28 @@ isf_imf_context_preedit_string_with_attributes_get (Ecore_IMF_Context *ctx, char
1086 1116
1087 if (attrs) 1117 if (attrs)
1088 { 1118 {
1089 if (mbs.length ()) 1119 if (mbs.length())
1090 { 1120 {
1091 int start_index, end_index; 1121 int start_index, end_index;
1092 int wlen = context_scim->impl->preedit_string.length (); 1122 int wlen = context_scim->impl->preedit_string.length();
1093 1123
1094 Ecore_IMF_Preedit_Attr *attr = NULL; 1124 Ecore_IMF_Preedit_Attr *attr = NULL;
1095 AttributeList::const_iterator i; 1125 AttributeList::const_iterator i;
1096 bool *attrs_flag = new bool [mbs.length ()]; 1126 bool *attrs_flag = new bool [mbs.length()];
1097 memset (attrs_flag, 0, mbs.length () *sizeof (bool)); 1127 memset(attrs_flag, 0, mbs.length() *sizeof(bool));
1098 1128
1099 for (i = context_scim->impl->preedit_attrlist.begin (); 1129 for (i = context_scim->impl->preedit_attrlist.begin();
1100 i != context_scim->impl->preedit_attrlist.end (); ++i) 1130 i != context_scim->impl->preedit_attrlist.end(); ++i)
1101 { 1131 {
1102 start_index = i->get_start (); 1132 start_index = i->get_start();
1103 end_index = i->get_end (); 1133 end_index = i->get_end();
1104 1134
1105 if (end_index <= wlen && start_index < end_index && i->get_type () != SCIM_ATTR_DECORATE_NONE) 1135 if (end_index <= wlen && start_index < end_index && i->get_type() != SCIM_ATTR_DECORATE_NONE)
1106 { 1136 {
1107 start_index = utf8_offset_to_index (mbs.c_str (), i->get_start ()); 1137 start_index = utf8_offset_to_index(mbs.c_str(), i->get_start());
1108 end_index = utf8_offset_to_index (mbs.c_str (), i->get_end ()); 1138 end_index = utf8_offset_to_index(mbs.c_str(), i->get_end());
1109 1139
1110 if (i->get_type () == SCIM_ATTR_DECORATE) 1140 if (i->get_type() == SCIM_ATTR_DECORATE)
1111 { 1141 {
1112 attr = (Ecore_IMF_Preedit_Attr *)calloc(1, sizeof(Ecore_IMF_Preedit_Attr)); 1142 attr = (Ecore_IMF_Preedit_Attr *)calloc(1, sizeof(Ecore_IMF_Preedit_Attr));
1113 if (attr == NULL) 1143 if (attr == NULL)
@@ -1115,24 +1145,24 @@ isf_imf_context_preedit_string_with_attributes_get (Ecore_IMF_Context *ctx, char
1115 attr->start_index = start_index; 1145 attr->start_index = start_index;
1116 attr->end_index = end_index; 1146 attr->end_index = end_index;
1117 1147
1118 if (i->get_value () == SCIM_ATTR_DECORATE_UNDERLINE) 1148 if (i->get_value() == SCIM_ATTR_DECORATE_UNDERLINE)
1119 { 1149 {
1120 attr->preedit_type = ECORE_IMF_PREEDIT_TYPE_SUB1; 1150 attr->preedit_type = ECORE_IMF_PREEDIT_TYPE_SUB1;
1121 *attrs = eina_list_append(*attrs, (void *)attr); 1151 *attrs = eina_list_append(*attrs, (void *)attr);
1122 } 1152 }
1123 else if (i->get_value () == SCIM_ATTR_DECORATE_REVERSE) 1153 else if (i->get_value() == SCIM_ATTR_DECORATE_REVERSE)
1124 { 1154 {
1125 attr->preedit_type = ECORE_IMF_PREEDIT_TYPE_SUB2; 1155 attr->preedit_type = ECORE_IMF_PREEDIT_TYPE_SUB2;
1126 *attrs = eina_list_append(*attrs, (void *)attr); 1156 *attrs = eina_list_append(*attrs, (void *)attr);
1127 } 1157 }
1128 else if (i->get_value () == SCIM_ATTR_DECORATE_HIGHLIGHT) 1158 else if (i->get_value() == SCIM_ATTR_DECORATE_HIGHLIGHT)
1129 { 1159 {
1130 attr->preedit_type = ECORE_IMF_PREEDIT_TYPE_SUB3; 1160 attr->preedit_type = ECORE_IMF_PREEDIT_TYPE_SUB3;
1131 *attrs = eina_list_append(*attrs, (void *)attr); 1161 *attrs = eina_list_append(*attrs, (void *)attr);
1132 } 1162 }
1133 else 1163 else
1134 { 1164 {
1135 free (attr); 1165 free(attr);
1136 } 1166 }
1137 1167
1138 switch(i->get_value()) 1168 switch(i->get_value())
@@ -1148,11 +1178,11 @@ isf_imf_context_preedit_string_with_attributes_get (Ecore_IMF_Context *ctx, char
1148 break; 1178 break;
1149 } 1179 }
1150 } 1180 }
1151 else if (i->get_type () == SCIM_ATTR_FOREGROUND) 1181 else if (i->get_type() == SCIM_ATTR_FOREGROUND)
1152 { 1182 {
1153 SCIM_DEBUG_FRONTEND(4) << "SCIM_ATTR_FOREGROUND\n"; 1183 SCIM_DEBUG_FRONTEND(4) << "SCIM_ATTR_FOREGROUND\n";
1154 } 1184 }
1155 else if (i->get_type () == SCIM_ATTR_BACKGROUND) 1185 else if (i->get_type() == SCIM_ATTR_BACKGROUND)
1156 { 1186 {
1157 SCIM_DEBUG_FRONTEND(4) << "SCIM_ATTR_BACKGROUND\n"; 1187 SCIM_DEBUG_FRONTEND(4) << "SCIM_ATTR_BACKGROUND\n";
1158 } 1188 }
@@ -1160,13 +1190,13 @@ isf_imf_context_preedit_string_with_attributes_get (Ecore_IMF_Context *ctx, char
1160 } 1190 }
1161 1191
1162 // Add underline for all characters which don't have attribute. 1192 // Add underline for all characters which don't have attribute.
1163 for (unsigned int pos = 0; pos < mbs.length (); ++pos) 1193 for (unsigned int pos = 0; pos < mbs.length(); ++pos)
1164 { 1194 {
1165 if (!attrs_flag [pos]) 1195 if (!attrs_flag [pos])
1166 { 1196 {
1167 int begin_pos = pos; 1197 int begin_pos = pos;
1168 1198
1169 while (pos < mbs.length () && !attrs_flag [pos]) 1199 while (pos < mbs.length() && !attrs_flag[pos])
1170 ++pos; 1200 ++pos;
1171 1201
1172 // use REVERSE style as default 1202 // use REVERSE style as default
@@ -1187,7 +1217,7 @@ isf_imf_context_preedit_string_with_attributes_get (Ecore_IMF_Context *ctx, char
1187 else 1217 else
1188 { 1218 {
1189 if (str) 1219 if (str)
1190 *str = strdup (""); 1220 *str = strdup("");
1191 1221
1192 if (cursor_pos) 1222 if (cursor_pos)
1193 *cursor_pos = 0; 1223 *cursor_pos = 0;
@@ -1208,22 +1238,22 @@ isf_imf_context_preedit_string_with_attributes_get (Ecore_IMF_Context *ctx, char
1208 * To get the preedit string of the input method. 1238 * To get the preedit string of the input method.
1209 */ 1239 */
1210EAPI void 1240EAPI void
1211isf_imf_context_preedit_string_get (Ecore_IMF_Context *ctx, char** str, int *cursor_pos) 1241isf_imf_context_preedit_string_get(Ecore_IMF_Context *ctx, char** str, int *cursor_pos)
1212{ 1242{
1213 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 1243 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1214 1244
1215 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF*)ecore_imf_context_data_get (ctx); 1245 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF*)ecore_imf_context_data_get(ctx);
1216 1246
1217 if (context_scim && context_scim->impl && context_scim->impl->is_on) 1247 if (context_scim && context_scim->impl && context_scim->impl->is_on)
1218 { 1248 {
1219 String mbs = utf8_wcstombs (context_scim->impl->preedit_string); 1249 String mbs = utf8_wcstombs(context_scim->impl->preedit_string);
1220 1250
1221 if (str) 1251 if (str)
1222 { 1252 {
1223 if (mbs.length ()) 1253 if (mbs.length())
1224 *str = strdup (mbs.c_str ()); 1254 *str = strdup(mbs.c_str());
1225 else 1255 else
1226 *str = strdup (""); 1256 *str = strdup("");
1227 } 1257 }
1228 1258
1229 if (cursor_pos) 1259 if (cursor_pos)
@@ -1232,7 +1262,7 @@ isf_imf_context_preedit_string_get (Ecore_IMF_Context *ctx, char** str, int *cur
1232 else 1262 else
1233 { 1263 {
1234 if (str) 1264 if (str)
1235 *str = strdup (""); 1265 *str = strdup("");
1236 1266
1237 if (cursor_pos) 1267 if (cursor_pos)
1238 *cursor_pos = 0; 1268 *cursor_pos = 0;
@@ -1249,11 +1279,11 @@ isf_imf_context_preedit_string_get (Ecore_IMF_Context *ctx, char** str, int *cur
1249 * Notify the Input Method Context that a change in the cursor position has been made. 1279 * Notify the Input Method Context that a change in the cursor position has been made.
1250 */ 1280 */
1251EAPI void 1281EAPI void
1252isf_imf_context_cursor_position_set (Ecore_IMF_Context *ctx, int cursor_pos) 1282isf_imf_context_cursor_position_set(Ecore_IMF_Context *ctx, int cursor_pos)
1253{ 1283{
1254 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 1284 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1255 1285
1256 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx); 1286 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get(ctx);
1257 1287
1258 if (context_scim && context_scim->impl && context_scim == _focused_ic) 1288 if (context_scim && context_scim->impl && context_scim == _focused_ic)
1259 { 1289 {
@@ -1280,11 +1310,11 @@ isf_imf_context_cursor_position_set (Ecore_IMF_Context *ctx, int cursor_pos)
1280 * is in Ecore_IMF.h. 1310 * is in Ecore_IMF.h.
1281 */ 1311 */
1282EAPI void 1312EAPI void
1283isf_imf_context_input_mode_set (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Mode input_mode) 1313isf_imf_context_input_mode_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Mode input_mode)
1284{ 1314{
1285 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 1315 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1286 1316
1287 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF*)ecore_imf_context_data_get (ctx); 1317 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF*)ecore_imf_context_data_get(ctx);
1288 if (context_scim && context_scim->impl) 1318 if (context_scim && context_scim->impl)
1289 context_scim->impl->input_mode = input_mode; 1319 context_scim->impl->input_mode = input_mode;
1290} 1320}
@@ -1299,22 +1329,22 @@ isf_imf_context_input_mode_set (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Mode inp
1299 * Set whether the IM context should use the prediction. 1329 * Set whether the IM context should use the prediction.
1300 */ 1330 */
1301EAPI void 1331EAPI void
1302isf_imf_context_prediction_allow_set (Ecore_IMF_Context* ctx, Eina_Bool prediction) 1332isf_imf_context_prediction_allow_set(Ecore_IMF_Context* ctx, Eina_Bool prediction)
1303{ 1333{
1304 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " = " << (prediction ? "true" : "false") << "...\n"; 1334 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " = " << (prediction ? "true" : "false") << "...\n";
1305 1335
1306 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx); 1336 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get(ctx);
1307 1337
1308 if (context_scim && context_scim->impl && context_scim->impl->prediction_allow != prediction) 1338 if (context_scim && context_scim->impl && context_scim->impl->prediction_allow != prediction)
1309 context_scim->impl->prediction_allow = prediction; 1339 context_scim->impl->prediction_allow = prediction;
1310} 1340}
1311 1341
1312EAPI void 1342EAPI void
1313isf_imf_context_autocapital_type_set (Ecore_IMF_Context* ctx, Ecore_IMF_Autocapital_Type autocapital_type) 1343isf_imf_context_autocapital_type_set(Ecore_IMF_Context* ctx, Ecore_IMF_Autocapital_Type autocapital_type)
1314{ 1344{
1315 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " = " << autocapital_type << "...\n"; 1345 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " = " << autocapital_type << "...\n";
1316 1346
1317 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx); 1347 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get(ctx);
1318 1348
1319 if (context_scim && context_scim->impl && context_scim->impl->autocapital_type != autocapital_type) 1349 if (context_scim && context_scim->impl && context_scim->impl->autocapital_type != autocapital_type)
1320 context_scim->impl->autocapital_type = autocapital_type; 1350 context_scim->impl->autocapital_type = autocapital_type;
@@ -1337,11 +1367,11 @@ isf_imf_context_autocapital_type_set (Ecore_IMF_Context* ctx, Ecore_IMF_Autocapi
1337 */ 1367 */
1338 1368
1339EAPI Eina_Bool 1369EAPI Eina_Bool
1340isf_imf_context_filter_event (Ecore_IMF_Context *ctx, Ecore_IMF_Event_Type type, Ecore_IMF_Event *event) 1370isf_imf_context_filter_event(Ecore_IMF_Context *ctx, Ecore_IMF_Event_Type type, Ecore_IMF_Event *event)
1341{ 1371{
1342 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 1372 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1343 1373
1344 EcoreIMFContextISF *ic = (EcoreIMFContextISF*)ecore_imf_context_data_get (ctx); 1374 EcoreIMFContextISF *ic = (EcoreIMFContextISF*)ecore_imf_context_data_get(ctx);
1345 Eina_Bool ret = EINA_FALSE; 1375 Eina_Bool ret = EINA_FALSE;
1346 1376
1347 if (ic == NULL || ic->impl == NULL) 1377 if (ic == NULL || ic->impl == NULL)
@@ -1352,7 +1382,7 @@ isf_imf_context_filter_event (Ecore_IMF_Context *ctx, Ecore_IMF_Event_Type type,
1352 if (type == ECORE_IMF_EVENT_KEY_DOWN) 1382 if (type == ECORE_IMF_EVENT_KEY_DOWN)
1353 { 1383 {
1354 Ecore_IMF_Event_Key_Down *ev = (Ecore_IMF_Event_Key_Down *)event; 1384 Ecore_IMF_Event_Key_Down *ev = (Ecore_IMF_Event_Key_Down *)event;
1355 scim_string_to_key (key, ev->key); 1385 scim_string_to_key(key, ev->key);
1356 if (ev->modifiers & ECORE_IMF_KEYBOARD_MODIFIER_SHIFT) key.mask |=SCIM_KEY_ShiftMask; 1386 if (ev->modifiers & ECORE_IMF_KEYBOARD_MODIFIER_SHIFT) key.mask |=SCIM_KEY_ShiftMask;
1357 if (ev->modifiers & ECORE_IMF_KEYBOARD_MODIFIER_CTRL) key.mask |=SCIM_KEY_ControlMask; 1387 if (ev->modifiers & ECORE_IMF_KEYBOARD_MODIFIER_CTRL) key.mask |=SCIM_KEY_ControlMask;
1358 if (ev->modifiers & ECORE_IMF_KEYBOARD_MODIFIER_ALT) key.mask |=SCIM_KEY_AltMask; 1388 if (ev->modifiers & ECORE_IMF_KEYBOARD_MODIFIER_ALT) key.mask |=SCIM_KEY_AltMask;
@@ -1362,7 +1392,7 @@ isf_imf_context_filter_event (Ecore_IMF_Context *ctx, Ecore_IMF_Event_Type type,
1362 else if (type == ECORE_IMF_EVENT_KEY_UP) 1392 else if (type == ECORE_IMF_EVENT_KEY_UP)
1363 { 1393 {
1364 Ecore_IMF_Event_Key_Up *ev = (Ecore_IMF_Event_Key_Up *)event; 1394 Ecore_IMF_Event_Key_Up *ev = (Ecore_IMF_Event_Key_Up *)event;
1365 scim_string_to_key (key, ev->key); 1395 scim_string_to_key(key, ev->key);
1366 key.mask = SCIM_KEY_ReleaseMask; 1396 key.mask = SCIM_KEY_ReleaseMask;
1367 if (ev->modifiers & ECORE_IMF_KEYBOARD_MODIFIER_SHIFT) key.mask |=SCIM_KEY_ShiftMask; 1397 if (ev->modifiers & ECORE_IMF_KEYBOARD_MODIFIER_SHIFT) key.mask |=SCIM_KEY_ShiftMask;
1368 if (ev->modifiers & ECORE_IMF_KEYBOARD_MODIFIER_CTRL) key.mask |=SCIM_KEY_ControlMask; 1398 if (ev->modifiers & ECORE_IMF_KEYBOARD_MODIFIER_CTRL) key.mask |=SCIM_KEY_ControlMask;
@@ -1377,264 +1407,290 @@ isf_imf_context_filter_event (Ecore_IMF_Context *ctx, Ecore_IMF_Event_Type type,
1377 1407
1378 key.mask &= _valid_key_mask; 1408 key.mask &= _valid_key_mask;
1379 1409
1380 _panel_client.prepare (ic->id); 1410 _panel_client.prepare(ic->id);
1381 1411
1382 ret = EINA_TRUE; 1412 ret = EINA_TRUE;
1383 if (!filter_hotkeys (ic, key)) 1413 if (!filter_hotkeys(ic, key))
1384 { 1414 {
1385 if (!_focused_ic || !_focused_ic->impl->is_on || 1415 if (!_focused_ic || !_focused_ic->impl->is_on ||
1386 !_focused_ic->impl->si->process_key_event (key)) 1416 !_focused_ic->impl->si->process_key_event(key))
1387 ret = EINA_FALSE; 1417 ret = EINA_FALSE;
1388 } 1418 }
1389 1419
1390 _panel_client.send (); 1420 _panel_client.send();
1391 1421
1392 return ret; 1422 return ret;
1393} 1423}
1394 1424
1425EAPI void
1426isf_imf_context_input_panel_show(Ecore_IMF_Context *ctx)
1427{
1428 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1429
1430 EcoreIMFContextISF *ic = (EcoreIMFContextISF*)ecore_imf_context_data_get(ctx);
1431 if (ic == NULL || ic->impl == NULL)
1432 return;
1433
1434 ecore_x_e_virtual_keyboard_state_set
1435 (ic->impl->client_window, ECORE_X_VIRTUAL_KEYBOARD_STATE_ON);
1436}
1437
1438EAPI void
1439isf_imf_context_input_panel_hide(Ecore_IMF_Context *ctx)
1440{
1441 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1442
1443 EcoreIMFContextISF *ic = (EcoreIMFContextISF*)ecore_imf_context_data_get(ctx);
1444 if (ic == NULL || ic->impl == NULL)
1445 return;
1446
1447 ecore_x_e_virtual_keyboard_state_set
1448 (ic->impl->client_window, ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF);
1449}
1450
1395/* Panel Slot functions */ 1451/* Panel Slot functions */
1396static void 1452static void
1397panel_slot_reload_config (int context __UNUSED__) 1453panel_slot_reload_config(int context __UNUSED__)
1398{ 1454{
1399 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 1455 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1400 _config->reload (); 1456 _config->reload();
1401} 1457}
1402 1458
1403static void 1459static void
1404panel_slot_exit (int /* context */) 1460panel_slot_exit(int /* context */)
1405{ 1461{
1406 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 1462 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1407 1463
1408 finalize (); 1464 finalize();
1409} 1465}
1410 1466
1411static void 1467static void
1412panel_slot_update_lookup_table_page_size (int context, int page_size) 1468panel_slot_update_lookup_table_page_size(int context, int page_size)
1413{ 1469{
1414 EcoreIMFContextISF *ic = find_ic (context); 1470 EcoreIMFContextISF *ic = find_ic(context);
1415 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " page_size=" << page_size << " ic=" << ic << "\n"; 1471 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " page_size=" << page_size << " ic=" << ic << "\n";
1416 if (ic && ic->impl) 1472 if (ic && ic->impl)
1417 { 1473 {
1418 _panel_client.prepare (ic->id); 1474 _panel_client.prepare(ic->id);
1419 ic->impl->si->update_lookup_table_page_size (page_size); 1475 ic->impl->si->update_lookup_table_page_size(page_size);
1420 _panel_client.send (); 1476 _panel_client.send();
1421 } 1477 }
1422} 1478}
1423 1479
1424static void 1480static void
1425panel_slot_lookup_table_page_up (int context) 1481panel_slot_lookup_table_page_up(int context)
1426{ 1482{
1427 EcoreIMFContextISF *ic = find_ic (context); 1483 EcoreIMFContextISF *ic = find_ic(context);
1428 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " ic=" << ic << "\n"; 1484 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " ic=" << ic << "\n";
1429 if (ic && ic->impl) 1485 if (ic && ic->impl)
1430 { 1486 {
1431 _panel_client.prepare (ic->id); 1487 _panel_client.prepare(ic->id);
1432 ic->impl->si->lookup_table_page_up (); 1488 ic->impl->si->lookup_table_page_up();
1433 _panel_client.send (); 1489 _panel_client.send();
1434 } 1490 }
1435} 1491}
1436 1492
1437static void 1493static void
1438panel_slot_lookup_table_page_down (int context) 1494panel_slot_lookup_table_page_down(int context)
1439{ 1495{
1440 EcoreIMFContextISF *ic = find_ic (context); 1496 EcoreIMFContextISF *ic = find_ic(context);
1441 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " ic=" << ic << "\n"; 1497 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " ic=" << ic << "\n";
1442 if (ic && ic->impl) 1498 if (ic && ic->impl)
1443 { 1499 {
1444 _panel_client.prepare (ic->id); 1500 _panel_client.prepare(ic->id);
1445 ic->impl->si->lookup_table_page_down (); 1501 ic->impl->si->lookup_table_page_down();
1446 _panel_client.send (); 1502 _panel_client.send();
1447 } 1503 }
1448} 1504}
1449 1505
1450static void 1506static void
1451panel_slot_trigger_property (int context, const String &property) 1507panel_slot_trigger_property(int context, const String &property)
1452{ 1508{
1453 EcoreIMFContextISF *ic = find_ic (context); 1509 EcoreIMFContextISF *ic = find_ic(context);
1454 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " property=" << property << " ic=" << ic << "\n"; 1510 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " property=" << property << " ic=" << ic << "\n";
1455 if (ic && ic->impl) 1511 if (ic && ic->impl)
1456 { 1512 {
1457 _panel_client.prepare (ic->id); 1513 _panel_client.prepare(ic->id);
1458 ic->impl->si->trigger_property (property); 1514 ic->impl->si->trigger_property(property);
1459 _panel_client.send (); 1515 _panel_client.send();
1460 } 1516 }
1461} 1517}
1462 1518
1463static void 1519static void
1464panel_slot_process_helper_event (int context, const String &target_uuid, const String &helper_uuid, const Transaction &trans) 1520panel_slot_process_helper_event(int context, const String &target_uuid, const String &helper_uuid, const Transaction &trans)
1465{ 1521{
1466 EcoreIMFContextISF *ic = find_ic (context); 1522 EcoreIMFContextISF *ic = find_ic(context);
1467 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " target=" << target_uuid 1523 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " target=" << target_uuid
1468 << " helper=" << helper_uuid << " ic=" << ic << " ic->impl=" << (ic ? ic->impl : 0) << " ic-uuid=" 1524 << " helper=" << helper_uuid << " ic=" << ic << " ic->impl=" << (ic ? ic->impl : 0) << " ic-uuid="
1469 << ((ic && ic->impl) ? ic->impl->si->get_factory_uuid () : "" ) << "\n"; 1525 << ((ic && ic->impl) ? ic->impl->si->get_factory_uuid() : "" ) << "\n";
1470 if (ic && ic->impl && ic->impl->si->get_factory_uuid () == target_uuid) 1526 if (ic && ic->impl && ic->impl->si->get_factory_uuid() == target_uuid)
1471 { 1527 {
1472 _panel_client.prepare (ic->id); 1528 _panel_client.prepare(ic->id);
1473 SCIM_DEBUG_FRONTEND(2) << "call process_helper_event\n"; 1529 SCIM_DEBUG_FRONTEND(2) << "call process_helper_event\n";
1474 ic->impl->si->process_helper_event (helper_uuid, trans); 1530 ic->impl->si->process_helper_event(helper_uuid, trans);
1475 _panel_client.send (); 1531 _panel_client.send();
1476 } 1532 }
1477} 1533}
1478 1534
1479static void 1535static void
1480panel_slot_move_preedit_caret (int context, int caret_pos) 1536panel_slot_move_preedit_caret(int context, int caret_pos)
1481{ 1537{
1482 EcoreIMFContextISF *ic = find_ic (context); 1538 EcoreIMFContextISF *ic = find_ic(context);
1483 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " caret=" << caret_pos << " ic=" << ic << "\n"; 1539 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " caret=" << caret_pos << " ic=" << ic << "\n";
1484 if (ic && ic->impl) 1540 if (ic && ic->impl)
1485 { 1541 {
1486 _panel_client.prepare (ic->id); 1542 _panel_client.prepare(ic->id);
1487 ic->impl->si->move_preedit_caret (caret_pos); 1543 ic->impl->si->move_preedit_caret(caret_pos);
1488 _panel_client.send (); 1544 _panel_client.send();
1489 } 1545 }
1490} 1546}
1491 1547
1492static void 1548static void
1493panel_slot_select_candidate (int context, int cand_index) 1549panel_slot_select_candidate(int context, int cand_index)
1494{ 1550{
1495 EcoreIMFContextISF *ic = find_ic (context); 1551 EcoreIMFContextISF *ic = find_ic(context);
1496 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " candidate=" << cand_index << " ic=" << ic << "\n"; 1552 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " candidate=" << cand_index << " ic=" << ic << "\n";
1497 if (ic && ic->impl) 1553 if (ic && ic->impl)
1498 { 1554 {
1499 _panel_client.prepare (ic->id); 1555 _panel_client.prepare(ic->id);
1500 ic->impl->si->select_candidate (cand_index); 1556 ic->impl->si->select_candidate(cand_index);
1501 _panel_client.send (); 1557 _panel_client.send();
1502 } 1558 }
1503} 1559}
1504 1560
1505static void 1561static void
1506panel_slot_process_key_event (int context, const KeyEvent &key) 1562panel_slot_process_key_event(int context, const KeyEvent &key)
1507{ 1563{
1508 EcoreIMFContextISF *ic = find_ic (context); 1564 EcoreIMFContextISF *ic = find_ic(context);
1509 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " key=" << key.get_key_string () << " ic=" << ic << "\n"; 1565 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " key=" << key.get_key_string() << " ic=" << ic << "\n";
1510 1566
1511 if (ic && ic->impl && ic->impl->client_canvas) 1567 if (key.is_key_press())
1512 feed_key_event(ic->impl->client_canvas, key.get_key_string().c_str(), EINA_FALSE); 1568 ecore_x_test_fake_key_press(key.get_key_string().c_str());
1513} 1569}
1514 1570
1515static void 1571static void
1516panel_slot_commit_string (int context, const WideString &wstr) 1572panel_slot_commit_string(int context, const WideString &wstr)
1517{ 1573{
1518 EcoreIMFContextISF *ic = find_ic (context); 1574 EcoreIMFContextISF *ic = find_ic(context);
1519 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " str=" << utf8_wcstombs (wstr) << " ic=" << ic << "\n"; 1575 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " str=" << utf8_wcstombs(wstr) << " ic=" << ic << "\n";
1520 1576
1521 if (ic && ic->impl) 1577 if (ic && ic->impl)
1522 { 1578 {
1523 if (_focused_ic != ic) 1579 if (_focused_ic != ic)
1524 return; 1580 return;
1525 1581
1526 ecore_imf_context_commit_event_add (ic->ctx, utf8_wcstombs (wstr).c_str ()); 1582 ecore_imf_context_commit_event_add(ic->ctx, utf8_wcstombs(wstr).c_str());
1527 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_COMMIT, (void *)utf8_wcstombs(wstr).c_str()); 1583 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_COMMIT, (void *)utf8_wcstombs(wstr).c_str());
1528 } 1584 }
1529} 1585}
1530 1586
1531static void 1587static void
1532panel_slot_forward_key_event (int context, const KeyEvent &key) 1588panel_slot_forward_key_event(int context, const KeyEvent &key)
1533{ 1589{
1534 EcoreIMFContextISF *ic = find_ic (context); 1590 EcoreIMFContextISF *ic = find_ic(context);
1535 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " key=" << key.get_key_string () << " ic=" << ic << "\n"; 1591 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " key=" << key.get_key_string() << " ic=" << ic << "\n";
1536 1592
1537 if (ic && ic->impl && ic->impl->client_canvas) 1593 if (ic && ic->impl && ic->impl->client_canvas)
1538 feed_key_event (ic->impl->client_canvas, key.get_key_string ().c_str (), EINA_TRUE); 1594 feed_key_event(ic->impl->client_canvas, key.get_key_string().c_str(), EINA_TRUE);
1539} 1595}
1540 1596
1541static void 1597static void
1542panel_slot_request_help (int context) 1598panel_slot_request_help(int context)
1543{ 1599{
1544 EcoreIMFContextISF *ic = find_ic (context); 1600 EcoreIMFContextISF *ic = find_ic(context);
1545 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " ic=" << ic << "\n"; 1601 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " ic=" << ic << "\n";
1546 1602
1547 if (ic && ic->impl) 1603 if (ic && ic->impl)
1548 { 1604 {
1549 _panel_client.prepare (ic->id); 1605 _panel_client.prepare(ic->id);
1550 panel_req_show_help (ic); 1606 panel_req_show_help(ic);
1551 _panel_client.send (); 1607 _panel_client.send();
1552 } 1608 }
1553} 1609}
1554 1610
1555static void 1611static void
1556panel_slot_request_factory_menu (int context) 1612panel_slot_request_factory_menu(int context)
1557{ 1613{
1558 EcoreIMFContextISF *ic = find_ic (context); 1614 EcoreIMFContextISF *ic = find_ic(context);
1559 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " ic=" << ic << "\n"; 1615 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " ic=" << ic << "\n";
1560 1616
1561 if (ic && ic->impl) 1617 if (ic && ic->impl)
1562 { 1618 {
1563 _panel_client.prepare (ic->id); 1619 _panel_client.prepare(ic->id);
1564 panel_req_show_factory_menu (ic); 1620 panel_req_show_factory_menu(ic);
1565 _panel_client.send (); 1621 _panel_client.send();
1566 } 1622 }
1567} 1623}
1568 1624
1569static void 1625static void
1570panel_slot_change_factory (int context, const String &uuid) 1626panel_slot_change_factory(int context, const String &uuid)
1571{ 1627{
1572 EcoreIMFContextISF *ic = find_ic (context); 1628 EcoreIMFContextISF *ic = find_ic(context);
1573 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " factory=" << uuid << " ic=" << ic << "\n"; 1629 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " factory=" << uuid << " ic=" << ic << "\n";
1574 1630
1575 if (ic && ic->impl) 1631 if (ic && ic->impl)
1576 { 1632 {
1577 ic->impl->si->reset (); 1633 ic->impl->si->reset();
1578 _panel_client.prepare (ic->id); 1634 _panel_client.prepare(ic->id);
1579 open_specific_factory (ic, uuid); 1635 open_specific_factory(ic, uuid);
1580 _panel_client.send (); 1636 _panel_client.send();
1581 } 1637 }
1582} 1638}
1583 1639
1584/* Panel Requestion functions. */ 1640/* Panel Requestion functions. */
1585static void 1641static void
1586panel_req_show_help (EcoreIMFContextISF *ic) 1642panel_req_show_help(EcoreIMFContextISF *ic)
1587{ 1643{
1588 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 1644 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1589 1645
1590 String help; 1646 String help;
1591 1647
1592 help = String ("Smart Common Input Method platform ") + 1648 help = String("Smart Common Input Method platform ") +
1593 //String (SCIM_VERSION) + 1649 //String(SCIM_VERSION) +
1594 String ("\n(C) 2002-2005 James Su <suzhe@tsinghua.org.cn>\n\n"); 1650 String("\n(C) 2002-2005 James Su <suzhe@tsinghua.org.cn>\n\n");
1595 1651
1596 if (ic && ic->impl) 1652 if (ic && ic->impl)
1597 { 1653 {
1598 IMEngineFactoryPointer sf = _backend->get_factory (ic->impl->si->get_factory_uuid ()); 1654 IMEngineFactoryPointer sf = _backend->get_factory(ic->impl->si->get_factory_uuid());
1599 if (sf) 1655 if (sf)
1600 { 1656 {
1601 help += utf8_wcstombs (sf->get_name ()); 1657 help += utf8_wcstombs(sf->get_name());
1602 help += String (":\n\n"); 1658 help += String(":\n\n");
1603 1659
1604 help += utf8_wcstombs (sf->get_help ()); 1660 help += utf8_wcstombs(sf->get_help());
1605 help += String ("\n\n"); 1661 help += String("\n\n");
1606 1662
1607 help += utf8_wcstombs (sf->get_credits ()); 1663 help += utf8_wcstombs(sf->get_credits());
1608 } 1664 }
1609 _panel_client.show_help (ic->id, help); 1665 _panel_client.show_help(ic->id, help);
1610 } 1666 }
1611} 1667}
1612 1668
1613static void 1669static void
1614panel_req_show_factory_menu (EcoreIMFContextISF *ic) 1670panel_req_show_factory_menu(EcoreIMFContextISF *ic)
1615{ 1671{
1616 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 1672 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1617 1673
1618 std::vector<IMEngineFactoryPointer> factories; 1674 std::vector<IMEngineFactoryPointer> factories;
1619 std::vector <PanelFactoryInfo> menu; 1675 std::vector <PanelFactoryInfo> menu;
1620 1676
1621 _backend->get_factories_for_encoding (factories, "UTF-8"); 1677 _backend->get_factories_for_encoding(factories, "UTF-8");
1622 1678
1623 for (size_t i = 0; i < factories.size (); ++ i) 1679 for (size_t i = 0; i < factories.size(); ++ i)
1624 { 1680 {
1625 menu.push_back (PanelFactoryInfo ( 1681 menu.push_back(PanelFactoryInfo(
1626 factories [i]->get_uuid (), 1682 factories [i]->get_uuid(),
1627 utf8_wcstombs (factories [i]->get_name ()), 1683 utf8_wcstombs(factories [i]->get_name()),
1628 factories [i]->get_language (), 1684 factories [i]->get_language(),
1629 factories [i]->get_icon_file ())); 1685 factories [i]->get_icon_file()));
1630 } 1686 }
1631 1687
1632 if (menu.size ()) 1688 if (menu.size())
1633 _panel_client.show_factory_menu (ic->id, menu); 1689 _panel_client.show_factory_menu(ic->id, menu);
1634} 1690}
1635 1691
1636static void 1692static void
1637panel_req_update_factory_info (EcoreIMFContextISF *ic) 1693panel_req_update_factory_info(EcoreIMFContextISF *ic)
1638{ 1694{
1639 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 1695 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1640 1696
@@ -1643,160 +1699,160 @@ panel_req_update_factory_info (EcoreIMFContextISF *ic)
1643 PanelFactoryInfo info; 1699 PanelFactoryInfo info;
1644 if (ic->impl->is_on) 1700 if (ic->impl->is_on)
1645 { 1701 {
1646 IMEngineFactoryPointer sf = _backend->get_factory (ic->impl->si->get_factory_uuid ()); 1702 IMEngineFactoryPointer sf = _backend->get_factory(ic->impl->si->get_factory_uuid());
1647 if (sf) 1703 if (sf)
1648 info = PanelFactoryInfo (sf->get_uuid (), utf8_wcstombs (sf->get_name ()), sf->get_language (), sf->get_icon_file ()); 1704 info = PanelFactoryInfo(sf->get_uuid(), utf8_wcstombs(sf->get_name()), sf->get_language(), sf->get_icon_file());
1649 } 1705 }
1650 else 1706 else
1651 { 1707 {
1652 info = PanelFactoryInfo (String (""), String ("English/Keyboard"), String ("C"), ""); 1708 info = PanelFactoryInfo(String(""), String("English/Keyboard"), String("C"), "");
1653 } 1709 }
1654 _panel_client.update_factory_info (ic->id, info); 1710 _panel_client.update_factory_info(ic->id, info);
1655 } 1711 }
1656} 1712}
1657 1713
1658static void 1714static void
1659panel_req_focus_in (EcoreIMFContextISF *ic) 1715panel_req_focus_in(EcoreIMFContextISF *ic)
1660{ 1716{
1661 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 1717 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1662 1718
1663 _panel_client.focus_in (ic->id, ic->impl->si->get_factory_uuid ()); 1719 _panel_client.focus_in(ic->id, ic->impl->si->get_factory_uuid());
1664} 1720}
1665 1721
1666static void 1722static void
1667panel_req_update_spot_location (EcoreIMFContextISF *ic) 1723panel_req_update_spot_location(EcoreIMFContextISF *ic)
1668{ 1724{
1669 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 1725 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1670 1726
1671 _panel_client.update_spot_location (ic->id, ic->impl->cursor_x, ic->impl->cursor_y); 1727 _panel_client.update_spot_location(ic->id, ic->impl->cursor_x, ic->impl->cursor_y);
1672} 1728}
1673 1729
1674static bool 1730static bool
1675filter_hotkeys (EcoreIMFContextISF *ic, const KeyEvent &key) 1731filter_hotkeys(EcoreIMFContextISF *ic, const KeyEvent &key)
1676{ 1732{
1677 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 1733 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1678 1734
1679 bool ret = false; 1735 bool ret = false;
1680 1736
1681 _frontend_hotkey_matcher.push_key_event (key); 1737 _frontend_hotkey_matcher.push_key_event(key);
1682 _imengine_hotkey_matcher.push_key_event (key); 1738 _imengine_hotkey_matcher.push_key_event(key);
1683 1739
1684 FrontEndHotkeyAction hotkey_action = _frontend_hotkey_matcher.get_match_result (); 1740 FrontEndHotkeyAction hotkey_action = _frontend_hotkey_matcher.get_match_result();
1685 1741
1686 if (hotkey_action == SCIM_FRONTEND_HOTKEY_TRIGGER) 1742 if (hotkey_action == SCIM_FRONTEND_HOTKEY_TRIGGER)
1687 { 1743 {
1688 if (!ic->impl->is_on) 1744 if (!ic->impl->is_on)
1689 turn_on_ic (ic); 1745 turn_on_ic(ic);
1690 else 1746 else
1691 turn_off_ic (ic); 1747 turn_off_ic(ic);
1692 ret = true; 1748 ret = true;
1693 } 1749 }
1694 else if (hotkey_action == SCIM_FRONTEND_HOTKEY_ON) 1750 else if (hotkey_action == SCIM_FRONTEND_HOTKEY_ON)
1695 { 1751 {
1696 if (!ic->impl->is_on) 1752 if (!ic->impl->is_on)
1697 turn_on_ic (ic); 1753 turn_on_ic(ic);
1698 ret = true; 1754 ret = true;
1699 } 1755 }
1700 else if (hotkey_action == SCIM_FRONTEND_HOTKEY_OFF) 1756 else if (hotkey_action == SCIM_FRONTEND_HOTKEY_OFF)
1701 { 1757 {
1702 if (ic->impl->is_on) 1758 if (ic->impl->is_on)
1703 turn_off_ic (ic); 1759 turn_off_ic(ic);
1704 ret = true; 1760 ret = true;
1705 } 1761 }
1706 else if (hotkey_action == SCIM_FRONTEND_HOTKEY_NEXT_FACTORY) 1762 else if (hotkey_action == SCIM_FRONTEND_HOTKEY_NEXT_FACTORY)
1707 { 1763 {
1708 open_next_factory (ic); 1764 open_next_factory(ic);
1709 ret = true; 1765 ret = true;
1710 } 1766 }
1711 else if (hotkey_action == SCIM_FRONTEND_HOTKEY_PREVIOUS_FACTORY) 1767 else if (hotkey_action == SCIM_FRONTEND_HOTKEY_PREVIOUS_FACTORY)
1712 { 1768 {
1713 open_previous_factory (ic); 1769 open_previous_factory(ic);
1714 ret = true; 1770 ret = true;
1715 } 1771 }
1716 else if (hotkey_action == SCIM_FRONTEND_HOTKEY_SHOW_FACTORY_MENU) 1772 else if (hotkey_action == SCIM_FRONTEND_HOTKEY_SHOW_FACTORY_MENU)
1717 { 1773 {
1718 panel_req_show_factory_menu (ic); 1774 panel_req_show_factory_menu(ic);
1719 ret = true; 1775 ret = true;
1720 } 1776 }
1721 else if (_imengine_hotkey_matcher.is_matched ()) 1777 else if (_imengine_hotkey_matcher.is_matched())
1722 { 1778 {
1723 String sfid = _imengine_hotkey_matcher.get_match_result (); 1779 String sfid = _imengine_hotkey_matcher.get_match_result();
1724 open_specific_factory (ic, sfid); 1780 open_specific_factory(ic, sfid);
1725 ret = true; 1781 ret = true;
1726 } 1782 }
1727 return ret; 1783 return ret;
1728} 1784}
1729 1785
1730static bool 1786static bool
1731panel_initialize (void) 1787panel_initialize(void)
1732{ 1788{
1733 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 1789 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1734 1790
1735 String display_name; 1791 String display_name;
1736 { 1792 {
1737 const char *p = getenv ("DISPLAY"); 1793 const char *p = getenv("DISPLAY");
1738 if (p) display_name = String (p); 1794 if (p) display_name = String(p);
1739 } 1795 }
1740 1796
1741 if (_panel_client.open_connection (_config->get_name (), display_name) >= 0) 1797 if (_panel_client.open_connection(_config->get_name(), display_name) >= 0)
1742 { 1798 {
1743 int fd = _panel_client.get_connection_number (); 1799 int fd = _panel_client.get_connection_number();
1744 1800
1745 _panel_iochannel_read_handler = ecore_main_fd_handler_add (fd, ECORE_FD_READ, panel_iochannel_handler, NULL, NULL, NULL); 1801 _panel_iochannel_read_handler = ecore_main_fd_handler_add(fd, ECORE_FD_READ, panel_iochannel_handler, NULL, NULL, NULL);
1746 1802
1747 SCIM_DEBUG_FRONTEND(2) << " Panel FD= " << fd << "\n"; 1803 SCIM_DEBUG_FRONTEND(2) << " Panel FD= " << fd << "\n";
1748 1804
1749 return true; 1805 return true;
1750 } 1806 }
1751 std::cerr << "panel_initialize () failed!!!\n"; 1807 std::cerr << "panel_initialize() failed!!!\n";
1752 return false; 1808 return false;
1753} 1809}
1754 1810
1755static void 1811static void
1756panel_finalize (void) 1812panel_finalize(void)
1757{ 1813{
1758 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 1814 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1759 1815
1760 _panel_client.close_connection (); 1816 _panel_client.close_connection();
1761 1817
1762 if (_panel_iochannel_read_handler) 1818 if (_panel_iochannel_read_handler)
1763 { 1819 {
1764 ecore_main_fd_handler_del (_panel_iochannel_read_handler); 1820 ecore_main_fd_handler_del(_panel_iochannel_read_handler);
1765 _panel_iochannel_read_handler = 0; 1821 _panel_iochannel_read_handler = 0;
1766 } 1822 }
1767 1823
1768 if (_panel_iochannel_err_handler) 1824 if (_panel_iochannel_err_handler)
1769 { 1825 {
1770 ecore_main_fd_handler_del (_panel_iochannel_err_handler); 1826 ecore_main_fd_handler_del(_panel_iochannel_err_handler);
1771 _panel_iochannel_err_handler = 0; 1827 _panel_iochannel_err_handler = 0;
1772 } 1828 }
1773} 1829}
1774 1830
1775static Eina_Bool 1831static Eina_Bool
1776panel_iochannel_handler (void *data __UNUSED__, Ecore_Fd_Handler *fd_handler) 1832panel_iochannel_handler(void *data __UNUSED__, Ecore_Fd_Handler *fd_handler)
1777{ 1833{
1778 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 1834 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1779 1835
1780 if (fd_handler == _panel_iochannel_read_handler) 1836 if (fd_handler == _panel_iochannel_read_handler)
1781 { 1837 {
1782 if (!_panel_client.filter_event ()) 1838 if (!_panel_client.filter_event())
1783 { 1839 {
1784 panel_finalize (); 1840 panel_finalize();
1785 panel_initialize (); 1841 panel_initialize();
1786 return ECORE_CALLBACK_CANCEL; 1842 return ECORE_CALLBACK_CANCEL;
1787 } 1843 }
1788 } 1844 }
1789 else if (fd_handler == _panel_iochannel_err_handler) 1845 else if (fd_handler == _panel_iochannel_err_handler)
1790 { 1846 {
1791 panel_finalize (); 1847 panel_finalize();
1792 panel_initialize (); 1848 panel_initialize();
1793 return ECORE_CALLBACK_CANCEL; 1849 return ECORE_CALLBACK_CANCEL;
1794 } 1850 }
1795 return ECORE_CALLBACK_RENEW; 1851 return ECORE_CALLBACK_RENEW;
1796} 1852}
1797 1853
1798static void 1854static void
1799turn_on_ic (EcoreIMFContextISF *ic) 1855turn_on_ic(EcoreIMFContextISF *ic)
1800{ 1856{
1801 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 1857 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1802 1858
@@ -1806,25 +1862,25 @@ turn_on_ic (EcoreIMFContextISF *ic)
1806 1862
1807 if (ic == _focused_ic) 1863 if (ic == _focused_ic)
1808 { 1864 {
1809 panel_req_focus_in (ic); 1865 panel_req_focus_in(ic);
1810 panel_req_update_spot_location (ic); 1866 panel_req_update_spot_location(ic);
1811 panel_req_update_factory_info (ic); 1867 panel_req_update_factory_info(ic);
1812 _panel_client.turn_on (ic->id); 1868 _panel_client.turn_on(ic->id);
1813 _panel_client.hide_preedit_string (ic->id); 1869 _panel_client.hide_preedit_string(ic->id);
1814 _panel_client.hide_aux_string (ic->id); 1870 _panel_client.hide_aux_string(ic->id);
1815 _panel_client.hide_lookup_table (ic->id); 1871 _panel_client.hide_lookup_table(ic->id);
1816 ic->impl->si->focus_in (); 1872 ic->impl->si->focus_in();
1817 } 1873 }
1818 1874
1819 //Record the IC on/off status 1875 //Record the IC on/off status
1820 if (_shared_input_method) 1876 if (_shared_input_method)
1821 _config->write (String (SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), true); 1877 _config->write(String(SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), true);
1822 1878
1823 if (ic->impl->use_preedit && ic->impl->preedit_string.length ()) 1879 if (ic->impl->use_preedit && ic->impl->preedit_string.length())
1824 { 1880 {
1825 ecore_imf_context_preedit_start_event_add (ic->ctx); 1881 ecore_imf_context_preedit_start_event_add(ic->ctx);
1826 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_START, NULL); 1882 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_START, NULL);
1827 ecore_imf_context_preedit_changed_event_add (ic->ctx); 1883 ecore_imf_context_preedit_changed_event_add(ic->ctx);
1828 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, NULL); 1884 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, NULL);
1829 ic->impl->preedit_started = true; 1885 ic->impl->preedit_started = true;
1830 } 1886 }
@@ -1832,7 +1888,7 @@ turn_on_ic (EcoreIMFContextISF *ic)
1832} 1888}
1833 1889
1834static void 1890static void
1835turn_off_ic (EcoreIMFContextISF *ic) 1891turn_off_ic(EcoreIMFContextISF *ic)
1836{ 1892{
1837 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 1893 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1838 1894
@@ -1842,21 +1898,21 @@ turn_off_ic (EcoreIMFContextISF *ic)
1842 1898
1843 if (ic == _focused_ic) 1899 if (ic == _focused_ic)
1844 { 1900 {
1845 ic->impl->si->focus_out (); 1901 ic->impl->si->focus_out();
1846 1902
1847 panel_req_update_factory_info (ic); 1903 panel_req_update_factory_info(ic);
1848 _panel_client.turn_off (ic->id); 1904 _panel_client.turn_off(ic->id);
1849 } 1905 }
1850 1906
1851 //Record the IC on/off status 1907 //Record the IC on/off status
1852 if (_shared_input_method) 1908 if (_shared_input_method)
1853 _config->write (String (SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), false); 1909 _config->write(String(SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), false);
1854 1910
1855 if (ic->impl->use_preedit && ic->impl->preedit_string.length ()) 1911 if (ic->impl->use_preedit && ic->impl->preedit_string.length())
1856 { 1912 {
1857 ecore_imf_context_preedit_changed_event_add (ic->ctx); 1913 ecore_imf_context_preedit_changed_event_add(ic->ctx);
1858 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, NULL); 1914 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, NULL);
1859 ecore_imf_context_preedit_end_event_add (ic->ctx); 1915 ecore_imf_context_preedit_end_event_add(ic->ctx);
1860 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_END, NULL); 1916 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_END, NULL);
1861 ic->impl->preedit_started = false; 1917 ic->impl->preedit_started = false;
1862 } 1918 }
@@ -1864,7 +1920,7 @@ turn_off_ic (EcoreIMFContextISF *ic)
1864} 1920}
1865 1921
1866static void 1922static void
1867set_ic_capabilities (EcoreIMFContextISF *ic) 1923set_ic_capabilities(EcoreIMFContextISF *ic)
1868{ 1924{
1869 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 1925 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1870 1926
@@ -1875,12 +1931,12 @@ set_ic_capabilities (EcoreIMFContextISF *ic)
1875 if (!_on_the_spot || !ic->impl->use_preedit) 1931 if (!_on_the_spot || !ic->impl->use_preedit)
1876 cap -= SCIM_CLIENT_CAP_ONTHESPOT_PREEDIT; 1932 cap -= SCIM_CLIENT_CAP_ONTHESPOT_PREEDIT;
1877 1933
1878 ic->impl->si->update_client_capabilities (cap); 1934 ic->impl->si->update_client_capabilities(cap);
1879 } 1935 }
1880} 1936}
1881 1937
1882static bool 1938static bool
1883check_socket_frontend (void) 1939check_socket_frontend(void)
1884{ 1940{
1885 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 1941 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1886 1942
@@ -1889,23 +1945,23 @@ check_socket_frontend (void)
1889 1945
1890 uint32 magic; 1946 uint32 magic;
1891 1947
1892 address.set_address (scim_get_default_socket_frontend_address ()); 1948 address.set_address(scim_get_default_socket_frontend_address());
1893 1949
1894 if (!client.connect (address)) 1950 if (!client.connect(address))
1895 return false; 1951 return false;
1896 1952
1897 if (!scim_socket_open_connection (magic, 1953 if (!scim_socket_open_connection(magic,
1898 String ("ConnectionTester"), 1954 String("ConnectionTester"),
1899 String ("SocketFrontEnd"), 1955 String("SocketFrontEnd"),
1900 client, 1956 client,
1901 1000)) 1957 1000))
1902 return false; 1958 return false;
1903 1959
1904 return true; 1960 return true;
1905} 1961}
1906 1962
1907void 1963void
1908initialize (void) 1964initialize(void)
1909{ 1965{
1910 std::vector<String> config_list; 1966 std::vector<String> config_list;
1911 std::vector<String> engine_list; 1967 std::vector<String> engine_list;
@@ -1924,31 +1980,31 @@ initialize (void)
1924 SCIM_DEBUG_FRONTEND(1) << "Initializing Ecore SCIM IMModule...\n"; 1980 SCIM_DEBUG_FRONTEND(1) << "Initializing Ecore SCIM IMModule...\n";
1925 1981
1926 // Get system language. 1982 // Get system language.
1927 _language = scim_get_locale_language (scim_get_current_locale ()); 1983 _language = scim_get_locale_language(scim_get_current_locale());
1928 1984
1929 if (socket) 1985 if (socket)
1930 { 1986 {
1931 // If no Socket FrontEnd is running, then launch one. 1987 // If no Socket FrontEnd is running, then launch one.
1932 // And set manual to false. 1988 // And set manual to false.
1933 bool check_result = check_socket_frontend (); 1989 bool check_result = check_socket_frontend();
1934 if (!check_result) 1990 if (!check_result)
1935 { 1991 {
1936 std::cerr << "Launching a SCIM daemon with Socket FrontEnd...\n"; 1992 std::cerr << "Launching a SCIM daemon with Socket FrontEnd...\n";
1937 //get modules list 1993 //get modules list
1938 scim_get_imengine_module_list (engine_list); 1994 scim_get_imengine_module_list(engine_list);
1939 1995
1940 for (it = engine_list.begin (); it != engine_list.end (); it++) 1996 for (it = engine_list.begin(); it != engine_list.end(); it++)
1941 { 1997 {
1942 if (*it != "socket") 1998 if (*it != "socket")
1943 load_engine_list.push_back (*it); 1999 load_engine_list.push_back(*it);
1944 } 2000 }
1945 2001
1946 const char *new_argv [] = { "--no-stay", 0 }; 2002 const char *new_argv [] = { "--no-stay", 0 };
1947 scim_launch (true, 2003 scim_launch(true,
1948 config_module_name, 2004 config_module_name,
1949 (load_engine_list.size () ? scim_combine_string_list (load_engine_list, ',') : "none"), 2005 (load_engine_list.size() ? scim_combine_string_list(load_engine_list, ',') : "none"),
1950 "socket", 2006 "socket",
1951 (char **)new_argv); 2007 (char **)new_argv);
1952 manual = false; 2008 manual = false;
1953 } 2009 }
1954 2010
@@ -1961,12 +2017,12 @@ initialize (void)
1961 if (check_result) 2017 if (check_result)
1962 { 2018 {
1963 config_module_name = "socket"; 2019 config_module_name = "socket";
1964 load_engine_list.clear (); 2020 load_engine_list.clear();
1965 load_engine_list.push_back ("socket"); 2021 load_engine_list.push_back("socket");
1966 break; 2022 break;
1967 } 2023 }
1968 scim_usleep (50000); 2024 scim_usleep(50000);
1969 check_result = check_socket_frontend (); 2025 check_result = check_socket_frontend();
1970 } 2026 }
1971 } 2027 }
1972 } 2028 }
@@ -1975,69 +2031,69 @@ initialize (void)
1975 { 2031 {
1976 //load config module 2032 //load config module
1977 SCIM_DEBUG_FRONTEND(1) << "Loading Config module: " << config_module_name << "...\n"; 2033 SCIM_DEBUG_FRONTEND(1) << "Loading Config module: " << config_module_name << "...\n";
1978 _config_module = new ConfigModule (config_module_name); 2034 _config_module = new ConfigModule(config_module_name);
1979 2035
1980 //create config instance 2036 //create config instance
1981 if (_config_module != NULL && _config_module->valid ()) 2037 if (_config_module != NULL && _config_module->valid())
1982 _config = _config_module->create_config (); 2038 _config = _config_module->create_config();
1983 } 2039 }
1984 2040
1985 if (_config.null ()) 2041 if (_config.null())
1986 { 2042 {
1987 SCIM_DEBUG_FRONTEND(1) << "Config module cannot be loaded, using dummy Config.\n"; 2043 SCIM_DEBUG_FRONTEND(1) << "Config module cannot be loaded, using dummy Config.\n";
1988 2044
1989 if (_config_module) delete _config_module; 2045 if (_config_module) delete _config_module;
1990 _config_module = NULL; 2046 _config_module = NULL;
1991 2047
1992 _config = new DummyConfig (); 2048 _config = new DummyConfig();
1993 config_module_name = "dummy"; 2049 config_module_name = "dummy";
1994 } 2050 }
1995 2051
1996 reload_config_callback (_config); 2052 reload_config_callback(_config);
1997 _config->signal_connect_reload (slot (reload_config_callback)); 2053 _config->signal_connect_reload(slot(reload_config_callback));
1998 2054
1999 // create backend 2055 // create backend
2000 _backend = new CommonBackEnd (_config, load_engine_list.size () ? load_engine_list : engine_list); 2056 _backend = new CommonBackEnd(_config, load_engine_list.size() ? load_engine_list : engine_list);
2001 2057
2002 if (_backend.null ()) 2058 if (_backend.null())
2003 std::cerr << "Cannot create BackEnd Object!\n"; 2059 std::cerr << "Cannot create BackEnd Object!\n";
2004 else 2060 else
2005 _fallback_factory = _backend->get_factory (SCIM_COMPOSE_KEY_FACTORY_UUID); 2061 _fallback_factory = _backend->get_factory(SCIM_COMPOSE_KEY_FACTORY_UUID);
2006 2062
2007 if (_fallback_factory.null ()) 2063 if (_fallback_factory.null())
2008 _fallback_factory = new DummyIMEngineFactory (); 2064 _fallback_factory = new DummyIMEngineFactory();
2009 2065
2010 _fallback_instance = _fallback_factory->create_instance (String ("UTF-8"), 0); 2066 _fallback_instance = _fallback_factory->create_instance(String("UTF-8"), 0);
2011 _fallback_instance->signal_connect_commit_string (slot (fallback_commit_string_cb)); 2067 _fallback_instance->signal_connect_commit_string(slot(fallback_commit_string_cb));
2012 2068
2013 // Attach Panel Client signal. 2069 // Attach Panel Client signal.
2014 _panel_client.signal_connect_reload_config (slot (panel_slot_reload_config)); 2070 _panel_client.signal_connect_reload_config (slot(panel_slot_reload_config));
2015 _panel_client.signal_connect_exit (slot (panel_slot_exit)); 2071 _panel_client.signal_connect_exit (slot(panel_slot_exit));
2016 _panel_client.signal_connect_update_lookup_table_page_size (slot (panel_slot_update_lookup_table_page_size)); 2072 _panel_client.signal_connect_update_lookup_table_page_size(slot(panel_slot_update_lookup_table_page_size));
2017 _panel_client.signal_connect_lookup_table_page_up (slot (panel_slot_lookup_table_page_up)); 2073 _panel_client.signal_connect_lookup_table_page_up (slot(panel_slot_lookup_table_page_up));
2018 _panel_client.signal_connect_lookup_table_page_down (slot (panel_slot_lookup_table_page_down)); 2074 _panel_client.signal_connect_lookup_table_page_down (slot(panel_slot_lookup_table_page_down));
2019 _panel_client.signal_connect_trigger_property (slot (panel_slot_trigger_property)); 2075 _panel_client.signal_connect_trigger_property (slot(panel_slot_trigger_property));
2020 _panel_client.signal_connect_process_helper_event (slot (panel_slot_process_helper_event)); 2076 _panel_client.signal_connect_process_helper_event (slot(panel_slot_process_helper_event));
2021 _panel_client.signal_connect_move_preedit_caret (slot (panel_slot_move_preedit_caret)); 2077 _panel_client.signal_connect_move_preedit_caret (slot(panel_slot_move_preedit_caret));
2022 _panel_client.signal_connect_select_candidate (slot (panel_slot_select_candidate)); 2078 _panel_client.signal_connect_select_candidate (slot(panel_slot_select_candidate));
2023 _panel_client.signal_connect_process_key_event (slot (panel_slot_process_key_event)); 2079 _panel_client.signal_connect_process_key_event (slot(panel_slot_process_key_event));
2024 _panel_client.signal_connect_commit_string (slot (panel_slot_commit_string)); 2080 _panel_client.signal_connect_commit_string (slot(panel_slot_commit_string));
2025 _panel_client.signal_connect_forward_key_event (slot (panel_slot_forward_key_event)); 2081 _panel_client.signal_connect_forward_key_event (slot(panel_slot_forward_key_event));
2026 _panel_client.signal_connect_request_help (slot (panel_slot_request_help)); 2082 _panel_client.signal_connect_request_help (slot(panel_slot_request_help));
2027 _panel_client.signal_connect_request_factory_menu (slot (panel_slot_request_factory_menu)); 2083 _panel_client.signal_connect_request_factory_menu (slot(panel_slot_request_factory_menu));
2028 _panel_client.signal_connect_change_factory (slot (panel_slot_change_factory)); 2084 _panel_client.signal_connect_change_factory (slot(panel_slot_change_factory));
2029 2085
2030 if (!panel_initialize ()) 2086 if (!panel_initialize())
2031 std::cerr << "Ecore IM Module: Cannot connect to Panel!\n"; 2087 std::cerr << "Ecore IM Module: Cannot connect to Panel!\n";
2032} 2088}
2033 2089
2034static void 2090static void
2035finalize (void) 2091finalize(void)
2036{ 2092{
2037 SCIM_DEBUG_FRONTEND(1) << "Finalizing Ecore ISF IMModule...\n"; 2093 SCIM_DEBUG_FRONTEND(1) << "Finalizing Ecore ISF IMModule...\n";
2038 2094
2039 // Reset this first so that the shared instance could be released correctly afterwards. 2095 // Reset this first so that the shared instance could be released correctly afterwards.
2040 _default_instance.reset (); 2096 _default_instance.reset();
2041 2097
2042 SCIM_DEBUG_FRONTEND(2) << "Finalize all IC partially.\n"; 2098 SCIM_DEBUG_FRONTEND(2) << "Finalize all IC partially.\n";
2043 while (_used_ic_impl_list) 2099 while (_used_ic_impl_list)
@@ -2045,20 +2101,20 @@ finalize (void)
2045 // In case in "shared input method" mode, 2101 // In case in "shared input method" mode,
2046 // all contexts share only one instance, 2102 // all contexts share only one instance,
2047 // so we need point the reference pointer correctly before finalizing. 2103 // so we need point the reference pointer correctly before finalizing.
2048 _used_ic_impl_list->si->set_frontend_data (static_cast <void*> (_used_ic_impl_list->parent)); 2104 _used_ic_impl_list->si->set_frontend_data(static_cast <void*>(_used_ic_impl_list->parent));
2049 isf_imf_context_del (_used_ic_impl_list->parent->ctx); 2105 isf_imf_context_del(_used_ic_impl_list->parent->ctx);
2050 } 2106 }
2051 2107
2052 delete_all_ic_impl (); 2108 delete_all_ic_impl();
2053 2109
2054 _fallback_instance.reset (); 2110 _fallback_instance.reset();
2055 _fallback_factory.reset (); 2111 _fallback_factory.reset();
2056 2112
2057 SCIM_DEBUG_FRONTEND(2) << " Releasing BackEnd...\n"; 2113 SCIM_DEBUG_FRONTEND(2) << " Releasing BackEnd...\n";
2058 _backend.reset (); 2114 _backend.reset();
2059 2115
2060 SCIM_DEBUG_FRONTEND(2) << " Releasing Config...\n"; 2116 SCIM_DEBUG_FRONTEND(2) << " Releasing Config...\n";
2061 _config.reset (); 2117 _config.reset();
2062 2118
2063 if (_config_module) 2119 if (_config_module)
2064 { 2120 {
@@ -2072,27 +2128,27 @@ finalize (void)
2072 2128
2073 _scim_initialized = false; 2129 _scim_initialized = false;
2074 2130
2075 panel_finalize (); 2131 panel_finalize();
2076} 2132}
2077 2133
2078static void 2134static void
2079open_next_factory (EcoreIMFContextISF *ic) 2135open_next_factory(EcoreIMFContextISF *ic)
2080{ 2136{
2081 SCIM_DEBUG_FRONTEND(2) << __FUNCTION__ << " context=" << ic->id << "\n"; 2137 SCIM_DEBUG_FRONTEND(2) << __FUNCTION__ << " context=" << ic->id << "\n";
2082 IMEngineFactoryPointer sf = _backend->get_next_factory ("", "UTF-8", ic->impl->si->get_factory_uuid ()); 2138 IMEngineFactoryPointer sf = _backend->get_next_factory("", "UTF-8", ic->impl->si->get_factory_uuid());
2083 2139
2084 if (!sf.null ()) 2140 if (!sf.null())
2085 { 2141 {
2086 turn_off_ic (ic); 2142 turn_off_ic(ic);
2087 ic->impl->si = sf->create_instance ("UTF-8", ic->impl->si->get_id ()); 2143 ic->impl->si = sf->create_instance("UTF-8", ic->impl->si->get_id());
2088 ic->impl->si->set_frontend_data (static_cast <void*> (ic)); 2144 ic->impl->si->set_frontend_data(static_cast <void*>(ic));
2089 ic->impl->preedit_string = WideString (); 2145 ic->impl->preedit_string = WideString();
2090 ic->impl->preedit_caret = 0; 2146 ic->impl->preedit_caret = 0;
2091 attach_instance (ic->impl->si); 2147 attach_instance(ic->impl->si);
2092 _backend->set_default_factory (_language, sf->get_uuid ()); 2148 _backend->set_default_factory(_language, sf->get_uuid());
2093 _panel_client.register_input_context (ic->id, sf->get_uuid ()); 2149 _panel_client.register_input_context(ic->id, sf->get_uuid());
2094 set_ic_capabilities (ic); 2150 set_ic_capabilities(ic);
2095 turn_on_ic (ic); 2151 turn_on_ic(ic);
2096 2152
2097 if (_shared_input_method) 2153 if (_shared_input_method)
2098 { 2154 {
@@ -2103,26 +2159,26 @@ open_next_factory (EcoreIMFContextISF *ic)
2103} 2159}
2104 2160
2105static void 2161static void
2106open_previous_factory (EcoreIMFContextISF *ic) 2162open_previous_factory(EcoreIMFContextISF *ic)
2107{ 2163{
2108 if (ic == NULL) 2164 if (ic == NULL)
2109 return; 2165 return;
2110 2166
2111 SCIM_DEBUG_FRONTEND(2) << __FUNCTION__ << " context=" << ic->id << "\n"; 2167 SCIM_DEBUG_FRONTEND(2) << __FUNCTION__ << " context=" << ic->id << "\n";
2112 IMEngineFactoryPointer sf = _backend->get_previous_factory ("", "UTF-8", ic->impl->si->get_factory_uuid ()); 2168 IMEngineFactoryPointer sf = _backend->get_previous_factory("", "UTF-8", ic->impl->si->get_factory_uuid());
2113 2169
2114 if (!sf.null ()) 2170 if (!sf.null())
2115 { 2171 {
2116 turn_off_ic (ic); 2172 turn_off_ic(ic);
2117 ic->impl->si = sf->create_instance ("UTF-8", ic->impl->si->get_id ()); 2173 ic->impl->si = sf->create_instance("UTF-8", ic->impl->si->get_id());
2118 ic->impl->si->set_frontend_data (static_cast <void*> (ic)); 2174 ic->impl->si->set_frontend_data(static_cast <void*>(ic));
2119 ic->impl->preedit_string = WideString (); 2175 ic->impl->preedit_string = WideString();
2120 ic->impl->preedit_caret = 0; 2176 ic->impl->preedit_caret = 0;
2121 attach_instance (ic->impl->si); 2177 attach_instance(ic->impl->si);
2122 _backend->set_default_factory (_language, sf->get_uuid ()); 2178 _backend->set_default_factory(_language, sf->get_uuid());
2123 _panel_client.register_input_context (ic->id, sf->get_uuid ()); 2179 _panel_client.register_input_context(ic->id, sf->get_uuid());
2124 set_ic_capabilities (ic); 2180 set_ic_capabilities(ic);
2125 turn_on_ic (ic); 2181 turn_on_ic(ic);
2126 2182
2127 if (_shared_input_method) 2183 if (_shared_input_method)
2128 { 2184 {
@@ -2133,7 +2189,7 @@ open_previous_factory (EcoreIMFContextISF *ic)
2133} 2189}
2134 2190
2135static void 2191static void
2136open_specific_factory (EcoreIMFContextISF *ic, 2192open_specific_factory(EcoreIMFContextISF *ic,
2137 const String &uuid) 2193 const String &uuid)
2138{ 2194{
2139 if (ic == NULL) 2195 if (ic == NULL)
@@ -2142,26 +2198,26 @@ open_specific_factory (EcoreIMFContextISF *ic,
2142 SCIM_DEBUG_FRONTEND(2) << __FUNCTION__ << " context=" << ic->id << "\n"; 2198 SCIM_DEBUG_FRONTEND(2) << __FUNCTION__ << " context=" << ic->id << "\n";
2143 2199
2144 // The same input method is selected, just turn on the IC. 2200 // The same input method is selected, just turn on the IC.
2145 if (ic->impl->si->get_factory_uuid () == uuid) 2201 if (ic->impl->si->get_factory_uuid() == uuid)
2146 { 2202 {
2147 turn_on_ic (ic); 2203 turn_on_ic(ic);
2148 return; 2204 return;
2149 } 2205 }
2150 2206
2151 IMEngineFactoryPointer sf = _backend->get_factory (uuid); 2207 IMEngineFactoryPointer sf = _backend->get_factory(uuid);
2152 2208
2153 if (uuid.length () && !sf.null ()) 2209 if (uuid.length() && !sf.null())
2154 { 2210 {
2155 turn_off_ic (ic); 2211 turn_off_ic(ic);
2156 ic->impl->si = sf->create_instance ("UTF-8", ic->impl->si->get_id ()); 2212 ic->impl->si = sf->create_instance("UTF-8", ic->impl->si->get_id());
2157 ic->impl->si->set_frontend_data (static_cast <void*> (ic)); 2213 ic->impl->si->set_frontend_data(static_cast <void*>(ic));
2158 ic->impl->preedit_string = WideString (); 2214 ic->impl->preedit_string = WideString();
2159 ic->impl->preedit_caret = 0; 2215 ic->impl->preedit_caret = 0;
2160 attach_instance (ic->impl->si); 2216 attach_instance(ic->impl->si);
2161 _backend->set_default_factory (_language, sf->get_uuid ()); 2217 _backend->set_default_factory(_language, sf->get_uuid());
2162 _panel_client.register_input_context (ic->id, sf->get_uuid ()); 2218 _panel_client.register_input_context(ic->id, sf->get_uuid());
2163 set_ic_capabilities (ic); 2219 set_ic_capabilities(ic);
2164 turn_on_ic (ic); 2220 turn_on_ic(ic);
2165 2221
2166 if (_shared_input_method) 2222 if (_shared_input_method)
2167 { 2223 {
@@ -2171,29 +2227,29 @@ open_specific_factory (EcoreIMFContextISF *ic,
2171 } 2227 }
2172 else 2228 else
2173 { 2229 {
2174 // turn_off_ic comment out panel_req_update_factory_info () 2230 // turn_off_ic comment out panel_req_update_factory_info()
2175 turn_off_ic (ic); 2231 turn_off_ic(ic);
2176 if (ic && ic->impl->is_on) 2232 if (ic && ic->impl->is_on)
2177 { 2233 {
2178 ic->impl->is_on = false; 2234 ic->impl->is_on = false;
2179 2235
2180 if (ic == _focused_ic) 2236 if (ic == _focused_ic)
2181 { 2237 {
2182 ic->impl->si->focus_out (); 2238 ic->impl->si->focus_out();
2183 2239
2184 panel_req_update_factory_info (ic); 2240 panel_req_update_factory_info(ic);
2185 _panel_client.turn_off (ic->id); 2241 _panel_client.turn_off(ic->id);
2186 } 2242 }
2187 2243
2188 //Record the IC on/off status 2244 //Record the IC on/off status
2189 if (_shared_input_method) 2245 if (_shared_input_method)
2190 _config->write (String (SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), false); 2246 _config->write(String(SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), false);
2191 2247
2192 if (ic->impl->use_preedit && ic->impl->preedit_string.length ()) 2248 if (ic->impl->use_preedit && ic->impl->preedit_string.length())
2193 { 2249 {
2194 ecore_imf_context_preedit_changed_event_add (ic->ctx); 2250 ecore_imf_context_preedit_changed_event_add(ic->ctx);
2195 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, NULL); 2251 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, NULL);
2196 ecore_imf_context_preedit_end_event_add (ic->ctx); 2252 ecore_imf_context_preedit_end_event_add(ic->ctx);
2197 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_END, NULL); 2253 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_END, NULL);
2198 ic->impl->preedit_started = false; 2254 ic->impl->preedit_started = false;
2199 } 2255 }
@@ -2201,7 +2257,7 @@ open_specific_factory (EcoreIMFContextISF *ic,
2201 } 2257 }
2202} 2258}
2203 2259
2204static void initialize_modifier_bits (Display *display) 2260static void initialize_modifier_bits(Display *display)
2205{ 2261{
2206 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 2262 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2207 2263
@@ -2222,21 +2278,21 @@ static void initialize_modifier_bits (Display *display)
2222 2278
2223 XModifierKeymap *mods = NULL; 2279 XModifierKeymap *mods = NULL;
2224 2280
2225 ::KeyCode ctrl_l = XKeysymToKeycode (display, XK_Control_L); 2281 ::KeyCode ctrl_l = XKeysymToKeycode(display, XK_Control_L);
2226 ::KeyCode ctrl_r = XKeysymToKeycode (display, XK_Control_R); 2282 ::KeyCode ctrl_r = XKeysymToKeycode(display, XK_Control_R);
2227 ::KeyCode meta_l = XKeysymToKeycode (display, XK_Meta_L); 2283 ::KeyCode meta_l = XKeysymToKeycode(display, XK_Meta_L);
2228 ::KeyCode meta_r = XKeysymToKeycode (display, XK_Meta_R); 2284 ::KeyCode meta_r = XKeysymToKeycode(display, XK_Meta_R);
2229 ::KeyCode alt_l = XKeysymToKeycode (display, XK_Alt_L); 2285 ::KeyCode alt_l = XKeysymToKeycode(display, XK_Alt_L);
2230 ::KeyCode alt_r = XKeysymToKeycode (display, XK_Alt_R); 2286 ::KeyCode alt_r = XKeysymToKeycode(display, XK_Alt_R);
2231 ::KeyCode super_l = XKeysymToKeycode (display, XK_Super_L); 2287 ::KeyCode super_l = XKeysymToKeycode(display, XK_Super_L);
2232 ::KeyCode super_r = XKeysymToKeycode (display, XK_Super_R); 2288 ::KeyCode super_r = XKeysymToKeycode(display, XK_Super_R);
2233 ::KeyCode hyper_l = XKeysymToKeycode (display, XK_Hyper_L); 2289 ::KeyCode hyper_l = XKeysymToKeycode(display, XK_Hyper_L);
2234 ::KeyCode hyper_r = XKeysymToKeycode (display, XK_Hyper_R); 2290 ::KeyCode hyper_r = XKeysymToKeycode(display, XK_Hyper_R);
2235 ::KeyCode numlock = XKeysymToKeycode (display, XK_Num_Lock); 2291 ::KeyCode numlock = XKeysymToKeycode(display, XK_Num_Lock);
2236 2292
2237 int i, j; 2293 int i, j;
2238 2294
2239 mods = XGetModifierMapping (display); 2295 mods = XGetModifierMapping(display);
2240 if (mods == NULL) 2296 if (mods == NULL)
2241 return; 2297 return;
2242 2298
@@ -2283,13 +2339,13 @@ static void initialize_modifier_bits (Display *display)
2283 xkey.same_screen = False; 2339 xkey.same_screen = False;
2284 xkey.subwindow = None; 2340 xkey.subwindow = None;
2285 xkey.window = None; 2341 xkey.window = None;
2286 xkey.root = DefaultRootWindow (display); 2342 xkey.root = DefaultRootWindow(display);
2287 xkey.state = ShiftMask; 2343 xkey.state = ShiftMask;
2288 2344
2289 xkey.keycode = meta_l; 2345 xkey.keycode = meta_l;
2290 XLookupString (&xkey, buf, 32, &keysym_l, 0); 2346 XLookupString(&xkey, buf, 32, &keysym_l, 0);
2291 xkey.keycode = meta_r; 2347 xkey.keycode = meta_r;
2292 XLookupString (&xkey, buf, 32, &keysym_r, 0); 2348 XLookupString(&xkey, buf, 32, &keysym_r, 0);
2293 2349
2294 if ((meta_l == alt_l && keysym_l == XK_Meta_L) || (meta_r == alt_r && keysym_r == XK_Meta_R)) 2350 if ((meta_l == alt_l && keysym_l == XK_Meta_L) || (meta_r == alt_r && keysym_r == XK_Meta_R))
2295 __current_meta_mask = ShiftMask + __current_alt_mask; 2351 __current_meta_mask = ShiftMask + __current_alt_mask;
@@ -2297,16 +2353,16 @@ static void initialize_modifier_bits (Display *display)
2297 __current_meta_mask = ShiftMask + ControlMask; 2353 __current_meta_mask = ShiftMask + ControlMask;
2298 } 2354 }
2299 2355
2300 XFreeModifiermap (mods); 2356 XFreeModifiermap(mods);
2301} 2357}
2302 2358
2303static unsigned int scim_x11_keymask_scim_to_x11 (Display *display, uint16 scimkeymask) 2359static unsigned int scim_x11_keymask_scim_to_x11(Display *display, uint16 scimkeymask)
2304{ 2360{
2305 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 2361 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2306 2362
2307 unsigned int state = 0; 2363 unsigned int state = 0;
2308 2364
2309 initialize_modifier_bits (display); 2365 initialize_modifier_bits(display);
2310 2366
2311 if (scimkeymask & SCIM_KEY_ShiftMask) state |= ShiftMask; 2367 if (scimkeymask & SCIM_KEY_ShiftMask) state |= ShiftMask;
2312 if (scimkeymask & SCIM_KEY_CapsLockMask) state |= LockMask; 2368 if (scimkeymask & SCIM_KEY_CapsLockMask) state |= LockMask;
@@ -2320,9 +2376,9 @@ static unsigned int scim_x11_keymask_scim_to_x11 (Display *display, uint16 scimk
2320 return state; 2376 return state;
2321} 2377}
2322 2378
2323static XKeyEvent createKeyEvent (Display *display, Window &win, 2379static XKeyEvent createKeyEvent(Display *display, Window &win,
2324 Window &winRoot, bool press, 2380 Window &winRoot, bool press,
2325 int keycode, int modifiers) 2381 int keycode, int modifiers)
2326{ 2382{
2327 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 2383 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2328 2384
@@ -2339,7 +2395,7 @@ static XKeyEvent createKeyEvent (Display *display, Window &win,
2339 event.y_root = 1; 2395 event.y_root = 1;
2340 event.same_screen = EINA_TRUE; 2396 event.same_screen = EINA_TRUE;
2341 event.state = modifiers; 2397 event.state = modifiers;
2342 event.keycode = XKeysymToKeycode (display, keycode); 2398 event.keycode = XKeysymToKeycode(display, keycode);
2343 if (press) 2399 if (press)
2344 event.type = KeyPress; 2400 event.type = KeyPress;
2345 else 2401 else
@@ -2350,12 +2406,12 @@ static XKeyEvent createKeyEvent (Display *display, Window &win,
2350 return event; 2406 return event;
2351} 2407}
2352 2408
2353static void _x_send_key_event (const KeyEvent &key) 2409static void _x_send_key_event(const KeyEvent &key)
2354{ 2410{
2355 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 2411 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2356 2412
2357 // Obtain the X11 display. 2413 // Obtain the X11 display.
2358 Display *display = XOpenDisplay (NULL); 2414 Display *display = XOpenDisplay(NULL);
2359 if (display == NULL) 2415 if (display == NULL)
2360 { 2416 {
2361 std::cerr << "XOpenDisplay failed\n"; 2417 std::cerr << "XOpenDisplay failed\n";
@@ -2363,98 +2419,98 @@ static void _x_send_key_event (const KeyEvent &key)
2363 } 2419 }
2364 2420
2365 // Get the root window for the current display. 2421 // Get the root window for the current display.
2366 Window winRoot = 0;// = XRootWindow (display, 1); 2422 Window winRoot = 0;
2367 2423
2368 // Find the window which has the current keyboard focus. 2424 // Find the window which has the current keyboard focus.
2369 Window winFocus = 0; 2425 Window winFocus = 0;
2370 int revert = RevertToParent; 2426 int revert = RevertToParent;
2371 2427
2372 XGetInputFocus (display, &winFocus, &revert); 2428 XGetInputFocus(display, &winFocus, &revert);
2373 2429
2374 // Send a fake key press event to the window. 2430 // Send a fake key press event to the window.
2375 XSelectInput (display, winFocus, FocusChangeMask|KeyPressMask|KeyReleaseMask); 2431 XSelectInput(display, winFocus, FocusChangeMask|KeyPressMask|KeyReleaseMask);
2376 XMapWindow (display, winFocus); 2432 XMapWindow(display, winFocus);
2377 2433
2378 unsigned int modifier = scim_x11_keymask_scim_to_x11 (display, key.mask); 2434 unsigned int modifier = scim_x11_keymask_scim_to_x11(display, key.mask);
2379 XKeyEvent event; 2435 XKeyEvent event;
2380 if (key.is_key_press ()) 2436 if (key.is_key_press())
2381 { 2437 {
2382 event = createKeyEvent (display, winFocus, winRoot, true, key.code, modifier); 2438 event = createKeyEvent(display, winFocus, winRoot, true, key.code, modifier);
2383 XSendEvent (event.display, event.window, True, KeyPressMask, (XEvent *)&event); 2439 XSendEvent(event.display, event.window, True, KeyPressMask, (XEvent *)&event);
2384 } 2440 }
2385 else 2441 else
2386 { 2442 {
2387 event = createKeyEvent (display, winFocus, winRoot, false, key.code, modifier); 2443 event = createKeyEvent(display, winFocus, winRoot, false, key.code, modifier);
2388 XSendEvent (event.display, event.window, True, KeyReleaseMask, (XEvent *)&event); 2444 XSendEvent(event.display, event.window, True, KeyReleaseMask, (XEvent *)&event);
2389 } 2445 }
2390 2446
2391 XCloseDisplay (display); 2447 XCloseDisplay(display);
2392} 2448}
2393 2449
2394static void 2450static void
2395attach_instance (const IMEngineInstancePointer &si) 2451attach_instance(const IMEngineInstancePointer &si)
2396{ 2452{
2397 si->signal_connect_show_preedit_string ( 2453 si->signal_connect_show_preedit_string(
2398 slot (slot_show_preedit_string)); 2454 slot(slot_show_preedit_string));
2399 si->signal_connect_show_aux_string ( 2455 si->signal_connect_show_aux_string(
2400 slot (slot_show_aux_string)); 2456 slot(slot_show_aux_string));
2401 si->signal_connect_show_lookup_table ( 2457 si->signal_connect_show_lookup_table(
2402 slot (slot_show_lookup_table)); 2458 slot(slot_show_lookup_table));
2403 2459
2404 si->signal_connect_hide_preedit_string ( 2460 si->signal_connect_hide_preedit_string(
2405 slot (slot_hide_preedit_string)); 2461 slot(slot_hide_preedit_string));
2406 si->signal_connect_hide_aux_string ( 2462 si->signal_connect_hide_aux_string(
2407 slot (slot_hide_aux_string)); 2463 slot(slot_hide_aux_string));
2408 si->signal_connect_hide_lookup_table ( 2464 si->signal_connect_hide_lookup_table(
2409 slot (slot_hide_lookup_table)); 2465 slot(slot_hide_lookup_table));
2410 2466
2411 si->signal_connect_update_preedit_caret ( 2467 si->signal_connect_update_preedit_caret(
2412 slot (slot_update_preedit_caret)); 2468 slot(slot_update_preedit_caret));
2413 si->signal_connect_update_preedit_string ( 2469 si->signal_connect_update_preedit_string(
2414 slot (slot_update_preedit_string)); 2470 slot(slot_update_preedit_string));
2415 si->signal_connect_update_aux_string ( 2471 si->signal_connect_update_aux_string(
2416 slot (slot_update_aux_string)); 2472 slot(slot_update_aux_string));
2417 si->signal_connect_update_lookup_table ( 2473 si->signal_connect_update_lookup_table(
2418 slot (slot_update_lookup_table)); 2474 slot(slot_update_lookup_table));
2419 2475
2420 si->signal_connect_commit_string ( 2476 si->signal_connect_commit_string(
2421 slot (slot_commit_string)); 2477 slot(slot_commit_string));
2422 2478
2423 si->signal_connect_forward_key_event ( 2479 si->signal_connect_forward_key_event(
2424 slot (slot_forward_key_event)); 2480 slot(slot_forward_key_event));
2425 2481
2426 si->signal_connect_register_properties ( 2482 si->signal_connect_register_properties(
2427 slot (slot_register_properties)); 2483 slot(slot_register_properties));
2428 2484
2429 si->signal_connect_update_property ( 2485 si->signal_connect_update_property(
2430 slot (slot_update_property)); 2486 slot(slot_update_property));
2431 2487
2432 si->signal_connect_beep ( 2488 si->signal_connect_beep(
2433 slot (slot_beep)); 2489 slot(slot_beep));
2434 2490
2435 si->signal_connect_start_helper ( 2491 si->signal_connect_start_helper(
2436 slot (slot_start_helper)); 2492 slot(slot_start_helper));
2437 2493
2438 si->signal_connect_stop_helper ( 2494 si->signal_connect_stop_helper(
2439 slot (slot_stop_helper)); 2495 slot(slot_stop_helper));
2440 2496
2441 si->signal_connect_send_helper_event ( 2497 si->signal_connect_send_helper_event(
2442 slot (slot_send_helper_event)); 2498 slot(slot_send_helper_event));
2443 2499
2444 si->signal_connect_get_surrounding_text ( 2500 si->signal_connect_get_surrounding_text(
2445 slot (slot_get_surrounding_text)); 2501 slot(slot_get_surrounding_text));
2446 2502
2447 si->signal_connect_delete_surrounding_text ( 2503 si->signal_connect_delete_surrounding_text(
2448 slot (slot_delete_surrounding_text)); 2504 slot(slot_delete_surrounding_text));
2449} 2505}
2450 2506
2451// Implementation of slot functions 2507// Implementation of slot functions
2452static void 2508static void
2453slot_show_preedit_string (IMEngineInstanceBase *si) 2509slot_show_preedit_string(IMEngineInstanceBase *si)
2454{ 2510{
2455 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 2511 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2456 2512
2457 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ()); 2513 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *>(si->get_frontend_data());
2458 2514
2459 if (ic && ic->impl && _focused_ic == ic) 2515 if (ic && ic->impl && _focused_ic == ic)
2460 { 2516 {
@@ -2462,102 +2518,102 @@ slot_show_preedit_string (IMEngineInstanceBase *si)
2462 { 2518 {
2463 if (!ic->impl->preedit_started) 2519 if (!ic->impl->preedit_started)
2464 { 2520 {
2465 ecore_imf_context_preedit_start_event_add (_focused_ic->ctx); 2521 ecore_imf_context_preedit_start_event_add(_focused_ic->ctx);
2466 ecore_imf_context_event_callback_call(_focused_ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_START, NULL); 2522 ecore_imf_context_event_callback_call(_focused_ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_START, NULL);
2467 ic->impl->preedit_started = true; 2523 ic->impl->preedit_started = true;
2468 } 2524 }
2469 } 2525 }
2470 else 2526 else
2471 _panel_client.show_preedit_string (ic->id); 2527 _panel_client.show_preedit_string(ic->id);
2472 } 2528 }
2473} 2529}
2474 2530
2475static void 2531static void
2476slot_show_aux_string (IMEngineInstanceBase *si) 2532slot_show_aux_string(IMEngineInstanceBase *si)
2477{ 2533{
2478 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 2534 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2479 2535
2480 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ()); 2536 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *>(si->get_frontend_data());
2481 2537
2482 if (ic && ic->impl && _focused_ic == ic) 2538 if (ic && ic->impl && _focused_ic == ic)
2483 _panel_client.show_aux_string (ic->id); 2539 _panel_client.show_aux_string(ic->id);
2484} 2540}
2485 2541
2486static void 2542static void
2487slot_show_lookup_table (IMEngineInstanceBase *si) 2543slot_show_lookup_table(IMEngineInstanceBase *si)
2488{ 2544{
2489 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 2545 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2490 2546
2491 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ()); 2547 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *>(si->get_frontend_data());
2492 2548
2493 if (ic && ic->impl && _focused_ic == ic) 2549 if (ic && ic->impl && _focused_ic == ic)
2494 _panel_client.show_lookup_table (ic->id); 2550 _panel_client.show_lookup_table(ic->id);
2495} 2551}
2496 2552
2497static void 2553static void
2498slot_hide_preedit_string (IMEngineInstanceBase *si) 2554slot_hide_preedit_string(IMEngineInstanceBase *si)
2499{ 2555{
2500 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 2556 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2501 2557
2502 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ()); 2558 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *>(si->get_frontend_data());
2503 2559
2504 if (ic && ic->impl && _focused_ic == ic) 2560 if (ic && ic->impl && _focused_ic == ic)
2505 { 2561 {
2506 bool emit = false; 2562 bool emit = false;
2507 if (ic->impl->preedit_string.length ()) 2563 if (ic->impl->preedit_string.length())
2508 { 2564 {
2509 ic->impl->preedit_string = WideString (); 2565 ic->impl->preedit_string = WideString();
2510 ic->impl->preedit_caret = 0; 2566 ic->impl->preedit_caret = 0;
2511 ic->impl->preedit_attrlist.clear (); 2567 ic->impl->preedit_attrlist.clear();
2512 emit = true; 2568 emit = true;
2513 } 2569 }
2514 if (ic->impl->use_preedit) 2570 if (ic->impl->use_preedit)
2515 { 2571 {
2516 if (emit) 2572 if (emit)
2517 { 2573 {
2518 ecore_imf_context_preedit_changed_event_add (ic->ctx); 2574 ecore_imf_context_preedit_changed_event_add(ic->ctx);
2519 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, NULL); 2575 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, NULL);
2520 } 2576 }
2521 if (ic->impl->preedit_started) 2577 if (ic->impl->preedit_started)
2522 { 2578 {
2523 ecore_imf_context_preedit_end_event_add (ic->ctx); 2579 ecore_imf_context_preedit_end_event_add(ic->ctx);
2524 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_END, NULL); 2580 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_END, NULL);
2525 ic->impl->preedit_started = false; 2581 ic->impl->preedit_started = false;
2526 } 2582 }
2527 } 2583 }
2528 else 2584 else
2529 _panel_client.hide_preedit_string (ic->id); 2585 _panel_client.hide_preedit_string(ic->id);
2530 } 2586 }
2531} 2587}
2532 2588
2533static void 2589static void
2534slot_hide_aux_string (IMEngineInstanceBase *si) 2590slot_hide_aux_string(IMEngineInstanceBase *si)
2535{ 2591{
2536 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 2592 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2537 2593
2538 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ()); 2594 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *>(si->get_frontend_data());
2539 2595
2540 if (ic && ic->impl && _focused_ic == ic) 2596 if (ic && ic->impl && _focused_ic == ic)
2541 _panel_client.hide_aux_string (ic->id); 2597 _panel_client.hide_aux_string(ic->id);
2542} 2598}
2543 2599
2544static void 2600static void
2545slot_hide_lookup_table (IMEngineInstanceBase *si) 2601slot_hide_lookup_table(IMEngineInstanceBase *si)
2546{ 2602{
2547 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 2603 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2548 2604
2549 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ()); 2605 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *>(si->get_frontend_data());
2550 2606
2551 if (ic && ic->impl && _focused_ic == ic) 2607 if (ic && ic->impl && _focused_ic == ic)
2552 _panel_client.hide_lookup_table (ic->id); 2608 _panel_client.hide_lookup_table(ic->id);
2553} 2609}
2554 2610
2555static void 2611static void
2556slot_update_preedit_caret (IMEngineInstanceBase *si, int caret) 2612slot_update_preedit_caret(IMEngineInstanceBase *si, int caret)
2557{ 2613{
2558 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 2614 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2559 2615
2560 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ()); 2616 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *>(si->get_frontend_data());
2561 2617
2562 if (ic && ic->impl && _focused_ic == ic && ic->impl->preedit_caret != caret) 2618 if (ic && ic->impl && _focused_ic == ic && ic->impl->preedit_caret != caret)
2563 { 2619 {
@@ -2566,28 +2622,28 @@ slot_update_preedit_caret (IMEngineInstanceBase *si, int caret)
2566 { 2622 {
2567 if (!ic->impl->preedit_started) 2623 if (!ic->impl->preedit_started)
2568 { 2624 {
2569 ecore_imf_context_preedit_start_event_add (ic->ctx); 2625 ecore_imf_context_preedit_start_event_add(ic->ctx);
2570 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_START, NULL); 2626 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_START, NULL);
2571 ic->impl->preedit_started = true; 2627 ic->impl->preedit_started = true;
2572 } 2628 }
2573 ecore_imf_context_preedit_changed_event_add (ic->ctx); 2629 ecore_imf_context_preedit_changed_event_add(ic->ctx);
2574 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, NULL); 2630 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, NULL);
2575 } 2631 }
2576 else 2632 else
2577 _panel_client.update_preedit_caret (ic->id, caret); 2633 _panel_client.update_preedit_caret(ic->id, caret);
2578 } 2634 }
2579} 2635}
2580 2636
2581static void 2637static void
2582slot_update_preedit_string (IMEngineInstanceBase *si, 2638slot_update_preedit_string(IMEngineInstanceBase *si,
2583 const WideString & str, 2639 const WideString & str,
2584 const AttributeList & attrs) 2640 const AttributeList & attrs)
2585{ 2641{
2586 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 2642 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2587 2643
2588 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ()); 2644 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *>(si->get_frontend_data());
2589 2645
2590 if (ic && ic->impl && _focused_ic == ic && (ic->impl->preedit_string != str || str.length ())) 2646 if (ic && ic->impl && _focused_ic == ic && (ic->impl->preedit_string != str || str.length()))
2591 { 2647 {
2592 ic->impl->preedit_string = str; 2648 ic->impl->preedit_string = str;
2593 ic->impl->preedit_attrlist = attrs; 2649 ic->impl->preedit_attrlist = attrs;
@@ -2595,178 +2651,178 @@ slot_update_preedit_string (IMEngineInstanceBase *si,
2595 { 2651 {
2596 if (!ic->impl->preedit_started) 2652 if (!ic->impl->preedit_started)
2597 { 2653 {
2598 ecore_imf_context_preedit_start_event_add (_focused_ic->ctx); 2654 ecore_imf_context_preedit_start_event_add(_focused_ic->ctx);
2599 ecore_imf_context_event_callback_call(_focused_ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_START, NULL); 2655 ecore_imf_context_event_callback_call(_focused_ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_START, NULL);
2600 ic->impl->preedit_started = true; 2656 ic->impl->preedit_started = true;
2601 } 2657 }
2602 ic->impl->preedit_caret = str.length (); 2658 ic->impl->preedit_caret = str.length();
2603 ic->impl->preedit_updating = true; 2659 ic->impl->preedit_updating = true;
2604 ecore_imf_context_preedit_changed_event_add (ic->ctx); 2660 ecore_imf_context_preedit_changed_event_add(ic->ctx);
2605 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, NULL); 2661 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, NULL);
2606 ic->impl->preedit_updating = false; 2662 ic->impl->preedit_updating = false;
2607 } 2663 }
2608 else 2664 else
2609 { 2665 {
2610 _panel_client.update_preedit_string (ic->id, str, attrs); 2666 _panel_client.update_preedit_string(ic->id, str, attrs);
2611 } 2667 }
2612 } 2668 }
2613} 2669}
2614 2670
2615static void 2671static void
2616slot_update_aux_string (IMEngineInstanceBase *si, 2672slot_update_aux_string(IMEngineInstanceBase *si,
2617 const WideString & str, 2673 const WideString & str,
2618 const AttributeList & attrs) 2674 const AttributeList & attrs)
2619{ 2675{
2620 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 2676 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2621 2677
2622 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ()); 2678 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *>(si->get_frontend_data());
2623 2679
2624 if (ic && ic->impl && _focused_ic == ic) 2680 if (ic && ic->impl && _focused_ic == ic)
2625 _panel_client.update_aux_string (ic->id, str, attrs); 2681 _panel_client.update_aux_string(ic->id, str, attrs);
2626} 2682}
2627 2683
2628static void 2684static void
2629slot_commit_string (IMEngineInstanceBase *si, 2685slot_commit_string(IMEngineInstanceBase *si,
2630 const WideString & str) 2686 const WideString & str)
2631{ 2687{
2632 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 2688 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2633 2689
2634 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ()); 2690 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *>(si->get_frontend_data());
2635 2691
2636 if (ic && ic->ctx) 2692 if (ic && ic->ctx)
2637 { 2693 {
2638 ecore_imf_context_commit_event_add (ic->ctx, utf8_wcstombs (str).c_str ()); 2694 ecore_imf_context_commit_event_add(ic->ctx, utf8_wcstombs(str).c_str());
2639 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_COMMIT, (void *)utf8_wcstombs(str).c_str()); 2695 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_COMMIT, (void *)utf8_wcstombs(str).c_str());
2640 } 2696 }
2641} 2697}
2642 2698
2643static void 2699static void
2644slot_forward_key_event (IMEngineInstanceBase *si, 2700slot_forward_key_event(IMEngineInstanceBase *si,
2645 const KeyEvent & key) 2701 const KeyEvent & key)
2646{ 2702{
2647 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 2703 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2648 2704
2649 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ()); 2705 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *>(si->get_frontend_data());
2650 2706
2651 if (ic && _focused_ic == ic) 2707 if (ic && _focused_ic == ic)
2652 { 2708 {
2653 if (!_fallback_instance->process_key_event (key)) 2709 if (!_fallback_instance->process_key_event(key))
2654 _x_send_key_event(key); 2710 _x_send_key_event(key);
2655 } 2711 }
2656} 2712}
2657 2713
2658static void 2714static void
2659slot_update_lookup_table (IMEngineInstanceBase *si, 2715slot_update_lookup_table(IMEngineInstanceBase *si,
2660 const LookupTable & table) 2716 const LookupTable & table)
2661{ 2717{
2662 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 2718 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2663 2719
2664 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ()); 2720 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *>(si->get_frontend_data());
2665 2721
2666 if (ic && ic->impl && _focused_ic == ic) 2722 if (ic && ic->impl && _focused_ic == ic)
2667 _panel_client.update_lookup_table (ic->id, table); 2723 _panel_client.update_lookup_table(ic->id, table);
2668} 2724}
2669 2725
2670static void 2726static void
2671slot_register_properties (IMEngineInstanceBase *si, 2727slot_register_properties(IMEngineInstanceBase *si,
2672 const PropertyList & properties) 2728 const PropertyList & properties)
2673{ 2729{
2674 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 2730 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2675 2731
2676 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ()); 2732 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *>(si->get_frontend_data());
2677 2733
2678 if (ic && ic->impl && _focused_ic == ic) 2734 if (ic && ic->impl && _focused_ic == ic)
2679 _panel_client.register_properties (ic->id, properties); 2735 _panel_client.register_properties(ic->id, properties);
2680} 2736}
2681 2737
2682static void 2738static void
2683slot_update_property (IMEngineInstanceBase *si, 2739slot_update_property(IMEngineInstanceBase *si,
2684 const Property & property) 2740 const Property & property)
2685{ 2741{
2686 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 2742 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2687 2743
2688 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ()); 2744 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *>(si->get_frontend_data());
2689 2745
2690 if (ic && ic->impl && _focused_ic == ic) 2746 if (ic && ic->impl && _focused_ic == ic)
2691 _panel_client.update_property (ic->id, property); 2747 _panel_client.update_property(ic->id, property);
2692} 2748}
2693 2749
2694static void 2750static void
2695slot_beep (IMEngineInstanceBase *si __UNUSED__) 2751slot_beep(IMEngineInstanceBase *si __UNUSED__)
2696{ 2752{
2697 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 2753 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2698} 2754}
2699 2755
2700static void 2756static void
2701slot_start_helper (IMEngineInstanceBase *si, 2757slot_start_helper(IMEngineInstanceBase *si,
2702 const String &helper_uuid) 2758 const String &helper_uuid)
2703{ 2759{
2704 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ()); 2760 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *>(si->get_frontend_data());
2705 2761
2706 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " helper= " << helper_uuid << " context=" 2762 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " helper= " << helper_uuid << " context="
2707 << (ic ? ic->id : -1) << " ic=" << ic 2763 << (ic ? ic->id : -1) << " ic=" << ic
2708 << " ic-uuid=" << ((ic ) ? ic->impl->si->get_factory_uuid () : "") << "...\n"; 2764 << " ic-uuid=" << ((ic ) ? ic->impl->si->get_factory_uuid() : "") << "...\n";
2709 2765
2710 if (ic && ic->impl) 2766 if (ic && ic->impl)
2711 _panel_client.start_helper (ic->id, helper_uuid); 2767 _panel_client.start_helper(ic->id, helper_uuid);
2712} 2768}
2713 2769
2714static void 2770static void
2715slot_stop_helper (IMEngineInstanceBase *si, 2771slot_stop_helper(IMEngineInstanceBase *si,
2716 const String &helper_uuid) 2772 const String &helper_uuid)
2717{ 2773{
2718 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ()); 2774 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *>(si->get_frontend_data());
2719 2775
2720 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " helper= " << helper_uuid << " context=" << (ic ? ic->id : -1) << " ic=" << ic << "...\n"; 2776 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " helper= " << helper_uuid << " context=" << (ic ? ic->id : -1) << " ic=" << ic << "...\n";
2721 2777
2722 if (ic && ic->impl) 2778 if (ic && ic->impl)
2723 _panel_client.stop_helper (ic->id, helper_uuid); 2779 _panel_client.stop_helper(ic->id, helper_uuid);
2724} 2780}
2725 2781
2726static void 2782static void
2727slot_send_helper_event (IMEngineInstanceBase *si, 2783slot_send_helper_event(IMEngineInstanceBase *si,
2728 const String &helper_uuid, 2784 const String &helper_uuid,
2729 const Transaction &trans) 2785 const Transaction &trans)
2730{ 2786{
2731 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ()); 2787 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *>(si->get_frontend_data());
2732 2788
2733 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " helper= " << helper_uuid << " context=" 2789 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " helper= " << helper_uuid << " context="
2734 << (ic ? ic->id : -1) << " ic=" << ic 2790 << (ic ? ic->id : -1) << " ic=" << ic
2735 << " ic-uuid=" << ((ic) ? ic->impl->si->get_factory_uuid () : "") << "...\n"; 2791 << " ic-uuid=" << ((ic) ? ic->impl->si->get_factory_uuid() : "") << "...\n";
2736 2792
2737 if (ic && ic->impl) 2793 if (ic && ic->impl)
2738 _panel_client.send_helper_event (ic->id, helper_uuid, trans); 2794 _panel_client.send_helper_event(ic->id, helper_uuid, trans);
2739} 2795}
2740 2796
2741static bool 2797static bool
2742slot_get_surrounding_text (IMEngineInstanceBase *si, 2798slot_get_surrounding_text(IMEngineInstanceBase *si,
2743 WideString &text, 2799 WideString &text,
2744 int &cursor, 2800 int &cursor,
2745 int maxlen_before, 2801 int maxlen_before,
2746 int maxlen_after) 2802 int maxlen_after)
2747{ 2803{
2748 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 2804 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2749 2805
2750 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ()); 2806 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *>(si->get_frontend_data());
2751 2807
2752 if (ic && ic->impl && _focused_ic == ic) 2808 if (ic && ic->impl && _focused_ic == ic)
2753 { 2809 {
2754 char *surrounding = NULL; 2810 char *surrounding = NULL;
2755 int cursor_index; 2811 int cursor_index;
2756 if (ecore_imf_context_surrounding_get (_focused_ic->ctx, &surrounding, &cursor_index)) 2812 if (ecore_imf_context_surrounding_get(_focused_ic->ctx, &surrounding, &cursor_index))
2757 { 2813 {
2758 SCIM_DEBUG_FRONTEND(2) << "Surrounding text: " << surrounding <<"\n"; 2814 SCIM_DEBUG_FRONTEND(2) << "Surrounding text: " << surrounding <<"\n";
2759 SCIM_DEBUG_FRONTEND(2) << "Cursor Index : " << cursor_index <<"\n"; 2815 SCIM_DEBUG_FRONTEND(2) << "Cursor Index : " << cursor_index <<"\n";
2760 WideString before (utf8_mbstowcs (String (surrounding, surrounding + cursor_index))); 2816 WideString before(utf8_mbstowcs(String(surrounding, surrounding + cursor_index)));
2761 WideString after (utf8_mbstowcs (String (surrounding + cursor_index))); 2817 WideString after(utf8_mbstowcs(String(surrounding + cursor_index)));
2762 if (maxlen_before > 0 && ((unsigned int)maxlen_before) < before.length ()) 2818 if (maxlen_before > 0 && ((unsigned int)maxlen_before) < before.length())
2763 before = WideString (before.begin () + (before.length () - maxlen_before), before.end ()); 2819 before = WideString(before.begin() + (before.length() - maxlen_before), before.end());
2764 else if (maxlen_before == 0) before = WideString (); 2820 else if (maxlen_before == 0) before = WideString();
2765 if (maxlen_after > 0 && ((unsigned int)maxlen_after) < after.length ()) 2821 if (maxlen_after > 0 && ((unsigned int)maxlen_after) < after.length())
2766 after = WideString (after.begin (), after.begin () + maxlen_after); 2822 after = WideString(after.begin(), after.begin() + maxlen_after);
2767 else if (maxlen_after == 0) after = WideString (); 2823 else if (maxlen_after == 0) after = WideString();
2768 text = before + after; 2824 text = before + after;
2769 cursor = before.length (); 2825 cursor = before.length();
2770 return true; 2826 return true;
2771 } 2827 }
2772 } 2828 }
@@ -2774,13 +2830,13 @@ slot_get_surrounding_text (IMEngineInstanceBase *si,
2774} 2830}
2775 2831
2776static bool 2832static bool
2777slot_delete_surrounding_text (IMEngineInstanceBase *si, 2833slot_delete_surrounding_text(IMEngineInstanceBase *si,
2778 int offset, 2834 int offset,
2779 int len) 2835 int len)
2780{ 2836{
2781 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 2837 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2782 2838
2783 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ()); 2839 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *>(si->get_frontend_data());
2784 2840
2785 if (ic && ic->impl && _focused_ic == ic) 2841 if (ic && ic->impl && _focused_ic == ic)
2786 { 2842 {
@@ -2788,7 +2844,7 @@ slot_delete_surrounding_text (IMEngineInstanceBase *si,
2788 ev.ctx = _focused_ic->ctx; 2844 ev.ctx = _focused_ic->ctx;
2789 ev.n_chars = len; 2845 ev.n_chars = len;
2790 ev.offset = offset; 2846 ev.offset = offset;
2791 ecore_imf_context_delete_surrounding_event_add (_focused_ic->ctx, offset, len); 2847 ecore_imf_context_delete_surrounding_event_add(_focused_ic->ctx, offset, len);
2792 ecore_imf_context_event_callback_call(_focused_ic->ctx, ECORE_IMF_CALLBACK_DELETE_SURROUNDING, &ev); 2848 ecore_imf_context_event_callback_call(_focused_ic->ctx, ECORE_IMF_CALLBACK_DELETE_SURROUNDING, &ev);
2793 return true; 2849 return true;
2794 } 2850 }
@@ -2796,43 +2852,43 @@ slot_delete_surrounding_text (IMEngineInstanceBase *si,
2796} 2852}
2797 2853
2798static void 2854static void
2799reload_config_callback (const ConfigPointer &config) 2855reload_config_callback(const ConfigPointer &config)
2800{ 2856{
2801 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 2857 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2802 2858
2803 _frontend_hotkey_matcher.load_hotkeys (config); 2859 _frontend_hotkey_matcher.load_hotkeys(config);
2804 _imengine_hotkey_matcher.load_hotkeys (config); 2860 _imengine_hotkey_matcher.load_hotkeys(config);
2805 2861
2806 KeyEvent key; 2862 KeyEvent key;
2807 2863
2808 scim_string_to_key (key, 2864 scim_string_to_key(key,
2809 config->read (String (SCIM_CONFIG_HOTKEYS_FRONTEND_VALID_KEY_MASK), 2865 config->read(String(SCIM_CONFIG_HOTKEYS_FRONTEND_VALID_KEY_MASK),
2810 String ("Shift+Control+Alt+Lock"))); 2866 String("Shift+Control+Alt+Lock")));
2811 2867
2812 _valid_key_mask = (key.mask > 0)?(key.mask):0xFFFF; 2868 _valid_key_mask = (key.mask > 0)?(key.mask):0xFFFF;
2813 _valid_key_mask |= SCIM_KEY_ReleaseMask; 2869 _valid_key_mask |= SCIM_KEY_ReleaseMask;
2814 // Special treatment for two backslash keys on jp106 keyboard. 2870 // Special treatment for two backslash keys on jp106 keyboard.
2815 _valid_key_mask |= SCIM_KEY_QuirkKanaRoMask; 2871 _valid_key_mask |= SCIM_KEY_QuirkKanaRoMask;
2816 2872
2817 _on_the_spot = config->read (String (SCIM_CONFIG_FRONTEND_ON_THE_SPOT), _on_the_spot); 2873 _on_the_spot = config->read(String(SCIM_CONFIG_FRONTEND_ON_THE_SPOT), _on_the_spot);
2818 _shared_input_method = config->read (String (SCIM_CONFIG_FRONTEND_SHARED_INPUT_METHOD), _shared_input_method); 2874 _shared_input_method = config->read(String(SCIM_CONFIG_FRONTEND_SHARED_INPUT_METHOD), _shared_input_method);
2819 2875
2820 // Get keyboard layout setting 2876 // Get keyboard layout setting
2821 // Flush the global config first, in order to load the new configs from disk. 2877 // Flush the global config first, in order to load the new configs from disk.
2822 scim_global_config_flush (); 2878 scim_global_config_flush();
2823 2879
2824 _keyboard_layout = scim_get_default_keyboard_layout (); 2880 _keyboard_layout = scim_get_default_keyboard_layout();
2825} 2881}
2826 2882
2827static void 2883static void
2828fallback_commit_string_cb (IMEngineInstanceBase *si __UNUSED__, 2884fallback_commit_string_cb(IMEngineInstanceBase *si __UNUSED__,
2829 const WideString &str) 2885 const WideString &str)
2830{ 2886{
2831 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n"; 2887 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2832 2888
2833 if (_focused_ic && _focused_ic->impl) 2889 if (_focused_ic && _focused_ic->impl)
2834 { 2890 {
2835 ecore_imf_context_commit_event_add (_focused_ic->ctx, utf8_wcstombs (str).c_str ()); 2891 ecore_imf_context_commit_event_add(_focused_ic->ctx, utf8_wcstombs(str).c_str());
2836 ecore_imf_context_event_callback_call(_focused_ic->ctx, ECORE_IMF_CALLBACK_COMMIT, (void *)utf8_wcstombs(str).c_str()); 2892 ecore_imf_context_event_callback_call(_focused_ic->ctx, ECORE_IMF_CALLBACK_COMMIT, (void *)utf8_wcstombs(str).c_str());
2837 } 2893 }
2838} 2894}
diff --git a/libraries/ecore/src/modules/immodules/scim/scim_imcontext.h b/libraries/ecore/src/modules/immodules/scim/scim_imcontext.h
index 84f1a2f..72533e2 100644
--- a/libraries/ecore/src/modules/immodules/scim/scim_imcontext.h
+++ b/libraries/ecore/src/modules/immodules/scim/scim_imcontext.h
@@ -32,6 +32,8 @@ Eina_Bool isf_imf_context_filter_event (Ecore_IMF_Context *ctx, Ecore_IMF_Event
32void isf_imf_context_prediction_allow_set (Ecore_IMF_Context* ctx, Eina_Bool prediction); 32void isf_imf_context_prediction_allow_set (Ecore_IMF_Context* ctx, Eina_Bool prediction);
33void isf_imf_context_autocapital_type_set (Ecore_IMF_Context* ctx, Ecore_IMF_Autocapital_Type autocapital_type); 33void isf_imf_context_autocapital_type_set (Ecore_IMF_Context* ctx, Ecore_IMF_Autocapital_Type autocapital_type);
34void isf_imf_context_input_panel_layout_set (Ecore_IMF_Context* ctx, Ecore_IMF_Input_Panel_Layout layout); 34void isf_imf_context_input_panel_layout_set (Ecore_IMF_Context* ctx, Ecore_IMF_Input_Panel_Layout layout);
35void isf_imf_context_input_panel_show(Ecore_IMF_Context *ctx);
36void isf_imf_context_input_panel_hide(Ecore_IMF_Context *ctx);
35 37
36EcoreIMFContextISF* isf_imf_context_new (void); 38EcoreIMFContextISF* isf_imf_context_new (void);
37void isf_imf_context_shutdown (void); 39void isf_imf_context_shutdown (void);
diff --git a/libraries/ecore/src/modules/immodules/scim/scim_module.cpp b/libraries/ecore/src/modules/immodules/scim/scim_module.cpp
index eff6381..d17e37a 100644
--- a/libraries/ecore/src/modules/immodules/scim/scim_module.cpp
+++ b/libraries/ecore/src/modules/immodules/scim/scim_module.cpp
@@ -19,8 +19,8 @@ extern "C"
19 isf_imf_context_del, /* del */ 19 isf_imf_context_del, /* del */
20 isf_imf_context_client_window_set, /* client_window_set */ 20 isf_imf_context_client_window_set, /* client_window_set */
21 isf_imf_context_client_canvas_set, /* client_canvas_set */ 21 isf_imf_context_client_canvas_set, /* client_canvas_set */
22 NULL, /* isf_imf_context_input_panel_show, - show */ 22 isf_imf_context_input_panel_show, /* input_panel_show, - show */
23 NULL, /* isf_imf_context_input_panel_hide, - hide */ 23 isf_imf_context_input_panel_hide, /* input_panel_hide, - hide */
24 isf_imf_context_preedit_string_get, /* get_preedit_string */ 24 isf_imf_context_preedit_string_get, /* get_preedit_string */
25 isf_imf_context_focus_in, /* focus_in */ 25 isf_imf_context_focus_in, /* focus_in */
26 isf_imf_context_focus_out, /* focus_out */ 26 isf_imf_context_focus_out, /* focus_out */
@@ -38,7 +38,12 @@ extern "C"
38 NULL, /* isf_imf_context_input_panel_layout_get, */ 38 NULL, /* isf_imf_context_input_panel_layout_get, */
39 NULL, /* isf_imf_context_input_panel_language_set, */ 39 NULL, /* isf_imf_context_input_panel_language_set, */
40 NULL, /* isf_imf_context_input_panel_language_get, */ 40 NULL, /* isf_imf_context_input_panel_language_get, */
41 isf_imf_context_cursor_location_set /* cursor_location_set */ 41 isf_imf_context_cursor_location_set, /* cursor_location_set */
42 NULL, /* input_panel_imdata_set */
43 NULL, /* input_panel_imdata_get */
44 NULL, /* input_panel_return_key_type_set */
45 NULL, /* input_panel_return_key_disabled_set */
46 NULL /* input_panel_caps_lock_mode_set */
42 }; 47 };
43 48
44 static Ecore_IMF_Context *imf_module_create (void); 49 static Ecore_IMF_Context *imf_module_create (void);
diff --git a/libraries/ecore/src/modules/immodules/xim/Makefile.in b/libraries/ecore/src/modules/immodules/xim/Makefile.in
index 5b78946..775b574 100644
--- a/libraries/ecore/src/modules/immodules/xim/Makefile.in
+++ b/libraries/ecore/src/modules/immodules/xim/Makefile.in
@@ -48,16 +48,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
48 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 48 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
49 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 49 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
50 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 50 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
51 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 51 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
52 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 52 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
53 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 53 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
54 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 54 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
55 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 55 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
56 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 56 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
57 $(top_srcdir)/configure.ac
58am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 57am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
59 $(ACLOCAL_M4) 58 $(ACLOCAL_M4)
60mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 59mkinstalldirs = $(install_sh) -d
61CONFIG_HEADER = $(top_builddir)/config.h 60CONFIG_HEADER = $(top_builddir)/config.h
62CONFIG_CLEAN_FILES = 61CONFIG_CLEAN_FILES =
63CONFIG_CLEAN_VPATH_FILES = 62CONFIG_CLEAN_VPATH_FILES =
@@ -189,6 +188,8 @@ EVAS_LIBS = @EVAS_LIBS@
189EVIL_CFLAGS = @EVIL_CFLAGS@ 188EVIL_CFLAGS = @EVIL_CFLAGS@
190EVIL_LIBS = @EVIL_LIBS@ 189EVIL_LIBS = @EVIL_LIBS@
191EXEEXT = @EXEEXT@ 190EXEEXT = @EXEEXT@
191EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
192EXOTIC_LIBS = @EXOTIC_LIBS@
192FGREP = @FGREP@ 193FGREP = @FGREP@
193GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 194GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
194GLIB_CFLAGS = @GLIB_CFLAGS@ 195GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -244,6 +245,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
244PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 245PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
245PIXMAN_LIBS = @PIXMAN_LIBS@ 246PIXMAN_LIBS = @PIXMAN_LIBS@
246PKG_CONFIG = @PKG_CONFIG@ 247PKG_CONFIG = @PKG_CONFIG@
248PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
249PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
247POSUB = @POSUB@ 250POSUB = @POSUB@
248RANLIB = @RANLIB@ 251RANLIB = @RANLIB@
249SCIM_CFLAGS = @SCIM_CFLAGS@ 252SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -254,6 +257,7 @@ SDL_LIBS = @SDL_LIBS@
254SED = @SED@ 257SED = @SED@
255SET_MAKE = @SET_MAKE@ 258SET_MAKE = @SET_MAKE@
256SHELL = @SHELL@ 259SHELL = @SHELL@
260SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
257SSL_CFLAGS = @SSL_CFLAGS@ 261SSL_CFLAGS = @SSL_CFLAGS@
258SSL_LIBS = @SSL_LIBS@ 262SSL_LIBS = @SSL_LIBS@
259STRIP = @STRIP@ 263STRIP = @STRIP@
diff --git a/libraries/ecore/src/modules/immodules/xim/ecore_imf_xim.c b/libraries/ecore/src/modules/immodules/xim/ecore_imf_xim.c
index ea7ee7f..01a3576 100644
--- a/libraries/ecore/src/modules/immodules/xim/ecore_imf_xim.c
+++ b/libraries/ecore/src/modules/immodules/xim/ecore_imf_xim.c
@@ -294,6 +294,10 @@ _ecore_imf_context_xim_focus_in(Ecore_IMF_Context *ctx)
294 imf_context_data = ecore_imf_context_data_get(ctx); 294 imf_context_data = ecore_imf_context_data_get(ctx);
295 ic = imf_context_data->ic; 295 ic = imf_context_data->ic;
296 imf_context_data->has_focus = EINA_TRUE; 296 imf_context_data->has_focus = EINA_TRUE;
297
298 if (ecore_imf_context_input_panel_enabled_get(ctx))
299 ecore_imf_context_input_panel_show(ctx);
300
297 if (ic) 301 if (ic)
298 { 302 {
299 char *str; 303 char *str;
@@ -326,6 +330,9 @@ _ecore_imf_context_xim_focus_out(Ecore_IMF_Context *ctx)
326 ic = imf_context_data->ic; 330 ic = imf_context_data->ic;
327 if (ic) 331 if (ic)
328 XUnsetICFocus(ic); 332 XUnsetICFocus(ic);
333
334 if (ecore_imf_context_input_panel_enabled_get(ctx))
335 ecore_imf_context_input_panel_hide(ctx);
329 } 336 }
330#else 337#else
331 (void)ctx; 338 (void)ctx;
@@ -501,6 +508,38 @@ _ecore_imf_context_xim_cursor_location_set(Ecore_IMF_Context *ctx,
501 (void)(w); // yes w is unused, but only a bi-product of the algorithm 508 (void)(w); // yes w is unused, but only a bi-product of the algorithm
502} 509}
503 510
511static void
512_ecore_imf_context_xim_input_panel_show(Ecore_IMF_Context *ctx)
513{
514 EINA_LOG_DBG("%s in", __FUNCTION__);
515
516#ifdef ENABLE_XIM
517 Ecore_IMF_Context_Data *imf_context_data;
518 imf_context_data = ecore_imf_context_data_get(ctx);
519
520 ecore_x_e_virtual_keyboard_state_set
521 (imf_context_data->win, ECORE_X_VIRTUAL_KEYBOARD_STATE_ON);
522#else
523 (void)ctx;
524#endif
525}
526
527static void
528_ecore_imf_context_xim_input_panel_hide(Ecore_IMF_Context *ctx)
529{
530 EINA_LOG_DBG("%s in", __FUNCTION__);
531
532#ifdef ENABLE_XIM
533 Ecore_IMF_Context_Data *imf_context_data;
534 imf_context_data = ecore_imf_context_data_get(ctx);
535
536 ecore_x_e_virtual_keyboard_state_set
537 (imf_context_data->win, ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF);
538#else
539 (void)ctx;
540#endif
541}
542
504#ifdef ENABLE_XIM 543#ifdef ENABLE_XIM
505static unsigned int 544static unsigned int
506_ecore_x_event_reverse_modifiers(unsigned int state) 545_ecore_x_event_reverse_modifiers(unsigned int state)
@@ -739,8 +778,8 @@ static Ecore_IMF_Context_Class xim_class = {
739 .del = _ecore_imf_context_xim_del, 778 .del = _ecore_imf_context_xim_del,
740 .client_window_set = _ecore_imf_context_xim_client_window_set, 779 .client_window_set = _ecore_imf_context_xim_client_window_set,
741 .client_canvas_set = NULL, 780 .client_canvas_set = NULL,
742 .show = NULL, 781 .show = _ecore_imf_context_xim_input_panel_show,
743 .hide = NULL, 782 .hide = _ecore_imf_context_xim_input_panel_hide,
744 .preedit_string_get = _ecore_imf_context_xim_preedit_string_get, 783 .preedit_string_get = _ecore_imf_context_xim_preedit_string_get,
745 .focus_in = _ecore_imf_context_xim_focus_in, 784 .focus_in = _ecore_imf_context_xim_focus_in,
746 .focus_out = _ecore_imf_context_xim_focus_out, 785 .focus_out = _ecore_imf_context_xim_focus_out,
@@ -759,6 +798,11 @@ static Ecore_IMF_Context_Class xim_class = {
759 .input_panel_language_set = NULL, 798 .input_panel_language_set = NULL,
760 .input_panel_language_get = NULL, 799 .input_panel_language_get = NULL,
761 .cursor_location_set = _ecore_imf_context_xim_cursor_location_set, 800 .cursor_location_set = _ecore_imf_context_xim_cursor_location_set,
801 .input_panel_imdata_set = NULL,
802 .input_panel_imdata_get = NULL,
803 .input_panel_return_key_type_set = NULL,
804 .input_panel_return_key_disabled_set = NULL,
805 .input_panel_caps_lock_mode_set = NULL
762}; 806};
763 807
764static Ecore_IMF_Context * 808static Ecore_IMF_Context *
diff --git a/libraries/ecore/src/tests/Makefile.in b/libraries/ecore/src/tests/Makefile.in
index bd7726a..aa799d9 100644
--- a/libraries/ecore/src/tests/Makefile.in
+++ b/libraries/ecore/src/tests/Makefile.in
@@ -53,16 +53,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
53 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 53 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
54 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 54 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
55 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 55 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
56 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 56 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
57 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 57 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
58 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 58 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
59 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 59 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
60 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 60 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
61 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 61 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
62 $(top_srcdir)/configure.ac
63am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 62am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
64 $(ACLOCAL_M4) 63 $(ACLOCAL_M4)
65mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 64mkinstalldirs = $(install_sh) -d
66CONFIG_HEADER = $(top_builddir)/config.h 65CONFIG_HEADER = $(top_builddir)/config.h
67CONFIG_CLEAN_FILES = 66CONFIG_CLEAN_FILES =
68CONFIG_CLEAN_VPATH_FILES = 67CONFIG_CLEAN_VPATH_FILES =
@@ -174,6 +173,8 @@ EVAS_LIBS = @EVAS_LIBS@
174EVIL_CFLAGS = @EVIL_CFLAGS@ 173EVIL_CFLAGS = @EVIL_CFLAGS@
175EVIL_LIBS = @EVIL_LIBS@ 174EVIL_LIBS = @EVIL_LIBS@
176EXEEXT = @EXEEXT@ 175EXEEXT = @EXEEXT@
176EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
177EXOTIC_LIBS = @EXOTIC_LIBS@
177FGREP = @FGREP@ 178FGREP = @FGREP@
178GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 179GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
179GLIB_CFLAGS = @GLIB_CFLAGS@ 180GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -229,6 +230,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
229PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 230PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
230PIXMAN_LIBS = @PIXMAN_LIBS@ 231PIXMAN_LIBS = @PIXMAN_LIBS@
231PKG_CONFIG = @PKG_CONFIG@ 232PKG_CONFIG = @PKG_CONFIG@
233PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
234PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
232POSUB = @POSUB@ 235POSUB = @POSUB@
233RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
234SCIM_CFLAGS = @SCIM_CFLAGS@ 237SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -239,6 +242,7 @@ SDL_LIBS = @SDL_LIBS@
239SED = @SED@ 242SED = @SED@
240SET_MAKE = @SET_MAKE@ 243SET_MAKE = @SET_MAKE@
241SHELL = @SHELL@ 244SHELL = @SHELL@
245SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
242SSL_CFLAGS = @SSL_CFLAGS@ 246SSL_CFLAGS = @SSL_CFLAGS@
243SSL_LIBS = @SSL_LIBS@ 247SSL_LIBS = @SSL_LIBS@
244STRIP = @STRIP@ 248STRIP = @STRIP@
diff --git a/libraries/ecore/src/tests/ecore_test_ecore_x.c b/libraries/ecore/src/tests/ecore_test_ecore_x.c
index 4b9e126..2d14ff1 100644
--- a/libraries/ecore/src/tests/ecore_test_ecore_x.c
+++ b/libraries/ecore/src/tests/ecore_test_ecore_x.c
@@ -6,6 +6,10 @@
6 6
7#include "ecore_suite.h" 7#include "ecore_suite.h"
8 8
9/* FIXME: Currently disable these tests. They are useless ATM and they just
10 * make buildbot complain. Once we add useful tests here we'll also bother
11 * with getting X on the server. */
12#undef HAVE_ECORE_X_XLIB
9 13
10/* TODO: change to HAVE_ECORE_X when xcb implementation is done */ 14/* TODO: change to HAVE_ECORE_X when xcb implementation is done */
11#ifdef HAVE_ECORE_X_XLIB 15#ifdef HAVE_ECORE_X_XLIB
diff --git a/libraries/ecore/src/util/Makefile.in b/libraries/ecore/src/util/Makefile.in
index 96cb48a..423c6e0 100644
--- a/libraries/ecore/src/util/Makefile.in
+++ b/libraries/ecore/src/util/Makefile.in
@@ -49,16 +49,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
49 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 49 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
50 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \ 50 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
51 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ 51 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
52 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ 52 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
53 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ 53 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
54 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ 54 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
55 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ 55 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
56 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ 56 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
57 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ 57 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
58 $(top_srcdir)/configure.ac
59am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 58am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
60 $(ACLOCAL_M4) 59 $(ACLOCAL_M4)
61mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 60mkinstalldirs = $(install_sh) -d
62CONFIG_HEADER = $(top_builddir)/config.h 61CONFIG_HEADER = $(top_builddir)/config.h
63CONFIG_CLEAN_FILES = 62CONFIG_CLEAN_FILES =
64CONFIG_CLEAN_VPATH_FILES = 63CONFIG_CLEAN_VPATH_FILES =
@@ -163,6 +162,8 @@ EVAS_LIBS = @EVAS_LIBS@
163EVIL_CFLAGS = @EVIL_CFLAGS@ 162EVIL_CFLAGS = @EVIL_CFLAGS@
164EVIL_LIBS = @EVIL_LIBS@ 163EVIL_LIBS = @EVIL_LIBS@
165EXEEXT = @EXEEXT@ 164EXEEXT = @EXEEXT@
165EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
166EXOTIC_LIBS = @EXOTIC_LIBS@
166FGREP = @FGREP@ 167FGREP = @FGREP@
167GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ 168GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
168GLIB_CFLAGS = @GLIB_CFLAGS@ 169GLIB_CFLAGS = @GLIB_CFLAGS@
@@ -218,6 +219,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
218PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 219PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
219PIXMAN_LIBS = @PIXMAN_LIBS@ 220PIXMAN_LIBS = @PIXMAN_LIBS@
220PKG_CONFIG = @PKG_CONFIG@ 221PKG_CONFIG = @PKG_CONFIG@
222PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
223PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
221POSUB = @POSUB@ 224POSUB = @POSUB@
222RANLIB = @RANLIB@ 225RANLIB = @RANLIB@
223SCIM_CFLAGS = @SCIM_CFLAGS@ 226SCIM_CFLAGS = @SCIM_CFLAGS@
@@ -228,6 +231,7 @@ SDL_LIBS = @SDL_LIBS@
228SED = @SED@ 231SED = @SED@
229SET_MAKE = @SET_MAKE@ 232SET_MAKE = @SET_MAKE@
230SHELL = @SHELL@ 233SHELL = @SHELL@
234SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
231SSL_CFLAGS = @SSL_CFLAGS@ 235SSL_CFLAGS = @SSL_CFLAGS@
232SSL_LIBS = @SSL_LIBS@ 236SSL_LIBS = @SSL_LIBS@
233STRIP = @STRIP@ 237STRIP = @STRIP@