/src/bin/ecore_test
/src/lib/ecore_x/xcb/ecore_xcb_keysym_table.h
/src/util/makekeys
+debian/*.debhelper.log
+debian/*.substvars
+debian/*.debhelper
+debian/libecore-bin/
+config.guess.cdbs-orig
+config.sub.cdbs-orig
+debian/files
+debian/libecore-con/
+debian/libecore-config/
+debian/libecore-data/
+debian/libecore-dbg/
+debian/libecore-dev/
+debian/libecore-doc/
+debian/libecore-evas/
+debian/libecore-fb/
+debian/libecore-file/
+debian/libecore-imf/
+debian/libecore-input/
+debian/libecore-ipc/
+debian/libecore-x/
+debian/libecore/
+debian/stamp-*
+debian/tmp/
+doc/html/
+doc/latex/
+doc/man/
--- /dev/null
+Revision 51480
+Last Changed Rev 51475
--- /dev/null
+ecore (0.9.9.060+svnYYYYMMDD-1) unstable; urgency=low
+
+ * New version
+
+ -- quaker <quaker66@gmail.com> Thu, 22 Apr 2009 18:12:06 +0100
+
+ecore (0.9.9.050+svnYYYYMMDD-1) unstable; urgency=low
+
+ * Clean up changelog
+
+ -- quaker <quaker66@gmail.com> Tue, 21 Apr 2009 19:14:37 +0100
--- /dev/null
+Source: ecore
+Section: libs
+Priority: optional
+Maintainer: Debian Pkg-e Team <pkg-e-devel@lists.alioth.debian.org>
+Uploaders: Albin Tonnerre <albin.tonnerre@gmail.com>, Niv Sardi <xaiki@debian.org>,
+ Xavier Oswald <x.oswald@free.fr>, Jan Lübbe <jluebbe@debian.org>
+Build-Depends: dpkg-dev (>= 1.14.8), debhelper (>= 6), cdbs, libeina-dev (>= 0.0.2.060+svnYYYYMMDD),
+ libeet-dev (>= 1.0.0), libevas-dev (>= 0.9.9.060+svnYYYYMMDD), libgnutls-dev,
+ libcurl4-gnutls-dev, libxcursor-dev, libxss-dev, libxrender-dev, libxinerama-dev,
+ libxrandr-dev, libxext-dev, libxp-dev, libxcomposite-dev, libjpeg62-dev,
+ libxdamage-dev, x11proto-xext-dev, libxtst-dev, doxygen, pkg-config, libtool
+Standards-Version: 3.8.1
+Homepage: http://enlightenment.org
+
+Package: libecore-svn-01
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Core abstraction layer for enlightenment DR 0.17
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+
+Package: libecore-con-svn-01
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore Connection Library
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Ecore Connection Library.
+
+Package: libecore-config-svn-01
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore Enlightened Property Library
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Enlightened Property Library.
+
+Package: libecore-evas-svn-01
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore Evas Wrapper Library
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Ecore Evas wrapper functions.
+
+Package: libecore-fb-svn-01
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore frame buffer system functions
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Ecore frame buffer system functions.
+
+Package: libecore-file-svn-01
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore File Library
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Ecore File Library.
+
+Package: libecore-imf-svn-01
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore Input Method Framework module
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Ecore Input Method Framework module, and the Evas
+ helper functions for it.
+
+Package: libecore-input-svn-01
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore input functions
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Ecore Input Library.
+
+Package: libecore-ipc-svn-01
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore inter-process communication functions
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Ecore inter-process communication functions.
+
+Package: libecore-x-svn-01
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore functions for dealing with the X Windows System
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Ecore wrapper and convenience functions for using
+ the X Windows System.
+
+Package: libecore-dev
+Architecture: any
+Section: libdevel
+Suggests: libecore-doc
+Depends: ${misc:Depends}, libecore-svn-01 (= ${binary:Version}),
+ libecore-con-svn-01 (= ${binary:Version}),
+ libecore-config-svn-01 (= ${binary:Version}),
+ libecore-evas-svn-01 (= ${binary:Version}),
+ libecore-fb-svn-01 (= ${binary:Version}),
+ libecore-file-svn-01 (= ${binary:Version}),
+ libecore-imf-svn-01 (= ${binary:Version}),
+ libecore-input-svn-01 (= ${binary:Version}),
+ libecore-ipc-svn-01 (= ${binary:Version}),
+ libecore-x-svn-01 (= ${binary:Version}),
+ libeet-dev, libevas-dev (>= 0.9.9.060), libeina-dev, pkg-config,
+ libgnutls-dev, libcurl4-gnutls-dev, libxcursor-dev, libxss-dev,
+ libxrender-dev, libxinerama-dev, libxrandr-dev, libxext-dev,
+ libxp-dev, libxcomposite-dev, libxdamage-dev, x11proto-xext-dev, libxtst-dev
+Description: Ecore headers and static libraries
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains headers and static libraries for the Ecore library.
+
+Package: libecore-doc
+Architecture: all
+Section: doc
+Depends: ${misc:Depends}
+Enhances: libecore-dev
+Description: Ecore API Documentation
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package provides development documentation (html and manpages)for the
+ Ecore library.
+
+Package: libecore-bin
+Architecture: any
+Section: utils
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Tools that support Ecore
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package includes:
+ - ecore_config: allows creation/editing of ecore_config databases
+
+Package: libecore-dbg
+Architecture: any
+Section: libdevel
+Priority: extra
+Depends: ${misc:Depends}, libecore-svn-01 (= ${binary:Version})
+Description: Debugging symbols for libecore
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications
+ .
+ This package contains unstripped shared libraries. It is provided primarily
+ to provide a backtrace with names in a debugger, this makes it somewhat easier
+ to interpret core dumps. The libraries are installed in /usr/lib/debug and
+ are automatically used by gdb.
--- /dev/null
+This package was debianized by Debian Pkg-e Team <pkg-e-devel@lists.alioth.debian.org>
+Sat, 07 Jul 2007 09:29:10 +0000.
+
+It was downloaded from http://download.enlightenment.org/
+
+Upstream Authors:
+
+ Enlightenment team <enlightenment-devel@lists.sourceforge.net>
+
+Copyright:
+
+ Copyright (C) 2000 Carsten Haitzler and various contributors (see AUTHORS)
+
+ Additional Copyright:
+ src/lib/ecore/ecore_str.c: Copyright (c) 1998 Todd C. Miller
+ <Todd.Miller@courtesan.com>
+ src/lib/ecore/ecore_value.c: Copyright (C) 2001
+ Christopher Rosendahl <smugg@fatelabs.com>
+ Nathan Ingersoll <ningerso@d.umn.edu>
+ src/lib/ecore_fb/ecore_fb_li.c: Copyright (C) 1999-2002 Brad Hards
+
+License:
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the "Software"),
+ to deal in the Software without restriction, including without limitation
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ and/or sell copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies of the Software, its documentation and marketing & publicity
+ materials, and acknowledgment shall be given in the documentation,
+ materials and software packages that this Software was used.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+On Debian systems, the complete text of the BSD License can be found
+in `/usr/share/common-licenses/BSD'.
--- /dev/null
+.\"Created with GNOME Manpages Editor Wizard
+.\"http://gmanedit.sourceforge.net
+.\"Sergio Rua <srua@gpul.org>
+.\"
+.TH ecore_config 1 "January 18, 2007" "Ecore"
+
+.SH NAME
+ecore_config \-that allow creation and editing of ecore_config databases
+
+.SH SYNOPSIS
+.B ecore_config
+.RI \-a\ |\ \-k\ [\-g|\-d|\-b|\-f|\-i|\-r|\-s|\-t]\ [\-c]
+.br
+
+.SH DESCRIPTION
+.PP
+\fBecore_config\fP is a tool that allows creation and editing of
+ecore_config databases used by the programs relying on libecore
+
+.SH OPTIONS
+\fIecore_config\fP accepts the following options:
+.TP
+.B \-c, \-\-file=FILE
+Specify the config file to read
+.TP
+.B \-k, \-\-key=KEY
+Select the key KEY. Must be given for all commands except \-a
+.TP
+.B \-g, \-\-get
+get key
+.TP
+.B \-d, \-\-del
+delete key
+.TP
+.B \-b, \-\-bool=VALUE
+set boolean
+.TP
+.B \-f, \-\-float=VALUE
+set float
+.TP
+.B \-i, \-\-int=VALUE
+set integer
+.TP
+.B \-r, \-\-rgb=VALUE
+set RGBA
+.TP
+.B \-s, \-\-string=VALUE
+set string
+.TP
+.B \-t, \-\-theme=VALUE
+set theme
+.SH AUTHOR
+This manual page was written by Albin Tonnerre <albin.tonnerre@gmail.com>
+for the Debian GNU/Linux system (but may be used by others).
--- /dev/null
+debian/tmp/usr/bin/ecore_config
--- /dev/null
+debian/tmp/usr/include/Ecore*.h
+debian/tmp/usr/lib/libecore*.a
+debian/tmp/usr/lib/libecore.so
+debian/tmp/usr/lib/libecore_config.so
+debian/tmp/usr/lib/libecore_con.so
+debian/tmp/usr/lib/libecore_evas.so
+debian/tmp/usr/lib/libecore_fb.so
+debian/tmp/usr/lib/libecore_file.so
+debian/tmp/usr/lib/libecore_imf_evas.so
+debian/tmp/usr/lib/libecore_imf.so
+debian/tmp/usr/lib/libecore_input.so
+debian/tmp/usr/lib/libecore_ipc.so
+debian/tmp/usr/lib/libecore_x.so
+debian/tmp/usr/lib/pkgconfig/ecore*.pc
--- /dev/null
+Document: ecore
+Title: Ecore Guide
+Author: Carsten Haitzler
+Abstract: This document describes Ecore API
+ and provides sample C code.
+Section: Programming/C
+
+Format: HTML
+Index: /usr/share/doc/libecore-doc/html/index.html
+Files: /usr/share/doc/libecore-doc/html/*.html
--- /dev/null
+#!/usr/bin/make -f
+
+include /usr/share/cdbs/1/class/autotools.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+
+DEB_CONFIGURE_SCRIPT := ./autogen.sh
+DEB_INSTALL_MANPAGES_libecore-bin := debian/ecore_config.1
+DEB_DH_STRIP_ARGS := --dbg-package=libecore-dbg
+DEB_CONFIGURE_EXTRA_FLAGS := --enable-ecore-fb \
+ --disable-ecore-directfb \
+ --disable-ecore-evas-dfb \
+ --enable-ecore-evas-fb \
+ --disable-rpath \
+ --disable-openssl \
+ --enable-gnutls \
+ --enable-doc
+DEB_MAKE_CLEAN_TARGET := distclean
+CFLAGS += -fvisibility=hidden
+LDFLAGS += -fvisibility=hidden
+
+build/libecore-doc::
+ cd $(DEB_SRCDIR)/doc && make doc
+
+install/libecore-doc::
+ mkdir -p debian/libecore-doc/usr/share/doc/libecore-doc
+ cp -R $(DEB_SRCDIR)/doc/html debian/libecore-doc/usr/share/doc/libecore-doc/
+
+clean::
+ [ ! -f Makefile ] || make distclean
+ rm -f ecore-*.tar.bz2 ecore-*.tar.bz2.cdbs-config_list
--- /dev/null
+ecore (1.0.0.001+svn.61784slp2+build01) unstable; urgency=low
+
+ * Merge with upstream ecore svn @61784
+
+ -- Mike McCormack <mj.mccormack@samsung.com> Wed, 27 Jul 2011 14:43:58 +0900
+
+ecore (1.0.0.001+svn.61150slp2+build03) unstable; urgency=low
+
+ * [ecore_imf] set autocapital type
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.61150slp2+build03
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Mon, 25 Jul 2011 14:30:29 +0900
+
+ecore (1.0.0.001+svn.61150slp2+build02) unstable; urgency=low
+
+ * [ecore_imf] add ecore_imf_context_cursor_location_set API
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.61150slp2+build02
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Mon, 11 Jul 2011 16:13:56 +0900
+
+ecore (1.0.0.001+svn.61150slp2+build01) unstable; urgency=low
+
+ * Merge with SVN revision 61150
+
+ -- Mike McCormack <mj.mccormack@samsung.com> Thu, 07 Jul 2011 15:10:51 +0900
+
+ecore (1.0.0.001+svn.60286slp2+build02) unstable; urgency=low
+
+ * [ecore_imf] add ecore_imf_context_input_panel_enalbed_set, get API
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.60286slp2+build02
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Sat, 25 Jun 2011 15:11:35 +0900
+
+ecore (1.0.0.001+svn.60286slp2+build01) unstable; urgency=low
+
+ * [SVN EFL Migration] ecore in SLP is merged with SVN r60286
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.60286slp2+build01
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Fri, 24 Jun 2011 18:10:02 +0900
+
+ecore (1.0.0.001+svn.58224slp2+build04) unstable; urgency=low
+
+ * Fixed _ecore_main_loop_iterate_internal. Upstream merge.
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.58224slp2+build04
+
+ -- Daniel Juyung Seo <juyung.seo@samsung.com> Mon, 23 May 2011 14:20:58 +0900
+
+ecore (1.0.0.001+svn.58224slp2+build03) unstable; urgency=low
+
+ * Package upload
+ * Git: slp-scm.sec.samsung.net:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.58224slp2+build03
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Tue, 03 May 2011 20:48:31 +0900
+
+ecore (1.0.0.001+svn.58224slp2+build02) unstable; urgency=low
+
+ * Add shape input mask feature (upstream svn rev.58621)
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.58224slp2+build02
+
+ -- Doyoun Kang <doyoun.kang@samsung.com> Mon, 11 Apr 2011 12:52:50 +0900
+
+ecore (1.0.0.001+svn.58224slp2+build01) unstable; urgency=low
+
+ * [SVN EFL Migration] ecore in SLP is merged with SVN r58224
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.58224slp2+build01
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Tue, 05 Apr 2011 15:55:04 +0900
+
+ecore (1.0.0.001+svn.58047slp2+build02) unstable; urgency=low
+
+ * Rollback
+ * Git: slp-scm.sec.samsung.net:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.58047slp2+build02
+
+ -- Shinwoo Kim <cinoo.kim@samsung.com> Tue, 29 Mar 2011 23:52:57 +0900
+
+ecore (1.0.0.001+svn.58047slp2+build01) unstable; urgency=low
+
+ * [SVN EFL Migration] ecore in SLP is merged with SVN r58047
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.58047slp2+build01
+
+ -- Shinwoo Kim <cinoo.kim@samsung.com> Tue, 29 Mar 2011 18:55:29 +0900
+
+ecore (1.0.0.001+svn.57453slp2+build05) unstable; urgency=low
+
+ * [SVN EFL Migration] ecore in SLP is merged with SVN r57453
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.57453slp2+build05
+
+ -- Myungjae Lee <mjae.lee@samsung.com> Wed, 09 Mar 2011 11:29:41 +0900
+
+ecore (1.0.0.001+svn.57453slp2+build04) unstable; urgency=low
+
+ * [SVN EFL Migration] ecore in SLP is merged with SVN r57453
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.57453slp2+build04
+
+ -- Myungjae Lee <mjae.lee@samsung.com> Wed, 09 Mar 2011 11:14:55 +0900
+
+ecore (1.0.0.001+svn.57453slp2+build03) unstable; urgency=low
+
+ * Package Uplaod : Rollback
+ * Git: 165.213.180.234:/slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.57453slp2+build03
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Tue, 08 Mar 2011 12:38:42 +0900
+
+ecore (1.0.0.001+svn.57453slp2+build02) unstable; urgency=low
+
+ * Package Upload : rollback
+ * Git: 165.213.180.234:/slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.57453slp2+build02
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Tue, 08 Mar 2011 11:10:05 +0900
+
+ecore (1.0.0.001+svn.57453slp2+build01) unstable; urgency=low
+
+ * [SVN EFL Migration] ecore in SLP is merged with SVN r57453
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.57453slp2+build01
+
+ -- Myungjae Lee <mjae.lee@samsung.com> Mon, 07 Mar 2011 17:28:10 +0900
+
+ecore (1.0.0.001+svn.56239slp2+build06) unstable; urgency=low
+
+ * [SVN r56251] Bug fix - dont call pipe handler if its deleted.
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.56239slp2+build06
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Fri, 11 Feb 2011 17:52:58 +0900
+
+ecore (1.0.0.001+svn.56239slp2+build05) unstable; urgency=low
+
+ * [SVN r56251] Bug fix - dont call pipe handler if its deleted.
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.56239slp2+build05
+
+ -- Myoungwoon Kim <myoungwoon.kim@samsung.com> Tue, 08 Feb 2011 15:21:18 +0900
+
+ecore (1.0.0.001+svn.56239slp2+build04) unstable; urgency=low
+
+ * [ecore_evas_x.c] apply ECORE_EVAS_GL_SYNC_DRAW_DONE env.
+ + check whether GL driver sends SYNC_DRAW_DONE msg after buffer copy.
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.56239slp2+build04
+
+ -- Gwanglim Lee <gl77.lee@samsung.com> Sat, 05 Feb 2011 17:29:55 +0900
+
+ecore (1.0.0.001+svn.56239slp2+build03) unstable; urgency=low
+
+ * ee->no_comp_sync = 0
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.56239slp2+build03
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Mon, 31 Jan 2011 18:26:53 +0900
+
+ecore (1.0.0.001+svn.56239slp2+build02) unstable; urgency=low
+
+ * ee->no_comp_sync = 0
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.56239slp2+build02
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Mon, 31 Jan 2011 17:12:38 +0900
+
+ecore (1.0.0.001+svn.56239slp2+build01) unstable; urgency=low
+
+ * [SVN EFL Migration] ecore in SLP is merged with SVN r56239
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.56239slp2+build01
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Thu, 27 Jan 2011 12:21:58 +0900
+
+ecore (1.0.0.001+svn.56091slp2+build01) unstable; urgency=low
+
+ * [SVN EFL Migration] ecore in SLP is merged with SVN r56091
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.56091slp2+build01
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.56091slp2+build01
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Wed, 19 Jan 2011 16:16:45 +0900
+
+ecore (1.0.0.001+svn.55755slp2+build02) unstable; urgency=low
+
+ * [ecore_imf] bug fix : hide keyboard in ecore_imf_context_del
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.55755slp2+build02
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Wed, 05 Jan 2011 08:44:58 +0900
+
+ecore (1.0.0.001+svn.55755slp2+build01) unstable; urgency=low
+
+ * [SVN EFL Migration] ecore in SLP is merged with SVN r55755
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.55755slp2+build01
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Mon, 03 Jan 2011 21:19:00 +0900
+
+ecore (1.0.0.001+svn.55594slp2+build02) unstable; urgency=low
+
+ * Bug patch - ecore_x_xregion_is_empty()
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.55594slp2+build02
+
+ -- Doyoun Kang <doyoun.kang@samsung.com> Mon, 03 Jan 2011 12:56:39 +0900
+
+ecore (1.0.0.001+svn.55594slp2+build01) unstable; urgency=low
+
+ * [SVN EFL Migration] ecore in SLP is merged with SVN r55594
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.55594slp2+build01
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Wed, 22 Dec 2010 20:01:47 +0900
+
+ecore (1.0.0.001+svn.55371slp2+build02) unstable; urgency=low
+
+ * epoll disabled.
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.55371slp2+build02
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Wed, 15 Dec 2010 16:37:29 +0900
+
+ecore (1.0.0.001+svn.55371slp2+build01) unstable; urgency=low
+
+ * [SVN's EFL Migration] ecore in SLP is merged with SVN r55371.
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.55371slp2+build01
+
+ -- Juyung Seo <juyung.seo@samsung.com> Tue, 14 Dec 2010 17:50:20 +0900
+
+ecore (1.0.0.001+svn.55079slp2+build03) unstable; urgency=low
+
+ * [SVN's EFL Migration] ecore in SLP is merged with SVN r55371.
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.55079slp2+build03
+
+ -- Juyung Seo <juyung.seo@samsung.com> Tue, 14 Dec 2010 14:54:04 +0900
+
+ecore (1.0.0.001+svn.55079slp2+build02) unstable; urgency=low
+
+ * remove epoll
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.55079slp2+build02
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Thu, 02 Dec 2010 17:28:23 +0900
+
+ecore (1.0.0.001+svn.55079slp2+build01) unstable; urgency=low
+
+ * [SVN 55079 Merge]
+ * Update to SVN Revision 55079.
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.55079slp2+build01
+
+ -- Myoungwoon Kim <myoungwoon.kim@samsung.com> Thu, 02 Dec 2010 09:18:09 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build28) unstable; urgency=low
+
+ * [ecore_evas] Patch code for rotation.
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build28
+
+ -- Doyoun Kang <doyoun.kang@samsung.com> Mon, 29 Nov 2010 10:14:56 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build27) unstable; urgency=low
+
+ * [ecore_evas.c] change FPS rate print it every 0.1 sec
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build27
+
+ -- Seokjae Jeong <seok.j.jeong@samsung.com> Sat, 27 Nov 2010 15:06:21 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build26) unstable; urgency=low
+
+ * [ecore_imf] remove unused typedefs
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build26
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Fri, 26 Nov 2010 17:56:05 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build25) unstable; urgency=low
+
+ * [SVN 54830 Merge]
+ * Update to SVN Revision 54830.
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build25
+
+ -- Juyung Seo <juyung.seo@samsung.com> Fri, 26 Nov 2010 15:31:53 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build19) unstable; urgency=low
+
+ * libcurl-dev -> libcurl4-openssl-dev
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build19
+
+ -- ChunEon Park <chuneon.park@samsung.com> Thu, 18 Nov 2010 21:26:21 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build18) unstable; urgency=low
+
+ * [ecore_x] Add feature for sliding window
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build18
+
+ -- Doyoun Kang <doyoun.kang@samsung.com> Thu, 11 Nov 2010 10:53:35 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build17) unstable; urgency=low
+
+ * [ecore_imf] ecore_imf_context_input_panel_language_set
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build17
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Tue, 09 Nov 2010 15:08:12 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build16) unstable; urgency=low
+
+ * fix documentation of ecore_imf
+ * [src/lib/ecore_evas/Ecore_Evas.h] svn merge v51740.
+ * [svn merge] r51678~r51707
+ * [svn merge] Changeset 51650 - Revert and reapply badnull patch
+ * [ecore_evas] svn 51618 : Add UNUSED where missing.
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build16
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Wed, 13 Oct 2010 16:54:37 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build15) unstable; urgency=low
+
+ * fixed epoll
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build15
+
+ -- ChunEon Park <chuneon.park@samsung.com> Tue, 05 Oct 2010 10:39:49 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build14) unstable; urgency=low
+
+ * [ecore_x_events.c] fixed double / triple click
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build14
+
+ -- ChunEon Park <chuneon.park@samsung.com> Mon, 04 Oct 2010 21:38:13 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build13) unstable; urgency=low
+
+ * [ecore_evas] add EFL window rotation effect
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build13
+
+ -- Gwanglim Lee <gl77.lee@samsung.com> Sat, 02 Oct 2010 03:37:56 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build12) unstable; urgency=low
+
+ * [ecore_imf] svn merge 52773
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build12
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Wed, 30 Sep 2010 09:56:30 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build10) unstable; urgency=low
+
+ * update x_selection from upstream
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build10
+
+ -- Hyoyoung Chang <hyoyoung.chang@samsung.com> Mon, 27 Sep 2010 17:27:38 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build09) unstable; urgency=low
+
+ * repackaging
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build09
+
+ -- ChunEon Park <chuneon.park@samsung.com> Mon, 20 Sep 2010 21:42:20 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build08) unstable; urgency=low
+
+ * Add ecore_imf_context_input_panel_caps_mode_set
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build08
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Fri, 17 Sep 2010 15:48:17 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build07) unstable; urgency=low
+
+ * Repackage for epoll disable
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build07
+
+ -- Hyoyoung Chang <hyoyoung.chang@samsung.com> Fri, 17 Sep 2010 12:03:07 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build06) unstable; urgency=low
+
+ * Repackage for epoll disable
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build06
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Wed, 15 Sep 2010 18:15:43 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build05) unstable; urgency=low
+
+ * Repackage for epoll disable
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build05
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Wed, 15 Sep 2010 11:39:28 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build04) unstable; urgency=low
+
+ * add as-needed
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build04
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Wed, 15 Sep 2010 10:00:16 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build03) unstable; urgency=low
+
+ * repackage for stopping EPOLL fucntionality
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build03
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Tue, 14 Sep 2010 16:05:25 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build02) unstable; urgency=low
+
+ * repackage
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build02
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Fri, 10 Sep 2010 22:38:46 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build01) unstable; urgency=low
+
+ * [ecore] Merge slp with SVN
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build01
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Wed, 01 Sep 2010 10:31:12 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build15) unstable; urgency=low
+
+ * [rules] add disable-xim (from Wonkuk Jung)
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build15
+
+ -- Juyung Seo <juyung.seo@samsung.com> Wed, 01 Sep 2010 21:52:08 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build14) unstable; urgency=low
+
+ * [ecore_x] fix sync issue in 1 special event re-order case. ( Changeset r51609 )
+ * Reference : http://trac.enlightenment.org/e/changeset/51609
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build14
+
+ -- Gwan-gyeong Mun <kk.moon@samsung.com> Mon, 30 Aug 2010 08:46:33 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build13) unstable; urgency=low
+
+ * [ecore_imf] add MONTH, NUMBERONLY Layout
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build13
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Fri, 20 Aug 2010 11:23:12 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build12) unstable; urgency=low
+
+ * [ecore_imf] change parameter type of event_callback_add
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build12
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Fri, 30 Jul 2010 14:57:28 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build11) unstable; urgency=low
+
+ * [ecore_imf] fix memory leak when private key or disable key func is used
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build11
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Fri, 30 Jul 2010 14:32:07 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build10) unstable; urgency=low
+
+ * Remove deprecated Ecore_IMF APIs.
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build10
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Tue, 20 Jul 2010 18:17:00 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build09) unstable; urgency=low
+
+ * Repackage for beat release.
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build09
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Mon, 19 Jul 2010 10:47:44 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build08) unstable; urgency=low
+
+ * add the ECORE_X_ATOM_PARENT_BORDER_WINDOW atom.
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build08
+
+ -- Gwanglim Lee <gl77.lee@samsung.com> Wed, 14 Jul 2010 15:41:35 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build07) unstable; urgency=low
+
+ * Ecore_IMF API is revised.
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build07
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Thu, 08 Jul 2010 17:14:29 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build06) unstable; urgency=low
+
+ * add ecore_evas_gl_x11_no_swap_set for supporting lock/unlock feature.
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build06
+
+ -- ChunEon Park <chuneon.park@samsung.com> Wed, 07 Jul 2010 20:03:15 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build05) unstable; urgency=low
+
+ * add ecore_evas_gl_x11_no_swap_set for supporting lock/unlock feature.
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build05
+
+ -- Gwanglim Lee <gl77.lee@samsung.com> Tue, 29 Jun 2010 18:58:38 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build04) unstable; urgency=low
+
+ * Packaging.
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build04
+
+ -- Daniel Juyung Seo <juyung.seo@samsung.com> Thu, 10 Jun 2010 21:09:25 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build03) unstable; urgency=low
+
+ * Packaging.
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build03
+
+ -- Daniel Juyung Seo <juyung.seo@samsung.com> Thu, 10 Jun 2010 21:04:09 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build02) unstable; urgency=low
+
+ * Packaging.
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build02
+
+ -- Daniel Juyung Seo <juyung.seo@samsung.com> 목, 10 6월 2010 21:00:51 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3) unstable; urgency=low
+
+ * Packaging.
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3
+
+ -- Daniel Juyung Seo <juyung.seo@samsung.com> Thu, 10 Jun 2010 20:46:54 +0900
+
+ecore (0.9.9.060+svn.49540slp2+2) unstable; urgency=low
+
+ * Packaging.
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+2
+
+ -- Daniel Juyung Seo <juyung.seo@samsung.net> Thu, 10 Jun 2010 20:46:08 +0900
+
+ecore (0.9.9.060+svn.49540slp2+1) unstable; urgency=low
+
+ * Packaging.
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+1
+
+ -- Daniel Juyung Seo <juyung.seo@smasung.net> Thu, 10 Jun 2010 20:45:22 +0900
+
+ecore (0.9.9.060+svn.49540slp2+0) unstable; urgency=low
+
+ * Update opensource EFL from SVN
+ * SVN revision: 49540 (Total EFL revision: 49550)
+ * Tag: 0.9.9.060+svn.49540slp2+0
+
+ -- Daniel Juyung Seo <juyung.seo@smasung.net> Thu, 10 Jun 2010 15:50:38 +0900
+
+ecore (0.9.9.060+svn20100304slp2+4) unstable; urgency=low
+
+ * Enable curl
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL
+ * Tag: ecore_0.9.9.060+svn20100304slp2+4
+
+ -- Sangjin Lee <lsj119@samsung.com> Wed, 14 Apr 2010 17:54:37 +0900
+
+ecore (0.9.9.060+svn20100304slp2+3) unstable; urgency=low
+
+ * change control - add libeina-svn-04 dependency to libecore-svn-01
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL
+ * Tag: 9.9.060+svn20100304slp2+3
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Thu, 01 Apr 2010 16:50:07 +0900
+
+ecore (0.9.9.060+svn20100304slp2+2) unstable; urgency=low
+
+ * add document in ecore_imf and cleanup
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Tue, 30 Mar 2010 16:55:51 +0900
+
+ecore (0.9.9.060+svn20100304slp2+1) unstable; urgency=low
+
+ * change package version
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Thu, 25 Mar 2010 15:05:10 +0900
+
+ecore (0.9.9.060+svn20100304-5) unstable; urgency=low
+
+ * Upgrade ecore to 47360
+
+ -- Sangjin Lee <lsj119@samsung.com> Mon, 22 Mar 2010 20:52:51 +0900
+
+ecore (0.9.9.060+svn20100304-4) unstable; urgency=low
+
+ * Modifed keydefs.h for resolving macro name conflicts
+
+ -- Ji-hoon Lee <dalton.lee@samsung.com> Mon, 22 Mar 2010 16:03:48 +0900
+
+ecore (0.9.9.060+svn20100304-3) unstable; urgency=low
+
+ * Added keydefs.h for identifying key index
+
+ -- Ji-hoon Lee <dalton.lee@samsung.com> Fri, 19 Mar 2010 20:20:43 +0900
+
+ecore (0.9.9.060+svn20100304-2) unstable; urgency=low
+
+ * Fix debian/libecore-dev.install not to omit symbolic links for shared objects
+
+ -- Sung-Jin Park <sj76.park@samsung.com> Tue, 16 Mar 2010 21:26:16 +0900
+
+ecore (0.9.9.060+svn20100304-1) unstable; urgency=low
+
+ * EFL_update_revision_46864
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Thu, 11 Mar 2010 10:50:35 +0900
+
+ecore (0.9.9.060+svn20100203-16) unstable; urgency=low
+
+ * Modify shape input mask
+
+ -- Sangjin Lee <lsj119@samsung.com> Thu, 11 Mar 2010 10:42:52 +0900
+
+ecore (0.9.9.060+svn20100203-15) unstable; urgency=low
+
+ * Modify ecore_x_window_hide().
+ + In order to avoid ISE lockup problem, we ensure that root window
+ receives UnmapNotify event.
+
+ -- Gwanglim Lee <gl77.lee@samsung.com> Wed, 10 Mar 2010 17:07:18 +0900
+
+ecore (0.9.9.060+svn20100203-14) unstable; urgency=low
+
+ * Merge source (based on SVN rev.46421).
+ * Add ecore_data library.
+
+ -- Doyoun Kang <doyoun.kang@samsung.com> Thu, 04 Mar 2010 20:17:30 +0900
+
+ecore (0.9.9.060+svn20100203-13) unstable; urgency=low
+
+ * Rollback to source (0.9.9.060+svn20100203-10)
+
+ -- Doyoun Kang <doyoun.kang@samsung.com> Thu, 04 Mar 2010 14:26:58 +0900
+
+ecore (0.9.9.060+svn20100203-12) unstable; urgency=low
+
+ * Merge the latest ecore_imf
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Thu, 04 Mar 2010 13:21:57 +0900
+
+ecore (0.9.9.060+svn20100203-11) unstable; urgency=low
+
+ * Merge source (based on SVN rev.46421)
+
+ -- Doyoun Kang <doyoun.kang@samsung.com> Thu, 04 Mar 2010 12:17:19 +0900
+
+ecore (0.9.9.060+svn20100203-10) unstable; urgency=low
+
+ * Add ecore_imf_context_ise_event_callback_set API. ise_state_add_listener, remove_listener, change_listener will be deprecated.
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Tue, 02 Mar 2010 17:52:58 +0900
+
+ecore (0.9.9.060+svn20100203-9) unstable; urgency=low
+
+ * Patch for ecore_evas_x_alpha_set
+
+ -- Sangjin Lee <lsj119@samsung.com> Sat, 27 Feb 2010 20:44:34 +0900
+
+ecore (0.9.9.060+svn20100203-8) unstable; urgency=low
+
+ * add more ISE_EVENT types
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Thu, 25 Feb 2010 17:09:28 +0900
+
+ecore (0.9.9.060+svn20100203-7) unstable; urgency=low
+
+ * add ecore_imf_context_ise_get_window_rect API
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Tue, 23 Feb 2010 20:42:39 +0900
+
+ecore (0.9.9.060+svn20100203-6) unstable; urgency=low
+
+ * revision update to 46263. (partial merge)
+ * add atoms for rotation.
+
+ -- Doyoun Kang <doyoun.kang@samsung.com> Thu, 18 Feb 2010 19:37:45 +0900
+
+ecore (0.9.9.060+svn20100203-5) unstable; urgency=low
+
+ * elm_win_transparent apply
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Thu, 11 Feb 2010 15:12:01 +0900
+
+ecore (0.9.9.060+svn20100203-4) unstable; urgency=low
+
+ * Add rotate with resize.
+
+ -- Doyoun Kang <doyoun.kang@samsung.com> Mon, 08 Feb 2010 14:14:00 +0900
+
+ecore (0.9.9.060+svn20100203-3) unstable; urgency=low
+
+ * repack
+
+ -- sangho park <sangho.g.park@samsung.com> Thu, 04 Feb 2010 22:04:12 +0900
+
+ecore (0.9.9.060+svn20100203-2) unstable; urgency=low
+
+ * repack
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Thu, 04 Feb 2010 20:27:43 +0900
+
+ecore (0.9.9.060+svn20100203-1) unstable; urgency=low
+
+ * EFL_update_revision_45828
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Wed, 03 Feb 2010 16:39:21 +0900
+
+ecore (0.9.9.060+svn20100119-2) unstable; urgency=low
+
+ * updated ISF files
+
+ -- sehwan <sehwan@samsung.com> Thu, 21 Jan 2010 23:23:29 +0900
+
+ecore (0.9.9.060+svn20100119-1) unstable; urgency=low
+
+ * EFL_update_revision_45322
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Tue, 19 Jan 2010 20:44:48 +0900
+
+ecore (0.9.9.060+svn20100111-4) unstable; urgency=low
+
+ * changed ecore-imf for isf
+
+ -- sehwan <sehwan@samsung.com> Fri, 15 Jan 2010 15:06:31 +0900
+
+ecore (0.9.9.060+svn20100111-3) unstable; urgency=low
+
+ * reupload EFL i686
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Tue, 12 Jan 2010 17:35:33 +0900
+
+ecore (0.9.9.060+svn20100111-2) unstable; urgency=low
+
+ * reupload EFL
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Mon, 11 Jan 2010 22:16:49 +0900
+
+ecore (0.9.9.060+svn20100111-1) unstable; urgency=low
+
+ * update EFL revision 45026
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Mon, 11 Jan 2010 13:28:04 +0900
+
+ecore (0.9.9.060+svn20091229-3) unstable; urgency=low
+
+ * To solve version mismatch between i386 and armel.
+ * No source code changed.
+
+ -- Jongwoo Chae <jongwoo.chae@samsung.com> Thu, 07 Jan 2010 21:47:34 +0900
+
+ecore (0.9.9.060+svn20091229-2) unstable; urgency=low
+
+ * Changed ecore_imf for isf package
+
+ -- Ji-hoon Lee <dalton.lee@samsung.com> Wed, 06 Jan 2010 13:55:00 +0900
+
+ecore (0.9.9.060+svn20091229-1) unstable; urgency=low
+
+ * update EFL
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Tue, 29 Dec 2009 14:27:03 +0900
+
+ecore (0.9.9.060+svn20091112-6) unstable; urgency=low
+
+ * modified debian/control to link libcurl
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Tue, 29 Dec 2009 19:31:19 +0900
+
+
+ecore (0.9.9.060+svn20091112-5) unstable; urgency=low
+
+ * modified debian/control : changed Architecture all to any (by Juyung Seo)
+
+ -- Sangho Park <sangho.g.park@samsung.com> Fri, 27 Nov 2009 15:59:07 +0900
+
+ecore (0.9.9.060+svn20091112-4) unstable; urgency=low
+
+ * svn stable version
+
+ -- Sangho Park <sangho.g.park@samsung.com> Thu, 19 Nov 2009 18:50:08 +0900
+
+ecore (0.9.9.060+svn20091112-3) unstable; urgency=low
+
+ * add build dependency glib
+
+ -- Sangho Park <sangho.g.park@samsung.com> Tue, 17 Nov 2009 21:37:23 +0900
+
+ecore (0.9.9.060+svn20091112-2) unstable; urgency=low
+
+ * add glib dependency
+
+ -- Sangho Park <sangho.g.park@samsung.com> Tue, 17 Nov 2009 16:27:18 +0900
+
+ecore (0.9.9.060+svn20091112-1) unstable; urgency=low
+
+ * New version
+
+ -- Sangho Park <sangho.g.park@samsung.com> Thu, 12 Nov 2009 23:44:06 +0900
+
+ecore (0.9.9.060+svnYYYYMMDD-1) unstable; urgency=low
+
+ * New version
+
+ -- quaker <quaker66@gmail.com> Thu, 22 Apr 2009 18:12:06 +0100
+
+ecore (0.9.9.050+svnYYYYMMDD-1) unstable; urgency=low
+
+ * Clean up changelog
+
+ -- quaker <quaker66@gmail.com> Tue, 21 Apr 2009 19:14:37 +0100
--- /dev/null
+Source: ecore
+Section: libs
+Priority: optional
+Maintainer: Jaehwan Kim <jae.hwan.kim@samsung.com>, Jihoon Kim <jihoon48.kim@samsung.com>, Sangjin Lee <lsj119@samsung.com>, Doyoun Kang <doyoun.kang@samsung.com>, Sung-Jin Park <sj76.park@samsung.com>, Juyung Seo <juyung.seo@samsung.com>, Seokjae Jeong <seok.j.jeong@samsung.com>, ChunEon Park <chuneon.park@samsung.com>, WooHyun Jung <wh0705.jung@samsung.com>, sehwan <sehwan@samsung.com>, Gwanglim Lee <gl77.lee@samsung.com>, Ji-hoon Lee <dalton.lee@samsung.com>, Gwan-gyeong Mun <kk.moon@samsung.com>, Hyoyoung Chang <hyoyoung.chang@samsung.com>, Myoungwoon Kim <myoungwoon.kim@samsung.com>, Seokjae Jeong <seok.j.jeong@samsung.com>
+Original-Maintainer: Debian Pkg-e Team <pkg-e-devel@lists.alioth.debian.org>
+Uploaders: Albin Tonnerre <albin.tonnerre@gmail.com>, Niv Sardi <xaiki@debian.org>
+ Xavier Oswald <x.oswald@free.fr>, Jan Lübbe <jluebbe@debian.org>
+Build-Depends: dpkg-dev, debhelper (>= 6), cdbs, libeina-dev (>= 0.0.2.060+svn20100304),
+ libeet-dev (>= 1.0.0), libevas-dev , libglib2.0-dev,
+ libxcursor-dev, libxrender-dev, libxinerama-dev,
+ libxrandr-dev, libxext-dev, libxcomposite-dev, libjpeg7-dev,
+ libxdamage-dev, x11proto-xext-dev, libxtst-dev, doxygen, pkg-config, libtool, libcurl-dev
+Standards-Version: 3.8.1
+Homepage: http://enlightenment.org
+
+Package: libecore
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}, libeina
+Description: Core abstraction layer for enlightenment DR 0.17
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+
+Package: libecore-con
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore Connection Library
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Ecore Connection Library.
+
+Package: libecore-config
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore Enlightened Property Library
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Enlightened Property Library.
+
+Package: libecore-evas
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore Evas Wrapper Library
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Ecore Evas wrapper functions.
+
+Package: libecore-fb
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore frame buffer system functions
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Ecore frame buffer system functions.
+
+Package: libecore-file
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore File Library
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Ecore File Library.
+
+Package: libecore-imf
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore Input Method Framework module
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Ecore Input Method Framework module, and the Evas
+ helper functions for it.
+
+Package: libecore-input
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore input functions
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Ecore Input Library.
+
+Package: libecore-ipc
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore inter-process communication functions
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Ecore inter-process communication functions.
+
+Package: libecore-data
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore data functions
+
+Package: libecore-x
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore functions for dealing with the X Windows System
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Ecore wrapper and convenience functions for using
+ the X Windows System.
+
+Package: libecore-dev
+Architecture: any
+Section: libdevel
+Suggests: libecore-doc
+Depends: ${misc:Depends}, libecore (= ${binary:Version}),
+ libecore-con (= ${binary:Version}),
+ libecore-config (= ${binary:Version}),
+ libecore-evas (= ${binary:Version}),
+ libecore-fb (= ${binary:Version}),
+ libecore-file (= ${binary:Version}),
+ libecore-imf (= ${binary:Version}),
+ libecore-input (= ${binary:Version}),
+ libecore-ipc (= ${binary:Version}),
+ libecore-x (= ${binary:Version}),
+ libecore-data (= ${binary:Version}),
+ libeet-dev, libevas-dev (>= 0.9.9.060), libeina-dev, pkg-config, libcurl-dev,
+ libxcursor-dev, libxrender-dev, libxinerama-dev, libxrandr-dev, libxext-dev,
+ libxcomposite-dev, libxdamage-dev, x11proto-xext-dev, libxtst-dev, libglib2.0-dev
+Description: Ecore headers and static libraries
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains headers and static libraries for the Ecore library.
+
+Package: libecore-doc
+Architecture: any
+Section: doc
+Depends: ${misc:Depends}
+Enhances: libecore-dev
+Description: Ecore API Documentation
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package provides development documentation (html and manpages)for the
+ Ecore library.
+
+Package: libecore-bin
+Architecture: any
+Section: utils
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Tools that support Ecore
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package includes:
+ - ecore_config: allows creation/editing of ecore_config databases
+
+Package: libecore-dbg
+Architecture: any
+Section: libdevel
+Priority: extra
+Depends: ${misc:Depends}, libecore (= ${binary:Version})
+Description: Debugging symbols for libecore
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications
+ .
+ This package contains unstripped shared libraries. It is provided primarily
+ to provide a backtrace with names in a debugger, this makes it somewhat easier
+ to interpret core dumps. The libraries are installed in /usr/lib/debug and
+ are automatically used by gdb.
--- /dev/null
+This package was debianized by Debian Pkg-e Team <pkg-e-devel@lists.alioth.debian.org>
+Sat, 07 Jul 2007 09:29:10 +0000.
+
+It was downloaded from http://download.enlightenment.org/
+
+Upstream Authors:
+
+ Enlightenment team <enlightenment-devel@lists.sourceforge.net>
+
+Copyright:
+
+ Copyright (C) 2000 Carsten Haitzler and various contributors (see AUTHORS)
+
+ Additional Copyright:
+ src/lib/ecore/ecore_str.c: Copyright (c) 1998 Todd C. Miller
+ <Todd.Miller@courtesan.com>
+ src/lib/ecore/ecore_value.c: Copyright (C) 2001
+ Christopher Rosendahl <smugg@fatelabs.com>
+ Nathan Ingersoll <ningerso@d.umn.edu>
+ src/lib/ecore_fb/ecore_fb_li.c: Copyright (C) 1999-2002 Brad Hards
+
+License:
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the "Software"),
+ to deal in the Software without restriction, including without limitation
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ and/or sell copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies of the Software, its documentation and marketing & publicity
+ materials, and acknowledgment shall be given in the documentation,
+ materials and software packages that this Software was used.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+On Debian systems, the complete text of the BSD License can be found
+in `/usr/share/common-licenses/BSD'.
--- /dev/null
+.\"Created with GNOME Manpages Editor Wizard
+.\"http://gmanedit.sourceforge.net
+.\"Sergio Rua <srua@gpul.org>
+.\"
+.TH ecore_config 1 "January 18, 2007" "Ecore"
+
+.SH NAME
+ecore_config \-that allow creation and editing of ecore_config databases
+
+.SH SYNOPSIS
+.B ecore_config
+.RI \-a\ |\ \-k\ [\-g|\-d|\-b|\-f|\-i|\-r|\-s|\-t]\ [\-c]
+.br
+
+.SH DESCRIPTION
+.PP
+\fBecore_config\fP is a tool that allows creation and editing of
+ecore_config databases used by the programs relying on libecore
+
+.SH OPTIONS
+\fIecore_config\fP accepts the following options:
+.TP
+.B \-c, \-\-file=FILE
+Specify the config file to read
+.TP
+.B \-k, \-\-key=KEY
+Select the key KEY. Must be given for all commands except \-a
+.TP
+.B \-g, \-\-get
+get key
+.TP
+.B \-d, \-\-del
+delete key
+.TP
+.B \-b, \-\-bool=VALUE
+set boolean
+.TP
+.B \-f, \-\-float=VALUE
+set float
+.TP
+.B \-i, \-\-int=VALUE
+set integer
+.TP
+.B \-r, \-\-rgb=VALUE
+set RGBA
+.TP
+.B \-s, \-\-string=VALUE
+set string
+.TP
+.B \-t, \-\-theme=VALUE
+set theme
+.SH AUTHOR
+This manual page was written by Albin Tonnerre <albin.tonnerre@gmail.com>
+for the Debian GNU/Linux system (but may be used by others).
--- /dev/null
+#debian/tmp/usr/bin/ecore_config
--- /dev/null
+debian/tmp/usr/lib/libecore_con-*.so.*
--- /dev/null
+libecore_con-ver-pre-svn-01 0 libecore-con-svn-01 (>= 0.9.9.060+svnYYYYMMDD)
--- /dev/null
+debian/tmp/usr/lib/libecore_con.so.*
--- /dev/null
+debian/tmp/usr/lib/libecore_config-*.so.*
--- /dev/null
+libecore_config-ver-pre-svn-01 0 libecore-config-svn-01 (>= 0.9.9.060+svnYYYYMMDD)
--- /dev/null
+#debian/tmp/usr/lib/libecore_config.so.*
--- /dev/null
+debian/tmp/usr/include/ecore-1/Ecore*.h
+debian/tmp/usr/lib/libecore*.a
+debian/tmp/usr/lib/libecore*.la
+debian/tmp/usr/lib/libecore*.so
+#debian/tmp/usr/lib/libecore_config*.so
+debian/tmp/usr/lib/libecore_con*.so
+debian/tmp/usr/lib/libecore_evas*.so
+debian/tmp/usr/lib/libecore_file*.so
+debian/tmp/usr/lib/libecore_imf_evas*.so
+debian/tmp/usr/lib/libecore_imf*.so
+debian/tmp/usr/lib/libecore_input*.so
+debian/tmp/usr/lib/libecore_ipc*.so
+debian/tmp/usr/lib/libecore_x*.so
+debian/tmp/usr/lib/pkgconfig/ecore*.pc
--- /dev/null
+Document: ecore
+Title: Ecore Guide
+Author: Carsten Haitzler
+Abstract: This document describes Ecore API
+ and provides sample C code.
+Section: Programming/C
+
+Format: HTML
+Index: /usr/share/doc/libecore-doc/html/index.html
+Files: /usr/share/doc/libecore-doc/html/*.html
--- /dev/null
+debian/tmp/usr/lib/libecore_evas-*.so.*
--- /dev/null
+libecore_evas-ver-pre-svn-01 0 libecore-evas-svn-01 (>= 0.9.9.060+svnYYYYMMDD)
--- /dev/null
+debian/tmp/usr/lib/libecore_evas*.so.*
--- /dev/null
+debian/tmp/usr/lib/libecore_fb-*.so.*
--- /dev/null
+libecore_fb-ver-pre-svn-01 0 libecore-fb-svn-01 (>= 0.9.9.060+svnYYYYMMDD)
--- /dev/null
+debian/tmp/usr/lib/libecore_fb*.so.*
--- /dev/null
+debian/tmp/usr/lib/libecore_file-*.so.*
--- /dev/null
+libecore_file-ver-pre-svn-01 0 libecore-file-svn-01 (>= 0.9.9.060+svnYYYYMMDD)
--- /dev/null
+debian/tmp/usr/lib/libecore_file*.so.*
--- /dev/null
+debian/tmp/usr/lib/libecore_imf-*.so.*
+debian/tmp/usr/lib/libecore_imf_evas-*.so.*
--- /dev/null
+libecore_imf-ver-pre-svn-01 0 libecore-imf-svn-01 (>= 0.9.9.060+svnYYYYMMDD)
+libecore_imf_evas-ver-pre-svn-01 0 libecore-imf-svn-01 (>= 0.9.9.060+svnYYYYMMDD)
--- /dev/null
+debian/tmp/usr/lib/libecore_imf*.so.*
+debian/tmp/usr/lib/libecore_imf_evas*.so.*
--- /dev/null
+debian/tmp/usr/lib/libecore_input-*.so.*
--- /dev/null
+libecore_input-ver-pre-svn-01 0 libecore-input-svn-01 (>= 0.9.9.060+svnYYYYMMDD)
--- /dev/null
+debian/tmp/usr/lib/libecore_input*.so.*
--- /dev/null
+debian/tmp/usr/lib/libecore_ipc-*.so.*
--- /dev/null
+libecore_ipc-ver-pre-svn-01 0 libecore-ipc-svn-01 (>= 0.9.9.060+svnYYYYMMDD)
--- /dev/null
+debian/tmp/usr/lib/libecore_ipc*.so.*
--- /dev/null
+debian/tmp/usr/lib/libecore-*.so.*
--- /dev/null
+libecore-ver-pre-svn-01 0 libecore-svn-01 (>= 0.9.9.060+svnYYYYMMDD)
--- /dev/null
+debian/tmp/usr/lib/libecore_x-*.so.*
--- /dev/null
+libecore_x-ver-pre-svn-01 0 libecore-x-svn-01 (>= 0.9.9.060+svnYYYYMMDD)
--- /dev/null
+debian/tmp/usr/lib/libecore_x*.so.*
--- /dev/null
+debian/tmp/usr/lib/libecore.so.*
--- /dev/null
+#!/usr/bin/make -f
+
+include /usr/share/cdbs/1/class/autotools.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+
+DEB_CONFIGURE_SCRIPT := ./autogen.sh
+DEB_INSTALL_MANPAGES_libecore-bin := debian/ecore_config.1
+DEB_DH_STRIP_ARGS := --dbg-package=libecore-dbg
+DEB_CONFIGURE_EXTRA_FLAGS := --enable-ecore-fb \
+ --enable-dependency-tracking \
+ --disable-ecore-directfb \
+ --enable-ecore-evas-fb \
+ --disable-rpath \
+ --disable-openssl \
+ --disable-gnutls \
+ --disable-tslib \
+ --enable-doc \
+ --enable-simple-x11 \
+ --enable-ecore-evas-opengl-x11 \
+ --disable-ecore-evas-xrender-x11 \
+ --enable-curl \
+ --disable-openssl \
+ --enable-glib-integration-always \
+ --disable-xim
+DEB_MAKE_EXTRA_ARGS := V=0
+
+DEB_MAKE_CLEAN_TARGET := distclean
+CFLAGS += -fvisibility=hidden -fPIC
+LDFLAGS += -fvisibility=hidden -Wl,--hash-style=both -Wl,--as-needed
+
+build/libecore-doc::
+ cd $(DEB_SRCDIR)/doc && make doc
+
+install/libecore-doc::
+ mkdir -p debian/libecore-doc/usr/share/doc/libecore-doc
+ cp -R $(DEB_SRCDIR)/doc/html debian/libecore-doc/usr/share/doc/libecore-doc/
+
+clean::
+ [ ! -f Makefile ] || make distclean
+ rm -f ecore-*.tar.bz2 ecore-*.tar.bz2.cdbs-config_list
%define ac_with_lib_ecore_imf --%{?with_lib_ecore_imf:en}%{!?with_lib_ecore_imf:dis}able-ecore-imf
%define ac_with_lib_ecore_sdl --%{?with_lib_ecore_sdl:en}%{!?with_lib_ecore_sdl:dis}able-ecore-sdl
-%{!?_rel:%{expand:%%global _rel 0.enl%{?dist}}}
+%{!?_rel:%{expand:%%global _rel 0.r%(svnversion | sed 's/[^0-9].*$//' || echo 0000)}}
Summary: Enlightened Core X interface library
Name: @PACKAGE@
--- /dev/null
+#include <stdio.h>
+#include <Ecore.h>
+#include <Ecore_Con.h>
+
+/* Ecore_Con client example
+ * 2010 Mike Blumenkrantz
+ */
+
+#define NUM_CLIENTS 10000
+
+static Eina_Counter *counter;
+static int add = 0;
+static int del = 0;
+
+Eina_Bool
+_add(void *data, int type, Ecore_Con_Event_Server_Add *ev)
+{
+ ++add;
+ printf("Connection #%i!\n", add);
+ if (add == NUM_CLIENTS)
+ ecore_main_loop_quit();
+
+ return ECORE_CALLBACK_RENEW;
+}
+
+Eina_Bool
+_del(void *data, int type, Ecore_Con_Event_Server_Add *ev)
+{
+ ++del;
+ printf("Connection lost! #%i!\n", del);
+
+ return ECORE_CALLBACK_RENEW;
+}
+
+static void
+_spawn(void *data)
+{
+ int x;
+
+ for (x = 0; x < NUM_CLIENTS; x++)
+ {
+// printf("Creating connection %i\n", x);
+ if (!ecore_con_server_connect(ECORE_CON_REMOTE_NODELAY, "127.0.0.1", 8080, NULL))
+ {
+ printf("CRITICAL ERROR!\n"
+ "Could not create connection #%i!\n", x);
+ exit(1);
+ }
+ }
+ printf("***Job done***\n");
+}
+
+int main(void)
+{
+ double done;
+ eina_init();
+ ecore_init();
+ ecore_con_init();
+
+ eina_log_domain_level_set("ecore_con", EINA_LOG_LEVEL_ERR);
+ eina_log_domain_level_set("eina", EINA_LOG_LEVEL_ERR);
+ counter = eina_counter_new("client");
+ eina_counter_start(counter);
+ done = ecore_time_get();
+
+ ecore_job_add(_spawn, NULL);
+
+/* set event handler for server connect */
+ ecore_event_handler_add(ECORE_CON_EVENT_SERVER_ADD, (Ecore_Event_Handler_Cb)_add, NULL);
+ ecore_event_handler_add(ECORE_CON_EVENT_SERVER_ADD, (Ecore_Event_Handler_Cb)_del, NULL);
+
+/* start client */
+ ecore_main_loop_begin();
+ eina_counter_stop(counter, 1);
+ printf("\nTime elapsed for %i connections: %f seconds\n%s", NUM_CLIENTS, ecore_time_get() - done, eina_counter_dump(counter));
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <Ecore.h>
+#include <Ecore_Con.h>
+
+/* Ecore_Con client example
+ * 2010 Mike Blumenkrantz
+ */
+
+/* comment if not using gnutls */
+static void
+tls_log_func(int level, const char *str)
+{
+ fprintf(stderr, "|<%d>| %s", level, str);
+}
+
+Eina_Bool
+_add(void *data, int type, Ecore_Con_Event_Server_Add *ev)
+{
+ printf("Server with ip %s connected!\n", ecore_con_server_ip_get(ev->server));
+ ecore_con_server_send(ev->server, "hello!", 6);
+ ecore_con_server_flush(ev->server);
+
+ return ECORE_CALLBACK_RENEW;
+}
+
+
+Eina_Bool
+_del(void *data, int type, Ecore_Con_Event_Server_Del *ev)
+{
+ printf("Lost server with ip %s!\n", ecore_con_server_ip_get(ev->server));
+ ecore_main_loop_quit();
+ return ECORE_CALLBACK_RENEW;
+}
+
+Eina_Bool
+_data(void *data, int type, Ecore_Con_Event_Server_Data *ev)
+{
+ char fmt[128];
+
+ snprintf(fmt, sizeof(fmt),
+ "Received %i bytes from server:\n"
+ ">>>>>\n"
+ "%%.%is\n"
+ ">>>>>\n",
+ ev->size, ev->size);
+
+ printf(fmt, ev->data);
+ return ECORE_CALLBACK_RENEW;
+}
+int main()
+{
+ Ecore_Con_Server *svr;
+ Eina_Iterator *it;
+ const char *ca;
+
+ eina_init();
+ ecore_init();
+ ecore_con_init();
+
+/* comment if not using gnutls */
+ gnutls_global_set_log_level(9);
+ gnutls_global_set_log_function(tls_log_func);
+
+ if (!(it = eina_file_ls("/etc/ssl/certs")))
+ exit(1);
+
+ if (!(svr = ecore_con_server_connect(ECORE_CON_REMOTE_TCP | ECORE_CON_USE_MIXED, "www.verisign.com", 443, NULL)))
+ exit(1);
+
+ /* add all the CAs */
+ EINA_ITERATOR_FOREACH(it, ca)
+ {
+ if (!ecore_con_ssl_server_cafile_add(svr, ca))
+ printf("Could not load CA: %s!\n", ca);
+ eina_stringshare_del(ca);
+ }
+
+ eina_iterator_free(it);
+ ecore_con_ssl_server_verify(svr);
+
+/* set event handler for server connect */
+ ecore_event_handler_add(ECORE_CON_EVENT_SERVER_ADD, (Ecore_Event_Handler_Cb)_add, NULL);
+/* set event handler for server disconnect */
+ ecore_event_handler_add(ECORE_CON_EVENT_SERVER_DEL, (Ecore_Event_Handler_Cb)_del, NULL);
+/* set event handler for receiving server data */
+ ecore_event_handler_add(ECORE_CON_EVENT_SERVER_DATA, (Ecore_Event_Handler_Cb)_data, NULL);
+
+/* start client */
+ ecore_main_loop_begin();
+}
--- /dev/null
+#include <stdio.h>
+#include <Ecore.h>
+#include <Ecore_Con.h>
+
+/* Ecore_Con server example
+ * 2010 Mike Blumenkrantz
+ */
+
+/* comment if not using gnutls */
+static void
+tls_log_func(int level, const char *str)
+{
+ fprintf(stderr, "|<%d>| %s", level, str);
+}
+
+Eina_Bool
+_add(void *data, int type, Ecore_Con_Event_Client_Add *ev)
+{
+ printf("Client with ip %s connected!\n", ecore_con_client_ip_get(ev->client));
+ ecore_con_client_send(ev->client, "hello!", 6);
+// ecore_con_client_flush(ev->client);
+ ecore_con_client_timeout_set(ev->client, 5);
+
+ return ECORE_CALLBACK_RENEW;
+}
+
+
+Eina_Bool
+_del(void *data, int type, Ecore_Con_Event_Client_Del *ev)
+{
+ printf("Lost client with ip %s!\n", ecore_con_client_ip_get(ev->client));
+ ecore_main_loop_quit();
+ return ECORE_CALLBACK_RENEW;
+}
+
+Eina_Bool
+_data(void *data, int type, Ecore_Con_Event_Client_Data *ev)
+{
+ char fmt[128];
+
+ snprintf(fmt, sizeof(fmt),
+ "Received %i bytes from client:\n"
+ ">>>>>\n"
+ "%%.%is\n"
+ ">>>>>\n",
+ ev->size, ev->size);
+
+ printf(fmt, ev->data);
+ return ECORE_CALLBACK_RENEW;
+}
+int main()
+{
+ Ecore_Con_Server *svr;
+ eina_init();
+ ecore_init();
+ ecore_con_init();
+
+/* comment if not using gnutls */
+ gnutls_global_set_log_level(9);
+ gnutls_global_set_log_function(tls_log_func);
+
+
+/* to use a PEM certificate with TLS and SSL3, uncomment the lines below */
+ if (!(svr = ecore_con_server_add(ECORE_CON_REMOTE_TCP | ECORE_CON_USE_TLS | ECORE_CON_USE_SSL3 | ECORE_CON_LOAD_CERT, "127.0.0.1", 8080, NULL)))
+
+/* to use simple tcp with ssl/tls, use this line */
+// if (!ecore_con_server_add(ECORE_CON_REMOTE_TCP | ECORE_CON_USE_SSL3, "127.0.0.1", 8080, NULL))
+ exit(1);
+
+ ecore_con_ssl_server_cert_add(svr, "server.pem");
+ ecore_con_ssl_server_privkey_add(svr, "server.pem");
+/* set event handler for client connect */
+ ecore_event_handler_add(ECORE_CON_EVENT_CLIENT_ADD, (Ecore_Event_Handler_Cb)_add, NULL);
+/* set event handler for client disconnect */
+ ecore_event_handler_add(ECORE_CON_EVENT_CLIENT_DEL, (Ecore_Event_Handler_Cb)_del, NULL);
+/* set event handler for receiving client data */
+ ecore_event_handler_add(ECORE_CON_EVENT_CLIENT_DATA, (Ecore_Event_Handler_Cb)_data, NULL);
+
+/* start server */
+ ecore_main_loop_begin();
+}
--- /dev/null
+#include <Ecore.h>
+#include <fcntl.h>
+#include <netinet/tcp.h>
+#include <netinet/in.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <errno.h>
+#include <unistd.h>
+#include <gnutls/gnutls.h>
+
+/* Ecore_Fd_Handler example
+ * 2010 Mike Blumenkrantz
+ * compile with gcc $(pkgconfig --cflags --libs gnutls ecore)
+ */
+
+
+#define print(...) fprintf(stderr, "line %i: ", __LINE__); fprintf(stderr, __VA_ARGS__); fprintf(stderr, "\n")
+
+static int done = 0;
+
+static void
+tls_log_func (int level, const char *str)
+{
+ fprintf(stderr, "|<%d>| %s", level, str);
+}
+
+static const char*
+SSL_GNUTLS_PRINT_HANDSHAKE_STATUS(gnutls_handshake_description_t status)
+{
+ switch (status)
+ {
+ case GNUTLS_HANDSHAKE_HELLO_REQUEST:
+ return "Hello request";
+ case GNUTLS_HANDSHAKE_CLIENT_HELLO:
+ return "Client hello";
+ case GNUTLS_HANDSHAKE_SERVER_HELLO:
+ return "Server hello";
+ case GNUTLS_HANDSHAKE_CERTIFICATE_PKT:
+ return "Certificate packet";
+ case GNUTLS_HANDSHAKE_SERVER_KEY_EXCHANGE:
+ return "Server key exchange";
+ case GNUTLS_HANDSHAKE_CERTIFICATE_REQUEST:
+ return "Certificate request";
+ case GNUTLS_HANDSHAKE_SERVER_HELLO_DONE:
+ return "Server hello done";
+ case GNUTLS_HANDSHAKE_CERTIFICATE_VERIFY:
+ return "Certificate verify";
+ case GNUTLS_HANDSHAKE_CLIENT_KEY_EXCHANGE:
+ return "Client key exchange";
+ case GNUTLS_HANDSHAKE_FINISHED:
+ return "Finished";
+ case GNUTLS_HANDSHAKE_SUPPLEMENTAL:
+ return "Supplemental";
+ }
+ return NULL;
+}
+
+/* Connects to the peer and returns a socket
+ * descriptor.
+ */
+static int
+tcp_connect (void)
+{
+ const char *PORT = "443";
+ const char *SERVER = "69.58.181.89"; //verisign.com
+ int err, sd;
+ int flag = 1, curstate = 0;
+ struct sockaddr_in sa;
+
+ /* sets some fd options such as nonblock */
+ sd = socket (AF_INET, SOCK_STREAM, 0);
+ fcntl(sd, F_SETFL, O_NONBLOCK);
+ fcntl(sd, F_SETFD, FD_CLOEXEC);
+ setsockopt(sd, SOL_SOCKET, SO_REUSEADDR, (const void *)&curstate, sizeof(curstate));
+
+ setsockopt(sd, IPPROTO_TCP, TCP_NODELAY, (char *)&flag, sizeof(int));
+
+ memset (&sa, '\0', sizeof (sa));
+ sa.sin_family = AF_INET;
+ sa.sin_port = htons (atoi (PORT));
+ inet_pton (AF_INET, SERVER, &sa.sin_addr);
+
+ /* connects to server
+ */
+ err = connect (sd, (struct sockaddr *) &sa, sizeof (sa));
+ if ((err < 0) && (errno != EINPROGRESS))
+ {
+ print("Connect error\n");
+ exit (1);
+ }
+
+ return sd;
+}
+
+/* closes the given socket descriptor.
+ */
+static void
+tcp_close (int sd)
+{
+ shutdown (sd, SHUT_RDWR); /* no more receptions */
+ close (sd);
+}
+
+static Eina_Bool
+_process_data(gnutls_session_t client, Ecore_Fd_Handler *fd_handler)
+{
+ static int ret, lastret;
+ static unsigned int count = 0;
+
+ if (!done)
+ {
+ lastret = ret;
+ ret = gnutls_handshake (client);
+ count++;
+ if (gnutls_record_get_direction(client))
+ ecore_main_fd_handler_active_set(fd_handler, ECORE_FD_WRITE);
+ else
+ ecore_main_fd_handler_active_set(fd_handler, ECORE_FD_READ);
+ /* avoid printing messages infinity times */
+ if (lastret != ret)
+ {
+ print("gnutls returned with: %s - %s", gnutls_strerror_name(ret), gnutls_strerror(ret));
+ if ((ret == GNUTLS_E_WARNING_ALERT_RECEIVED) || (ret == GNUTLS_E_FATAL_ALERT_RECEIVED))
+ print("Also received alert: %s", gnutls_alert_get_name(gnutls_alert_get(client)));
+ print("last out: %s", SSL_GNUTLS_PRINT_HANDSHAKE_STATUS(gnutls_handshake_get_last_out(client)));
+ print("last in: %s", SSL_GNUTLS_PRINT_HANDSHAKE_STATUS(gnutls_handshake_get_last_in(client)));
+ }
+
+ if (gnutls_error_is_fatal(ret))
+ {
+ print("yarrr this be an error!");
+ exit(1);
+ }
+
+ }
+ if (ret == GNUTLS_E_SUCCESS)
+ {
+ done = 1;
+ print("Handshake successful in %u handshake calls!", count);
+ ecore_main_loop_quit();
+ }
+
+ return ECORE_CALLBACK_RENEW;
+}
+
+int
+main (void)
+{
+ /* credentials */
+ gnutls_anon_client_credentials_t c_anoncred;
+ gnutls_certificate_credentials_t c_certcred;
+
+ gnutls_session_t client;
+ int sd;
+
+ /* General init. */
+ gnutls_global_init ();
+ ecore_init();
+ gnutls_global_set_log_function (tls_log_func);
+ gnutls_global_set_log_level (6);
+
+ /* Init client */
+ gnutls_anon_allocate_client_credentials (&c_anoncred);
+ gnutls_certificate_allocate_credentials (&c_certcred);
+ gnutls_init (&client, GNUTLS_CLIENT);
+ /* set very specific priorities */
+ gnutls_priority_set_direct(client, "NONE:%VERIFY_ALLOW_X509_V1_CA_CRT:+RSA:+DHE-RSA:+DHE-DSS:+ANON-DH:+COMP-DEFLATE:+COMP-NULL:+CTYPE-X509:+SHA1:+SHA256:+SHA384:+SHA512:+AES-256-CBC:+AES-128-CBC:+3DES-CBC:+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0:+VERS-SSL3.0", NULL);
+ gnutls_credentials_set (client, GNUTLS_CRD_ANON, c_anoncred);
+ gnutls_credentials_set (client, GNUTLS_CRD_CERTIFICATE, c_certcred);
+ gnutls_server_name_set(client, GNUTLS_NAME_DNS, "www.verisign.com", strlen("www.verisign.com"));
+
+
+ /* connect to the peer
+ */
+ sd = tcp_connect ();
+
+ /* associate gnutls with socket */
+ gnutls_transport_set_ptr (client, (gnutls_transport_ptr_t) sd);
+ /* add a callback for data being available for send/receive on socket */
+ if (!ecore_main_fd_handler_add(sd, ECORE_FD_READ | ECORE_FD_WRITE, (Ecore_Fd_Cb)_process_data, client, NULL, NULL))
+ {
+ print("could not create fd handler!");
+ exit(1);
+ }
+ /* begin main loop */
+ ecore_main_loop_begin();
+
+ gnutls_bye (client, GNUTLS_SHUT_RDWR);
+
+ gnutls_deinit (client);
+
+ tcp_close (sd);
+
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <Eina.h>
+#include <Ecore.h>
+#include <Ecore_File.h>
+
+/*
+ * ecore_file_download() example
+ *
+ * compile with:
+ * gcc ecore_file_download_example.c `pkg-config --libs --cflags ecore-file` \
+ * -o ecore_file_download_example
+ *
+ */
+
+#define URL "http://www.kernel.org/pub/linux/kernel/v1.0/linux-1.0.tar.gz"
+#define DST "linux-1.0.tar.gz"
+#define DST_MIME "[x-gzip]linux-1.0.tar.gz"
+
+
+void
+completion_cb(void *data, const char *file, int status)
+{
+ printf("Done (status: %d)\n", status);
+ ecore_main_loop_quit();
+}
+
+int
+progress_cb(void *data, const char *file,
+ long int dltotal, long int dlnow,
+ long int ultotal, long int ulnow)
+{
+ printf("Progress: %ld/%ld\n", dlnow, dltotal);
+ return ECORE_FILE_PROGRESS_CONTINUE; // continue the download
+}
+
+
+int main(void)
+{
+ double start;
+ Eina_Hash *headers;
+
+ eina_init();
+ ecore_init();
+ ecore_file_init();
+
+ if (ecore_file_exists(DST))
+ ecore_file_unlink(DST);
+
+ start = ecore_time_get();
+
+ if (ecore_file_download(URL, DST, completion_cb, progress_cb, NULL, NULL))
+ {
+ printf("Download started successfully:\n URL: %s\n DEST: %s\n", URL, DST);
+ ecore_main_loop_begin();
+ printf("\nTime elapsed: %f seconds\n", ecore_time_get() - start);
+ printf("Downloaded %lld bytes\n", ecore_file_size(DST));
+ }
+ else
+ {
+ printf("Error, can't start download\n");
+ goto done;
+ }
+
+ headers = eina_hash_string_small_new(NULL);
+ eina_hash_add(headers, "Content-type", "application/x-gzip");
+
+ if (ecore_file_download_full(URL, DST_MIME, completion_cb, progress_cb, NULL, NULL, headers))
+ {
+ printf("Download started successfully:\n URL: %s\n DEST: %s\n", URL, DST_MIME);
+ ecore_main_loop_begin();
+ printf("\nTime elapsed: %f seconds\n", ecore_time_get() - start);
+ printf("Downloaded %lld bytes\n", ecore_file_size(DST));
+ }
+ else
+ {
+ printf("Error, can't start download\n");
+ goto done;
+ }
+
+done:
+ if (headers) eina_hash_free(headers);
+ ecore_file_shutdown();
+ ecore_shutdown();
+ eina_shutdown();
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <Ecore.h>
+#include <Ecore_Con.h>
+
+/* Ecore_Con server example
+ * 2010 Mike Blumenkrantz
+ */
+
+static Ecore_Con_Server *svr;
+static int add;
+static int del;
+
+Eina_Bool
+_add(void *data, int type, Ecore_Con_Event_Client_Add *ev)
+{
+ ++add;
+// printf ("%s ", ecore_con_client_ip_get(ev->client));
+ printf("Client #%i!\n", add);
+ return ECORE_CALLBACK_RENEW;
+}
+
+Eina_Bool
+_del(void *data, int type, Ecore_Con_Event_Client_Del *ev)
+{
+ ++del;
+ printf("Disconnected #%i!\n", del);
+ if (add == del)
+ ecore_main_loop_quit();
+ return ECORE_CALLBACK_RENEW;
+}
+
+int main(int argc, const char *argv[])
+{
+ ecore_init();
+ ecore_con_init();
+ ecore_app_args_set(argc, argv);
+ eina_log_domain_level_set("ecore_con", EINA_LOG_LEVEL_ERR);
+ eina_log_domain_level_set("eina", EINA_LOG_LEVEL_ERR);
+
+
+/* to use a PEM certificate with TLS and SSL3, uncomment the lines below */
+// if (!(svr = ecore_con_server_add(ECORE_CON_REMOTE_NODELAY | ECORE_CON_USE_MIXED | ECORE_CON_LOAD_CERT, "127.0.0.1", 8080, NULL)))
+
+/* to use simple tcp with ssl/tls, use this line */
+ svr = ecore_con_server_add(ECORE_CON_REMOTE_NODELAY , "127.0.0.1", 8080, NULL);
+ if (!svr)
+ exit(1);
+
+ ecore_event_handler_add(ECORE_CON_EVENT_CLIENT_ADD, (Ecore_Event_Handler_Cb)_add, NULL);
+ ecore_event_handler_add(ECORE_CON_EVENT_CLIENT_DEL, (Ecore_Event_Handler_Cb)_del, NULL);
+
+/* start server */
+ ecore_main_loop_begin();
+ if (add && del)
+ {
+ printf("Restarting server after %i connections\n", add);
+ add = del = 0;
+ ecore_con_server_del(svr);
+ ecore_app_restart();
+ }
+ return 0;
+}
--- /dev/null
+dnl Copyright (C) 2010 Vincent Torri <vtorri at univ-evry dot fr>
+dnl That code is public domain and can be freely used or copied.
+
+dnl Macro that check if several pthread library is available or not.
+
+dnl Usage: EFL_CHECK_PTHREAD(want_pthread_spin[, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
+dnl Call AC_SUBST(EFL_PTHREAD_CFLAGS)
+dnl Call AC_SUBST(EFL_PTHREAD_LIBS)
+dnl Define EFL_HAVE_PTHREAD
+dnl Define EFL_HAVE_PTHREAD_SPINLOCK
+
+AC_DEFUN([EFL_CHECK_PTHREAD],
+[
+
+dnl configure option
+
+AC_ARG_ENABLE([pthread],
+ [AC_HELP_STRING([--disable-pthread], [enable POSIX threads code @<:@default=auto@:>@])],
+ [
+ if test "x${enableval}" = "xyes" ; then
+ _efl_enable_pthread="yes"
+ else
+ _efl_enable_pthread="no"
+ fi
+ ],
+ [_efl_enable_pthread="auto"])
+
+AC_MSG_CHECKING([whether to build POSIX threads code])
+AC_MSG_RESULT([${_efl_enable_pthread}])
+
+dnl check if the compiler supports pthreads
+
+case "$host_os" in
+ mingw*)
+ _efl_pthread_cflags=""
+ _efl_pthread_libs="-lpthreadGC2"
+ ;;
+ solaris*)
+ _efl_pthread_cflags="-mt"
+ _efl_pthread_libs="-mt"
+ ;;
+ *)
+ _efl_pthread_cflags="-pthread"
+ _efl_pthread_libs="-pthread"
+ ;;
+esac
+
+_efl_have_pthread="no"
+
+if test "x${_efl_enable_pthread}" = "xyes" || test "x${_efl_enable_pthread}" = "xauto" ; then
+
+ SAVE_CFLAGS=${CFLAGS}
+ CFLAGS="${CFLAGS} ${_efl_pthread_cflags}"
+ SAVE_LIBS=${LIBS}
+ LIBS="${LIBS} ${_efl_pthread_libs}"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[
+#include <pthread.h>
+ ]],
+ [[
+pthread_t id;
+id = pthread_self();
+ ]])],
+ [_efl_have_pthread="yes"],
+ [_efl_have_pthread="no"])
+ CFLAGS=${SAVE_CFLAGS}
+ LIBS=${SAVE_LIBS}
+
+fi
+
+AC_MSG_CHECKING([whether system support POSIX threads])
+AC_MSG_RESULT([${_efl_have_pthread}])
+if test "$x{_efl_enable_pthread}" = "xyes" && test "x${_efl_have_pthread}" = "xno"; then
+ AC_MSG_ERROR([pthread support requested but not found.])
+fi
+
+EFL_PTHREAD_CFLAGS=""
+EFL_PTHREAD_LIBS=""
+if test "x${_efl_have_pthread}" = "xyes" ; then
+ EFL_PTHREAD_CFLAGS=${_efl_pthread_cflags}
+ EFL_PTHREAD_LIBS=${_efl_pthread_libs}
+fi
+
+AC_SUBST(EFL_PTHREAD_CFLAGS)
+AC_SUBST(EFL_PTHREAD_LIBS)
+
+if test "x${_efl_have_pthread}" = "xyes" ; then
+ AC_DEFINE(EFL_HAVE_PTHREAD, 1, [Define to mention that POSIX threads are supported])
+fi
+
+dnl check if the compiler supports pthreads spinlock
+
+_efl_have_pthread_spinlock="no"
+
+if test "x${_efl_have_pthread}" = "xyes" && test "x$1" = "xyes" ; then
+
+ SAVE_CFLAGS=${CFLAGS}
+ CFLAGS="${CFLAGS} ${EFL_PTHREAD_CFLAGS}"
+ SAVE_LIBS=${LIBS}
+ LIBS="${LIBS} ${EFL_PTHREAD_LIBS}"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[
+#include <pthread.h>
+ ]],
+ [[
+pthread_spinlock_t lock;
+int res;
+res = pthread_spin_init(&lock, PTHREAD_PROCESS_PRIVATE);
+ ]])],
+ [_efl_have_pthread_spinlock="yes"],
+ [_efl_have_pthread_spinlock="no"])
+ CFLAGS=${SAVE_CFLAGS}
+ LIBS=${SAVE_LIBS}
+
+fi
+
+AC_MSG_CHECKING([whether to build POSIX threads spinlock code])
+AC_MSG_RESULT([${_efl_have_pthread_spinlock}])
+if test "x${_efl_enable_pthread}" = "xyes" && test "x${_efl_have_pthread_spinlock}" = "xno" && test "x$1" = "xyes" ; then
+ AC_MSG_WARN([pthread support requested but spinlocks are not supported])
+fi
+
+if test "x${_efl_have_pthread_spinlock}" = "xyes" ; then
+ AC_DEFINE(EFL_HAVE_PTHREAD_SPINLOCK, 1, [Define to mention that POSIX threads spinlocks are supported])
+fi
+
+AS_IF([test "x$_efl_have_pthread" = "xyes"], [$2], [$3])
+AS_IF([test "x$_efl_have_pthread_spinlock" = "xyes"], [$4], [$5])
+
+])
--- /dev/null
+#
+# Do NOT Edit the Auto-generated Part!
+# Generated by: spectacle version 0.22
+#
+
+Name: ecore
+Summary: Enlightened Core X interface library
+Version: 1.0.999.svn61874
+Release: 1
+Group: TO_BE/FILLED_IN
+License: TO BE FILLED IN
+URL: http://www.enlightenment.org
+Source0: http://download.enlightenment.org/releases/ecore-%{version}.tar.bz2
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+BuildRequires: pkgconfig(eet)
+BuildRequires: pkgconfig(eina)
+BuildRequires: pkgconfig(evas)
+BuildRequires: pkgconfig(glib-2.0)
+BuildRequires: pkgconfig(pixman-1)
+BuildRequires: pkgconfig(x11)
+BuildRequires: pkgconfig(xext)
+BuildRequires: pkgconfig(xcb)
+BuildRequires: pkgconfig(xcb-composite)
+BuildRequires: pkgconfig(xcb-damage)
+BuildRequires: pkgconfig(xcb-dpms)
+BuildRequires: pkgconfig(xcb-randr)
+BuildRequires: pkgconfig(xcb-render)
+BuildRequires: pkgconfig(xcb-screensaver)
+BuildRequires: pkgconfig(xcb-shape)
+BuildRequires: pkgconfig(xcb-sync)
+BuildRequires: pkgconfig(xcb-xfixes)
+BuildRequires: pkgconfig(xcb-xinerama)
+BuildRequires: pkgconfig(xcb-xprint)
+BuildRequires: pkgconfig(xcb-xtest)
+
+
+%description
+Core abstraction layer for enlightenment DR 0.17 This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+
+
+
+%package devel
+Summary: Enlightened Core X interface library (devel)
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description devel
+Core abstraction layer for enlightenment (devel)
+
+%package bin
+Summary: Enlightened Core X interface library (bin)
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description bin
+Core abstraction layer for enlightenment (bin)
+
+%package con
+Summary: Enlightened Core X interface library (con)
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%description con
+Core abstraction layer for enlightenment (con)
+
+%package evas
+Summary: Enlightened Core X interface library (evas)
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%description evas
+Core abstraction layer for enlightenment (evas)
+
+%package file
+Summary: Enlightened Core X interface library (file)
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%description file
+Core abstraction layer for enlightenment (file)
+
+%package imf
+Summary: Enlightened Core X interface library (imf)
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%description imf
+Core abstraction layer for enlightenment (imf)
+
+%package imf-evas
+Summary: Enlightened Core X interface library (imf-evas)
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%description imf-evas
+Core abstraction layer for enlightenment (imf-evas)
+
+%package input
+Summary: Enlightened Core X interface library (input)
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%description input
+Core abstraction layer for enlightenment (input)
+
+%package input-evas
+Summary: Enlightened Core X interface library (input-evas)
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%description input-evas
+Core abstraction layer for enlightenment (input-evas)
+
+%package ipc
+Summary: Enlightened Core X interface library (ipc)
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%description ipc
+Core abstraction layer for enlightenment (ipc)
+
+%package x
+Summary: Enlightened Core X interface library (x)
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%description x
+Core abstraction layer for enlightenment (x)
+
+%package fb
+Summary: Enlightened Core X interface library (fb)
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%description fb
+Core abstraction layer for enlightenment (fb)
+
+
+%prep
+%setup -q -n %{name}
+
+
+%build
+
+%autogen
+%configure --disable-static \
+ --enable-glib-integration-always \
+ --disable-xim
+
+make %{?jobs:-j%jobs}
+
+%install
+rm -rf %{buildroot}
+%make_install
+
+
+#%find_lang ecore
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%post con -p /sbin/ldconfig
+
+%postun con -p /sbin/ldconfig
+
+%post evas -p /sbin/ldconfig
+
+%postun evas -p /sbin/ldconfig
+
+
+%post file -p /sbin/ldconfig
+
+%postun file -p /sbin/ldconfig
+
+
+%post imf -p /sbin/ldconfig
+
+%postun imf -p /sbin/ldconfig
+
+
+%post imf-evas -p /sbin/ldconfig
+
+%postun imf-evas -p /sbin/ldconfig
+
+
+%post input -p /sbin/ldconfig
+
+%postun input -p /sbin/ldconfig
+
+
+%post input-evas -p /sbin/ldconfig
+
+%postun input-evas -p /sbin/ldconfig
+
+
+%post ipc -p /sbin/ldconfig
+
+%postun ipc -p /sbin/ldconfig
+
+
+%post x -p /sbin/ldconfig
+
+%postun x -p /sbin/ldconfig
+
+
+%post fb -p /sbin/ldconfig
+
+%postun fb -p /sbin/ldconfig
+
+%files
+%defattr(-,root,root,-)
+%{_libdir}/libecore.so.*
+
+%files devel
+%defattr(-,root,root,-)
+/usr/bin/ecore_test
+%{_includedir}/ecore-1/*.h
+%{_libdir}/pkgconfig/ecore*.pc
+%{_libdir}/libecore.so
+%{_libdir}/libecore_con.so
+%{_libdir}/libecore_evas.so
+%{_libdir}/libecore_file.so
+%{_libdir}/libecore_imf.so
+%{_libdir}/libecore_imf_evas.so
+%{_libdir}/libecore_input.so
+%{_libdir}/libecore_input_evas.so
+%{_libdir}/libecore_ipc.so
+%{_libdir}/libecore_x.so
+%{_libdir}/libecore_fb.so
+
+%files bin
+%defattr(-,root,root,-)
+
+%files con
+%defattr(-,root,root,-)
+%{_libdir}/libecore_con.so.*
+
+%files evas
+%defattr(-,root,root,-)
+%{_libdir}/libecore_evas.so.*
+
+%files file
+%defattr(-,root,root,-)
+%{_libdir}/libecore_file.so.*
+
+%files imf
+%defattr(-,root,root,-)
+%{_libdir}/libecore_imf.so.*
+
+%files imf-evas
+%defattr(-,root,root,-)
+%{_libdir}/libecore_imf_evas.so.*
+
+%files input
+%defattr(-,root,root,-)
+%{_libdir}/libecore_input.so.*
+/usr/lib/ecore/immodules/xim.so
+
+%files input-evas
+%defattr(-,root,root,-)
+%{_libdir}/libecore_input_evas.so.*
+
+%files ipc
+%defattr(-,root,root,-)
+%{_libdir}/libecore_ipc.so.*
+
+%files x
+%defattr(-,root,root,-)
+%{_libdir}/libecore_x.so.*
+
+%files fb
+%defattr(-,root,root,-)
+%{_libdir}/libecore_fb.so.*
+
"PO-Revision-Date: 2011-02-24 16:54+0100\n"
"Last-Translator: r1to <renato.rener@gmail.com>\n"
"Language-Team: Slovenian <sl@li.org>\n"
+"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
if (!good)
{
EINA_LOG_CRIT("Call to %s from wrong thread!", function);
+#if 0
abort();
+#endif
}
}
--- /dev/null
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#ifdef BUILD_ECORE_EVAS_COCOA
+#import <Cocoa/Cocoa.h>
+#endif
+
+#include "Ecore.h"
+#include "ecore_private.h"
+#include "Ecore_Input.h"
+#include "Ecore_Input_Evas.h"
+
+#include "ecore_evas_private.h"
+#include "Ecore_Evas.h"
+
+#ifdef BUILD_ECORE_EVAS_COCOA
+#include "Ecore_Cocoa.h"
+#include "Evas_Engine_Quartz.h"
+
+// FIXME: this engine has lots of problems. only 1 window at a time, drawRect looks wrong, doesn't handle resizes and more
+
+static int _ecore_evas_init_count = 0;
+static Ecore_Evas *ecore_evases = NULL;
+static Ecore_Event_Handler *ecore_evas_event_handlers[4] = {
+ NULL, NULL, NULL, NULL
+};
+static Ecore_Idle_Enterer *ecore_evas_idle_enterer = NULL;
+static Ecore_Poller *ecore_evas_event = NULL;
+
+static const char *ecore_evas_cocoa_default = "EFL Cocoa";
+
+@interface EvasView : NSView
+{
+ CGContextRef ctx;
+}
+@end
+
+static EvasView * evas_view;
+static NSWindow * main_window;
+
+@implementation EvasView
+
+- (id) init
+{
+ self = [super init];
+ if (self != nil)
+ {
+ ctx = NULL;
+ }
+ return self;
+}
+
+- (void)drawRect:(NSRect)rect
+{
+ if(ctx != NULL)
+ {
+ Ecore_Evas *ee;
+
+ EINA_INLIST_FOREACH(ecore_evases, ee)
+ {
+ if (ee->visible)
+ evas_damage_rectangle_add(ee->evas, 0, 0, 400, 400);
+ }
+ return;
+ }
+
+ ctx = [[NSGraphicsContext currentContext] graphicsPort];
+ CGContextRetain(ctx);
+}
+
+- (CGContextRef)context
+{
+ return ctx;
+}
+
+@end
+
+static Ecore_Evas *
+_ecore_evas_cocoa_match(void)
+{
+ return ecore_evases;
+}
+
+static Eina_Bool
+_ecore_evas_cocoa_event_got_focus(void *data __UNUSED__, int type __UNUSED__, void *event)
+{
+ Ecore_Evas *ee;
+
+ ee = _ecore_evas_cocoa_match();
+
+ if (!ee) return EINA_TRUE;
+ ee->prop.focused = 1;
+
+ return EINA_FALSE;
+}
+
+static Eina_Bool
+_ecore_evas_cocoa_event_lost_focus(void *data __UNUSED__, int type __UNUSED__, void *event)
+{
+ Ecore_Evas *ee;
+
+ ee = _ecore_evas_cocoa_match();
+
+ if (!ee) return EINA_TRUE;
+ ee->prop.focused = 0;
+
+ return EINA_FALSE;
+}
+
+static Eina_Bool
+_ecore_evas_cocoa_event_video_resize(void *data __UNUSED__, int type __UNUSED__, void *event)
+{
+ /*Ecore_Cocoa_Event_Video_Resize *e;
+ Ecore_Evas *ee;
+
+ e = event;
+ ee = _ecore_evas_cocoa_match();
+
+ if (!ee) return 1; // pass on event
+ evas_output_size_set(ee->evas, e->w, e->h);
+
+ return 0;*/
+}
+
+static Eina_Bool
+_ecore_evas_cocoa_event_video_expose(void *data __UNUSED__, int type __UNUSED__, void *event __UNUSED__)
+{
+ Ecore_Evas *ee;
+ int w;
+ int h;
+
+ ee = _ecore_evas_cocoa_match();
+
+ if (!ee) return EINA_TRUE;
+ evas_output_size_get(ee->evas, &w, &h);
+ evas_damage_rectangle_add(ee->evas, 0, 0, w, h);
+
+ return EINA_FALSE;
+}
+
+static int
+_ecore_evas_idle_enter(void *data __UNUSED__)
+{
+ Ecore_Evas *ee;
+ double t1 = 0.;
+ double t2 = 0.;
+
+ EINA_INLIST_FOREACH(ecore_evases, ee)
+ {
+ if (ee->visible)
+ evas_render(ee->evas);
+ else
+ evas_norender(ee->evas);
+ }
+
+ return 1;
+}
+
+static int
+_ecore_evas_cocoa_event(void *data)
+{
+ ecore_cocoa_feed_events();
+
+ return 1;
+}
+
+static int
+_ecore_evas_cocoa_init(int w, int h)
+{
+ _ecore_evas_init_count++;
+ if (_ecore_evas_init_count > 1) return _ecore_evas_init_count;
+
+ ecore_event_evas_init();
+
+ ecore_evas_idle_enterer = ecore_idle_enterer_add(_ecore_evas_idle_enter, NULL);
+ ecore_evas_event = ecore_poller_add(ECORE_POLLER_CORE, 1, ecore_evas_event, NULL);
+ ecore_poller_poll_interval_set(ECORE_POLLER_CORE, 0.006);
+
+ ecore_evas_event_handlers[0] = ecore_event_handler_add(ECORE_COCOA_EVENT_GOT_FOCUS, _ecore_evas_cocoa_event_got_focus, NULL);
+ ecore_evas_event_handlers[1] = ecore_event_handler_add(ECORE_COCOA_EVENT_LOST_FOCUS, _ecore_evas_cocoa_event_lost_focus, NULL);
+ ecore_evas_event_handlers[2] = ecore_event_handler_add(ECORE_COCOA_EVENT_RESIZE, _ecore_evas_cocoa_event_video_resize, NULL);
+ ecore_evas_event_handlers[3] = ecore_event_handler_add(ECORE_COCOA_EVENT_EXPOSE, _ecore_evas_cocoa_event_video_expose, NULL);
+
+ return _ecore_evas_init_count;
+}
+
+static int
+_ecore_evas_cocoa_shutdown(void)
+{
+ _ecore_evas_init_count--;
+ if (_ecore_evas_init_count == 0)
+ {
+ int i;
+
+ while (ecore_evases) _ecore_evas_free(ecore_evases);
+
+ for (i = 0; i < sizeof (ecore_evas_event_handlers) / sizeof (Ecore_Event_Handler*); i++)
+ ecore_event_handler_del(ecore_evas_event_handlers[i]);
+ ecore_event_evas_shutdown();
+ ecore_idle_enterer_del(ecore_evas_idle_enterer);
+ ecore_evas_idle_enterer = NULL;
+ ecore_poller_del(ecore_evas_event);
+ ecore_evas_event = NULL;
+
+ ecore_event_evas_shutdown();
+ }
+ if (_ecore_evas_init_count < 0) _ecore_evas_init_count = 0;
+ return _ecore_evas_init_count;
+}
+
+static void
+_ecore_evas_cocoa_free(Ecore_Evas *ee)
+{
+ ecore_evases = (Ecore_Evas *) eina_inlist_remove(EINA_INLIST_GET(ecore_evases), EINA_INLIST_GET(ee));
+ ecore_event_window_unregister(0);
+ _ecore_evas_cocoa_shutdown();
+ ecore_cocoa_shutdown();
+}
+
+static void
+_ecore_evas_resize(Ecore_Evas *ee, int w, int h)
+{
+ if ((w == ee->w) && (h == ee->h)) return;
+ ee->w = w;
+ ee->h = h;
+
+ evas_output_size_set(ee->evas, ee->w, ee->h);
+ evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
+ evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
+
+ if (ee->func.fn_resize) ee->func.fn_resize(ee);
+}
+
+static void
+_ecore_evas_move_resize(Ecore_Evas *ee, int x __UNUSED__, int y __UNUSED__, int w, int h)
+{
+ if ((w == ee->w) && (h == ee->h)) return;
+ ee->w = w;
+ ee->h = h;
+
+ evas_output_size_set(ee->evas, ee->w, ee->h);
+ evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
+ evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
+
+ if (ee->func.fn_resize) ee->func.fn_resize(ee);
+}
+
+static void
+_ecore_evas_object_cursor_del(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ Ecore_Evas *ee;
+
+ ee = data;
+ if (ee)
+ ee->prop.cursor.object = NULL;
+}
+
+static void
+_ecore_evas_object_cursor_set(Ecore_Evas *ee, Evas_Object *obj, int layer, int hot_x, int hot_y)
+{
+ int x, y;
+
+ if (ee->prop.cursor.object) evas_object_del(ee->prop.cursor.object);
+
+ if (!obj)
+ {
+ ee->prop.cursor.object = NULL;
+ ee->prop.cursor.layer = 0;
+ ee->prop.cursor.hot.x = 0;
+ ee->prop.cursor.hot.y = 0;
+ return;
+ }
+
+ ee->prop.cursor.object = obj;
+ ee->prop.cursor.layer = layer;
+ ee->prop.cursor.hot.x = hot_x;
+ ee->prop.cursor.hot.y = hot_y;
+
+ evas_pointer_output_xy_get(ee->evas, &x, &y);
+ evas_object_layer_set(ee->prop.cursor.object, ee->prop.cursor.layer);
+ evas_object_move(ee->prop.cursor.object,
+ x - ee->prop.cursor.hot.x,
+ y - ee->prop.cursor.hot.y);
+
+ evas_object_pass_events_set(ee->prop.cursor.object, 1);
+
+ if (evas_pointer_inside_get(ee->evas))
+ evas_object_show(ee->prop.cursor.object);
+
+ evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL, _ecore_evas_object_cursor_del, ee);
+}
+
+static Ecore_Evas_Engine_Func _ecore_cocoa_engine_func =
+{
+ _ecore_evas_cocoa_free,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ _ecore_evas_resize,
+ _ecore_evas_move_resize,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ _ecore_evas_object_cursor_set,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL, //transparent
+
+ NULL // render
+};
+#endif
+
+EAPI Ecore_Evas *
+ecore_evas_cocoa_new(const char* name, int w, int h)
+{
+#ifdef BUILD_ECORE_EVAS_COCOA
+ Evas_Engine_Info_Quartz *einfo;
+ Ecore_Evas *ee;
+ int rmethod;
+
+ if (!name)
+ name = ecore_evas_cocoa_default;
+
+ rmethod = evas_render_method_lookup("quartz");
+ if (!rmethod) return NULL;
+
+ if (!ecore_cocoa_init(name)) return NULL;
+
+ ee = calloc(1, sizeof(Ecore_Evas));
+ if (!ee)
+ goto shutdown_ecore_cocoa;
+
+ ECORE_MAGIC_SET(ee, ECORE_MAGIC_EVAS);
+
+ _ecore_evas_cocoa_init(w, h);
+
+ ecore_event_window_register(0, ee, ee->evas,
+ (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
+ (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+ (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+ (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+
+ ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_cocoa_engine_func;
+
+ ee->driver = "quartz";
+ if (name) ee->name = strdup(name);
+ if (!ee->name)
+ goto free_ee;
+
+ if (w < 1) w = 1;
+ if (h < 1) h = 1;
+ ee->visible = 1;
+ ee->w = w;
+ ee->h = h;
+
+ ee->prop.max.w = 0;
+ ee->prop.max.h = 0;
+ ee->prop.layer = 0;
+ ee->prop.focused = 1;
+ ee->prop.borderless = 1;
+ ee->prop.override = 1;
+ ee->prop.maximized = 1;
+ ee->prop.withdrawn = 0;
+ ee->prop.sticky = 0;
+
+ // init evas here
+ ee->evas = evas_new();
+ if (!ee->evas)
+ goto free_name;
+ evas_data_attach_set(ee->evas, ee);
+ evas_output_method_set(ee->evas, rmethod);
+
+ // Set up the Cocoa runtime
+ [[NSAutoreleasePool alloc] init];
+ [NSApplication sharedApplication];
+
+ // Register ourselves as a full-fledged Cocoa app, instead of a NSUIElement.
+ // This gives benefits like window focus and a dock icon!
+ ProcessSerialNumber psn = { 0, kCurrentProcess };
+ TransformProcessType (&psn, kProcessTransformToForegroundApplication);
+
+ [NSApp finishLaunching];
+
+ // Create our main window, and embed an EvasView in it
+ main_window = [[NSWindow alloc] initWithContentRect:NSMakeRect(0,0,w,h) styleMask:(NSTitledWindowMask | NSClosableWindowMask | NSResizableWindowMask | NSMiniaturizableWindowMask) backing:NSBackingStoreBuffered defer:NO screen:nil];
+ /* FIXME: manage the case where main_window is NULL with a goto free_evas; */
+ [main_window makeKeyAndOrderFront:NSApp];
+ [main_window setTitle:[NSString stringWithUTF8String:name]];
+ [main_window makeMainWindow];
+ [main_window setAcceptsMouseMovedEvents:YES];
+ [NSApp activateIgnoringOtherApps:YES];
+
+ evas_view = [[EvasView alloc] initWithFrame:NSMakeRect(0,0,w,h)];
+ [[main_window contentView] addSubview:evas_view];
+
+ // drawRect: must be run at least once, to make sure we've set ctx
+ [evas_view display];
+
+ evas_output_size_set(ee->evas, w, h);
+ evas_output_viewport_set(ee->evas, 0, 0, w, h);
+
+ einfo = (Evas_Engine_Info_Quartz*) evas_engine_info_get(ee->evas);
+ if (!einfo)
+ goto free_window;
+
+ einfo->info.context = [[evas_view context] retain];
+ if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
+ {
+ ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
+ }
+
+ ecore_evases = (Ecore_Evas *) eina_inlist_prepend(EINA_INLIST_GET(ecore_evases), EINA_INLIST_GET(ee));
+
+ evas_event_feed_mouse_in(ee->evas, (unsigned int)((unsigned long long)(ecore_time_get() * 1000.0) & 0xffffffff), NULL);
+ evas_focus_in(ee->evas);
+
+ return ee;
+
+ free_window:
+ /* FIXME: free window here */
+ free_evas:
+ free(ee->evas);
+ free_name:
+ free(ee->name);
+ free_ee:
+ _ecore_evas_cocoa_shutdown();
+ free(ee);
+ shutdown_ecore_cocoa:
+ ecore_cocoa_shutdown();
+
+ return NULL;
+#else
+ ERR("OUTCH name='%s' size=%dx%d!", name ? name : "", w, h);
+ return NULL;
+#endif
+}
unsigned char ignore_events : 1;
unsigned char manual_render : 1;
- unsigned char registered : 1;
+ unsigned char registered : 1;
unsigned char no_comp_sync : 1;
unsigned char semi_sync : 1;
+ int gl_sync_draw_done; // added by gl77.lee
};
#ifdef BUILD_ECORE_EVAS_X11
ee = ecore_event_window_match(e->win);
if (!ee) return ECORE_CALLBACK_PASS_ON; /* pass on event */
if (e->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
+ /* some GL drivers are doing buffer copy in a separate thread.
+ * we need to check whether GL driver sends SYNC_DRAW_DONE msg afger copying
+ * that are required in order to exactly render. - added by gl77.lee
+ */
+ if (ee->gl_sync_draw_done < 0)
+ {
+ if (getenv("ECORE_EVAS_GL_SYNC_DRAW_DONE"))
+ ee->gl_sync_draw_done = atoi(getenv("ECORE_EVAS_GL_SYNC_DRAW_DONE"));
+ else
+ ee->gl_sync_draw_done = 0;
+ }
if (first_map_bug < 0)
{
char *bug = NULL;
}
}
+#define _USE_WIN_ROT_EFFECT 1
+
+#if _USE_WIN_ROT_EFFECT
+static void _ecore_evas_x_flush_pre(void *data, Evas *e __UNUSED__, void *event_info __UNUSED__);
+
+typedef struct _Ecore_Evas_X_Rotation_Effect Ecore_Evas_X_Rotation_Effect;
+struct _Ecore_Evas_X_Rotation_Effect
+{
+ Eina_Bool wait_for_comp_reply;
+};
+
+static Ecore_Evas_X_Rotation_Effect _rot_effect =
+{
+ EINA_FALSE
+};
+
+static void
+_ecore_evas_x_rotation_effect_setup(void)
+{
+ _rot_effect.wait_for_comp_reply = EINA_TRUE;
+}
+#endif /* end of _USE_WIN_ROT_EFFECT */
+
static void
_ecore_evas_x_rotation_set(Ecore_Evas *ee, int rotation, int resize)
{
if (ee->rotation == rotation) return;
+ if (!strcmp(ee->driver, "xrender_x11")) return;
+
+#if _USE_WIN_ROT_EFFECT
+ int angles[2];
+ angles[0] = rotation;
+ angles[1] = ee->rotation;
+#endif /* end of _USE_WIN_ROT_EFFECT */
+
if (!strcmp(ee->driver, "opengl_x11"))
{
#ifdef BUILD_ECORE_EVAS_OPENGL_X11
einfo->info.rotation = rotation;
_ecore_evas_x_rotation_set_internal(ee, rotation, resize,
(Evas_Engine_Info *)einfo);
+# if _USE_WIN_ROT_EFFECT
+ ecore_x_window_prop_property_set(ee->prop.window,
+ ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
+ ECORE_X_ATOM_CARDINAL, 32, &angles, 2);
+# else
+ ecore_x_window_prop_property_set(ee->prop.window,
+ ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
+ ECORE_X_ATOM_CARDINAL, 32, &rotation, 1);
+# endif
#endif /* BUILD_ECORE_EVAS_OPENGL_X11 */
}
else if (!strcmp(ee->driver, "software_x11"))
einfo->info.rotation = rotation;
_ecore_evas_x_rotation_set_internal(ee, rotation, resize,
(Evas_Engine_Info *)einfo);
+# if _USE_WIN_ROT_EFFECT
+ ecore_x_window_prop_property_set(ee->prop.window,
+ ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
+ ECORE_X_ATOM_CARDINAL, 32, &angles, 2);
+# else
+ ecore_x_window_prop_property_set(ee->prop.window,
+ ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
+ ECORE_X_ATOM_CARDINAL, 32, &rotation, 1);
+# endif
#endif /* BUILD_ECORE_EVAS_SOFTWARE_X11 */
}
else if (!strcmp(ee->driver, "software_16_x11"))
einfo->info.rotation = rotation;
_ecore_evas_x_rotation_set_internal(ee, rotation, resize,
(Evas_Engine_Info *)einfo);
+# if _USE_WIN_ROT_EFFECT
+ ecore_x_window_prop_property_set(ee->prop.window,
+ ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
+ ECORE_X_ATOM_CARDINAL, 32, &angles, 2);
+# else
+ ecore_x_window_prop_property_set(ee->prop.window,
+ ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
+ ECORE_X_ATOM_CARDINAL, 32, &rotation, 1);
+# endif
#endif /* BUILD_ECORE_EVAS_SOFTWARE_16_X11 */
}
else if (!strcmp(ee->driver, "software_8_x11"))
einfo->info.rotation = rotation;
_ecore_evas_x_rotation_set_internal(ee, rotation, resize,
(Evas_Engine_Info *)einfo);
+# if _USE_WIN_ROT_EFFECT
+ ecore_x_window_prop_property_set(ee->prop.window,
+ ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
+ ECORE_X_ATOM_CARDINAL, 32, &angles, 2);
+# else
+ ecore_x_window_prop_property_set(ee->prop.window,
+ ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
+ ECORE_X_ATOM_CARDINAL, 32, &rotation, 1);
+# endif
#endif /* BUILD_ECORE_EVAS_SOFTWARE_8_X11 */
}
+
+#if _USE_WIN_ROT_EFFECT
+ _ecore_evas_x_rotation_effect_setup();
+ _ecore_evas_x_flush_pre(ee, NULL, NULL);
+#endif /* end of _USE_WIN_ROT_EFFECT */
}
static void
{
Ecore_Evas *ee = data;
- if ((!ee->no_comp_sync) && (_ecore_evas_app_comp_sync))
+ if ((!ee->no_comp_sync) && (_ecore_evas_app_comp_sync) &&
+ (!ee->gl_sync_draw_done)) // added by gl77.lee
{
if (ee->engine.x.sync_counter)
{
ECORE_MAGIC_SET(ee, ECORE_MAGIC_EVAS);
+ ee->gl_sync_draw_done = -1; // added by gl77.lee
+
_ecore_evas_x_init();
ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_x_engine_func;
ee->driver = "opengl_x11";
- ee->semi_sync = 1; // gl engine doesn't need to sync - its whole swaps
+ ee->semi_sync = 0; // gl engine doesn't need to sync - its whole swaps
// ee->no_comp_sync = 1; // gl engine doesn't need to sync - its whole swaps
if (disp_name) ee->name = strdup(disp_name);
#define _ECORE_IMF_H
#include <Eina.h>
+#include <Ecore_IMF_Input_Panel_Key.h>
#ifdef EAPI
# undef EAPI
# endif
#endif /* ! _WIN32 */
+/* Faked 'bool'. */
+#ifndef __cplusplus
+# ifndef bool
+# define bool int
+# ifndef FALSE
+# define FALSE 0
+# endif
+# ifndef TRUE
+# define TRUE 1
+# endif
+# endif
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
+/* ecore_imf_context_input_panel_event_callback_add() flag */
+typedef enum
+{
+ ECORE_IMF_INPUT_PANEL_STATE_EVENT, /**< Input Panel STATE Event */
+ ECORE_IMF_INPUT_PANEL_MODE_EVENT, /**< Input Panel MODE Event */
+ ECORE_IMF_INPUT_PANEL_LANGUAGE_EVENT, /**< Input Panel LANGUAGE Event */
+ ECORE_IMF_INPUT_PANEL_SHIFT_MODE_EVENT, /**< Input Panel SHIFT MODE */
+ ECORE_IMF_INPUT_PANEL_PREEDIT_MODE_EVENT, /**< Input Panel PREEDIT MODE */
+ ECORE_IMF_INPUT_PANEL_COMPLETION_MODE_EVENT, /**< Input Panel COMPLETION MODE */
+ ECORE_IMF_INPUT_PANEL_CUSTOM_INPUT_MODE_EVENT, /**< Input Panel CUSTOM INPUT MODE */
+
+ ECORE_IMF_INPUT_PANEL_PRIVATE_CONTEXT_01, /**< Input Panel PRIVATE CONTEXT */
+ ECORE_IMF_INPUT_PANEL_PRIVATE_CONTEXT_02, /**< Input Panel PRIVATE CONTEXT */
+ ECORE_IMF_INPUT_PANEL_PRIVATE_CONTEXT_03, /**< Input Panel PRIVATE CONTEXT */
+ ECORE_IMF_INPUT_PANEL_PRIVATE_CONTEXT_04, /**< Input Panel PRIVATE CONTEXT */
+ ECORE_IMF_INPUT_PANEL_PRIVATE_CONTEXT_05, /**< Input Panel PRIVATE CONTEXT */
+ ECORE_IMF_INPUT_PANEL_PRIVATE_CONTEXT_06, /**< Input Panel PRIVATE CONTEXT */
+ ECORE_IMF_INPUT_PANEL_PRIVATE_CONTEXT_07, /**< Input Panel PRIVATE CONTEXT */
+ ECORE_IMF_INPUT_PANEL_PRIVATE_CONTEXT_08, /**< Input Panel PRIVATE CONTEXT */
+ ECORE_IMF_INPUT_PANEL_PRIVATE_CONTEXT_09, /**< Input Panel PRIVATE CONTEXT */
+ ECORE_IMF_INPUT_PANEL_PRIVATE_CONTEXT_10, /**< Input Panel PRIVATE CONTEXT */
+ ECORE_IMF_INPUT_PANEL_EVENT_INVALID
+} Ecore_IMF_Input_Panel_Event;
+
+typedef enum
+{
+ ECORE_IMF_INPUT_PANEL_STATE_SHOW, /**< Show Input panel */
+ ECORE_IMF_INPUT_PANEL_STATE_HIDE, /**< Hide Input panel */
+ ECORE_IMF_INPUT_PANEL_STATE_INVALID
+} Ecore_IMF_Input_Panel_State;
+
+typedef enum
+{
+ ECORE_IMF_KEYBOARD_LANG_NATIVE, /**< Native */
+ ECORE_IMF_KEYBOARD_LANG_ALPHABET /**< Alphabet */
+} Ecore_IMF_Keyboard_Lang;
+
+typedef enum
+{
+ ECORE_IMF_AUTOCORRECTION_DEFAULT,
+ ECORE_IMF_AUTOCORRECTION_NO,
+ ECORE_IMF_AUTOCORRECTION_YES,
+ ECORE_IMF_AUTOCORRECTION_INVALID
+} Ecore_IMF_Autocorrection;
+
+typedef enum
+{
+ ECORE_IMF_INPUT_PANEL_CAPS_MODE_OFF, /**< Off */
+ ECORE_IMF_INPUT_PANEL_CAPS_MODE_ON, /**< On */
+ ECORE_IMF_INPUT_PANEL_CAPS_MODE_LOCK, /**< Lock */
+} Ecore_IMF_Input_Panel_Caps_Mode;
+
+typedef enum
+{
+ ECORE_IMF_INPUT_PANEL_ORIENT_NONE,
+ ECORE_IMF_INPUT_PANEL_ORIENT_90_CW, /* Clockwise */
+ ECORE_IMF_INPUT_PANEL_ORIENT_180,
+ ECORE_IMF_INPUT_PANEL_ORIENT_90_CCW /* CounterClockwise */
+} Ecore_IMF_Input_Panel_Orient;
+
+typedef struct
+{
+ int layout_idx;
+ int key_idx;
+ Eina_Bool disabled;
+} Disable_Key_Item;
+
+typedef struct
+{
+ int layout_idx;
+ int key_idx;
+ int type;
+ char data[128]; // label or image path
+ int key_value;
+ char key_string[32];
+} Private_Key_Item;
+
/* Events sent by the Input Method */
typedef struct _Ecore_IMF_Event_Preedit_Start Ecore_IMF_Event_Preedit_Start;
typedef struct _Ecore_IMF_Event_Preedit_End Ecore_IMF_Event_Preedit_End;
void (*input_panel_language_set) (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Lang lang);
Ecore_IMF_Input_Panel_Lang (*input_panel_language_get) (Ecore_IMF_Context *ctx);
void (*cursor_location_set) (Ecore_IMF_Context *ctx, int x, int y, int w, int h);
+
+ void (*input_panel_imdata_set) (Ecore_IMF_Context *ctx, const char* data, int len);
+ void (*input_panel_imdata_get) (Ecore_IMF_Context *ctx, char* data, int *len);
+
+ void (*input_panel_use_effect_set) (Ecore_IMF_Context *ctx, Eina_Bool use_effect);
+ void (*input_panel_orient_set) (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Orient orientation);
+
+ void (*input_panel_move) (Ecore_IMF_Context *ctx, int x, int y);
+ void (*input_panel_geometry_get) (Ecore_IMF_Context *ctx, int *x, int *y, int *w, int *h);
+ void (*input_panel_private_key_set) (Ecore_IMF_Context *ctx, int layout_index, int key_index, const char *img_path, const char* label, const char* value);
+ void (*input_panel_key_disabled_set) (Ecore_IMF_Context *ctx, int layout_index, int key_index, Eina_Bool disabled);
+
+ void (*input_panel_reset) (Ecore_IMF_Context *ctx); /* Same as reset to default property*/
+ Ecore_IMF_Input_Panel_State (*input_panel_state_get) (Ecore_IMF_Context *ctx);
+
+ /* CallBack APIs */
+ void (*input_panel_event_callback_add) (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*pEventCallBackFunc) (void *data, Ecore_IMF_Context *ctx, int value), void *data);
+ void (*input_panel_event_callback_del) (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*pEventCallbackFunc) (void *data, Ecore_IMF_Context *ctx, int value));
+
+ /* ISF related APIs */
+ int (*ise_get_ise_language) (Ecore_IMF_Context *ctx, const char* input_panel_name, char*** langlist);
+ int (*ise_set_isf_language) (Ecore_IMF_Context *ctx, const char* lang);
+ int (*ise_get_active_isename) (Ecore_IMF_Context *ctx, char* name); /**< will be deprecated */
+ int (*ise_set_active_ise_by_name) (Ecore_IMF_Context *ctx, const char* name); /**< will be deprecated */
+ int (*ise_set_active_ise_by_uuid) (Ecore_IMF_Context *ctx, const char* uuid); /**< will be deprecated */
+ int (*ise_get_iselist) (Ecore_IMF_Context *ctx, char*** iselist); /**< will be deprecated */
+ void (*input_panel_caps_mode_set) (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Caps_Mode mode);
};
struct _Ecore_IMF_Context_Info
EAPI Ecore_IMF_Input_Panel_Lang ecore_imf_context_input_panel_language_get(Ecore_IMF_Context *ctx);
EAPI void ecore_imf_context_input_panel_enabled_set(Ecore_IMF_Context *ctx, Eina_Bool enable);
EAPI Eina_Bool ecore_imf_context_input_panel_enabled_get(Ecore_IMF_Context *ctx);
+EAPI void ecore_imf_context_input_panel_imdata_set(Ecore_IMF_Context *ctx, const char *data, int len);
+EAPI void ecore_imf_context_input_panel_imdata_get(Ecore_IMF_Context *ctx, char *data, int *len);
+EAPI void ecore_imf_context_input_panel_use_effect_set(Ecore_IMF_Context *ctx, Eina_Bool use_effect);
+EAPI Eina_Bool ecore_imf_context_input_panel_use_effect_get(Ecore_IMF_Context *ctx);
+EAPI void ecore_imf_context_input_panel_geometry_get(Ecore_IMF_Context *ctx, int *x, int *y, int *w, int *h);
+EAPI void ecore_imf_context_input_panel_private_key_set(Ecore_IMF_Context *ctx, int layout_index, int key_index, const char *img_path, const char* label, int key_value, const char* key_string);
+EAPI Eina_List *ecore_imf_context_input_panel_private_key_list_get(Ecore_IMF_Context *ctx);
+EAPI void ecore_imf_context_input_panel_reset(Ecore_IMF_Context *ctx); /* Same as reset to default property*/
+EAPI void ecore_imf_context_input_panel_orient_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Orient orientation);
+EAPI Ecore_IMF_Input_Panel_Orient ecore_imf_context_input_panel_orient_get(Ecore_IMF_Context *ctx);
+EAPI Ecore_IMF_Input_Panel_State ecore_imf_context_input_panel_state_get(Ecore_IMF_Context *ctx);
+EAPI void ecore_imf_context_input_panel_event_callback_add(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*func) (void *data, Ecore_IMF_Context *ctx, int value), const void *data);
+EAPI void ecore_imf_context_input_panel_event_callback_del(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*func) (void *data, Ecore_IMF_Context *ctx, int value));
+EAPI void ecore_imf_context_input_panel_key_disabled_set(Ecore_IMF_Context *ctx, int layout_index, int key_index, Eina_Bool disabled);
+EAPI Eina_List *ecore_imf_context_input_panel_key_disabled_list_get(Ecore_IMF_Context *ctx);
+EAPI void ecore_imf_context_input_panel_move(Ecore_IMF_Context *ctx, int x, int y);
+EAPI void ecore_imf_context_input_panel_caps_mode_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Caps_Mode mode);
+
+EAPI void ecore_imf_context_keyboard_language_set(Ecore_IMF_Context *ctx, Ecore_IMF_Keyboard_Lang lang);
+EAPI Ecore_IMF_Keyboard_Lang ecore_imf_context_keyboard_language_get(Ecore_IMF_Context *ctx);
+
+/* functions to control isf */
+EAPI int ecore_imf_context_ise_get_ise_language(Ecore_IMF_Context *ctx, const char* ise_name, char ***langlist);
+EAPI void ecore_imf_context_ise_set_isf_language(Ecore_IMF_Context *ctx, const char* lang);
+EAPI void ecore_imf_context_ise_get_active_isename(Ecore_IMF_Context *ctx, char* name);
+EAPI void ecore_imf_context_ise_set_active_ise_by_name(Ecore_IMF_Context *ctx, const char* name);
+EAPI void ecore_imf_context_ise_set_active_ise_by_uuid(Ecore_IMF_Context *ctx, const char* uuid);
+EAPI int ecore_imf_context_ise_get_iselist(Ecore_IMF_Context *ctx, char*** iselist);
/* The following entry points must be exported by each input method module
*/
--- /dev/null
+#ifndef _INPUT_PANEL_KEYDEFS_H_
+#define _INPUT_PANEL_KETDEFS_H_
+
+
+#define ECORE_IMF_INPUT_PANEL_KEY_RESERVED 0
+#define ECORE_IMF_INPUT_PANEL_KEY_ESC 1
+#define ECORE_IMF_INPUT_PANEL_KEY_1 2
+#define ECORE_IMF_INPUT_PANEL_KEY_2 3
+#define ECORE_IMF_INPUT_PANEL_KEY_3 4
+#define ECORE_IMF_INPUT_PANEL_KEY_4 5
+#define ECORE_IMF_INPUT_PANEL_KEY_5 6
+#define ECORE_IMF_INPUT_PANEL_KEY_6 7
+#define ECORE_IMF_INPUT_PANEL_KEY_7 8
+#define ECORE_IMF_INPUT_PANEL_KEY_8 9
+#define ECORE_IMF_INPUT_PANEL_KEY_9 10
+#define ECORE_IMF_INPUT_PANEL_KEY_0 11
+#define ECORE_IMF_INPUT_PANEL_KEY_MINUS 12
+#define ECORE_IMF_INPUT_PANEL_KEY_EQUAL 13
+#define ECORE_IMF_INPUT_PANEL_KEY_BACKSPACE 14
+#define ECORE_IMF_INPUT_PANEL_KEY_TAB 15
+#define ECORE_IMF_INPUT_PANEL_KEY_Q 16
+#define ECORE_IMF_INPUT_PANEL_KEY_W 17
+#define ECORE_IMF_INPUT_PANEL_KEY_E 18
+#define ECORE_IMF_INPUT_PANEL_KEY_R 19
+#define ECORE_IMF_INPUT_PANEL_KEY_T 20
+#define ECORE_IMF_INPUT_PANEL_KEY_Y 21
+#define ECORE_IMF_INPUT_PANEL_KEY_U 22
+#define ECORE_IMF_INPUT_PANEL_KEY_I 23
+#define ECORE_IMF_INPUT_PANEL_KEY_O 24
+#define ECORE_IMF_INPUT_PANEL_KEY_P 25
+#define ECORE_IMF_INPUT_PANEL_KEY_LEFTBRACE 26
+#define ECORE_IMF_INPUT_PANEL_KEY_RIGHTBRACE 27
+#define ECORE_IMF_INPUT_PANEL_KEY_ENTER 28
+#define ECORE_IMF_INPUT_PANEL_KEY_LEFTCTRL 29
+#define ECORE_IMF_INPUT_PANEL_KEY_A 30
+#define ECORE_IMF_INPUT_PANEL_KEY_S 31
+#define ECORE_IMF_INPUT_PANEL_KEY_D 32
+#define ECORE_IMF_INPUT_PANEL_KEY_F 33
+#define ECORE_IMF_INPUT_PANEL_KEY_G 34
+#define ECORE_IMF_INPUT_PANEL_KEY_H 35
+#define ECORE_IMF_INPUT_PANEL_KEY_J 36
+#define ECORE_IMF_INPUT_PANEL_KEY_K 37
+#define ECORE_IMF_INPUT_PANEL_KEY_L 38
+#define ECORE_IMF_INPUT_PANEL_KEY_SEMICOLON 39
+#define ECORE_IMF_INPUT_PANEL_KEY_APOSTROPHE 40
+#define ECORE_IMF_INPUT_PANEL_KEY_GRAVE 41
+#define ECORE_IMF_INPUT_PANEL_KEY_LEFTSHIFT 42
+#define ECORE_IMF_INPUT_PANEL_KEY_BACKSLASH 43
+#define ECORE_IMF_INPUT_PANEL_KEY_Z 44
+#define ECORE_IMF_INPUT_PANEL_KEY_X 45
+#define ECORE_IMF_INPUT_PANEL_KEY_C 46
+#define ECORE_IMF_INPUT_PANEL_KEY_V 47
+#define ECORE_IMF_INPUT_PANEL_KEY_B 48
+#define ECORE_IMF_INPUT_PANEL_KEY_N 49
+#define ECORE_IMF_INPUT_PANEL_KEY_M 50
+#define ECORE_IMF_INPUT_PANEL_KEY_COMMA 51
+#define ECORE_IMF_INPUT_PANEL_KEY_DOT 52
+#define ECORE_IMF_INPUT_PANEL_KEY_SLASH 53
+#define ECORE_IMF_INPUT_PANEL_KEY_RIGHTSHIFT 54
+#define ECORE_IMF_INPUT_PANEL_KEY_KPASTERISK 55
+#define ECORE_IMF_INPUT_PANEL_KEY_LEFTALT 56
+#define ECORE_IMF_INPUT_PANEL_KEY_SPACE 57
+#define ECORE_IMF_INPUT_PANEL_KEY_CAPSLOCK 58
+#define ECORE_IMF_INPUT_PANEL_KEY_F1 59
+#define ECORE_IMF_INPUT_PANEL_KEY_F2 60
+#define ECORE_IMF_INPUT_PANEL_KEY_F3 61
+#define ECORE_IMF_INPUT_PANEL_KEY_F4 62
+#define ECORE_IMF_INPUT_PANEL_KEY_F5 63
+#define ECORE_IMF_INPUT_PANEL_KEY_F6 64
+#define ECORE_IMF_INPUT_PANEL_KEY_F7 65
+#define ECORE_IMF_INPUT_PANEL_KEY_F8 66
+#define ECORE_IMF_INPUT_PANEL_KEY_F9 67
+#define ECORE_IMF_INPUT_PANEL_KEY_F10 68
+#define ECORE_IMF_INPUT_PANEL_KEY_NUMLOCK 69
+#define ECORE_IMF_INPUT_PANEL_KEY_SCROLLLOCK 70
+#define ECORE_IMF_INPUT_PANEL_KEY_KP7 71
+#define ECORE_IMF_INPUT_PANEL_KEY_KP8 72
+#define ECORE_IMF_INPUT_PANEL_KEY_KP9 73
+#define ECORE_IMF_INPUT_PANEL_KEY_KPMINUS 74
+#define ECORE_IMF_INPUT_PANEL_KEY_KP4 75
+#define ECORE_IMF_INPUT_PANEL_KEY_KP5 76
+#define ECORE_IMF_INPUT_PANEL_KEY_KP6 77
+#define ECORE_IMF_INPUT_PANEL_KEY_KPPLUS 78
+#define ECORE_IMF_INPUT_PANEL_KEY_KP1 79
+#define ECORE_IMF_INPUT_PANEL_KEY_KP2 80
+#define ECORE_IMF_INPUT_PANEL_KEY_KP3 81
+#define ECORE_IMF_INPUT_PANEL_KEY_KP0 82
+#define ECORE_IMF_INPUT_PANEL_KEY_KPDOT 83
+
+#define ECORE_IMF_INPUT_PANEL_KEY_ZENKAKUHANKAKU 85
+#define ECORE_IMF_INPUT_PANEL_KEY_102ND 86
+#define ECORE_IMF_INPUT_PANEL_KEY_F11 87
+#define ECORE_IMF_INPUT_PANEL_KEY_F12 88
+#define ECORE_IMF_INPUT_PANEL_KEY_RO 89
+#define ECORE_IMF_INPUT_PANEL_KEY_KATAKANA 90
+#define ECORE_IMF_INPUT_PANEL_KEY_HIRAGANA 91
+#define ECORE_IMF_INPUT_PANEL_KEY_HENKAN 92
+#define ECORE_IMF_INPUT_PANEL_KEY_KATAKANAHIRAGANA 93
+#define ECORE_IMF_INPUT_PANEL_KEY_MUHENKAN 94
+#define ECORE_IMF_INPUT_PANEL_KEY_KPJPCOMMA 95
+#define ECORE_IMF_INPUT_PANEL_KEY_KPENTER 96
+#define ECORE_IMF_INPUT_PANEL_KEY_RIGHTCTRL 97
+#define ECORE_IMF_INPUT_PANEL_KEY_KPSLASH 98
+#define ECORE_IMF_INPUT_PANEL_KEY_SYSRQ 99
+#define ECORE_IMF_INPUT_PANEL_KEY_RIGHTALT 100
+#define ECORE_IMF_INPUT_PANEL_KEY_LINEFEED 101
+#define ECORE_IMF_INPUT_PANEL_KEY_HOME 102
+#define ECORE_IMF_INPUT_PANEL_KEY_UP 103
+#define ECORE_IMF_INPUT_PANEL_KEY_PAGEUP 104
+#define ECORE_IMF_INPUT_PANEL_KEY_LEFT 105
+#define ECORE_IMF_INPUT_PANEL_KEY_RIGHT 106
+#define ECORE_IMF_INPUT_PANEL_KEY_END 107
+#define ECORE_IMF_INPUT_PANEL_KEY_DOWN 108
+#define ECORE_IMF_INPUT_PANEL_KEY_PAGEDOWN 109
+#define ECORE_IMF_INPUT_PANEL_KEY_INSERT 110
+#define ECORE_IMF_INPUT_PANEL_KEY_DELETE 111
+#define ECORE_IMF_INPUT_PANEL_KEY_MACRO 112
+#define ECORE_IMF_INPUT_PANEL_KEY_MUTE 113
+#define ECORE_IMF_INPUT_PANEL_KEY_VOLUMEDOWN 114
+#define ECORE_IMF_INPUT_PANEL_KEY_VOLUMEUP 115
+#define ECORE_IMF_INPUT_PANEL_KEY_POWER 116 /* SC System Power Down */
+#define ECORE_IMF_INPUT_PANEL_KEY_KPEQUAL 117
+#define ECORE_IMF_INPUT_PANEL_KEY_KPPLUSMINUS 118
+#define ECORE_IMF_INPUT_PANEL_KEY_PAUSE 119
+
+#define ECORE_IMF_INPUT_PANEL_KEY_KPCOMMA 121
+#define ECORE_IMF_INPUT_PANEL_KEY_HANGEUL 122
+#define ECORE_IMF_INPUT_PANEL_KEY_HANGUEL ECORE_IMF_INPUT_PANEL_KEY_KEY_HANGEUL
+#define ECORE_IMF_INPUT_PANEL_KEY_HANJA 123
+#define ECORE_IMF_INPUT_PANEL_KEY_YEN 124
+#define ECORE_IMF_INPUT_PANEL_KEY_LEFTMETA 125
+#define ECORE_IMF_INPUT_PANEL_KEY_RIGHTMETA 126
+#define ECORE_IMF_INPUT_PANEL_KEY_COMPOSE 127
+
+#define ECORE_IMF_INPUT_PANEL_KEY_EXCLAM 129
+#define ECORE_IMF_INPUT_PANEL_KEY_AT 130
+#define ECORE_IMF_INPUT_PANEL_KEY_SHARP 131
+#define ECORE_IMF_INPUT_PANEL_KEY_DOLLAR 132
+#define ECORE_IMF_INPUT_PANEL_KEY_PERCENT 133
+#define ECORE_IMF_INPUT_PANEL_KEY_CARET 134
+#define ECORE_IMF_INPUT_PANEL_KEY_AMPERSAND 135
+#define ECORE_IMF_INPUT_PANEL_KEY_ASTERISK 136
+#define ECORE_IMF_INPUT_PANEL_KEY_LPAREN 137
+#define ECORE_IMF_INPUT_PANEL_KEY_RPAREN 138
+
+#define ECORE_IMF_INPUT_PANEL_KEY_MODECHANGE 247
+#define ECORE_IMF_INPUT_PANEL_KEY_SETTING 248
+
+#define ECORE_IMF_INPUT_PANEL_KEY_MAX 255
+
+#endif
AM_CFLAGS = @WIN32_CFLAGS@
lib_LTLIBRARIES = libecore_imf.la
-includes_HEADERS = Ecore_IMF.h
+includes_HEADERS = Ecore_IMF.h Ecore_IMF_Input_Panel_Key.h
includesdir = $(includedir)/ecore-@VMAJ@
libecore_imf_la_SOURCES = \
EAPI void
ecore_imf_context_del(Ecore_IMF_Context *ctx)
{
+ void *data;
+
if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
{
ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
}
if (ctx->klass->del) ctx->klass->del(ctx);
ECORE_MAGIC_SET(ctx, ECORE_MAGIC_NONE);
+
+ EINA_LIST_FREE(ctx->private_key_list, data)
+ free(data);
+
+ EINA_LIST_FREE(ctx->disabled_key_list, data)
+ free(data);
+
+ ctx->private_key_list = NULL;
+ ctx->disabled_key_list = NULL;
+
free(ctx);
}
ctx->data = NULL;
ctx->retrieve_surrounding_func = NULL;
ctx->retrieve_surrounding_data = NULL;
+ ctx->input_panel_x = 0;
+ ctx->input_panel_y = 0;
+ ctx->input_panel_layout = ECORE_IMF_INPUT_PANEL_LAYOUT_NORMAL;
+ ctx->input_panel_orient = ECORE_IMF_INPUT_PANEL_ORIENT_NONE;
+ ctx->use_effect = EINA_TRUE;
+ ctx->callbacks = NULL;
+
return ctx;
}
return ctx->input_panel_enabled;
}
+/**
+ * Set the specific data to pass to the input panel.
+ * this API is used by applications to deliver specific data to the input panel.
+ * the data format MUST be negotiated by both application and the input panel.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param data The specific data to be set to the input panel.
+ * @param len the length of data
+ * @ingroup Ecore_IMF_Context_IMControl_Group
+ * @since 1.1.0
+ */
+EAPI void
+ecore_imf_context_input_panel_imdata_set (Ecore_IMF_Context *ctx, const char *data, int len)
+{
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_input_panel_imdata_set");
+ return;
+ }
+
+ if ((!data) || (len <=0)) return;
+
+ if (ctx->klass->input_panel_imdata_set)
+ ctx->klass->input_panel_imdata_set(ctx, data, len);
+}
+
+/**
+ * Get the specific data of the current active input panel.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param data The specific data to be got from the input panel
+ * @param len The length of data
+ * @ingroup Ecore_IMF_Context_IMControl_Group
+ * @since 1.1.0
+ */
+EAPI void
+ecore_imf_context_input_panel_imdata_get (Ecore_IMF_Context *ctx, char *data, int *len)
+{
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_input_panel_imdata_get");
+ return;
+ }
+
+ if (!data) return;
+
+ if (ctx->klass->input_panel_imdata_get)
+ ctx->klass->input_panel_imdata_get(ctx, data, len);
+}
+
+/**
+ * Get ISE Language of given ISE. -- Not supported for now --
+ * @ingroup Ecore_IMF_Context_IMControl_Group
+ */
+EAPI int
+ecore_imf_context_ise_get_ise_language (Ecore_IMF_Context *ctx, const char* ise_name, char ***langlist)
+{
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_ise_get_ise_language");
+ return -1;
+ }
+
+ if (!ise_name) return -1;
+
+ if (ctx->klass->ise_get_ise_language)
+ return ctx->klass->ise_get_ise_language(ctx, ise_name, langlist);
+ else
+ return -1;
+}
+
+/**
+ * Set keyboard language.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param lang see Ecore_IMF_Input_Panel_Lang
+ * @ingroup Ecore_IMF_Context_IMControl_Group
+ * THIS API IS NOT SUPPORTED NOW
+ * @since 1.1.0
+ */
+EAPI void
+ecore_imf_context_keyboard_language_set (Ecore_IMF_Context *ctx, Ecore_IMF_Keyboard_Lang lang)
+{
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_keyboard_language_set");
+ return;
+ }
+// if (ctx->klass->ise_set_language) ctx->klass->ise_set_language(ctx, lang);
+}
+
+/**
+ * Get keyboard language.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @return Ecore_IMF_Input_Panel_Lang
+ * @ingroup Ecore_IMF_Context_IMControl_Group
+ * THIS API IS NOT SUPPORTED NOW
+ * @since 1.1.0
+ */
+EAPI Ecore_IMF_Keyboard_Lang
+ecore_imf_context_keyboard_language_get (Ecore_IMF_Context *ctx)
+{
+ Ecore_IMF_Keyboard_Lang lang = ECORE_IMF_KEYBOARD_LANG_NATIVE;
+
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_keyboard_language_get");
+ return lang;
+ }
+/*
+ if (ctx->klass->input_panel_language_get)
+ lang = ctx->klass->input_panel_language_get(ctx);
+*/
+ return lang;
+}
+
+/**
+ * Set ISF Language. -- Not supported for now --
+ * @ingroup Ecore_IMF_Context_IMControl_Group
+ */
+EAPI void
+ecore_imf_context_ise_set_isf_language (Ecore_IMF_Context *ctx, const char* lang)
+{
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_ise_set_isf_language");
+ return;
+ }
+
+ if (!lang) return;
+
+ if (ctx->klass->ise_set_isf_language)
+ ctx->klass->ise_set_isf_language(ctx, lang);
+}
+
+/**
+ * Set whether animation effect of the input panel is shown or not.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param use_effect whether animation effect is shown or not
+ * @ingroup Ecore_IMF_Context_IMControl_Group
+ * @since 1.1.0
+ */
+EAPI void
+ecore_imf_context_input_panel_use_effect_set (Ecore_IMF_Context *ctx, Eina_Bool use_effect)
+{
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_input_panel_use_effect_set");
+ return;
+ }
+
+ if (ctx->klass->input_panel_use_effect_set)
+ ctx->klass->input_panel_use_effect_set(ctx, use_effect);
+
+ ctx->use_effect = use_effect;
+}
+
+/**
+ * Get whether the input panel supports animation effect or not when it is shown or hidden.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param use_effect whether animation effect is shown or not
+ * @ingroup Ecore_IMF_Context_IMControl_Group
+ * @since 1.1.0
+ */
+EAPI Eina_Bool
+ecore_imf_context_input_panel_use_effect_get (Ecore_IMF_Context *ctx)
+{
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_input_panel_use_effect_get");
+ return EINA_TRUE;
+ }
+
+ return ctx->use_effect;
+}
+
+/**
+ * Get the position of the current active input panel.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param x top-left x co-ordinate of the input panel
+ * @param y top-left y co-ordinate of the input panel
+ * @param w width of the input panel
+ * @param h height of the input panel
+ * @ingroup Ecore_IMF_Context_IMControl_Group
+ * @since 1.1.0
+ */
+EAPI void
+ecore_imf_context_input_panel_geometry_get (Ecore_IMF_Context *ctx, int *x, int *y, int *w, int *h)
+{
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_input_panel_geometry_get");
+ return;
+ }
+
+ if (ctx->klass->input_panel_geometry_get)
+ ctx->klass->input_panel_geometry_get(ctx, x, y, w, h);
+}
+
+/**
+ * Set the private key of input panel.
+ * Since the second parameter of this API requires a layout index, so before using this API
+ * application has to set a specific layout and that layout index should
+ * be passed in the 2nd argument of this API.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param layout_index index of layout page to be set
+ * @param img_path the path of image file to be set
+ * @param key_index index of key to be set
+ * @param label text label to be appeared on private key
+ * @param value value of key, If NULL it will use original value of key
+ * @ingroup Ecore_IMF_Context_IMControl_Group
+ * @since 1.1.0
+ */
+EAPI void
+ecore_imf_context_input_panel_private_key_set (Ecore_IMF_Context *ctx, int layout_index, int key_index, const char *img_path, const char *label, int key_value, const char *key_string)
+{
+ Private_Key_Item *key_item;
+ Eina_List *l;
+ Eina_Bool exist = EINA_FALSE;
+
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_input_panel_private_key_set");
+ return;
+ }
+
+ if ((!label) && (!img_path)) return;
+
+ EINA_LIST_FOREACH(ctx->private_key_list, l, key_item)
+ {
+ if (key_item && (key_item->layout_idx == layout_index) &&
+ (key_item->key_idx == key_index))
+ {
+ // if exist in the list
+ exist = EINA_TRUE;
+ if (label)
+ {
+ key_item->type = 0;
+ strcpy(key_item->data, label);
+ }
+ else
+ {
+ key_item->type = 1;
+ strcpy(key_item->data, img_path);
+ }
+ key_item->key_value = key_value;
+ strcpy(key_item->key_string, key_string);
+ }
+ }
+
+ if (!exist)
+ {
+ key_item = calloc(1, sizeof(Private_Key_Item));
+ if (!key_item) return;
+
+ key_item->layout_idx = layout_index;
+ key_item->key_idx = key_index;;
+ if (label)
+ {
+ key_item->type = 0;
+ strcpy(key_item->data, label);
+ }
+ else
+ {
+ key_item->type = 1;
+ strcpy(key_item->data, img_path);
+ }
+ key_item->key_value = key_value;
+
+ if (key_string)
+ strcpy(key_item->key_string, key_string);
+
+ ctx->private_key_list = eina_list_append(ctx->private_key_list, key_item);
+ }
+
+// if (ctx->klass->input_panel_private_key_set) ctx->klass->input_panel_private_key_set(ctx, layout_index, key_index, img_path, label, value);
+}
+
+/**
+ * Get the list of private key.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @return Return the list of private key
+ * @ingroup Ecore_IMF_Context_IMControl_Group
+ * @since 1.1.0
+ */
+EAPI Eina_List *
+ecore_imf_context_input_panel_private_key_list_get (Ecore_IMF_Context *ctx)
+{
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_input_panel_private_key_list_get");
+ return NULL;
+ }
+
+ return ctx->private_key_list;
+}
+
+/**
+ * Set the key to be disabled.
+ * Since the second parameter of this API requires a layout index, so before using this API application has to set a specific layout and that layout index
+ * should be passed in the 2nd argument of this API.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param layout_index index of layout page to be set
+ * @param key_index index of key to be set
+ * @param disabled The state
+ * @ingroup Ecore_IMF_Context_IMControl_Group
+ * @since 1.1.0
+ */
+EAPI void
+ecore_imf_context_input_panel_key_disabled_set (Ecore_IMF_Context *ctx, int layout_index, int key_index, Eina_Bool disabled)
+{
+ Disable_Key_Item *key_item;
+ Eina_List *l;
+ Eina_Bool exist = EINA_FALSE;
+
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_input_panel_key_disabled_set");
+ return;
+ }
+
+ EINA_LIST_FOREACH(ctx->disabled_key_list, l, key_item)
+ {
+ if (key_item && (key_item->layout_idx == layout_index) &&
+ (key_item->key_idx == key_index))
+ {
+ key_item->disabled = disabled;
+ exist = EINA_TRUE;
+ }
+ }
+
+ if (!exist)
+ {
+ key_item = calloc(1, sizeof(Disable_Key_Item));
+ if (!key_item) return;
+
+ key_item->layout_idx = layout_index;
+ key_item->key_idx = key_index;;
+ key_item->disabled = disabled;
+
+ ctx->disabled_key_list = eina_list_append(ctx->disabled_key_list, key_item);
+ }
+
+// if (ctx->klass->input_panel_key_disabled_set) ctx->klass->input_panel_key_disabled_set(ctx, layout_index, key_index, disabled);
+}
+
+/**
+ * Get the list of disabled keys.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @return Return the list of private key
+ * @ingroup Ecore_IMF_Context_IMControl_Group
+ * @since 1.1.0
+ */
+EAPI Eina_List *
+ecore_imf_context_input_panel_key_disabled_list_get (Ecore_IMF_Context *ctx)
+{
+ return ctx->disabled_key_list;
+}
+
+/**
+ * Restore all default properties of input panel.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @ingroup Ecore_IMF_Context_IMControl_Group
+ * @since 1.1.0
+ */
+EAPI void
+ecore_imf_context_input_panel_reset (Ecore_IMF_Context *ctx)
+{
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_input_panel_reset");
+ return;
+ }
+
+ if (ctx->klass->input_panel_reset) ctx->klass->input_panel_reset(ctx);
+}
+
+/**
+ * Set the screen orientation of input panel
+ * To show the keypad in landscape mode application should first call this API with 2nd parameter as 90 or 270.
+ * After then only application should call @ref ecore_imf_context_input_panel_show.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param orientation the orientation of input panel
+ * @ingroup Ecore_IMF_Context_IMControl_Group
+ * @since 1.1.0
+ */
+EAPI void
+ecore_imf_context_input_panel_orient_set (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Orient orientation)
+{
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_input_panel_orient_set");
+ return;
+ }
+
+ if (ctx->klass->input_panel_orient_set)
+ ctx->klass->input_panel_orient_set(ctx, orientation*90);
+
+ ctx->input_panel_orient = orientation;
+}
+
+/**
+ * Get the screen orientation of input panel.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @return The screen orientation of input panel
+ * @ingroup Ecore_IMF_Context_IMControl_Group
+ * @since 1.1.0
+ */
+EAPI Ecore_IMF_Input_Panel_Orient
+ecore_imf_context_input_panel_orient_get (Ecore_IMF_Context *ctx)
+{
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_input_panel_orient_get");
+ return ECORE_IMF_INPUT_PANEL_ORIENT_NONE;
+ }
+
+ return ctx->input_panel_orient;
+}
+
+/**
+ * Get name of current active input panel.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param name input panel name to be got
+ * @ingroup Ecore_IMF_Context_IMControl_Group
+ */
+EAPI void
+ecore_imf_context_ise_get_active_isename (Ecore_IMF_Context *ctx, char* name)
+{
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_ise_get_active_isename");
+ return;
+ }
+
+ if (!name) return;
+
+ if (ctx->klass->ise_get_active_isename)
+ ctx->klass->ise_get_active_isename(ctx, name);
+}
+
+/**
+ * Choose the active input panel by its name.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param name input panel name to be set
+ * @ingroup Ecore_IMF_Context_IMControl_Group
+ */
+EAPI void
+ecore_imf_context_ise_set_active_ise_by_name (Ecore_IMF_Context *ctx, const char* name)
+{
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_ise_set_active_ise_by_name");
+ return;
+ }
+
+ if (!name) return;
+
+ if (ctx->klass->ise_set_active_ise_by_name)
+ ctx->klass->ise_set_active_ise_by_name(ctx, name);
+}
+
+/**
+ * Set input panel by its uuid.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param uuid input panel uuid to be set
+ * @ingroup Ecore_IMF_Context_IMControl_Group
+ */
+EAPI void
+ecore_imf_context_ise_set_active_ise_by_uuid (Ecore_IMF_Context *ctx, const char* uuid)
+{
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_ise_set_active_ise_by_uuid");
+ return;
+ }
+
+ if (!uuid) return;
+
+ if (ctx->klass->ise_set_active_ise_by_uuid)
+ ctx->klass->ise_set_active_ise_by_uuid(ctx, uuid);
+}
+
+/**
+ * Get list of input panels.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param iselist pointer to the list to be got.
+ * @return int ise counter of iselist
+ * @ingroup Ecore_IMF_Context_IMControl_Group
+ */
+EAPI int
+ecore_imf_context_ise_get_iselist (Ecore_IMF_Context *ctx, char*** iselist)
+{
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_ise_get_iselist");
+ return -1;
+ }
+
+ if (ctx->klass->ise_get_iselist)
+ return ctx->klass->ise_get_iselist(ctx, iselist);
+ else
+ return -1;
+}
+
+/**
+ * Get state of current active input panel.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param The state of input panel.
+ * @ingroup Ecore_IMF_Context_IMControl_Group
+ * @since 1.1.0
+ */
+EAPI Ecore_IMF_Input_Panel_State
+ecore_imf_context_input_panel_state_get (Ecore_IMF_Context *ctx)
+{
+ Ecore_IMF_Input_Panel_State state = ECORE_IMF_INPUT_PANEL_STATE_INVALID;
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_input_panel_state_get");
+ return ECORE_IMF_INPUT_PANEL_STATE_INVALID;
+ }
+
+ if (ctx->klass->input_panel_state_get)
+ state = ctx->klass->input_panel_state_get(ctx);
+
+ return state;
+}
+
+/**
+ * Register a callback function which will be called if there is change in input panel state,language,mode etc.
+ * In order to deregister the callback function
+ * Use @ref ecore_imf_context_input_panel_event_callback_del.
+ *
+ * @param ctx An #Ecore_IMF_Context
+ * @param type event type
+ * @param func the callback function
+ * @param data application-input panel specific data.
+ * @ingroup Ecore_IMF_Context_IMControl_Group
+ * @since 1.1.0
+ */
+EAPI void
+ecore_imf_context_input_panel_event_callback_add (Ecore_IMF_Context *ctx,
+ Ecore_IMF_Input_Panel_Event type,
+ void (*func) (void *data, Ecore_IMF_Context *ctx, int value),
+ const void *data)
+{
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_input_panel_event_callback_add");
+ return;
+ }
+
+ if (ctx->klass->input_panel_event_callback_add)
+ ctx->klass->input_panel_event_callback_add(ctx, type, func, data);
+}
+
+/**
+ * Unregister a callback function which will be called if there is change in input panel state, language, mode etc.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param func the callback function
+ * @param data application-input panel specific data.
+ * @ingroup Ecore_IMF_Context_IMControl_Group
+ * @since 1.1.0
+ */
+EAPI void
+ecore_imf_context_input_panel_event_callback_del (Ecore_IMF_Context *ctx,
+ Ecore_IMF_Input_Panel_Event type,
+ void (*func) (void *data, Ecore_IMF_Context *ctx, int value))
+{
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_input_panel_event_callback_del");
+ return;
+ }
+
+ if (ctx->klass->input_panel_event_callback_del)
+ ctx->klass->input_panel_event_callback_del(ctx, type, func);
+}
+
+/**
+ * Move the soft keyboard to the new position.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param x X position to move the input panel to
+ * @param y Y position to move the input panel to
+ * @ingroup Ecore_IMF_Context_IMControl_Group
+ * @since 1.1.0
+ */
+EAPI void
+ecore_imf_context_input_panel_move (Ecore_IMF_Context *ctx, int x, int y)
+{
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_input_panel_move");
+ return;
+ }
+
+ if (ctx->klass->input_panel_move) ctx->klass->input_panel_move(ctx, x, y);
+ ctx->input_panel_x = x;
+ ctx->input_panel_y = y;
+}
+
+/**
+ * Set the caps mode of the input panel.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param mode the caps mode
+ * @ingroup Ecore_IMF_Context_IMControl_Group
+ * @since 1.1.0
+ */
+EAPI void
+ecore_imf_context_input_panel_caps_mode_set (Ecore_IMF_Context *ctx,
+ Ecore_IMF_Input_Panel_Caps_Mode mode)
+{
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_input_panel_caps_mode_set");
+ return;
+ }
+
+ if (ctx->klass->input_panel_caps_mode_set)
+ ctx->klass->input_panel_caps_mode_set(ctx, mode);
+}
int input_mode;
void *window;
void *client_canvas;
+ int input_panel_x;
+ int input_panel_y;
+ Ecore_IMF_Input_Panel_Orient input_panel_orient;
Eina_Bool (*retrieve_surrounding_func)(void *data, Ecore_IMF_Context *ctx, char **text, int *cursor_pos);
void *retrieve_surrounding_data;
Ecore_IMF_Autocapital_Type autocapital_type;
Ecore_IMF_Input_Panel_Lang input_panel_lang;
Eina_Bool allow_prediction : 1;
Eina_Bool input_panel_enabled : 1;
+ Eina_List *callbacks;
+ Eina_List *disabled_key_list;
+ Eina_List *private_key_list;
+ Eina_Bool use_effect : 1;
};
struct _Ecore_IMF_Module
Ecore_X_Window win;
Ecore_X_Time time;
};
-
+
+struct _Ecore_X_Event_Window_Prop_Title_Change
+{
+ Ecore_X_Window win;
+ char *title;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Prop_Visible_Title_Change
+{
+ Ecore_X_Window win;
+ char *title;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Prop_Icon_Name_Change
+{
+ Ecore_X_Window win;
+ char *name;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Prop_Visible_Icon_Name_Change
+{
+ Ecore_X_Window win;
+ char *name;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Prop_Client_Machine_Change
+{
+ Ecore_X_Window win;
+ char *name;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Prop_Name_Class_Change
+{
+ Ecore_X_Window win;
+ char *name;
+ char *clas;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Prop_Pid_Change
+{
+ Ecore_X_Window win;
+ pid_t pid;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Prop_Desktop_Change
+{
+ Ecore_X_Window win;
+ long desktop;
+ Ecore_X_Time time;
+};
+
struct _Ecore_X_Event_Startup_Sequence
{
Ecore_X_Window win;
Ecore_X_Window shape_win,
int x,
int y);
+EAPI void ecore_x_window_shape_window_set_xy(
+ Ecore_X_Window win,
+ Ecore_X_Window shape_win,
+ int x,
+ int y);
EAPI void ecore_x_window_shape_rectangle_set(
Ecore_X_Window win,
int x,
ecore_x_e_illume_quickpanel_position_update_send(
Ecore_X_Window win);
+/* added by doyoun.kang - for sliding window */
+EAPI void ecore_x_e_illume_sliding_win_state_set(
+ Ecore_X_Window win,
+ unsigned int is_visible);
+EAPI int ecore_x_e_illume_sliding_win_state_get(
+ Ecore_X_Window win);
+EAPI void ecore_x_e_illume_sliding_win_geometry_set(
+ Ecore_X_Window win,
+ int x,
+ int y,
+ int w,
+ int h);
+EAPI int ecore_x_e_illume_sliding_win_geometry_get(
+ Ecore_X_Window win,
+ int *x,
+ int *y,
+ int *w,
+ int *h);
+
EAPI void ecore_x_e_comp_sync_counter_set(
Ecore_X_Window win,
Ecore_X_Sync_Counter counter);
EAPI Ecore_X_Pixmap ecore_x_e_comp_pixmap_get(
Ecore_X_Window win);
+EAPI void ecore_x_e_comp_dri_buff_flip_supported_set(Ecore_X_Window root, Eina_Bool enabled);
+EAPI Eina_Bool ecore_x_e_comp_dri_buff_flip_supported_get(Ecore_X_Window root);
+
EAPI Ecore_X_Sync_Alarm ecore_x_sync_alarm_new(
Ecore_X_Sync_Counter counter);
EAPI Eina_Bool ecore_x_sync_alarm_free(
EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_COMP_DUMP;
EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_COMP_PIXMAP;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_USER_CREATED_WINDOW;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_PARENT_BORDER_WINDOW;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_COMP_DRI_BUFF_FLIP_SUPPORTED;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_AVAILABLE_ANGLE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ROTATE_OPERATOR;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ROTATE_ROOT_ANGLE;
+
+/* added by doyoun.kang - for user created window */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_USER_CREATED_WINDOW;
+
+/* added by gl77.lee - XID that points to the parent border window */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_PARENT_BORDER_WINDOW;
+
+/* added by doyoun.kang - for indicator's state */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE;
+
+/* added by doyoun.kang - for sliding window */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY;
+
#endif /* _ECORE_X_ATOMS_H */
EAPI Ecore_X_Atom ECORE_X_ATOM_E_COMP_FLUSH = 0;
EAPI Ecore_X_Atom ECORE_X_ATOM_E_COMP_DUMP = 0;
EAPI Ecore_X_Atom ECORE_X_ATOM_E_COMP_PIXMAP = 0;
+
+EAPI Ecore_X_Atom ECORE_X_ATOM_E_USER_CREATED_WINDOW = 0;
+EAPI Ecore_X_Atom ECORE_X_ATOM_E_PARENT_BORDER_WINDOW = 0;
+EAPI Ecore_X_Atom ECORE_X_ATOM_E_COMP_DRI_BUFF_FLIP_SUPPORTED = 0;
+EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE = 0;
+EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE = 0;
+EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_AVAILABLE_ANGLE = 0;
+EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ROTATE_OPERATOR = 0;
+EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ROTATE_ROOT_ANGLE = 0;
+
+/* added by doyoun.kang - for user created window */
+EAPI Ecore_X_Atom ECORE_X_ATOM_USER_CREATED_WINDOW = 0;
+
+/* added by gl77.lee - XID that points to the parent border window */
+EAPI Ecore_X_Atom ECORE_X_ATOM_PARENT_BORDER_WINDOW = 0;
+
+
+/* added by doyoun.kang - for sliding window */
+EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE = 0;
+EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY = 0;
{ "_E_COMP_FLUSH", &ECORE_X_ATOM_E_COMP_FLUSH },
{ "_E_COMP_DUMP", &ECORE_X_ATOM_E_COMP_DUMP },
- { "_E_COMP_PIXMAP", &ECORE_X_ATOM_E_COMP_PIXMAP }
+ { "_E_COMP_PIXMAP", &ECORE_X_ATOM_E_COMP_PIXMAP },
+
+ { "_E_USER_CREATED_WINDOW", &ECORE_X_ATOM_E_USER_CREATED_WINDOW },
+ { "_E_PARENT_BORDER_WINDOW", &ECORE_X_ATOM_E_PARENT_BORDER_WINDOW },
+ { "_E_COMP_DRI_BUFF_FLIP_SUPPORTED", &ECORE_X_ATOM_E_COMP_DRI_BUFF_FLIP_SUPPORTED },
+
+ /* added by doyoun.kang 100218 - for rotation */
+ { "_E_ILLUME_ROTATE_WINDOW_ANGLE", & ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE },
+ { "_E_ILLUME_ROTATE_WINDOW_AVAILABLE_ANGLES", & ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_AVAILABLE_ANGLE },
+ { "_E_ILLUME_ROTATE_OPERATOR", & ECORE_X_ATOM_E_ILLUME_ROTATE_OPERATOR },
+ { "_E_ILLUME_ROTATE_ROOT_ANGLE", & ECORE_X_ATOM_E_ILLUME_ROTATE_ROOT_ANGLE },
+
+ /* added by doyoun.kang - for user created window */
+ { "_ECORE_X_USER_CREATED_WINDOW", & ECORE_X_ATOM_USER_CREATED_WINDOW },
+
+ /* added by gl77.lee - XID that points to the parent border window */
+ { "_ECORE_X_PARENT_BORDER_WINDOW", &ECORE_X_ATOM_PARENT_BORDER_WINDOW },
+
+ /* added by doyoun.kang - for indicator's state */
+ { "_E_ILLUME_INDICATOR_STATE", &ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE },
+ { "_E_ILLUME_ROTATE_WINDOW_ANGLE", &ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE },
+ { "_E_ILLUME_ROTATE_WINDOW_AVAILABLE_ANGLES", &ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_AVAILABLE_ANGLE },
+ { "_E_ILLUME_ROTATE_OPERATOR", &ECORE_X_ATOM_E_ILLUME_ROTATE_OPERATOR },
+ { "_E_ILLUME_ROTATE_ROOT_ANGLE", &ECORE_X_ATOM_E_ILLUME_ROTATE_ROOT_ANGLE },
+
+ /* added by doyoun.kang - for sliding window */
+ { "_E_ILLUME_SLIDING_WIN_STATE", &ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE },
+ { "_E_ILLUME_SLIDING_WIN_GEOMETRY", &ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY }
};
Atom *atoms;
char **names;
1, 0, 0, 0, 0);
} /* ecore_x_e_illume_quickpanel_position_update_send */
+/* added by doyoun.kang - for sliding window */
+EAPI void
+ecore_x_e_illume_sliding_win_state_set(Ecore_X_Window win,
+ unsigned int is_visible)
+{
+ LOGFN(__FILE__, __LINE__, __FUNCTION__);
+ ecore_x_window_prop_card32_set(win,
+ ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE,
+ &is_visible, 1);
+} /* ecore_x_e_illume_sliding_win_state_set */
+
+EAPI int
+ecore_x_e_illume_sliding_win_state_get(Ecore_X_Window win)
+{
+ unsigned int is_visible = 0;
+
+ LOGFN(__FILE__, __LINE__, __FUNCTION__);
+ if (!ecore_x_window_prop_card32_get(win,
+ ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE,
+ &is_visible, 1))
+ return 0;
+
+ return is_visible;
+}
+
+EAPI void
+ecore_x_e_illume_sliding_win_geometry_set(Ecore_X_Window win,
+ int x,
+ int y,
+ int w,
+ int h)
+{
+ unsigned int geom[4];
+
+ LOGFN(__FILE__, __LINE__, __FUNCTION__);
+ geom[0] = x;
+ geom[1] = y;
+ geom[2] = w;
+ geom[3] = h;
+ ecore_x_window_prop_card32_set(win,
+ ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY,
+ geom, 4);
+} /* ecore_x_e_illume_sliding_win_geometry_set */
+
+EAPI int
+ecore_x_e_illume_sliding_win_geometry_get(Ecore_X_Window win,
+ int *x,
+ int *y,
+ int *w,
+ int *h)
+{
+ int ret = 0;
+ unsigned int geom[4];
+
+ LOGFN(__FILE__, __LINE__, __FUNCTION__);
+ ret =
+ ecore_x_window_prop_card32_get(win,
+ ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY,
+ geom, 4);
+ if (ret != 4)
+ return 0;
+
+ if (x)
+ *x = geom[0];
+
+ if (y)
+ *y = geom[1];
+
+ if (w)
+ *w = geom[2];
+
+ if (h)
+ *h = geom[3];
+
+ return 1;
+}/* ecore_x_e_illume_sliding_win_geometry_get */
+
EAPI void
ecore_x_e_comp_sync_counter_set(Ecore_X_Window win,
Ecore_X_Sync_Counter counter)
return pixmap;
} /* ecore_x_e_comp_pixmap_get */
+EAPI void
+ecore_x_e_comp_dri_buff_flip_supported_set(Ecore_X_Window root, Eina_Bool enabled)
+{
+ Ecore_X_Window win;
+
+ if (!root) root = DefaultRootWindow(_ecore_x_disp);
+ LOGFN(__FILE__, __LINE__, __FUNCTION__);
+ if (enabled)
+ {
+ win = ecore_x_window_new(root, 1, 2, 3, 4);
+ ecore_x_window_prop_xid_set(win, ECORE_X_ATOM_E_COMP_DRI_BUFF_FLIP_SUPPORTED,
+ ECORE_X_ATOM_WINDOW, &win, 1);
+ ecore_x_window_prop_xid_set(root, ECORE_X_ATOM_E_COMP_DRI_BUFF_FLIP_SUPPORTED,
+ ECORE_X_ATOM_WINDOW, &win, 1);
+ }
+ else
+ {
+ int ret =
+ ecore_x_window_prop_xid_get(root,
+ ECORE_X_ATOM_E_COMP_DRI_BUFF_FLIP_SUPPORTED,
+ ECORE_X_ATOM_WINDOW,
+ &win, 1);
+ if ((ret == 1) && (win))
+ {
+ ecore_x_window_prop_property_del(root, ECORE_X_ATOM_E_COMP_DRI_BUFF_FLIP_SUPPORTED);
+ ecore_x_window_free(win);
+ }
+ }
+}
+
+EAPI Eina_Bool
+ecore_x_e_comp_dri_buff_flip_supported_get(Ecore_X_Window root)
+{
+ Ecore_X_Window win, win2;
+ int ret;
+
+ LOGFN(__FILE__, __LINE__, __FUNCTION__);
+ if (!root) root = DefaultRootWindow(_ecore_x_disp);
+ ret =
+ ecore_x_window_prop_xid_get(root,
+ ECORE_X_ATOM_E_COMP_DRI_BUFF_FLIP_SUPPORTED,
+ ECORE_X_ATOM_WINDOW,
+ &win, 1);
+ if ((ret == 1) && (win))
+ {
+ ret =
+ ecore_x_window_prop_xid_get(win,
+ ECORE_X_ATOM_E_COMP_DRI_BUFF_FLIP_SUPPORTED,
+ ECORE_X_ATOM_WINDOW,
+ &win2, 1);
+ if ((ret == 1) && (win2 == win)) return EINA_TRUE;
+ }
+ return EINA_FALSE;
+}