[efl upgrade]
authorjaehwan <jae.hwan.kim@samsung.com>
Fri, 10 Sep 2010 14:44:29 +0000 (23:44 +0900)
committerjaehwan <jae.hwan.kim@samsung.com>
Fri, 10 Sep 2010 14:44:29 +0000 (23:44 +0900)
Merge with EFL svn repo

Merge branch 'svn_merge'

Conflicts:
configure.ac
src/lib/edje_data.c
src/lib/edje_entry.c
src/lib/edje_private.h

1  2 
configure.ac
debian/changelog
debian/control
debian/libedje.install
debian/libedje.shlibs
src/bin/edje_cc_handlers.c
src/lib/Edje.h
src/lib/edje_data.c
src/lib/edje_entry.c
src/lib/edje_private.h
src/lib/edje_util.c

diff --cc configure.ac
@@@ -1,20 -1,17 +1,18 @@@
  ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
  ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
- m4_define([v_maj], [0])
- m4_define([v_min], [9])
- m4_define([v_mic], [9])
- #m4_define([v_rev], [060])
+ m4_define([v_maj], [1])
+ m4_define([v_min], [0])
+ m4_define([v_mic], [0])
 -m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v export || echo 0) | awk -F : '{printf("%s\n", $1);}' | tr -d ' :MSP\n']))
 +m4_define([v_rev], m4_esyscmd([(cat ./debian/SVN_REV | grep 'Last Changed Rev' || echo 0) | awk '{printf("%s\n", $4);}' | tr -d ' :MSP\n']))
- #m4_define([v_rev], m4_esyscmd([(svnversion . | grep -v exported || echo 0) | awk -F : '{printf("%s\n", $1);}' | tr -d ' :MSP\n']))
++#m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v export || echo 0) | awk -F : '{printf("%s\n", $1);}' | tr -d ' :MSP\n']))
  m4_if(v_rev, [0], [m4_define([v_rev], m4_esyscmd([git log 2> /dev/null | (grep -m1 git-svn-id || echo 0) | sed -e 's/.*@\([0-9]*\).*/\1/' | tr -d '\n']))])
  ##--   When released, remove the dnl on the below line
dnl m4_undefine([v_rev])
+ m4_undefine([v_rev])
  ##--   When doing snapshots - change soname. remove dnl on below line
m4_define([relname], [ver-pre-svn-06])
- m4_define([v_rel], [-release relname])
dnl m4_define([relname], [ver-pre-svn-07])
dnl m4_define([v_rel], [-release relname])
  ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
- m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])],
- [m4_define([v_ver], [v_maj.v_min.v_mic])])
+ m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], [m4_define([v_ver], [v_maj.v_min.v_mic])])
  m4_define([lt_rev], m4_eval(v_maj + v_min))
  m4_define([lt_cur], v_mic)
  m4_define([lt_age], v_min)
index 63976b0,0000000..5368e2f
mode 100644,000000..100644
--- /dev/null
@@@ -1,337 -1,0 +1,351 @@@
++edje (1.0.0.001+svn.51480slp2+build02) unstable; urgency=low
++
++  * add lua dependency
++
++ -- Jaehwan Kim <jae.hwan.kim@samsung.com>  Fri, 10 Sep 2010 21:36:55 +0900
++
++edje (1.0.0.001+svn.51480slp2+build01) unstable; urgency=low
++
++  * efl 1.0 alpha upgrade
++  * Git: 165.213.180.234:/git/slp/pkgs/edje
++  * Tag: edje_1.0.0.001+svn.51480slp2+build01
++
++ -- Jaehwan Kim <jae.hwan.kim@samsung.com>  Tue, 31 Aug 2010 22:48:41 +0900
++
 +edje (0.9.92.060+svn.49543slp2+3build15) unstable; urgency=low
 +
 +  * Show preedit area.
 +  * Git: 165.213.180.234:/git/slp/pkgs/edje
 +  * Tag: edje_0.9.92.060+svn.49543slp2+3build15
 +
 + -- Jihoon Kim <jihoon48.kim@samsung.com>  Mon, 30 Aug 2010 10:36:54 +0900
 +
 +edje (0.9.92.060+svn.49543slp2+3build14) unstable; urgency=low
 +
 +  * Bug fix : ecore_timer_del problem.
 +  * Git: 165.213.180.234:/git/slp/pkgs/edje
 +  * Tag: edje_0.9.92.060+svn.49543slp2+3build14
 +
 + -- Jihoon Kim <jihoon48.kim@samsung.com>  Wed, 25 Aug 2010 09:30:26 +0900
 +
 +edje (0.9.92.060+svn.49543slp2+3build13) unstable; urgency=low
 +
 +  * Remove selection area when character is inserted.
 +  * Git: 165.213.180.234:/git/slp/pkgs/edje
 +  * Tag: edje_0.9.92.060+svn.49543slp2+3build13
 +
 + -- Jihoon Kim <jihoon48.kim@samsung.com>  Wed, 11 Aug 2010 20:11:06 +0900
 +
 +edje (0.9.92.060+svn.49543slp2+3build12) unstable; urgency=low
 +
 +  * Entry crash issue is solved.
 +  * Git: 165.213.180.234:/git/slp/pkgs/edje
 +  * Tag: edje_0.9.92.060+svn.49543slp2+3build12
 +
 + -- Juyung Seo <juyung.seo@samsung.com>  Wed, 21 Jul 2010 14:25:59 +0900
 +
 +edje (0.9.92.060+svn.49543slp2+3build11) unstable; urgency=low
 +
 +  * Add edje_object_part_text_input_panel_enabled_get 
 +  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/edje
 +  * Tag: edje_0.9.92.060+svn.49543slp2+3build11
 +
 + -- Jihoon Kim <jihoon48.kim@samsung.com>  Fri, 09 Jul 2010 19:57:42 +0900
 +
 +edje (0.9.92.060+svn.49543slp2+3build10) unstable; urgency=low
 +
 +  * Bug fix related to timer issue 
 +  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/edje
 +  * Tag: edje_0.9.92.060+svn.49543slp2+3build10
 +
 + -- Jihoon Kim <jihoon48.kim@samsung.com>  Fri, 09 Jul 2010 16:00:30 +0900
 +
 +edje (0.9.92.060+svn.49543slp2+3build09) unstable; urgency=low
 +
 +  * Add APIs related to input panel
 +  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/edje
 +  * Tag: edje_0.9.92.060+svn.49543slp2+3build09
 +
 + -- Jihoon Kim <jihoon48.kim@samsung.com>  Thu, 08 Jul 2010 17:36:04 +0900
 +
 +edje (0.9.92.060+svn.49543slp2+3build08) unstable; urgency=low
 +
 +  * Packaging.
 +  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/edje
 +  * Tag: edje_0.9.92.060+svn.49543slp2+3build08
 +
 + -- ChunEon Park <chuneon.park@samsung.com>  Wed, 07 Jul 2010 16:47:28 +0900
 +
 +edje (0.9.92.060+svn.49543slp2+3build07) unstable; urgency=low
 +
 +  * add lua dependency
 +  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/edje
 +  * Tag: edje_0.9.92.060+svn.49543slp2+3build07
 +
 + -- Jaehwan Kim <jae.hwan.kim@samsung.com>  Fri, 18 Jun 2010 09:24:30 +0900
 +
 +edje (0.9.92.060+svn.49543slp2+3build06) unstable; urgency=low
 +
 +  * Changed Lua package as a dependent package.
 +  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/edje
 +  * Tag: edje_0.9.92.060+svn.49543slp2+3build06
 +
 + -- Daniel Juyung Seo <juyung.seo@samsung.com>  Thu, 17 Jun 2010 18:06:18 +0900
 +
 +edje (0.9.92.060+svn.49543slp2+3build05) unstable; urgency=low
 +
 +  * Package version changes.
 +  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/edje
 +  * Tag: edje_0.9.92.060+svn.49543slp2+3build05
 +
 + -- Daniel Juyung Seo <juyung.seo@samsung.com>  Fri, 11 Jun 2010 18:54:09 +0900
 +
 +edje (0.9.92.060+svn.49543slp2+3build04) unstable; urgency=low
 +
 +  * Packaging.
 +  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/edje
 +  * Tag: edje_0.9.92.060+svn.49543slp2+3build04
 +
 + -- Daniel Juyung Seo <juyung.seo@samsung.com>  Thu, 10 Jun 2010 21:09:28 +0900
 +
 +edje (0.9.92.060+svn.49543slp2+3build03) unstable; urgency=low
 +
 +  * Packaging.
 +  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/edje
 +  * Tag: edje_0.9.92.060+svn.49543slp2+3build03
 +
 + -- Daniel Juyung Seo <juyung.seo@samsung.com>  Thu, 10 Jun 2010 21:04:12 +0900
 +
 +edje (0.9.92.060+svn.49543slp2+3build02) unstable; urgency=low
 +
 +  * Packaging.
 +  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/edje
 +  * Tag: edje_0.9.92.060+svn.49543slp2+3build02
 +
 + -- Daniel Juyung Seo <juyung.seo@samsung.com>  목, 10  6월 2010 21:00:51 +0900
 +
 +edje (0.9.92.060+svn.49543slp2+3) unstable; urgency=low
 +
 +  * Packaging.
 +  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/edje
 +  * Tag: edje_0.9.92.060+svn.49543slp2+3
 +
 + -- Daniel Juyung Seo <juyung.seo@samsung.com>  Thu, 10 Jun 2010 20:46:54 +0900
 +
 +edje (0.9.92.060+svn.49543slp2+2) unstable; urgency=low
 +
 +  * Packaging.
 +  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/edje
 +  * Tag: edje_0.9.92.060+svn.49543slp2+2
 +
 + -- Daniel Juyung Seo <juyung.seo@samsung.net>  Thu, 10 Jun 2010 20:46:08 +0900
 +
 +edje (0.9.92.060+svn.49543slp2+1) unstable; urgency=low
 +
 +  * Packaging.
 +  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/edje
 +  * Tag: edje_0.9.92.060+svn.49543slp2+1
 +
 + -- Daniel Juyung Seo <juyung.seo@smasung.net>  Thu, 10 Jun 2010 20:45:22 +0900
 +
 +edje (0.9.92.060+svn.49543slp2+0) unstable; urgency=low
 +
 +  * Update opensource EFL from SVN
 +  * SVN revision: 49543 (Total EFL revision: 49550)
 +  * Tag: 0.9.92.060+svn.49543slp2+0
 +
 + -- Daniel Juyung Seo <juyung.seo@smasung.net>  Thu, 10 Jun 2010 15:50:38 +0900
 +
 +edje (0.9.92.060+svn20100304slp2+7) unstable; urgency=low
 +
 +  * Repackage due to tag
 +  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL
 +  * Tag: edje_0.9.92.060+svn20100304slp2+7
 +
 + -- Myungjae Lee <mjae.lee@samsung.com>  Thu, 16 Apr 2010 11:33:00 +0900
 +
 +edje (0.9.92.060+svn20100304slp2+6) unstable; urgency=low
 +
 +  * Repackage due to tag
 +  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL
 +  * Tag: edje_0.9.92.060+svn20100304slp2+6
 +
 + -- Myungjae Lee <mjae.lee@samsung.com>  Thu, 15 Apr 2010 20:15:00 +0900
 +
 +edje (0.9.92.060+svn20100304slp2+5) unstable; urgency=low
 +
 +  * Bug fix - entry cursor problem
 +  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL
 +  * Tag: edje_0.9.92.060+svn20100304slp2+5
 +
 + -- Myungjae Lee <mjae.lee@samsung.com>  Thu, 15 Apr 2010 19:55:00 +0900
 +
 +edje (0.9.92.060+svn20100304slp2+4) unstable; urgency=low
 +
 +  * Support autocapitalization
 +  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL
 +  * Tag: edje_0.9.92.060+svn20100304slp2+4
 +
 + -- Jihoon Kim <jihoon48.kim@samsung.com>  Wed, 14 Apr 2010 17:44:46 +0900
 +
 +edje (0.9.92.060+svn20100304slp2+3) unstable; urgency=low
 +
 +  * rollback - edje_entry - remove <br> related bug fix
 +
 + -- Myungjae Lee <mjae.lee@samsung.com>  Sat, 27 Mar 2010 18:32:00 +0900
 +
 +edje (0.9.92.060+svn20100304slp2+2) unstable; urgency=low
 +
 +  * rollback - edje_entry - remove cursor movement bug fix
 +
 + -- Myungjae Lee <mjae.lee@samsung.com>  Fri, 26 Mar 2010 22:52:00 +0900
 +
 +edje (0.9.92.060+svn20100304slp2+1) unstable; urgency=low
 +
 +  * bug fixed - edje_entry - cursor movement
 +
 + -- Myungjae Lee <mjae.lee@samsung.com>  Fri, 26 Mar 2010 08:26:00 +0900
 +
 +edje (0.9.92.060+svn20100304slp2) unstable; urgency=low
 +
 +  * change package version
 +
 + -- Jaehwan Kim <jae.hwan.kim@samsung.com>  Thu, 25 Mar 2010 15:50:05 +0900
 +
 +edje (0.9.92.060+svn20100304-1) unstable; urgency=low
 +
 +  * EFL_update_revision_46864
 +
 + -- Jaehwan Kim <jae.hwan.kim@samsung.com>  Wed, 10 Mar 2010 16:06:37 +0900
 +
 +edje (0.9.92.060+svn20100203-6) unstable; urgency=low
 +
 +  * bug fixed - edje_entry - CANVAS focus in/out 
 +
 + -- wonguk Jeong <wonguk.jeong@samsung.com>  Fri, 19 Feb 2010 17:19:37 +0900
 +
 +edje (0.9.92.060+svn20100203-5) unstable; urgency=low
 +
 +  * repack
 +
 + -- sangho park <sangho.g.park@samsung.com>  Mon, 08 Feb 2010 22:27:44 +0900
 +
 +edje (0.9.92.060+svn20100203-4) unstable; urgency=low
 +
 +  * add broken dependency in libedje-bin
 +
 + -- Wonguk Jeong <wonguk.jeong@samsung.com>  Mon, 08 Feb 2010 20:12:29 +0900
 +
 +edje (0.9.92.060+svn20100203-3) unstable; urgency=low
 +
 +  * edje_entry patch for supporting to switch window
 +
 + -- Jihoon Kim <jihoon48.kim@samsung.com>  Mon, 08 Feb 2010 13:37:37 +0900
 +
 +edje (0.9.92.060+svn20100203-2) unstable; urgency=low
 +
 +  * repack
 +
 + -- Jaehwan Kim <jae.hwan.kim@samsung.com>  Thu, 04 Feb 2010 20:29:57 +0900
 +
 +edje (0.9.92.060+svn20100203-1) unstable; urgency=low
 +
 +  * EFL_update_revision_45828
 +
 + -- Jaehwan Kim <jae.hwan.kim@samsung.com>  Wed, 03 Feb 2010 16:39:22 +0900
 +
 +edje (0.9.92.060+svn20100119-1) unstable; urgency=low
 +
 +  * EFL_update_revision_45322
 +
 + -- Jihoon Kim <jihoon48.kim@samsung.com>  Tue, 19 Jan 2010 20:44:49 +0900
 +
 +edje (0.9.92.060+svn20100111-5) unstable; urgency=low
 +
 +  * change control
 +
 + -- Jaehwan Kim <jae.hwan.kim@samsung.com>  Tue, 12 Jan 2010 19:10:39 +0900
 +
 +edje (0.9.92.060+svn20100111-4) unstable; urgency=low
 +
 +  * reupload EFL i686
 +
 + -- Jaehwan Kim <jae.hwan.kim@samsung.com>  Tue, 12 Jan 2010 17:35:40 +0900
 +
 +edje (0.9.92.060+svn20100111-3) unstable; urgency=low
 +
 +  * remove mpfr gmp
 +
 + -- Jaehwan Kim <jae.hwan.kim@samsung.com>  Tue, 12 Jan 2010 00:22:19 +0900
 +
 +edje (0.9.92.060+svn20100111-2) unstable; urgency=low
 +
 +  * reupload EFL
 +
 + -- Jaehwan Kim <jae.hwan.kim@samsung.com>  Mon, 11 Jan 2010 22:17:03 +0900
 +
 +edje (0.9.92.060+svn20100111-1) unstable; urgency=low
 +
 +  * update EFL revision 45026
 +
 + -- Jongwoo Chae <jongwoo.chae@samsung.com>  Mon, 11 Jan 2010 13:28:06 +0900
 +
 +edje (0.9.92.060+svn20091229-4) unstable; urgency=low
 +
 +  * To build i386... No source code changed.
 +
 + -- Jongwoo Chae <jongwoo.chae@samsung.com>  Thu, 07 Jan 2010 22:03:40 +0900
 +
 +edje (0.9.92.060+svn20091229-3) unstable; urgency=low
 +
 +  * add build dep (lua)
 +
 + -- Jaehwan Kim <jae.hwan.kim@samsung.com>  Wed, 30 Dec 2009 19:43:16 +0900
 +
 +edje (0.9.92.060+svn20091229-2) unstable; urgency=low
 +
 +  * add depends (lua)
 +
 + -- Jaehwan Kim <jae.hwan.kim@samsung.com>  Wed, 30 Dec 2009 15:48:41 +0900
 +
 +edje (0.9.92.060+svn20091229-1) unstable; urgency=low
 +
 +  * update EFL
 +
 + -- Jaehwan Kim <jae.hwan.kim@samsung.com>  Tue, 29 Dec 2009 14:27:05 +0900
 +
 +edje (0.9.92.060+svn20091112-4) unstable; urgency=low
 +
 +  * modify architecture value from all to any 
 +
 + -- Youmin Ha <youmin.ha@samsung.com>  Fri, 27 Nov 2009 15:37:25 +0900
 +
 +edje (0.9.92.060+svn20091112-3) unstable; urgency=low
 +
 +  * add dependency to lua for edje-bin
 +
 + -- Youmin Ha <youmin.ha@samsung.com>  Tue, 24 Nov 2009 15:20:12 +0900
 +
 +edje (0.9.92.060+svn20091112-2) unstable; urgency=low
 +
 +  * svn stable version
 +
 + -- Sangho Park <sangho.g.park@samsung.com>  Thu, 19 Nov 2009 19:05:31 +0900
 +
 +edje (0.9.92.060+svn20091112-1) unstable; urgency=low
 +
 +  * Updated version
 +
 + -- Sangho Park <sangho.g.park@samsung.com>  Fri, 13 Nov 2009 09:01:11 +0900
 +
 +edje (0.9.92.060+svnYYYYMMDD-1) unstable; urgency=low
 +
 +  * Updated version
 +
 + -- quaker <quaker66@gmail.com>  Thu, 22 Apr 2009 18:18:23 +0100
 +
 +edje (0.9.9.050+svnYYYYMMDD-1) unstable; urgency=low
 +
 +  * Clean up changelog
 +
 + -- quaker <quaker66@gmail.com>  Tue, 21 Apr 2009 19:15:44 +0100
diff --cc debian/control
index 7b26c10,0000000..af0f24f
mode 100644,000000..100644
--- /dev/null
@@@ -1,73 -1,0 +1,73 @@@
-  doxygen, pkg-config, libtool
 +Source: edje
 +Section: libs
 +Priority: optional
 +Maintainer: Jaehwan Kim <jae.hwan.kim@samsung.com>, Jihoon Kim <jihoon48.kim@samsung.com>, Myungjae Lee <mjae.lee@samsung.com>, Juyung Seo <juyung.seo@samsung.com>
 +Original-Maintainer: Debian Pkg-e Team <pkg-e-devel@lists.alioth.debian.org>
 +Uploaders: Albin Tonnerre <albin.tonnerre@gmail.com>,
 + Xavier Oswald <x.oswald@free.fr>, Jan Lübbe <jluebbe@debian.org>
 +Build-Depends: debhelper (>= 6), cdbs, libeet-dev, libevas-dev ,
 + libecore-dev (>= 0.9.9.060+svn20100304), libembryo-dev, libeina-dev (>= 0.0.2.060+svn20100304), liblua5.1-0-dev,
- Depends: ${misc:Depends}, ${shlibs:Depends}, libembryo-bin (>= 0.9.9.060+svn20100304), libevas-engines, libmpfr-0 [i386], libgmp-0 [i386], libecore-file-svn-01, libecore-con-svn-01, libevas-svn-01, libecore-imf-svn-01, libecore-evas-svn-01, libecore-svn-01, libfontconfig1, libeina-svn-04, libxcb1
++ doxygen, pkg-config, libtool, lua
 +Standards-Version: 3.8.1
 +Homepage: http://enlightenment.org
 +
 +Package: libedje-bin
 +Architecture: any
 +Section: devel
- Package: libedje-svn-01
++Depends: ${misc:Depends}, ${shlibs:Depends}, libembryo-bin (>= 0.9.9.060+svn20100304), libevas-engines, libmpfr-0 [i386], libgmp-0 [i386], libecore-file, libecore-con, libevas, libecore-imf, libecore-evas, libecore, libfontconfig1, libeina, libxcb1
 +Description: Various binaries for use with libedje
 + Edje is a graphical layout and animation library for animated resizable,
 + compressed and scalable themes. It is the theming engine behind
 + Enlightenment DR 0.17.
 + .
 + This package contains the following binaries:
 +  - edje_cc: Compiles EDC files.
 +  - edje_decc: Used to decompile compiled edje files.
 +  - edje_recc: A convenience script to recompile EDC files.
 +
- Depends: ${misc:Depends}, libedje-svn-01 (= ${binary:Version}), libeet-dev, libembryo-dev, libevas-dev (>= 0.9.9.060+svn20100304), libecore-dev (>= 0.9.9.060+svn20100304), libeina-dev (>= 0.0.2.060+svn20100304), pkg-config, libedje-bin, liblua5.1-0-dev
++Package: libedje
 +Architecture: any
 +Depends: ${misc:Depends}, ${shlibs:Depends}, liblua5.1-0, libmpfr-0 [i386], libgmp-0 [i386]
 +Suggests: libedje-bin (= ${binary:Version})
 +Description: Graphical layout and animation library
 + Edje is a graphical layout and animation library for animated resizable,
 + compressed and scalable themes. It is the theming engine behind
 + Enlightenment DR 0.17.
 +
 +Package: libedje-doc
 +Architecture: any 
 +Section: doc
 +Depends: ${misc:Depends}
 +Enhances: libedje-dev
 +Description: libedje0 development documentation
 + Edje is a graphical layout and animation library for animated resizable,
 + compressed and scalable themes. It is the theming engine behind
 + Enlightenment DR 0.17.
 + .
 + This package provides development documentation for Edje.
 +
 +Package: libedje-dev
 +Architecture: any
 +Section: libdevel
- Depends: ${misc:Depends}, libedje-svn-01 (= ${binary:Version})
++Depends: ${misc:Depends}, libedje (= ${binary:Version}), libeet-dev, libembryo-dev, libevas-dev (>= 0.9.9.060+svn20100304), libecore-dev (>= 0.9.9.060+svn20100304), libeina-dev (>= 0.0.2.060+svn20100304), pkg-config, libedje-bin, liblua5.1-0-dev, lua
 +Description: libedje headers and static libraries
 + Edje is a graphical layout and animation library for animated resizable,
 + compressed and scalable themes. It is the theming engine behind
 + Enlightenment DR 0.17.
 + .
 + This package provides headers and static libraries for Edje.
 +
 +Package: libedje-dbg
 +Architecture: any
 +Section: debug
 +Priority: extra
++Depends: ${misc:Depends}, libedje (= ${binary:Version})
 +Description: Debugging symbols for libedje
 + Edje is a graphical layout and animation library for animated resizable,
 + compressed and scalable themes. It is the theming engine behind
 + Enlightenment DR 0.17.
 + .
 + 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.
index 0000000,0000000..87cc3b7
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++debian/tmp/usr/lib/libedje.so.*
index 0000000,0000000..649f23e
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++libedje 1 libedje (>= 0.9.9.060+svn20100304)
diff --cc src/lib/Edje.h
Simple merge
@@@ -426,19 -723,16 +723,17 @@@ _edje_edd_init(void
     _edje_edd_edje_part =
       eet_data_descriptor_file_new(&eddc);
     EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "name", name, EET_T_STRING);
+    EET_DATA_DESCRIPTOR_ADD_VARIANT(_edje_edd_edje_part, Edje_Part, "default_desc", default_desc, type, _edje_edd_edje_part_description_variant);
+    EET_DATA_DESCRIPTOR_ADD_VARIANT(_edje_edd_edje_part, Edje_Part, "other", other, type, _edje_edd_edje_part_description_variant_list);
+    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "source", source, EET_T_STRING);
+    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "source2", source2, EET_T_STRING);
+    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "source3", source3, EET_T_STRING);
+    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "source4", source4, EET_T_STRING);
+    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "source5", source5, EET_T_STRING);
+    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "source6", source6, EET_T_STRING);
++   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "source7", source7, EET_T_STRING);
     EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "id", id, EET_T_INT);
-    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "type", type, EET_T_UCHAR);
-    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "effect", effect, EET_T_UCHAR);
-    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "mouse_events", mouse_events, EET_T_UCHAR);
-    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "repeat_events", repeat_events, EET_T_UCHAR);
-    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "ignore_flags", ignore_flags, EET_T_INT);
-    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "scale", scale, EET_T_UCHAR);
-    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "pointer_mode", pointer_mode, EET_T_UCHAR);
-    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "precise_is_inside", precise_is_inside, EET_T_UCHAR);
     EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "clip_to_id", clip_to_id, EET_T_INT);
-    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "use_alternate_font_metrics", use_alternate_font_metrics, EET_T_UCHAR);
-    EET_DATA_DESCRIPTOR_ADD_SUB(_edje_edd_edje_part, Edje_Part, "default_desc", default_desc, _edje_edd_edje_part_description);
-    EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part, Edje_Part, "other_desc", other_desc, _edje_edd_edje_part_description);
     EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "dragable.x", dragable.x, EET_T_CHAR);
     EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "dragable.step_x", dragable.step_x, EET_T_INT);
     EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "dragable.count_x", dragable.count_x, EET_T_INT);
@@@ -1,7 -1,3 +1,6 @@@
 +/*
 + * vim:ts=8:sw=3:sts=3:expandtab:cino=>5n-3f0^-2{2(0W1st0
 + */
  #ifdef HAVE_CONFIG_H
  # include <config.h>
  #endif
@@@ -28,20 -23,13 +27,20 @@@ void *alloca (size_t)
  
  #include "edje_private.h"
  
 +//#define USE_PREEDIT_BLOCK 1
 +
  #ifdef HAVE_ECORE_IMF
 +#include <Ecore_IMF_Evas.h>
 +
  static int _edje_entry_imf_retrieve_surrounding_cb(void *data, Ecore_IMF_Context *ctx, char **text, int *cursor_pos);
- static int _edje_entry_imf_event_commit_cb(void *data, int type, void *event);
- static int _edje_entry_imf_event_changed_cb(void *data, int type, void *event);
- static int _edje_entry_imf_event_delete_surrounding_cb(void *data, int type, void *event);
+ static Eina_Bool _edje_entry_imf_event_commit_cb(void *data, int type, void *event);
+ static Eina_Bool _edje_entry_imf_event_changed_cb(void *data, int type, void *event);
+ static Eina_Bool _edje_entry_imf_event_delete_surrounding_cb(void *data, int type, void *event);
  #endif
  
 +static Eina_Bool keypad_show = EINA_FALSE;
 +static Ecore_Timer *hide_timer = NULL;
 +
  typedef struct _Entry Entry;
  typedef struct _Sel Sel;
  typedef struct _Anchor Anchor;
@@@ -61,9 -42,6 +60,7 @@@ struct _Entr
     Evas_Object *cursor_fg;
     Evas_Textblock_Cursor *cursor;
     Evas_Textblock_Cursor *sel_start, *sel_end;
-    Evas_Textblock_Cursor *pw_cursor;
-    Ecore_Timer *pw_timer;
 +   Eina_List *pre;
     Eina_List *sel;
     Eina_List *anchors;
     Eina_List *anchorlist;
@@@ -1228,255 -926,17 +1116,103 @@@ _range_del(Evas_Textblock_Cursor *c __U
     evas_textblock_cursor_range_delete(en->sel_start, en->sel_end);
  }
  
- static void
- _remove_prev_special_node(Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en)
- {     
-    /*remove special node and find a way to update cursor correctly*/
-    Evas_Textblock_Cursor *c1;
-    c1 = evas_object_textblock_cursor_new(o);
-    evas_textblock_cursor_copy(c, c1);
-    if (!evas_textblock_cursor_char_prev(c))
-      {                
-         if (evas_textblock_cursor_node_prev(c))                                               
-           {
-              if (evas_textblock_cursor_node_format_get(c) &&
-                  (!evas_textblock_cursor_node_format_is_visible_get(c)))
-                {
-                   evas_textblock_cursor_node_delete(c);
-                }                                                      
-              if (evas_textblock_cursor_char_prev(c)|| (evas_textblock_cursor_node_prev(c)))
-                {
-                   if (evas_textblock_cursor_node_prev(c))
-                     {
-                        if (evas_textblock_cursor_node_format_get(c) &&
-                            (!evas_textblock_cursor_node_format_is_visible_get(c)))
-                          {
-                             evas_textblock_cursor_node_delete(c);
-                          }    
-                     }
-                }                                                                      
-           }
-      }        
-    if ((!evas_textblock_cursor_char_next(c)) &&
-        (!evas_textblock_cursor_node_next(c)))
-      {
-         _curs_end(c, o, en);          
-      }
-    else if (evas_textblock_cursor_compare(c, c1))
-      {
-         _curs_next(c, o, en);
-      }
-    _edje_entry_real_part_configure(en->rp);   
-    evas_textblock_cursor_free(c1);
- }
 +
  static void
- _backspace(Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en)
+ _backspace(Evas_Textblock_Cursor *c, Evas_Object *o __UNUSED__, Entry *en __UNUSED__)
  {
-    Evas_Textblock_Cursor *c1, *c2;
-    int nodel = 0;
-    
-    c1 = evas_object_textblock_cursor_new(o);
-    if (!evas_textblock_cursor_char_prev(c))
-      {
-       if (!evas_textblock_cursor_node_prev(c))
-         nodel = 1;
-       else
-         {
-            evas_textblock_cursor_copy(c, c1);
-            if (evas_textblock_cursor_node_format_get(c) &&
-                (!evas_textblock_cursor_node_format_is_visible_get(c)))
-              _curs_back(c, o, en);
-         }
-      }
-    else
-      {
-         evas_textblock_cursor_copy(c, c1);
-      }
-    c2 = evas_object_textblock_cursor_new(o);
-    evas_textblock_cursor_copy(c, c2);
-    if (!nodel)
-      {
-         evas_textblock_cursor_range_delete(c1, c2);
-      }
-    evas_textblock_cursor_copy(c, c1);
-    _curs_back(c, o, en);
-    evas_textblock_cursor_copy(c, c2);
-    if ((!evas_textblock_cursor_char_next(c2)) &&
-        (!evas_textblock_cursor_node_next(c2)))
-      {
-         _curs_end(c, o, en);
-      }
-    else if (evas_textblock_cursor_compare(c, c1))
-      {
-         _curs_next(c, o, en);
-      }
-    
-    evas_textblock_cursor_free(c1);
-    evas_textblock_cursor_free(c2);
+    if (evas_textblock_cursor_char_prev(c))
+      evas_textblock_cursor_char_delete(c);
  }
  
-                   if (evas_textblock_cursor_node_prev(c1)) 
 +void _get_autocapitalized_str(Evas_Textblock_Cursor *cur1, Evas_Textblock_Cursor *cur2, char *str)
 +{
 +   char *prev_str = evas_textblock_cursor_range_text_get(cur1, cur2, EVAS_TEXTBLOCK_TEXT_MARKUP);
 +
 +   if (!prev_str) return;
 +   unsigned short len = strlen(prev_str);
 +
 +   if (len == 2) 
 +     {
 +        if ( (prev_str[0] == '.' || prev_str[0] == '!' || prev_str[0] == '?') 
 +             && prev_str[1] == ' ') 
 +          {
 +             str[0] = toupper(str[0]);
 +          }
 +     }
 +   else if (len == 8) 
 +     {
 +        if (strcmp(prev_str, "<br><br>") == 0) 
 +          {
 +             str[0] = toupper(str[0]);
 +          }
 +     }
 +}
 +
 +static void
 +_autocapitalized_text_prepend(Edje_Real_Part *rp, const char *str)
 +{
 +   if (!rp) return;
 +
 +   Entry *en = rp->entry_data;
 +   Evas_Textblock_Cursor *c1;
 +   char *commit_string = strdup(str);
 +
 +   if (en->autocapital) 
 +     {
 +        if (strlen(str) == 1 && str[0] >= 'a' && str[0] <= 'z') 
 +          {
 +             c1 = evas_object_textblock_cursor_new(rp->object);
 +             evas_textblock_cursor_copy(en->cursor, c1);
 +
 +             if (evas_textblock_cursor_char_prev(c1)) 
 +               {
 +                  if (evas_textblock_cursor_char_prev(c1)) 
 +                    {
 +                       _get_autocapitalized_str(c1, en->cursor, commit_string);
 +                    }
 +               }
 +             else 
 +               {
- _replace_pw(void *data)
- {     
-    Entry *en = (Entry *)data; 
-    _remove_prev_special_node(en->pw_cursor, en->rp->object, en);
-    if (en->pw_cursor)
-      {
-         evas_textblock_cursor_free(en->pw_cursor);
-         en->pw_cursor = NULL;         
-      }
-    /*count characters*/
-    if (en->func)
-       en->func(en->data, NULL);
-    en->pw_timer = NULL;
-    return 0;
- }
- static int 
++                  if (evas_textblock_cursor_paragraph_prev(c1)) 
 +                    {
 +                       evas_textblock_cursor_char_prev(c1);
 +                       _get_autocapitalized_str(c1, en->cursor, commit_string);
 +                    }
 +                  else 
 +                    {
 +                       commit_string[0] = toupper(commit_string[0]);
 +                    }                         
 +               }
 +
 +             evas_textblock_cursor_free(c1);
 +          }
 +     }
 +
 +   evas_textblock_cursor_text_prepend(en->cursor, commit_string);
 +
 +   if (commit_string) 
 +     {
 +        free(commit_string);
 +     }
 +}
 +
 +static int 
 +_select_mode_cb(void *data)
 +{     
 +   Entry *en = (Entry *)data;
 +
 +   if( en->select_dragging_state == _ENTRY_DRAGGING_STATE_STARTED )
 +     return 0;
 +
 +   en->select_dragging_state = _ENTRY_DRAGGING_STATE_NONE;
 +
 +   return 0;
 +}
 +
  static void
- _delete(Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en)
+ _delete(Evas_Textblock_Cursor *c, Evas_Object *o __UNUSED__, Entry *en __UNUSED__)
  {
-    Evas_Textblock_Cursor *c1, *c2;
-    
-    c1 = evas_object_textblock_cursor_new(o);
-    c2 = evas_object_textblock_cursor_new(o);
-    evas_textblock_cursor_copy(c, c1);
-    evas_textblock_cursor_copy(c, c2);
-    evas_textblock_cursor_char_last(c2);
-    if (evas_textblock_cursor_node_format_get(c1) &&
-        (!evas_textblock_cursor_node_format_is_visible_get(c1)))
-      {
-         // non-visible format-node
-         evas_textblock_cursor_copy(c1, c2);
-         while (evas_textblock_cursor_node_next(c2))
-           {
-              if ((!evas_textblock_cursor_node_format_get(c2)) ||
-                  (evas_textblock_cursor_node_format_is_visible_get(c2)))
-                {
-                   evas_textblock_cursor_node_prev(c2);
-                   break;
-                }
-           }
-      }
-    else
-      {
-         if (evas_textblock_cursor_node_format_is_visible_get(c1))
-           {
-              // visible format node
-              // do nothing just copy c to c1/c2 and range del
-           }
-         else
-           {
-              // if it's a text node
-              if (!evas_textblock_cursor_char_next(c1))
-                {
-                   if (evas_textblock_cursor_compare(c1, c2) > 0)
-                     _curs_next(c, o, en);
-                }
-           }
-         evas_textblock_cursor_copy(c, c1);
-         evas_textblock_cursor_copy(c, c2);
-      }
-    evas_textblock_cursor_range_delete(c1, c2);
-    evas_textblock_cursor_free(c1);
-    evas_textblock_cursor_free(c2);
+    evas_textblock_cursor_char_delete(c);
  }
  
  static void
@@@ -1605,12 -1066,7 +1340,12 @@@ _edje_key_down_cb(void *data, Evas *e _
             if (en->have_selection)
               _range_del(en->cursor, rp->object, en);
             else
 -             _backspace(en->cursor, rp->object, en);
 +             {
-                 _backspace(en->cursor, rp->object, en);               
++                _backspace(en->cursor, rp->object, en);
 +                /*if inputtin text is not allowed, dont allow text input*/
 +                if (en->func)
 +                  en->func(en->data, NULL);
 +             }
          }
        _sel_clear(en->cursor, rp->object, en);
        _curs_update_from_curs(en->cursor, rp->object, en);
             if (en->have_selection)
               _range_del(en->cursor, rp->object, en);
             else
-                 _delete(en->cursor, rp->object, en);
 +             {
+                _delete(en->cursor, rp->object, en);
 +                /*count characters*/                  
 +                if (en->func)
 +                  en->func(en->data, NULL);
 +             }
          }
        _sel_clear(en->cursor, rp->object, en);
        _curs_update_from_curs(en->cursor, rp->object, en);
       }
     else if ((!strcmp(ev->key, "Return")) || (!strcmp(ev->key, "KP_Enter")))
       {
 +        /*if inputtin text is not allowed, dont allow text input*/
 +        if (en->func)
 +           if (en->func(en->data, "<br>"))
 +              return;
 +
        if (multiline)
          {
-            if (en->have_selection)
-              _range_del(en->cursor, rp->object, en);
-            _sel_clear(en->cursor, rp->object, en);
-            //yy
-            evas_textblock_cursor_format_prepend(en->cursor, "\n");
+              if (en->have_selection)
+                _range_del(en->cursor, rp->object, en);
+              _sel_clear(en->cursor, rp->object, en);
+              if (shift)
+                {
+                   evas_textblock_cursor_format_prepend(en->cursor, "\n");
+                }
+              else
+                {
+                   evas_textblock_cursor_format_prepend(en->cursor, "ps");
+                }
             _curs_update_from_curs(en->cursor, rp->object, en);
             _anchors_get(en->cursor, rp->object, en);
             _edje_emit(ed, "entry,changed", rp->part->name);
             cursor_changed = EINA_TRUE;
             ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
          }
-       _edje_emit(ed, "entry,key,enter", rp->part->name);
+         _edje_emit(ed, "entry,key,enter", rp->part->name);
 +      /*count characters*/                    
 +      if (en->func)
 +        en->func(en->data, NULL);
       }
     else
       {
        if (ev->string)
          {
-               printf("[%s]\n", __func__);
-            char buf[30];      
-            if (en->have_selection)
-              _range_del(en->cursor, rp->object, en);
-            _sel_clear(en->cursor, rp->object, en);
-            if (rp->part->entry_mode == EDJE_ENTRY_EDIT_MODE_PASSWORD_SHOW_LAST_CHARACTER)
-              {                                                
-                 _remove_prev_special_node(en->pw_cursor, en->rp->object, en);                 
-                 /*if inputtin text is not allowed, dont allow text input*/
-                 if (en->func)
-                   if (en->func(en->data, (void *)ev->string))
-                     return;
-                 if (en->pw_cursor)
-                   {
-                      evas_textblock_cursor_free(en->pw_cursor);
-                      en->pw_cursor = NULL;            
-                   }
-                 if (!en->pw_cursor)
-                   {
-                      en->pw_cursor = evas_object_textblock_cursor_new(rp->object);
-                   }                   
-                 snprintf(buf, sizeof(buf), "<visible=1>%s</visible>", ev->string);
-                 evas_object_textblock_text_markup_prepend(en->cursor, buf);
-                 evas_textblock_cursor_copy(en->cursor, en->pw_cursor);
-                 if (en->pw_timer)
-                   {
-                      ecore_timer_del(en->pw_timer);
-                      en->pw_timer = NULL;
-                   }
-                 en->pw_timer = ecore_timer_add(2.0, _replace_pw, en);
-              }        
-            else
-              {        
+             if (en->have_selection)
+                _range_del(en->cursor, rp->object, en);
 -           _sel_clear(en->cursor, rp->object, en);
 -             //zz
++           _sel_clear(en->cursor, rp->object, en);         
 +                /*if inputtin text is not allowed, dont allow text input*/
-                 if (en->func)
-                   if (en->func(en->data, (void *)ev->string))
-                     return;
++                  if (en->func)
++                    if (en->func(en->data, (void *)ev->string))
++                      return;
 +
 +                _autocapitalized_text_prepend(rp, ev->string);
 +                //evas_textblock_cursor_text_prepend(en->cursor, ev->string);   
 +                /*count characters*/
 +                if(en->func)
-                   en->func(en->data, NULL);
-              }
++                   en->func(en->data, NULL);                                  
 +#if 0
 +           //zz
             evas_textblock_cursor_text_prepend(en->cursor, ev->string);
 +#endif
             _curs_update_from_curs(en->cursor, rp->object, en);
             _anchors_get(en->cursor, rp->object, en);
             _edje_emit(ed, "entry,changed", rp->part->name);
@@@ -2403,9 -1758,9 +2113,9 @@@ _edje_entry_real_part_init(Edje_Real_Pa
          en->imf_ee_handler_delete = ecore_event_handler_add(ECORE_IMF_EVENT_DELETE_SURROUNDING, _edje_entry_imf_event_delete_surrounding_cb, rp);
          en->imf_ee_handler_changed = ecore_event_handler_add(ECORE_IMF_EVENT_PREEDIT_CHANGED, _edje_entry_imf_event_changed_cb, rp->edje);
          ecore_imf_context_input_mode_set(en->imf_context, 
-                                          (rp->part->entry_mode == EDJE_ENTRY_EDIT_MODE_PASSWORD || rp->part->entry_mode == EDJE_ENTRY_EDIT_MODE_PASSWORD_SHOW_LAST_CHARACTER) ? 
+                                          rp->part->entry_mode == EDJE_ENTRY_EDIT_MODE_PASSWORD ? 
                                           ECORE_IMF_INPUT_MODE_INVISIBLE : ECORE_IMF_INPUT_MODE_FULL);
 -#endif
 +#endif /* HAVE_ECORE_IMF */
       }
     done:
     en->cursor = (Evas_Textblock_Cursor *)evas_object_textblock_cursor_get(rp->object);
@@@ -3216,23 -2489,16 +2922,23 @@@ _edje_entry_imf_event_commit_cb(void *d
     Entry *en;
     Ecore_IMF_Event_Commit *ev = event;
     int i;
-    char buf[30];
-    
-    if (!rp) return 1;
-    
++ 
+    if (!rp) return ECORE_CALLBACK_PASS_ON;
     en = rp->entry_data;
     if ((!en) || (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) ||
         (rp->part->entry_mode < EDJE_ENTRY_EDIT_MODE_SELECTABLE))
-      return 1;
+      return ECORE_CALLBACK_PASS_ON;
  
-    if (en->imf_context != ev->ctx) return 1;
+    if (en->imf_context != ev->ctx) return ECORE_CALLBACK_PASS_ON;
  
 +   if (en->have_selection)
 +     {
 +        _range_del(en->cursor, rp->object, en);
 +        _sel_clear(en->cursor, rp->object, en);
 +     }
 +
     if (en->have_composition)
       {
        for (i = 0; i < en->comp_len; i++)
        en->have_composition = EINA_FALSE;
       }
  
-    if (rp->part->entry_mode == EDJE_ENTRY_EDIT_MODE_PASSWORD_SHOW_LAST_CHARACTER)
-      {                                                
-         _remove_prev_special_node(en->pw_cursor, en->rp->object, en); 
-         /*if inputtin text is not allowed, dont allow text input*/
-         if (en->func)
-            if (en->func(en->data, (void *)ev->str))
-               return 1;
-         if (en->pw_cursor)
-           {
-              evas_textblock_cursor_free(en->pw_cursor);
-              en->pw_cursor = NULL;            
-           }
-         if (!en->pw_cursor)
-           {
-              en->pw_cursor = evas_object_textblock_cursor_new(rp->object);
-           }                   
-         snprintf(buf, sizeof(buf), "<visible=1>%s</visible>", ev->str);
-         evas_object_textblock_text_markup_prepend(en->cursor, buf);
-         evas_textblock_cursor_copy(en->cursor, en->pw_cursor);
-         if (en->pw_timer)
-           {
-              ecore_timer_del(en->pw_timer);
-              en->pw_timer = NULL;
-           }
-         en->pw_timer = ecore_timer_add(2.0, _replace_pw, en);
-      }        
-    else
-      {
 +        /*if inputtin text is not allowed, dont allow text input*/
 +        if (en->func)
 +           if (en->func(en->data,ev->str))
 +              return 1;
 +
 +        _autocapitalized_text_prepend(rp, ev->str);
 +      //evas_textblock_cursor_text_prepend(en->cursor, ev->str);        
 +      /*count characters*/
 +      if (en->func)
 +        en->func(en->data,NULL);                              
-      }
 +#if 0
     //yy
     evas_textblock_cursor_text_prepend(en->cursor, ev->str);
 +#endif
  
     _curs_update_from_curs(en->cursor, rp->object, en);
     _anchors_get(en->cursor, rp->object, en);
@@@ -3315,31 -2534,18 +2990,31 @@@ _edje_entry_imf_event_changed_cb(void *
     en = rp->entry_data;
     if ((!en) || (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) ||
         (rp->part->entry_mode < EDJE_ENTRY_EDIT_MODE_SELECTABLE))
-      return 1;
-    
-    if (!en->imf_context) return 1;
-    
-    if (en->imf_context != ev->ctx) return 1;
+      return ECORE_CALLBACK_PASS_ON;
+    if (!en->imf_context) return ECORE_CALLBACK_PASS_ON;
+    if (en->imf_context != ev->ctx) return ECORE_CALLBACK_PASS_ON;
  
     ecore_imf_context_preedit_string_get(en->imf_context, &preedit_string, &length);
 +   //printf ("preedit string : %s\n", preedit_string);
 +   //printf ("length : %d\n", length);
 +
 +   /*if inputtin text is not allowed, dont allow text input*/
 +   if ((en->func) && !en->have_composition)
 +     if (en->func(en->data, preedit_string))
 +       return 1;
  
     // FIXME : check the maximum length of evas_textblock
     if ( 0 /* check the maximum length of evas_textblock */ )
-      return 1;
+      return ECORE_CALLBACK_PASS_ON;
  
 +   if (en->have_selection)
 +     {
 +        _range_del(en->cursor, rp->object, en);
 +        _sel_clear(en->cursor, rp->object, en);
 +     }
 +   
     if (en->have_composition)
       {
        // delete the composing characters
@@@ -3478,10 -2586,10 +3153,10 @@@ _edje_entry_imf_event_delete_surroundin
     en = rp->entry_data;
     if ((!en) || (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) ||
         (rp->part->entry_mode < EDJE_ENTRY_EDIT_MODE_SELECTABLE))
-      return 1;
-    
-    if (en->imf_context != ev->ctx) return 1;
-    
-    return 0;
+      return ECORE_CALLBACK_PASS_ON;
+    if (en->imf_context != ev->ctx) return ECORE_CALLBACK_PASS_ON;
+    return ECORE_CALLBACK_DONE;
  }
 -#endif
 +#endif /* HAVE_ECORE_IMF */
@@@ -581,32 -606,53 +609,53 @@@ struct _Edje_Part_Collectio
     unsigned char    script_only;
  
     unsigned char    lua_script_only;
+    unsigned char    checked : 1;
  };
  
- struct _Edje_Part
+ struct _Edje_Part_Dragable
  {
-    const char            *name; /* the name if any of the part */
-    Edje_Part_Description *default_desc; /* the part descriptor for default */
-    Eina_List             *other_desc; /* other possible descriptors */
-    const char            *source, *source2, *source3, *source4, *source5, *source6, *source7;
-    int                    id; /* its id number */
-    int                    clip_to_id; /* the part id to clip this one to */
-    struct {
-       int                 step_x; /* drag jumps n pixels (0 = no limit) */
-       int                 step_y; /* drag jumps n pixels (0 = no limit) */
+    int                 step_x; /* drag jumps n pixels (0 = no limit) */
+    int                 step_y; /* drag jumps n pixels (0 = no limit) */
+    int                 count_x; /* drag area divided by n (0 = no limit) */
+    int                 count_y; /* drag area divided by n (0 = no limit) */
+    int                 confine_id; /* dragging within this bit, -1 = no */
+    /* davinchi */
+    int                  event_id; /* If it is used as scrollbar */
+    signed char         x; /* can u click & drag this bit in x dir */
+    signed char         y; /* can u click & drag this bit in y dir */
+ };
+ struct _Edje_Part_Api
+ {
+    const char         *name;
+    const char         *description;
+ };
  
-       int                 count_x; /* drag area divided by n (0 = no limit) */
-       int                 count_y; /* drag area divided by n (0 = no limit) */
+ typedef struct _Edje_Part_Description_List Edje_Part_Description_List;
+ struct _Edje_Part_Description_List
+ {
+    Edje_Part_Description_Common **desc;
+    unsigned int desc_count;
+ };
  
-       int                 confine_id; /* dragging within this bit, -1 = no */
+ struct _Edje_Part
+ {
+    const char                   *name; /* the name if any of the part */
+    Edje_Part_Description_Common *default_desc; /* the part descriptor for default */
  
-       /* davinchi */
-       int               events_id; /* If it is used as scrollbar */
+    Edje_Part_Description_List    other; /* other possible descriptors */
  
-       signed char         x; /* can u click & drag this bit in x dir */
-       signed char         y; /* can u click & drag this bit in y dir */
-    } dragable;
-    Eina_List             *items; /* packed items for box and table */
 -   const char           *source, *source2, *source3, *source4, *source5, *source6;
++   const char           *source, *source2, *source3, *source4, *source5, *source6, *source7;
+    int                    id; /* its id number */
+    int                    clip_to_id; /* the part id to clip this one to */
+    Edje_Part_Dragable     dragable;
+    Edje_Pack_Element    **items; /* packed items for box and table */
+    unsigned int           items_count;
     unsigned char          type; /* what type (image, rect, text) */
     unsigned char          effect; /* 0 = plain... */
     unsigned char          mouse_events; /* it will affect/respond to mouse events */
@@@ -1899,74 -1847,9 +1892,74 @@@ edje_object_part_text_select_extend(con
       _edje_entry_select_extend(rp);
  }
  
 +EAPI void
 +edje_object_part_text_autocapitalization_set(const Evas_Object *obj, const char *part, Eina_Bool on)
 +{
 +   Edje *ed;
 +   Edje_Real_Part *rp;
 +
 +   ed = _edje_fetch(obj);
 +   if ((!ed) || (!part)) return;
 +   rp = _edje_real_part_recursive_get(ed, (char *)part);
 +   if (!rp) return;
 +   if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
 +     _edje_entry_autocapitalization_set(rp, on);
 +}
 +
 +#ifdef HAVE_ECORE_IMF
 +EAPI Ecore_IMF_Context *
 +edje_object_part_text_imf_context_get(const Evas_Object *obj, const char *part)
 +{
 +   Edje *ed;
 +   Edje_Real_Part *rp;
 +
 +   ed = _edje_fetch(obj);
 +   if ((!ed) || (!part)) return NULL;
 +   
 +   rp = _edje_real_part_recursive_get(ed, (char *)part);
 +   if (!rp) return NULL;
 +
 +   if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
 +     return _edje_entry_imf_context_get(rp);
 +   else
 +     return NULL;
 +}
 +#endif
 +
 +EAPI void
 +edje_object_part_text_input_panel_enabled_set(const Evas_Object *obj, const char *part, Eina_Bool enabled)
 +{
 +   Edje *ed;
 +   Edje_Real_Part *rp;
 +
 +   ed = _edje_fetch(obj);
 +   if ((!ed) || (!part)) return;
 +   rp = _edje_real_part_recursive_get(ed, (char *)part);
 +   if (!rp) return;
 +   if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
 +     _edje_entry_input_panel_enabled_set(rp, enabled);
 +}
 +
 +EAPI Eina_Bool
 +edje_object_part_text_input_panel_enabled_get(const Evas_Object *obj, const char *part)
 +{
 +   Edje *ed;
 +   Edje_Real_Part *rp;
 +
 +   ed = _edje_fetch(obj);
 +   if ((!ed) || (!part)) return EINA_FALSE;
 +   rp = _edje_real_part_recursive_get(ed, (char *)part);
 +   if (!rp) return EINA_FALSE;
 +
 +   if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
 +     return _edje_entry_input_panel_enabled_get(rp);
 +   else
 +     return EINA_FALSE;
 +}
 +
  /**
   * @brief XX
-  * 
+  *
   * @param obj A valid Evas_Object handle
   * @param part The part name
   */