Revert to the latest migration version
authorShinwoo Kim <cinoo.kim@samsung.com>
Mon, 28 Nov 2011 08:38:18 +0000 (17:38 +0900)
committerShinwoo Kim <cinoo.kim@samsung.com>
Mon, 28 Nov 2011 08:38:18 +0000 (17:38 +0900)
103 files changed:
COPYING
configure.ac
data/images/Makefile.am
doc/widgets/widget_preview_ctxpopup.c
po/ar.po
po/az_IR.po
po/de.po
po/el.po
po/en_US.po
po/es_ES.po
po/fa.po
po/fr.po
po/he.po
po/it.po
po/ja_JP.po
po/ko_KR.po
po/nl.po
po/ps.po
po/pt.po
po/ru_RU.po
po/tr_TR.po
po/ur.po
po/yi.po
po/zh_CN.po
po/zh_HK.po
po/zh_TW.po
src/bin/Makefile.am
src/bin/test.c
src/bin/test_ctxpopup.c
src/bin/test_diskselector.c
src/bin/test_fileselector.c
src/bin/test_gengrid.c
src/bin/test_genlist.c
src/bin/test_index.c
src/bin/test_multibuttonentry.c [new file with mode: 0644]
src/bin/test_naviframe.c
src/bin/test_panel.c
src/bin/test_segment_control.c
src/bin/test_tooltip.c
src/edje_externals/Makefile.am
src/edje_externals/elm.c
src/edje_externals/elm_bubble.c
src/edje_externals/elm_calendar.c
src/edje_externals/elm_colorpalette.c
src/edje_externals/elm_entry.c
src/edje_externals/elm_genlist.c
src/edje_externals/elm_navigationbar.c [deleted file]
src/edje_externals/elm_navigationbar_ex.c [deleted file]
src/edje_externals/elm_toggle.c
src/edje_externals/modules.inc
src/examples/animator_example_01.c [deleted file]
src/examples/ctxpopup_example_01.c
src/examples/flipselector_example.c
src/lib/Elementary.h.in
src/lib/Makefile.am
src/lib/elc_ctxpopup.c
src/lib/elc_multibuttonentry.c [moved from src/lib/elm_multibuttonentry.c with 82% similarity]
src/lib/elc_naviframe.c
src/lib/elc_navigationbar.c [deleted file]
src/lib/elc_navigationbar_ex.c [deleted file]
src/lib/elc_player.c
src/lib/elm_bg.c
src/lib/elm_button.c
src/lib/elm_check.c
src/lib/elm_cnp_helper.c
src/lib/elm_colorpalette.c
src/lib/elm_colorselector.c
src/lib/elm_controlbar.c
src/lib/elm_dialoguegroup.c
src/lib/elm_diskselector.c
src/lib/elm_entry.c
src/lib/elm_flipselector.c
src/lib/elm_gengrid.c
src/lib/elm_genlist.c
src/lib/elm_imageslider.c
src/lib/elm_main.c
src/lib/elm_map.c
src/lib/elm_module_priv.h
src/lib/elm_popup.c
src/lib/elm_priv.h
src/lib/elm_progressbar.c
src/lib/elm_radio.c
src/lib/elm_scrolled_grid.c [deleted file]
src/lib/elm_searchbar.c
src/lib/elm_slider.c
src/lib/elm_slidingdrawer.c [deleted file]
src/lib/elm_stackedicon.c
src/lib/elm_store.c
src/lib/elm_theme.c
src/lib/elm_tickernoti.c
src/lib/elm_toggle.c
src/lib/elm_transit.c
src/lib/elm_video.c
src/lib/elm_widget.c
src/lib/elm_widget.h
src/lib/elm_win.c
src/lib/els_cursor.c
src/lib/els_icon.c
src/lib/els_tooltip.c
src/modules/access_output/mod.c
src/modules/ctxpopup_copypasteUI/copypaste.c
src/modules/ctxpopup_copypasteshareUI/copypaste.c
src/modules/popup_copypasteUI/copypaste.c

diff --git a/COPYING b/COPYING
index f9624d6..a3f518d 100644 (file)
--- a/COPYING
+++ b/COPYING
@@ -4,7 +4,7 @@ Copyright (C) 2008-2011 Carsten Haitzler and various contributors (see AUTHORS)
 
 This library is free software; you can redistribute it and/or modify it
 under the terms of the GNU Lesser General Public License as published by the
-Free Software Foundation; either version 2.1 of the License.
+Free Software Foundation; version 2.1 of the License.
 
 This library is distributed in the hope that it will be useful, but WITHOUT
 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
index 58f7237..e64f7da 100755 (executable)
@@ -220,11 +220,23 @@ PKG_CHECK_MODULES([ELEMENTARY],
     ecore-evas >= 1.0.999
     ecore-file >= 1.0.999
     ecore-imf >= 1.0.999
-    ecore-con >= 1.0.999
     edje >= 1.0.999
    ]
 )
 
+PKG_CHECK_MODULES([ELEMENTARY_ECORE_CON],
+   [ecore-con >= 1.0.999],
+   [
+    ELEMENTARY_ECORE_CON_INC="#include <Ecore_Con.h>"
+    AC_DEFINE(HAVE_ELEMENTARY_ECORE_CON, 1, [Have Ecore_Con support])
+    have_ecore_con="yes"
+    requirement_elm="ecore-con >= 1.0.999 ${requirement_elm}"
+   ],
+   [have_ecore_con="no"])
+AC_SUBST(ELEMENTARY_ECORE_CON_INC)
+
+AM_CONDITIONAL([HAVE_ECORE_CON], [test "x${have_ecore_con}" = "xyes"])
+
 PKG_CHECK_MODULES([EIO],
         [eio],
         [
@@ -735,6 +747,7 @@ echo "    Windows XP.............: ${have_elementary_win32}"
 echo "    Windows CE.............: ${have_elementary_wince}"
 echo
 echo "  Features:"
+echo "    Ecore_Con..............: ${have_ecore_con}"
 echo "    EDBus..................: ${have_elementary_edbus}"
 echo "    EFreet.................: ${have_elementary_efreet}"
 echo "    EWeather...............: ${have_elementary_eweather}"
index cb0d5d2..88a4f7e 100644 (file)
@@ -94,4 +94,4 @@ g_layer/long_tap_5.png \
 g_layer/tap_4.png
 
 
-EXTRA_DIST = $(files_DATA)
+EXTRA_DIST = $(files_DATA) $(files_glayer_DATA)
index 5b71284..c2819d6 100644 (file)
@@ -20,7 +20,7 @@ ic = elm_icon_add(ctxpopup);
 elm_icon_standard_set(ic, "folder");
 elm_icon_scale_set(ic, EINA_FALSE, EINA_FALSE);
 Elm_Object_Item *it = elm_ctxpopup_item_append(ctxpopup, "Navigate to folder", ic, NULL, NULL);
-elm_ctxpopup_item_disabled_set(it, EINA_TRUE);
+elm_object_item_disabled_set(it, EINA_TRUE);
 
 evas_object_size_hint_weight_set(ctxpopup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
 evas_object_move(ctxpopup, 0, 0);
index baa7972..23ecf05 100644 (file)
--- a/po/ar.po
+++ b/po/ar.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2011-11-21 18:14+0900\n"
+"POT-Creation-Date: 2011-11-28 17:27+0900\n"
 "PO-Revision-Date: 2011-09-26 21:20+0900\n"
 "Last-Translator: Sumanth Krishna Mannam <sumanth.m@samsung.com>\n"
 "Language-Team: General\n"
@@ -25,8 +25,8 @@ msgstr ""
 msgid "Home"
 msgstr ""
 
-#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1382
-#: src/lib/elm_searchbar.c:226
+#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1396
+#: src/lib/elm_searchbar.c:211
 msgid "Cancel"
 msgstr ""
 
@@ -78,27 +78,27 @@ msgstr "AM"
 msgid "DateTimeFormat"
 msgstr "%b %d, %Y %I : %M %p"
 
-#: src/lib/elm_entry.c:1356
+#: src/lib/elm_entry.c:1370
 msgid "Select"
 msgstr ""
 
-#: src/lib/elm_entry.c:1361
+#: src/lib/elm_entry.c:1375
 msgid "Paste"
 msgstr ""
 
-#: src/lib/elm_entry.c:1366 src/lib/elm_entry.c:1386
+#: src/lib/elm_entry.c:1380 src/lib/elm_entry.c:1400
 msgid "More"
 msgstr ""
 
-#: src/lib/elm_entry.c:1376
+#: src/lib/elm_entry.c:1390
 msgid "Copy"
 msgstr ""
 
-#: src/lib/elm_entry.c:1379
+#: src/lib/elm_entry.c:1393
 msgid "Cut"
 msgstr ""
 
-#: src/lib/elm_searchbar.c:214
+#: src/lib/elm_searchbar.c:199
 msgid "Search"
 msgstr ""
 
index c37b897..ae8c52a 100644 (file)
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2011-11-21 18:14+0900\n"
+"POT-Creation-Date: 2011-11-28 17:27+0900\n"
 "PO-Revision-Date: 2011-09-26 21:20+0900\n"
 "Last-Translator: Sumanth Krishna Mannam <sumanth.m@samsung.com>\n"
 "Language-Team: General\n"
@@ -24,8 +24,8 @@ msgstr ""
 msgid "Home"
 msgstr ""
 
-#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1382
-#: src/lib/elm_searchbar.c:226
+#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1396
+#: src/lib/elm_searchbar.c:211
 msgid "Cancel"
 msgstr ""
 
@@ -77,27 +77,27 @@ msgstr "AM"
 msgid "DateTimeFormat"
 msgstr "%b %d, %Y %I : %M %p"
 
-#: src/lib/elm_entry.c:1356
+#: src/lib/elm_entry.c:1370
 msgid "Select"
 msgstr ""
 
-#: src/lib/elm_entry.c:1361
+#: src/lib/elm_entry.c:1375
 msgid "Paste"
 msgstr ""
 
-#: src/lib/elm_entry.c:1366 src/lib/elm_entry.c:1386
+#: src/lib/elm_entry.c:1380 src/lib/elm_entry.c:1400
 msgid "More"
 msgstr ""
 
-#: src/lib/elm_entry.c:1376
+#: src/lib/elm_entry.c:1390
 msgid "Copy"
 msgstr ""
 
-#: src/lib/elm_entry.c:1379
+#: src/lib/elm_entry.c:1393
 msgid "Cut"
 msgstr ""
 
-#: src/lib/elm_searchbar.c:214
+#: src/lib/elm_searchbar.c:199
 msgid "Search"
 msgstr ""
 
index 53e5852..bc7954a 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary 0.7.0.57309\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2011-11-21 18:14+0900\n"
+"POT-Creation-Date: 2011-11-28 17:27+0900\n"
 "PO-Revision-Date: 2011-09-26 21:20+0900\n"
 "Last-Translator: Sumanth Krishna Mannam <sumanth.m@samsung.com>\n"
 "Language-Team: General\n"
@@ -26,8 +26,8 @@ msgstr "Aufwärts"
 msgid "Home"
 msgstr "Persönlicher Ordner"
 
-#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1382
-#: src/lib/elm_searchbar.c:226
+#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1396
+#: src/lib/elm_searchbar.c:211
 msgid "Cancel"
 msgstr "Abbrechen"
 
@@ -79,27 +79,27 @@ msgstr "vorm."
 msgid "DateTimeFormat"
 msgstr "%d. %b %Y %H : %M"
 
-#: src/lib/elm_entry.c:1356
+#: src/lib/elm_entry.c:1370
 msgid "Select"
 msgstr "Auswählen"
 
-#: src/lib/elm_entry.c:1361
+#: src/lib/elm_entry.c:1375
 msgid "Paste"
 msgstr "Einfügen"
 
-#: src/lib/elm_entry.c:1366 src/lib/elm_entry.c:1386
+#: src/lib/elm_entry.c:1380 src/lib/elm_entry.c:1400
 msgid "More"
 msgstr ""
 
-#: src/lib/elm_entry.c:1376
+#: src/lib/elm_entry.c:1390
 msgid "Copy"
 msgstr "Kopieren"
 
-#: src/lib/elm_entry.c:1379
+#: src/lib/elm_entry.c:1393
 msgid "Cut"
 msgstr "Ausschneiden"
 
-#: src/lib/elm_searchbar.c:214
+#: src/lib/elm_searchbar.c:199
 msgid "Search"
 msgstr "Suche"
 
index 08c4bc1..3392d56 100644 (file)
--- a/po/el.po
+++ b/po/el.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2011-11-21 18:14+0900\n"
+"POT-Creation-Date: 2011-11-28 17:27+0900\n"
 "PO-Revision-Date: 2011-09-26 21:20+0900\n"
 "Last-Translator: Sumanth Krishna Mannam <sumanth.m@samsung.com>\n"
 "Language-Team: General\n"
@@ -25,8 +25,8 @@ msgstr ""
 msgid "Home"
 msgstr ""
 
-#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1382
-#: src/lib/elm_searchbar.c:226
+#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1396
+#: src/lib/elm_searchbar.c:211
 msgid "Cancel"
 msgstr ""
 
@@ -78,27 +78,27 @@ msgstr "AM"
 msgid "DateTimeFormat"
 msgstr "%d %b %Y %I : %M %p"
 
-#: src/lib/elm_entry.c:1356
+#: src/lib/elm_entry.c:1370
 msgid "Select"
 msgstr ""
 
-#: src/lib/elm_entry.c:1361
+#: src/lib/elm_entry.c:1375
 msgid "Paste"
 msgstr ""
 
-#: src/lib/elm_entry.c:1366 src/lib/elm_entry.c:1386
+#: src/lib/elm_entry.c:1380 src/lib/elm_entry.c:1400
 msgid "More"
 msgstr ""
 
-#: src/lib/elm_entry.c:1376
+#: src/lib/elm_entry.c:1390
 msgid "Copy"
 msgstr ""
 
-#: src/lib/elm_entry.c:1379
+#: src/lib/elm_entry.c:1393
 msgid "Cut"
 msgstr ""
 
-#: src/lib/elm_searchbar.c:214
+#: src/lib/elm_searchbar.c:199
 msgid "Search"
 msgstr ""
 
index 0cc428c..6c1b53d 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2011-11-21 18:14+0900\n"
+"POT-Creation-Date: 2011-11-28 17:27+0900\n"
 "PO-Revision-Date: 2011-09-26 21:20+0900\n"
 "Last-Translator: Sumanth Krishna Mannam <sumanth.m@samsung.com>\n"
 "Language-Team: General\n"
@@ -25,8 +25,8 @@ msgstr ""
 msgid "Home"
 msgstr ""
 
-#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1382
-#: src/lib/elm_searchbar.c:226
+#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1396
+#: src/lib/elm_searchbar.c:211
 msgid "Cancel"
 msgstr ""
 
@@ -78,27 +78,27 @@ msgstr "AM"
 msgid "DateTimeFormat"
 msgstr "%b %d, %Y %I : %M %p"
 
-#: src/lib/elm_entry.c:1356
+#: src/lib/elm_entry.c:1370
 msgid "Select"
 msgstr ""
 
-#: src/lib/elm_entry.c:1361
+#: src/lib/elm_entry.c:1375
 msgid "Paste"
 msgstr ""
 
-#: src/lib/elm_entry.c:1366 src/lib/elm_entry.c:1386
+#: src/lib/elm_entry.c:1380 src/lib/elm_entry.c:1400
 msgid "More"
 msgstr ""
 
-#: src/lib/elm_entry.c:1376
+#: src/lib/elm_entry.c:1390
 msgid "Copy"
 msgstr ""
 
-#: src/lib/elm_entry.c:1379
+#: src/lib/elm_entry.c:1393
 msgid "Cut"
 msgstr ""
 
-#: src/lib/elm_searchbar.c:214
+#: src/lib/elm_searchbar.c:199
 msgid "Search"
 msgstr ""
 
index a994161..e379921 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2011-11-21 18:14+0900\n"
+"POT-Creation-Date: 2011-11-28 17:27+0900\n"
 "PO-Revision-Date: 2011-09-26 21:20+0900\n"
 "Last-Translator: Sumanth Krishna Mannam <sumanth.m@samsung.com>\n"
 "Language-Team: General\n"
@@ -25,8 +25,8 @@ msgstr ""
 msgid "Home"
 msgstr ""
 
-#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1382
-#: src/lib/elm_searchbar.c:226
+#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1396
+#: src/lib/elm_searchbar.c:211
 msgid "Cancel"
 msgstr ""
 
@@ -78,27 +78,27 @@ msgstr "a.m."
 msgid "DateTimeFormat"
 msgstr "%d de %b de %Y %H : %M"
 
-#: src/lib/elm_entry.c:1356
+#: src/lib/elm_entry.c:1370
 msgid "Select"
 msgstr ""
 
-#: src/lib/elm_entry.c:1361
+#: src/lib/elm_entry.c:1375
 msgid "Paste"
 msgstr ""
 
-#: src/lib/elm_entry.c:1366 src/lib/elm_entry.c:1386
+#: src/lib/elm_entry.c:1380 src/lib/elm_entry.c:1400
 msgid "More"
 msgstr ""
 
-#: src/lib/elm_entry.c:1376
+#: src/lib/elm_entry.c:1390
 msgid "Copy"
 msgstr ""
 
-#: src/lib/elm_entry.c:1379
+#: src/lib/elm_entry.c:1393
 msgid "Cut"
 msgstr ""
 
-#: src/lib/elm_searchbar.c:214
+#: src/lib/elm_searchbar.c:199
 msgid "Search"
 msgstr ""
 
index 4cc4478..7954d9b 100644 (file)
--- a/po/fa.po
+++ b/po/fa.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2011-11-21 18:14+0900\n"
+"POT-Creation-Date: 2011-11-28 17:27+0900\n"
 "PO-Revision-Date: 2011-09-26 21:20+0900\n"
 "Last-Translator: Sumanth Krishna Mannam <sumanth.m@samsung.com>\n"
 "Language-Team: General\n"
@@ -24,8 +24,8 @@ msgstr ""
 msgid "Home"
 msgstr ""
 
-#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1382
-#: src/lib/elm_searchbar.c:226
+#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1396
+#: src/lib/elm_searchbar.c:211
 msgid "Cancel"
 msgstr ""
 
@@ -77,27 +77,27 @@ msgstr "AM"
 msgid "DateTimeFormat"
 msgstr "%b %d, %Y %I : %M %p"
 
-#: src/lib/elm_entry.c:1356
+#: src/lib/elm_entry.c:1370
 msgid "Select"
 msgstr ""
 
-#: src/lib/elm_entry.c:1361
+#: src/lib/elm_entry.c:1375
 msgid "Paste"
 msgstr ""
 
-#: src/lib/elm_entry.c:1366 src/lib/elm_entry.c:1386
+#: src/lib/elm_entry.c:1380 src/lib/elm_entry.c:1400
 msgid "More"
 msgstr ""
 
-#: src/lib/elm_entry.c:1376
+#: src/lib/elm_entry.c:1390
 msgid "Copy"
 msgstr ""
 
-#: src/lib/elm_entry.c:1379
+#: src/lib/elm_entry.c:1393
 msgid "Cut"
 msgstr ""
 
-#: src/lib/elm_searchbar.c:214
+#: src/lib/elm_searchbar.c:199
 msgid "Search"
 msgstr ""
 
index a534ad6..4c9900a 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2011-11-21 18:14+0900\n"
+"POT-Creation-Date: 2011-11-28 17:27+0900\n"
 "PO-Revision-Date: 2011-09-26 21:20+0900\n"
 "Last-Translator: Sumanth Krishna Mannam <sumanth.m@samsung.com>\n"
 "Language-Team: General\n"
@@ -26,8 +26,8 @@ msgstr "Monter"
 msgid "Home"
 msgstr "Home"
 
-#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1382
-#: src/lib/elm_searchbar.c:226
+#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1396
+#: src/lib/elm_searchbar.c:211
 msgid "Cancel"
 msgstr "Annuler"
 
@@ -79,27 +79,27 @@ msgstr "AM"
 msgid "DateTimeFormat"
 msgstr "%d %b %Y %H : %M"
 
-#: src/lib/elm_entry.c:1356
+#: src/lib/elm_entry.c:1370
 msgid "Select"
 msgstr "Sélectionner"
 
-#: src/lib/elm_entry.c:1361
+#: src/lib/elm_entry.c:1375
 msgid "Paste"
 msgstr "Coller"
 
-#: src/lib/elm_entry.c:1366 src/lib/elm_entry.c:1386
+#: src/lib/elm_entry.c:1380 src/lib/elm_entry.c:1400
 msgid "More"
 msgstr ""
 
-#: src/lib/elm_entry.c:1376
+#: src/lib/elm_entry.c:1390
 msgid "Copy"
 msgstr "Copier"
 
-#: src/lib/elm_entry.c:1379
+#: src/lib/elm_entry.c:1393
 msgid "Cut"
 msgstr "Couper"
 
-#: src/lib/elm_searchbar.c:214
+#: src/lib/elm_searchbar.c:199
 msgid "Search"
 msgstr "Rechercher"
 
index 44f1947..9d491ea 100644 (file)
--- a/po/he.po
+++ b/po/he.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2011-11-21 18:14+0900\n"
+"POT-Creation-Date: 2011-11-28 17:27+0900\n"
 "PO-Revision-Date: 2011-09-26 21:20+0900\n"
 "Last-Translator: Sumanth Krishna Mannam <sumanth.m@samsung.com>\n"
 "Language-Team: General\n"
@@ -24,8 +24,8 @@ msgstr ""
 msgid "Home"
 msgstr ""
 
-#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1382
-#: src/lib/elm_searchbar.c:226
+#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1396
+#: src/lib/elm_searchbar.c:211
 msgid "Cancel"
 msgstr "בטל"
 
@@ -77,27 +77,27 @@ msgstr "AM"
 msgid "DateTimeFormat"
 msgstr "%b %d, %Y %I : %M %p"
 
-#: src/lib/elm_entry.c:1356
+#: src/lib/elm_entry.c:1370
 msgid "Select"
 msgstr "התחל בחירה"
 
-#: src/lib/elm_entry.c:1361
+#: src/lib/elm_entry.c:1375
 msgid "Paste"
 msgstr "הדבק"
 
-#: src/lib/elm_entry.c:1366 src/lib/elm_entry.c:1386
+#: src/lib/elm_entry.c:1380 src/lib/elm_entry.c:1400
 msgid "More"
 msgstr ""
 
-#: src/lib/elm_entry.c:1376
+#: src/lib/elm_entry.c:1390
 msgid "Copy"
 msgstr "העתק"
 
-#: src/lib/elm_entry.c:1379
+#: src/lib/elm_entry.c:1393
 msgid "Cut"
 msgstr "גזור"
 
-#: src/lib/elm_searchbar.c:214
+#: src/lib/elm_searchbar.c:199
 msgid "Search"
 msgstr "לחפש"
 
index 489865a..7fae7ff 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2011-11-21 18:14+0900\n"
+"POT-Creation-Date: 2011-11-28 17:27+0900\n"
 "PO-Revision-Date: 2011-09-26 21:20+0900\n"
 "Last-Translator: Sumanth Krishna Mannam <sumanth.m@samsung.com>\n"
 "Language-Team: General\n"
@@ -22,8 +22,8 @@ msgstr "Su"
 msgid "Home"
 msgstr "Home"
 
-#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1382
-#: src/lib/elm_searchbar.c:226
+#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1396
+#: src/lib/elm_searchbar.c:211
 msgid "Cancel"
 msgstr "Annulla"
 
@@ -75,27 +75,27 @@ msgstr "m."
 msgid "DateTimeFormat"
 msgstr "%d %b %Y %H : %M"
 
-#: src/lib/elm_entry.c:1356
+#: src/lib/elm_entry.c:1370
 msgid "Select"
 msgstr "Seleziona"
 
-#: src/lib/elm_entry.c:1361
+#: src/lib/elm_entry.c:1375
 msgid "Paste"
 msgstr "Incolla"
 
-#: src/lib/elm_entry.c:1366 src/lib/elm_entry.c:1386
+#: src/lib/elm_entry.c:1380 src/lib/elm_entry.c:1400
 msgid "More"
 msgstr ""
 
-#: src/lib/elm_entry.c:1376
+#: src/lib/elm_entry.c:1390
 msgid "Copy"
 msgstr "Copia"
 
-#: src/lib/elm_entry.c:1379
+#: src/lib/elm_entry.c:1393
 msgid "Cut"
 msgstr "Taglio"
 
-#: src/lib/elm_searchbar.c:214
+#: src/lib/elm_searchbar.c:199
 msgid "Search"
 msgstr "Ricerca"
 
index 990914e..75d580b 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2011-11-21 18:14+0900\n"
+"POT-Creation-Date: 2011-11-28 17:27+0900\n"
 "PO-Revision-Date: 2011-09-26 21:20+0900\n"
 "Last-Translator: Sumanth Krishna Mannam <sumanth.m@samsung.com>\n"
 "Language-Team: General\n"
@@ -26,8 +26,8 @@ msgstr ""
 msgid "Home"
 msgstr ""
 
-#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1382
-#: src/lib/elm_searchbar.c:226
+#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1396
+#: src/lib/elm_searchbar.c:211
 msgid "Cancel"
 msgstr ""
 
@@ -79,27 +79,27 @@ msgstr "午前"
 msgid "DateTimeFormat"
 msgstr "%Y年 %m月 %d日 %H : %M"
 
-#: src/lib/elm_entry.c:1356
+#: src/lib/elm_entry.c:1370
 msgid "Select"
 msgstr ""
 
-#: src/lib/elm_entry.c:1361
+#: src/lib/elm_entry.c:1375
 msgid "Paste"
 msgstr ""
 
-#: src/lib/elm_entry.c:1366 src/lib/elm_entry.c:1386
+#: src/lib/elm_entry.c:1380 src/lib/elm_entry.c:1400
 msgid "More"
 msgstr ""
 
-#: src/lib/elm_entry.c:1376
+#: src/lib/elm_entry.c:1390
 msgid "Copy"
 msgstr ""
 
-#: src/lib/elm_entry.c:1379
+#: src/lib/elm_entry.c:1393
 msgid "Cut"
 msgstr ""
 
-#: src/lib/elm_searchbar.c:214
+#: src/lib/elm_searchbar.c:199
 msgid "Search"
 msgstr ""
 
index d6d284f..0f438e6 100644 (file)
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2011-11-21 18:14+0900\n"
+"POT-Creation-Date: 2011-11-28 17:27+0900\n"
 "PO-Revision-Date: 2011-09-26 21:20+0900\n"
 "Last-Translator: Sumanth Krishna Mannam <sumanth.m@samsung.com>\n"
 "Language-Team: General\n"
@@ -24,8 +24,8 @@ msgstr "위로"
 msgid "Home"
 msgstr "홈"
 
-#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1382
-#: src/lib/elm_searchbar.c:226
+#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1396
+#: src/lib/elm_searchbar.c:211
 msgid "Cancel"
 msgstr "취소"
 
@@ -77,27 +77,27 @@ msgstr "오전"
 msgid "DateTimeFormat"
 msgstr "%Y년 %m월 %d일  %p %I : %M"
 
-#: src/lib/elm_entry.c:1356
+#: src/lib/elm_entry.c:1370
 msgid "Select"
 msgstr "선택"
 
-#: src/lib/elm_entry.c:1361
+#: src/lib/elm_entry.c:1375
 msgid "Paste"
 msgstr "붙여넣기"
 
-#: src/lib/elm_entry.c:1366 src/lib/elm_entry.c:1386
+#: src/lib/elm_entry.c:1380 src/lib/elm_entry.c:1400
 msgid "More"
 msgstr ""
 
-#: src/lib/elm_entry.c:1376
+#: src/lib/elm_entry.c:1390
 msgid "Copy"
 msgstr "복사"
 
-#: src/lib/elm_entry.c:1379
+#: src/lib/elm_entry.c:1393
 msgid "Cut"
 msgstr "잘라내기"
 
-#: src/lib/elm_searchbar.c:214
+#: src/lib/elm_searchbar.c:199
 msgid "Search"
 msgstr "검색"
 
index 48e5edb..6fbfac7 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary 0.7.0.57309\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2011-11-21 18:14+0900\n"
+"POT-Creation-Date: 2011-11-28 17:27+0900\n"
 "PO-Revision-Date: 2011-09-26 21:20+0900\n"
 "Last-Translator: Sumanth Krishna Mannam <sumanth.m@samsung.com>\n"
 "Language-Team: General\n"
@@ -28,8 +28,8 @@ msgstr "Omhoog"
 msgid "Home"
 msgstr "Persoonlijke map"
 
-#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1382
-#: src/lib/elm_searchbar.c:226
+#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1396
+#: src/lib/elm_searchbar.c:211
 msgid "Cancel"
 msgstr "Annuleren"
 
@@ -81,27 +81,27 @@ msgstr "AM"
 msgid "DateTimeFormat"
 msgstr "%d %b %Y %H : %M"
 
-#: src/lib/elm_entry.c:1356
+#: src/lib/elm_entry.c:1370
 msgid "Select"
 msgstr "Selecteren"
 
-#: src/lib/elm_entry.c:1361
+#: src/lib/elm_entry.c:1375
 msgid "Paste"
 msgstr "Plakken"
 
-#: src/lib/elm_entry.c:1366 src/lib/elm_entry.c:1386
+#: src/lib/elm_entry.c:1380 src/lib/elm_entry.c:1400
 msgid "More"
 msgstr ""
 
-#: src/lib/elm_entry.c:1376
+#: src/lib/elm_entry.c:1390
 msgid "Copy"
 msgstr "Kopiëren"
 
-#: src/lib/elm_entry.c:1379
+#: src/lib/elm_entry.c:1393
 msgid "Cut"
 msgstr "Knippen"
 
-#: src/lib/elm_searchbar.c:214
+#: src/lib/elm_searchbar.c:199
 msgid "Search"
 msgstr "Zoeken"
 
index 936a790..07d9648 100644 (file)
--- a/po/ps.po
+++ b/po/ps.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2011-11-21 18:14+0900\n"
+"POT-Creation-Date: 2011-11-28 17:27+0900\n"
 "PO-Revision-Date: 2011-09-26 21:20+0900\n"
 "Last-Translator: Sumanth Krishna Mannam <sumanth.m@samsung.com>\n"
 "Language-Team: General\n"
@@ -23,8 +23,8 @@ msgstr ""
 msgid "Home"
 msgstr ""
 
-#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1382
-#: src/lib/elm_searchbar.c:226
+#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1396
+#: src/lib/elm_searchbar.c:211
 msgid "Cancel"
 msgstr ""
 
@@ -76,27 +76,27 @@ msgstr "AM"
 msgid "DateTimeFormat"
 msgstr "%b %d, %Y %I : %M %p"
 
-#: src/lib/elm_entry.c:1356
+#: src/lib/elm_entry.c:1370
 msgid "Select"
 msgstr ""
 
-#: src/lib/elm_entry.c:1361
+#: src/lib/elm_entry.c:1375
 msgid "Paste"
 msgstr ""
 
-#: src/lib/elm_entry.c:1366 src/lib/elm_entry.c:1386
+#: src/lib/elm_entry.c:1380 src/lib/elm_entry.c:1400
 msgid "More"
 msgstr ""
 
-#: src/lib/elm_entry.c:1376
+#: src/lib/elm_entry.c:1390
 msgid "Copy"
 msgstr ""
 
-#: src/lib/elm_entry.c:1379
+#: src/lib/elm_entry.c:1393
 msgid "Cut"
 msgstr ""
 
-#: src/lib/elm_searchbar.c:214
+#: src/lib/elm_searchbar.c:199
 msgid "Search"
 msgstr ""
 
index b07f59c..478e15e 100644 (file)
--- a/po/pt.po
+++ b/po/pt.po
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2011-11-21 18:14+0900\n"
+"POT-Creation-Date: 2011-11-28 17:27+0900\n"
 "PO-Revision-Date: 2011-09-26 21:20+0900\n"
 "Last-Translator: Sumanth Krishna Mannam <sumanth.m@samsung.com>\n"
 "Language-Team: General\n"
@@ -24,8 +24,8 @@ msgstr ""
 msgid "Home"
 msgstr ""
 
-#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1382
-#: src/lib/elm_searchbar.c:226
+#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1396
+#: src/lib/elm_searchbar.c:211
 msgid "Cancel"
 msgstr "Cancelar"
 
@@ -77,27 +77,27 @@ msgstr "Antes"
 msgid "DateTimeFormat"
 msgstr "%d de %b de %Y %H : %M"
 
-#: src/lib/elm_entry.c:1356
+#: src/lib/elm_entry.c:1370
 msgid "Select"
 msgstr "Selecionar"
 
-#: src/lib/elm_entry.c:1361
+#: src/lib/elm_entry.c:1375
 msgid "Paste"
 msgstr "Colar"
 
-#: src/lib/elm_entry.c:1366 src/lib/elm_entry.c:1386
+#: src/lib/elm_entry.c:1380 src/lib/elm_entry.c:1400
 msgid "More"
 msgstr ""
 
-#: src/lib/elm_entry.c:1376
+#: src/lib/elm_entry.c:1390
 msgid "Copy"
 msgstr "Copiar"
 
-#: src/lib/elm_entry.c:1379
+#: src/lib/elm_entry.c:1393
 msgid "Cut"
 msgstr "Cortar"
 
-#: src/lib/elm_searchbar.c:214
+#: src/lib/elm_searchbar.c:199
 msgid "Search"
 msgstr "Búsqueda"
 
index d21a1d6..c8091f9 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2011-11-21 18:14+0900\n"
+"POT-Creation-Date: 2011-11-28 17:27+0900\n"
 "PO-Revision-Date: 2011-09-26 21:20+0900\n"
 "Last-Translator: Sumanth Krishna Mannam <sumanth.m@samsung.com>\n"
 "Language-Team: General\n"
@@ -25,8 +25,8 @@ msgstr ""
 msgid "Home"
 msgstr ""
 
-#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1382
-#: src/lib/elm_searchbar.c:226
+#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1396
+#: src/lib/elm_searchbar.c:211
 msgid "Cancel"
 msgstr ""
 
@@ -78,27 +78,27 @@ msgstr "AM"
 msgid "DateTimeFormat"
 msgstr "%d %b %Yг. %H : %M"
 
-#: src/lib/elm_entry.c:1356
+#: src/lib/elm_entry.c:1370
 msgid "Select"
 msgstr ""
 
-#: src/lib/elm_entry.c:1361
+#: src/lib/elm_entry.c:1375
 msgid "Paste"
 msgstr ""
 
-#: src/lib/elm_entry.c:1366 src/lib/elm_entry.c:1386
+#: src/lib/elm_entry.c:1380 src/lib/elm_entry.c:1400
 msgid "More"
 msgstr ""
 
-#: src/lib/elm_entry.c:1376
+#: src/lib/elm_entry.c:1390
 msgid "Copy"
 msgstr ""
 
-#: src/lib/elm_entry.c:1379
+#: src/lib/elm_entry.c:1393
 msgid "Cut"
 msgstr ""
 
-#: src/lib/elm_searchbar.c:214
+#: src/lib/elm_searchbar.c:199
 msgid "Search"
 msgstr ""
 
index efc8ff2..763b071 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2011-11-21 18:14+0900\n"
+"POT-Creation-Date: 2011-11-28 17:27+0900\n"
 "PO-Revision-Date: 2011-09-26 21:20+0900\n"
 "Last-Translator: Sumanth Krishna Mannam <sumanth.m@samsung.com>\n"
 "Language-Team: General\n"
@@ -25,8 +25,8 @@ msgstr ""
 msgid "Home"
 msgstr ""
 
-#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1382
-#: src/lib/elm_searchbar.c:226
+#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1396
+#: src/lib/elm_searchbar.c:211
 msgid "Cancel"
 msgstr ""
 
@@ -78,27 +78,27 @@ msgstr "AM"
 msgid "DateTimeFormat"
 msgstr "%d %b %Y %H : %M"
 
-#: src/lib/elm_entry.c:1356
+#: src/lib/elm_entry.c:1370
 msgid "Select"
 msgstr ""
 
-#: src/lib/elm_entry.c:1361
+#: src/lib/elm_entry.c:1375
 msgid "Paste"
 msgstr ""
 
-#: src/lib/elm_entry.c:1366 src/lib/elm_entry.c:1386
+#: src/lib/elm_entry.c:1380 src/lib/elm_entry.c:1400
 msgid "More"
 msgstr ""
 
-#: src/lib/elm_entry.c:1376
+#: src/lib/elm_entry.c:1390
 msgid "Copy"
 msgstr ""
 
-#: src/lib/elm_entry.c:1379
+#: src/lib/elm_entry.c:1393
 msgid "Cut"
 msgstr ""
 
-#: src/lib/elm_searchbar.c:214
+#: src/lib/elm_searchbar.c:199
 msgid "Search"
 msgstr ""
 
index de1747a..ca58309 100644 (file)
--- a/po/ur.po
+++ b/po/ur.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2011-11-21 18:14+0900\n"
+"POT-Creation-Date: 2011-11-28 17:27+0900\n"
 "PO-Revision-Date: 2011-09-26 21:20+0900\n"
 "Last-Translator: Sumanth Krishna Mannam <sumanth.m@samsung.com>\n"
 "Language-Team: General\n"
@@ -23,8 +23,8 @@ msgstr ""
 msgid "Home"
 msgstr ""
 
-#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1382
-#: src/lib/elm_searchbar.c:226
+#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1396
+#: src/lib/elm_searchbar.c:211
 msgid "Cancel"
 msgstr ""
 
@@ -76,27 +76,27 @@ msgstr "AM"
 msgid "DateTimeFormat"
 msgstr "%b %d, %Y %I : %M %p"
 
-#: src/lib/elm_entry.c:1356
+#: src/lib/elm_entry.c:1370
 msgid "Select"
 msgstr ""
 
-#: src/lib/elm_entry.c:1361
+#: src/lib/elm_entry.c:1375
 msgid "Paste"
 msgstr ""
 
-#: src/lib/elm_entry.c:1366 src/lib/elm_entry.c:1386
+#: src/lib/elm_entry.c:1380 src/lib/elm_entry.c:1400
 msgid "More"
 msgstr ""
 
-#: src/lib/elm_entry.c:1376
+#: src/lib/elm_entry.c:1390
 msgid "Copy"
 msgstr ""
 
-#: src/lib/elm_entry.c:1379
+#: src/lib/elm_entry.c:1393
 msgid "Cut"
 msgstr ""
 
-#: src/lib/elm_searchbar.c:214
+#: src/lib/elm_searchbar.c:199
 msgid "Search"
 msgstr ""
 
index 934bfc6..3554f7d 100644 (file)
--- a/po/yi.po
+++ b/po/yi.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2011-11-21 18:14+0900\n"
+"POT-Creation-Date: 2011-11-28 17:27+0900\n"
 "PO-Revision-Date: 2011-09-26 21:20+0900\n"
 "Last-Translator: Sumanth Krishna Mannam <sumanth.m@samsung.com>\n"
 "Language-Team: General\n"
@@ -23,8 +23,8 @@ msgstr ""
 msgid "Home"
 msgstr ""
 
-#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1382
-#: src/lib/elm_searchbar.c:226
+#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1396
+#: src/lib/elm_searchbar.c:211
 msgid "Cancel"
 msgstr ""
 
@@ -76,27 +76,27 @@ msgstr "AM"
 msgid "DateTimeFormat"
 msgstr "%b %d, %Y %I : %M %p"
 
-#: src/lib/elm_entry.c:1356
+#: src/lib/elm_entry.c:1370
 msgid "Select"
 msgstr ""
 
-#: src/lib/elm_entry.c:1361
+#: src/lib/elm_entry.c:1375
 msgid "Paste"
 msgstr ""
 
-#: src/lib/elm_entry.c:1366 src/lib/elm_entry.c:1386
+#: src/lib/elm_entry.c:1380 src/lib/elm_entry.c:1400
 msgid "More"
 msgstr ""
 
-#: src/lib/elm_entry.c:1376
+#: src/lib/elm_entry.c:1390
 msgid "Copy"
 msgstr ""
 
-#: src/lib/elm_entry.c:1379
+#: src/lib/elm_entry.c:1393
 msgid "Cut"
 msgstr ""
 
-#: src/lib/elm_searchbar.c:214
+#: src/lib/elm_searchbar.c:199
 msgid "Search"
 msgstr ""
 
index 2279dd3..91dcb73 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2011-11-21 18:14+0900\n"
+"POT-Creation-Date: 2011-11-28 17:27+0900\n"
 "PO-Revision-Date: 2011-09-26 21:20+0900\n"
 "Last-Translator: Sumanth Krishna Mannam <sumanth.m@samsung.com>\n"
 "Language-Team: General\n"
@@ -25,8 +25,8 @@ msgstr ""
 msgid "Home"
 msgstr ""
 
-#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1382
-#: src/lib/elm_searchbar.c:226
+#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1396
+#: src/lib/elm_searchbar.c:211
 msgid "Cancel"
 msgstr ""
 
@@ -78,27 +78,27 @@ msgstr "上午"
 msgid "DateTimeFormat"
 msgstr "%Y年 %m月 %d日 %p %I : %M"
 
-#: src/lib/elm_entry.c:1356
+#: src/lib/elm_entry.c:1370
 msgid "Select"
 msgstr ""
 
-#: src/lib/elm_entry.c:1361
+#: src/lib/elm_entry.c:1375
 msgid "Paste"
 msgstr ""
 
-#: src/lib/elm_entry.c:1366 src/lib/elm_entry.c:1386
+#: src/lib/elm_entry.c:1380 src/lib/elm_entry.c:1400
 msgid "More"
 msgstr ""
 
-#: src/lib/elm_entry.c:1376
+#: src/lib/elm_entry.c:1390
 msgid "Copy"
 msgstr ""
 
-#: src/lib/elm_entry.c:1379
+#: src/lib/elm_entry.c:1393
 msgid "Cut"
 msgstr ""
 
-#: src/lib/elm_searchbar.c:214
+#: src/lib/elm_searchbar.c:199
 msgid "Search"
 msgstr ""
 
index 2279dd3..91dcb73 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2011-11-21 18:14+0900\n"
+"POT-Creation-Date: 2011-11-28 17:27+0900\n"
 "PO-Revision-Date: 2011-09-26 21:20+0900\n"
 "Last-Translator: Sumanth Krishna Mannam <sumanth.m@samsung.com>\n"
 "Language-Team: General\n"
@@ -25,8 +25,8 @@ msgstr ""
 msgid "Home"
 msgstr ""
 
-#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1382
-#: src/lib/elm_searchbar.c:226
+#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1396
+#: src/lib/elm_searchbar.c:211
 msgid "Cancel"
 msgstr ""
 
@@ -78,27 +78,27 @@ msgstr "上午"
 msgid "DateTimeFormat"
 msgstr "%Y年 %m月 %d日 %p %I : %M"
 
-#: src/lib/elm_entry.c:1356
+#: src/lib/elm_entry.c:1370
 msgid "Select"
 msgstr ""
 
-#: src/lib/elm_entry.c:1361
+#: src/lib/elm_entry.c:1375
 msgid "Paste"
 msgstr ""
 
-#: src/lib/elm_entry.c:1366 src/lib/elm_entry.c:1386
+#: src/lib/elm_entry.c:1380 src/lib/elm_entry.c:1400
 msgid "More"
 msgstr ""
 
-#: src/lib/elm_entry.c:1376
+#: src/lib/elm_entry.c:1390
 msgid "Copy"
 msgstr ""
 
-#: src/lib/elm_entry.c:1379
+#: src/lib/elm_entry.c:1393
 msgid "Cut"
 msgstr ""
 
-#: src/lib/elm_searchbar.c:214
+#: src/lib/elm_searchbar.c:199
 msgid "Search"
 msgstr ""
 
index 2279dd3..91dcb73 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: elementary\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2011-11-21 18:14+0900\n"
+"POT-Creation-Date: 2011-11-28 17:27+0900\n"
 "PO-Revision-Date: 2011-09-26 21:20+0900\n"
 "Last-Translator: Sumanth Krishna Mannam <sumanth.m@samsung.com>\n"
 "Language-Team: General\n"
@@ -25,8 +25,8 @@ msgstr ""
 msgid "Home"
 msgstr ""
 
-#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1382
-#: src/lib/elm_searchbar.c:226
+#: src/lib/elc_fileselector.c:995 src/lib/elm_entry.c:1396
+#: src/lib/elm_searchbar.c:211
 msgid "Cancel"
 msgstr ""
 
@@ -78,27 +78,27 @@ msgstr "上午"
 msgid "DateTimeFormat"
 msgstr "%Y年 %m月 %d日 %p %I : %M"
 
-#: src/lib/elm_entry.c:1356
+#: src/lib/elm_entry.c:1370
 msgid "Select"
 msgstr ""
 
-#: src/lib/elm_entry.c:1361
+#: src/lib/elm_entry.c:1375
 msgid "Paste"
 msgstr ""
 
-#: src/lib/elm_entry.c:1366 src/lib/elm_entry.c:1386
+#: src/lib/elm_entry.c:1380 src/lib/elm_entry.c:1400
 msgid "More"
 msgstr ""
 
-#: src/lib/elm_entry.c:1376
+#: src/lib/elm_entry.c:1390
 msgid "Copy"
 msgstr ""
 
-#: src/lib/elm_entry.c:1379
+#: src/lib/elm_entry.c:1393
 msgid "Cut"
 msgstr ""
 
-#: src/lib/elm_searchbar.c:214
+#: src/lib/elm_searchbar.c:199
 msgid "Search"
 msgstr ""
 
index 7c65e75..db1d353 100644 (file)
@@ -81,6 +81,7 @@ test_list.c \
 test_map.c \
 test_menu.c \
 test_multi.c \
+test_multibuttonentry.c \
 test_naviframe.c \
 test_notify.c \
 test_pager.c \
index 6d06def..6f16372 100644 (file)
@@ -39,6 +39,7 @@ void test_entry3(void *data, Evas_Object *obj, void *event_info);
 void test_entry4(void *data, Evas_Object *obj, void *event_info);
 void test_entry5(void *data, Evas_Object *obj, void *event_info);
 void test_entry_notepad(void *data, Evas_Object *obj, void *event_info);
+void test_multibuttonentry(void *data, Evas_Object *obj, void *event_info);
 void test_anchorview(void *data, Evas_Object *obj, void *event_info);
 void test_anchorblock(void *data, Evas_Object *obj, void *event_info);
 void test_toolbar(void *data, Evas_Object *obj, void *event_info);
@@ -333,6 +334,7 @@ add_tests:
    ADD_TEST(NULL, "Entries", "Entry 4", test_entry4);
    ADD_TEST(NULL, "Entries", "Entry 5", test_entry5);
    ADD_TEST(NULL, "Entries", "Entry Notepad", test_entry_notepad);
+   ADD_TEST(NULL, "Entries", "Multibuttonentry", test_multibuttonentry);
    
    //------------------------------//
    ADD_TEST(NULL, "Buttons", "Buttons", test_button);
index c40b231..01189b5 100644 (file)
@@ -4,11 +4,44 @@
 #endif
 #ifndef ELM_LIB_QUICKLAUNCH
 
+
+static void
+_dismissed(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
+{
+   evas_object_del(obj);
+}
+
+static void
+_print_current_dir(Evas_Object *obj)
+{
+   Elm_Ctxpopup_Direction dir;
+   dir = elm_ctxpopup_direction_get(obj);
+
+   switch(dir)
+     {
+      case ELM_CTXPOPUP_DIRECTION_LEFT:
+         printf("ctxpopup direction: left!\n");
+         break;
+      case ELM_CTXPOPUP_DIRECTION_RIGHT:
+         printf("ctxpopup direction: right!\n");
+         break;
+      case ELM_CTXPOPUP_DIRECTION_UP:
+         printf("ctxpopup direction: up!\n");
+         break;
+      case ELM_CTXPOPUP_DIRECTION_DOWN:
+         printf("ctxpopup direction: down!\n");
+         break;
+      case ELM_CTXPOPUP_DIRECTION_UNKNOWN:
+         printf("ctxpopup direction: unknow!\n");
+         break;
+     }
+}
+
 static void
 _ctxpopup_item_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
 {
    printf("ctxpopup item selected: %s\n",
-          elm_ctxpopup_item_label_get(event_info));
+   elm_object_item_text_get(event_info));
 }
 
 #define ITEM_NEW(_hov, _label, _icon)                                           \
@@ -26,79 +59,99 @@ static void
 _list_item_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
 {
    Evas_Object *ctxpopup, *ic;
-   Elm_Ctxpopup_Item *it;
+   Elm_Object_Item *it;
    Evas_Coord x,y;
 
    ctxpopup = elm_ctxpopup_add(obj);
+   evas_object_smart_callback_add(ctxpopup,
+                                  "dismissed",
+                                  _dismissed,
+                                  NULL);
 
    ITEM_NEW(ctxpopup, "Go to home folder", "home");
    ITEM_NEW(ctxpopup, "Save file", "file");
    ITEM_NEW(ctxpopup, "Delete file", "delete");
    ITEM_NEW(ctxpopup, "Navigate to folder", "folder");
-   elm_ctxpopup_item_disabled_set(it, EINA_TRUE);
+   elm_object_item_disabled_set(it, EINA_TRUE);
    ITEM_NEW(ctxpopup, "Edit entry", "edit");
    ITEM_NEW(ctxpopup, "Set date and time", "clock");
-   elm_ctxpopup_item_disabled_set(it, EINA_TRUE);
+   elm_object_item_disabled_set(it, EINA_TRUE);
 
    evas_pointer_canvas_xy_get(evas_object_evas_get(obj), &x, &y);
    evas_object_size_hint_max_set(ctxpopup, 240, 240);
    evas_object_move(ctxpopup, x, y);
    evas_object_show(ctxpopup);
+   _print_current_dir(ctxpopup);
 }
 
 static void
 _list_item_cb2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
 {
    Evas_Object *ctxpopup, *ic;
-   Elm_Ctxpopup_Item *it;
+   Elm_Object_Item *it;
    Evas_Coord x,y;
 
    ctxpopup = elm_ctxpopup_add(obj);
+   evas_object_smart_callback_add(ctxpopup,
+                                  "dismissed",
+                                  _dismissed,
+                                  NULL);
 
    ITEM_NEW(ctxpopup, NULL, "home");
    ITEM_NEW(ctxpopup, NULL, "file");
    ITEM_NEW(ctxpopup, NULL, "delete");
    ITEM_NEW(ctxpopup, NULL, "folder");
    ITEM_NEW(ctxpopup, NULL, "edit");
-   elm_ctxpopup_item_disabled_set(it, EINA_TRUE);
+   elm_object_item_disabled_set(it, EINA_TRUE);
    ITEM_NEW(ctxpopup, NULL, "clock");
 
    evas_pointer_canvas_xy_get(evas_object_evas_get(obj), &x, &y);
    evas_object_size_hint_max_set(ctxpopup, 240, 240);
    evas_object_move(ctxpopup, x, y);
    evas_object_show(ctxpopup);
+   _print_current_dir(ctxpopup);
 }
 
 static void
 _list_item_cb3(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
 {
    Evas_Object *ctxpopup, *ic;
-   Elm_Ctxpopup_Item *it;
+   Elm_Object_Item *it;
    Evas_Coord x,y;
 
    ctxpopup = elm_ctxpopup_add(obj);
+   evas_object_smart_callback_add(ctxpopup,
+                                  "dismissed",
+                                  _dismissed,
+                                  NULL);
 
    ITEM_NEW(ctxpopup, "Eina", NULL);
    ITEM_NEW(ctxpopup, "Eet", NULL);
    ITEM_NEW(ctxpopup, "Evas", NULL);
    ITEM_NEW(ctxpopup, "Ecore", NULL);
-   elm_ctxpopup_item_disabled_set(it, EINA_TRUE);
+   elm_object_item_disabled_set(it, EINA_TRUE);
    ITEM_NEW(ctxpopup, "Embryo", NULL);
    ITEM_NEW(ctxpopup, "Edje", NULL);
 
    evas_pointer_canvas_xy_get(evas_object_evas_get(obj), &x, &y);
    evas_object_move(ctxpopup, x, y);
    evas_object_show(ctxpopup);
+   _print_current_dir(ctxpopup);
 }
 
 static void
 _list_item_cb4(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
 {
    Evas_Object *ctxpopup, *ic;
-   Elm_Ctxpopup_Item *it;
+   Elm_Object_Item *it;
    Evas_Coord x,y;
 
    ctxpopup = elm_ctxpopup_add(obj);
+   evas_object_smart_callback_add(ctxpopup,
+                                  "dismissed",
+                                  _dismissed,
+                                  NULL);
+
    elm_ctxpopup_horizontal_set(ctxpopup, EINA_TRUE);
 
    ITEM_NEW(ctxpopup, NULL, "home");
@@ -112,6 +165,7 @@ _list_item_cb4(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_i
    evas_object_size_hint_max_set(ctxpopup, 240, 240);
    evas_object_move(ctxpopup, x, y);
    evas_object_show(ctxpopup);
+   _print_current_dir(ctxpopup);
 }
 
 
@@ -139,11 +193,17 @@ _list_item_cb5(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_i
    elm_box_pack_end(bx, sc);
 
    ctxpopup = elm_ctxpopup_add(obj);
+   evas_object_smart_callback_add(ctxpopup,
+                                  "dismissed",
+                                  _dismissed,
+                                  NULL);
+
    elm_object_content_set(ctxpopup, bx);
 
    evas_pointer_canvas_xy_get(evas_object_evas_get(obj), &x, &y);
    evas_object_move(ctxpopup, x, y);
    evas_object_show(ctxpopup);
+   _print_current_dir(ctxpopup);
 }
 
 
@@ -168,6 +228,7 @@ test_ctxpopup(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_in
 
    list = elm_list_add(win);
    elm_win_resize_object_add(win, list);
+   evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    elm_list_mode_set(list, ELM_LIST_COMPRESS);
    evas_object_smart_callback_add(list, "selected", _list_clicked, NULL);
 
index 927806d..266c103 100644 (file)
@@ -155,6 +155,7 @@ test_diskselector(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *even
    // displayed item number setting example
    disk = elm_diskselector_add(win);
    elm_diskselector_display_item_num_set(disk, 5);
+   printf("Number of Items in DiskSelector : %d\n", elm_diskselector_display_item_num_get(disk));
 
    for (idx = 0; idx < (int)(sizeof(month_list) / sizeof(month_list[0])); idx++)
      {
@@ -172,6 +173,7 @@ test_diskselector(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *even
    // displayed item number setting example
    disk = elm_diskselector_add(win);
    elm_diskselector_display_item_num_set(disk, 7);
+   printf("Number of Items in DiskSelector : %d\n", elm_diskselector_display_item_num_get(disk));
 
    for (idx = 1; idx < 31; idx++)
      {
index e9ae85e..5d3ac87 100644 (file)
@@ -1,7 +1,18 @@
-#include <Elementary.h>
 #ifdef HAVE_CONFIG_H
 # include "elementary_config.h"
 #endif
+
+#include <Elementary.h>
+
+#ifndef ENABLE_NLS
+# ifndef setlocale
+#  define setlocale(c, l)
+# endif
+# ifndef libintl_setlocale
+#  define libintl_setlocale(c, l)
+# endif
+#endif
+
 #ifndef ELM_LIB_QUICKLAUNCH
 static void
 my_fileselector_done(void            *data,
@@ -108,7 +119,6 @@ test_fileselector(void *data       __UNUSED__,
                   void *event_info __UNUSED__)
 {
    Evas_Object *win, *fs, *bg, *vbox, *hbox, *bt, *sep;
-   const char *path = NULL;
 
    /* Set the locale according to the system pref.
     * If you dont do so the file selector will order the files list in
@@ -138,9 +148,7 @@ test_fileselector(void *data       __UNUSED__,
    /* make the file list a tree with dir expandable in place */
    elm_fileselector_expandable_set(fs, EINA_FALSE);
    /* start the fileselector in the home dir */
-   path = getenv("HOME");
-   if (!path) path = "./";
-   elm_fileselector_path_set(fs, path);
+   elm_fileselector_path_set(fs, getenv("HOME"));
    /* allow fs to expand in x & y */
    evas_object_size_hint_weight_set(fs, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    evas_object_size_hint_align_set(fs, EVAS_HINT_FILL, EVAS_HINT_FILL);
index 1371631..936be4b 100644 (file)
@@ -24,7 +24,7 @@ static const char *img[9] =
    "wood_01.jpg",
 };
 
-static Elm_Gengrid_Item_Class gic;
+static Elm_Gengrid_Item_Class gic, ggic;
 
 static void
 _horizontal_grid(void *data, Evas_Object *obj, void *event_info __UNUSED__)
@@ -244,6 +244,19 @@ _after_bt_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info __UN
 }
 
 static void
+_delete_bt_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+   Evas_Object *grid = data;
+   Eina_List *l, *l2, *l3;
+   Elm_Gengrid_Item *it;
+
+   l = (Eina_List*)elm_gengrid_selected_items_get(grid);
+   if (!l) return;
+   EINA_LIST_FOREACH_SAFE(l, l2, l3, it)
+     elm_gengrid_item_del(it);
+}
+
+static void
 _prepend_bt_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
 {
    Testitem *ti;
@@ -338,6 +351,12 @@ test_gengrid2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_in
    elm_box_pack_end(hbx, bt);
    evas_object_show(bt);
 
+   bt = elm_button_add(win);
+   elm_object_text_set(bt, "Delete");
+   evas_object_smart_callback_add(bt, "clicked", _delete_bt_clicked, grid);
+   elm_box_pack_end(hbx, bt);
+   evas_object_show(bt);
+
    bt = elm_spinner_add(win);
    elm_spinner_min_max_set(bt, 10, 1024);
    elm_spinner_value_set(bt, 150);
@@ -362,4 +381,76 @@ test_gengrid2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_in
    evas_object_resize(win, 600, 600);
    evas_object_show(win);
 }
+
+void
+test_gengrid3(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+   Evas_Object *win, *bg, *grid;
+   static Testitem ti[144];
+   int i, n;
+   char buf[PATH_MAX];
+
+   win = elm_win_add(NULL, "gengrid_group", ELM_WIN_BASIC);
+   elm_win_title_set(win, "GenGrid Group");
+   elm_win_autodel_set(win, EINA_TRUE);
+
+   bg = elm_bg_add(win);
+   evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   elm_win_resize_object_add(win, bg);
+   evas_object_show(bg);
+
+   grid = elm_gengrid_add(win);
+   elm_gengrid_item_size_set(grid, 150, 150);
+   //elm_gengrid_group_item_size_set(grid, 31, 31);
+   //elm_gengrid_horizontal_set(grid, EINA_TRUE);
+   elm_gengrid_horizontal_set(grid, EINA_FALSE);
+   elm_gengrid_multi_select_set(grid, EINA_TRUE);
+   elm_gengrid_reorder_mode_set(grid, EINA_TRUE);
+   evas_object_smart_callback_add(grid, "selected", grid_selected, NULL);
+   evas_object_smart_callback_add(grid, "clicked,double", grid_double_clicked, NULL);
+   evas_object_smart_callback_add(grid, "longpressed", grid_longpress, NULL);
+   evas_object_smart_callback_add(grid, "moved", grid_moved, NULL);
+   evas_object_smart_callback_add(grid, "drag,start,up", grid_drag_up, NULL);
+   evas_object_smart_callback_add(grid, "drag,start,right", grid_drag_right, NULL);
+   evas_object_smart_callback_add(grid, "drag,start,down", grid_drag_down, NULL);
+   evas_object_smart_callback_add(grid, "drag,start,left", grid_drag_left, NULL);
+   evas_object_smart_callback_add(grid, "drag,stop", grid_drag_stop, NULL);
+   evas_object_size_hint_weight_set(grid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+   gic.item_style = "default";
+   gic.func.label_get = grid_label_get;
+   gic.func.content_get = grid_content_get;
+   gic.func.state_get = grid_state_get;
+   gic.func.del = grid_del;
+
+   ggic.item_style = "group_index";
+   ggic.func.label_get = grid_label_get;
+   ggic.func.content_get = NULL;
+   ggic.func.state_get = NULL;
+   ggic.func.del = NULL;
+
+
+   n = 0;
+   for (i = 0; i < 12 * 12; i++)
+     {
+       snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), img[n]);
+       n = (n + 1) % 9;
+       ti[i].mode = i;
+       ti[i].path = eina_stringshare_add(buf);
+        if (i == 0 || i == 18 || i == 53 || i == 100)
+        //if (i == 0 || i == 18)
+          ti[i].item = elm_gengrid_item_append(grid, &ggic, &(ti[i]), grid_sel, NULL);
+        else
+          ti[i].item = elm_gengrid_item_append(grid, &gic, &(ti[i]), grid_sel, NULL);
+       if (!(i % 5))
+         elm_gengrid_item_selected_set(ti[i].item, EINA_TRUE);
+     }
+
+   evas_object_show(grid);
+   elm_win_resize_object_add(win, grid);
+
+   evas_object_resize(win, 600, 600);
+   evas_object_show(win);
+}
+
 #endif
index 8822b63..b2ece1b 100644 (file)
@@ -1348,7 +1348,7 @@ test_genlist8(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_in
 {
    Evas_Object *win, *bg, *gl, *bt[8], *bx, *bx2, *bx3;
    Elm_Genlist_Item *gli = NULL, *git = NULL;
-   int i, bt_count, bt_num;
+   int i, bt_num;
 
    win = elm_win_add(NULL, "genlist-group", ELM_WIN_BASIC);
    elm_win_title_set(win, "Genlist Group");
@@ -1460,7 +1460,6 @@ test_genlist8(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_in
    elm_box_pack_end(bx, bx3);
    evas_object_show(bx3);
 
-   bt_count = 0;
    for (i = 0; i < 500; i++)
      {
         if (!(i % 10))
@@ -1889,7 +1888,6 @@ test_genlist12(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_i
 {
    Evas_Object *win, *bg, *bx, *gl;
    int i;
-   Elm_Genlist_Item *gli;
 
    win = elm_win_add(NULL, "genlist-textblock", ELM_WIN_BASIC);
    elm_win_title_set(win, "Genlist Textblock");
@@ -1920,12 +1918,12 @@ test_genlist12(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_i
 
    for (i = 0; i < 1000; i++)
      {
-        gli = elm_genlist_item_append(gl, &itc1,
-                                      (void *)(long)i/* item data */,
-                                      NULL/* parent */,
-                                      ELM_GENLIST_ITEM_NONE,
-                                      gl_sel/* func */,
-                                      (void *)(long)(i * 10)/* func data */);
+        elm_genlist_item_append(gl, &itc1,
+                                (void *)(long)i/* item data */,
+                                NULL/* parent */,
+                                ELM_GENLIST_ITEM_NONE,
+                                gl_sel/* func */,
+                                (void *)(long)(i * 10)/* func data */);
      }
 
    evas_object_resize(win, 400, 500);
index a7a938b..2c72a97 100644 (file)
@@ -202,7 +202,7 @@ test_index2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
 
    win = elm_win_add(NULL, "sorted-index-list", ELM_WIN_BASIC);
    elm_win_title_set(win, "Sorted Index and List");
-   evas_object_smart_callback_add(win, "delete-request", test_index2_del, gui);
+   evas_object_smart_callback_add(win, "delete,request", test_index2_del, gui);
    elm_win_autodel_set(win, EINA_TRUE);
 
    bg = elm_bg_add(win);
diff --git a/src/bin/test_multibuttonentry.c b/src/bin/test_multibuttonentry.c
new file mode 100644 (file)
index 0000000..b8d5604
--- /dev/null
@@ -0,0 +1,232 @@
+#include <Elementary.h>
+#ifdef HAVE_CONFIG_H
+# include "elementary_config.h"
+#endif
+#ifndef ELM_LIB_QUICKLAUNCH
+
+static void
+_item_selected_cb(void *data __UNUSED__,
+                  Evas_Object *obj __UNUSED__,
+                  void *event_info)
+{
+   Elm_Multibuttonentry_Item *item = (Elm_Multibuttonentry_Item *)event_info;
+   printf("selected item = %s\n", elm_multibuttonentry_item_label_get(item));
+}
+
+// "item,added" smart callback of multibuttonentry.
+static void
+_item_added_cb(void *data __UNUSED__,
+               Evas_Object *obj __UNUSED__,
+               void *event_info)
+{
+   Elm_Multibuttonentry_Item *item = (Elm_Multibuttonentry_Item *)event_info;
+   printf("\n added item = %s\n", elm_multibuttonentry_item_label_get(item));
+}
+
+// "item,deleted" smart callback
+static void
+_item_deleted_cb(void *data __UNUSED__,
+                 Evas_Object *obj __UNUSED__,
+                 void *event_info __UNUSED__)
+{
+   printf("deleted item\n");
+}
+
+// "item,clicked" smart callback
+static void
+_item_clicked_cb(void *data __UNUSED__,
+                 Evas_Object *obj __UNUSED__,
+                 void *event_info )
+{
+   Elm_Multibuttonentry_Item *item = (Elm_Multibuttonentry_Item *)event_info;
+   printf("clicked item = %s\n", elm_multibuttonentry_item_label_get(item));
+}
+
+static void
+_mbe_clicked_cb(void *data __UNUSED__,
+                Evas_Object *obj,
+                void *event_info __UNUSED__ )
+{
+   //Unset the multibuttonentry to contracted mode of single line
+   elm_multibuttonentry_contracted_state_set(obj, 0);
+   printf("A multibuttonentry is clicked!\n");
+   Evas_Object *entry;
+   entry = elm_multibuttonentry_entry_get(obj);
+   if (!entry)
+     {
+        printf("%s entry is NULL\n", __func__);
+     }
+
+   Evas_Coord x, y, w, h;
+   Evas_Coord mbe_x, mbe_y, mbe_w, mbe_h;
+   evas_object_geometry_get(obj, &mbe_x, &mbe_y, &mbe_w, &mbe_h);
+   evas_object_geometry_get(entry, &x, &y, &w, &h);
+   printf("%s mbe x :%d y:%d w :%d h:%d\n", __func__, mbe_x, mbe_y, mbe_w, mbe_h);
+   printf("%s wd->entry x :%d y:%d w :%d h:%d\n", __func__, x, y, w, h);
+}
+
+static void
+_mbe_unfocused_cb(void *data __UNUSED__,
+                  Evas_Object *obj,
+                  void *event_info __UNUSED__ )
+{
+   //Set the multibuttonentry to contracted mode of single line
+   elm_multibuttonentry_contracted_state_set(obj, 1);
+   printf("multibuttonentry unfocused!\n");
+}
+
+static void
+_mbe_focused_cb(void *data __UNUSED__,
+                Evas_Object *obj __UNUSED__,
+                void *event_info __UNUSED__ )
+{
+   printf("multibuttonentry focused!\n");
+}
+
+// "expanded" smart callback
+static void
+_expanded_cb(void *data __UNUSED__,
+             Evas_Object *obj __UNUSED__,
+             void *event_info __UNUSED__)
+{
+   printf("expanded!\n");
+}
+
+// "contracted" smart callback
+static void
+_shrank_cb(void *data __UNUSED__,
+           Evas_Object *obj __UNUSED__,
+           void *event_info __UNUSED__)
+{
+   printf("shrank!\n");
+}
+
+// "contracted,state,changed" smart callback
+static void
+_shrink_state_changed_cb(void *data __UNUSED__,
+                         Evas_Object *obj __UNUSED__,
+                         void *event_info __UNUSED__)
+{
+   printf("contracted state changed! \n");
+}
+
+// "item verified" confirm callback
+static Eina_Bool
+_item_filter_cb(Evas_Object *obj __UNUSED__,
+                const char* item_label,
+                void *item_data __UNUSED__,
+                void *data __UNUSED__)
+{
+   printf("%s, label: %s\n", __func__, item_label);
+
+   return EINA_TRUE;
+}
+
+static void
+_button_clicked_cb(void *data __UNUSED__,
+                   Evas_Object *obj __UNUSED__,
+                   void *event_info __UNUSED__)
+{
+   printf("%s button is clicked\n", __func__);
+}
+
+static Evas_Object*
+_add_multibuttonentry(Evas_Object *parent)
+{
+   Evas_Object *scr = NULL;
+   Evas_Object *mbe = NULL;
+   void *data = NULL;
+
+   scr = elm_scroller_add(parent);
+   elm_scroller_bounce_set(scr, EINA_FALSE, EINA_TRUE);
+   elm_scroller_policy_set(scr, ELM_SCROLLER_POLICY_OFF,ELM_SCROLLER_POLICY_AUTO);
+   evas_object_show(scr);
+
+   mbe = elm_multibuttonentry_add(parent);
+   elm_multibuttonentry_label_set(mbe, "To: ");
+   elm_multibuttonentry_guide_text_set(mbe, "Tap to add recipient");
+   evas_object_size_hint_weight_set(mbe, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(mbe, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_object_content_set(scr, mbe);
+
+   // Add item verify callback to Multibuttonentry
+   elm_multibuttonentry_item_verify_callback_set(mbe, _item_filter_cb, data);
+
+   // Add "item,selected","item,added", "item,deleted", "clicked", "unfocused",
+   // "expanded", "contracted" and "contracted,state,changed" smart callback
+   evas_object_smart_callback_add(mbe, "item,selected", _item_selected_cb, NULL);
+   evas_object_smart_callback_add(mbe, "item,added", _item_added_cb, NULL);
+   evas_object_smart_callback_add(mbe, "item,deleted", _item_deleted_cb, NULL);
+   evas_object_smart_callback_add(mbe, "item,clicked", _item_clicked_cb, NULL);
+
+   evas_object_smart_callback_add(mbe, "clicked", _mbe_clicked_cb, NULL);
+   evas_object_smart_callback_add(mbe, "focused", _mbe_focused_cb, NULL);
+   evas_object_smart_callback_add(mbe, "unfocused", _mbe_unfocused_cb, NULL);
+
+   evas_object_smart_callback_add(mbe, "expanded", _expanded_cb, NULL);
+   evas_object_smart_callback_add(mbe, "shrank", _shrank_cb, NULL);
+   evas_object_smart_callback_add(mbe, "shrink,state,changed", _shrink_state_changed_cb, NULL);
+
+   evas_object_resize(mbe, 220, 300);
+   elm_object_focus_set(mbe, EINA_TRUE);
+
+   return scr;
+}
+
+static Evas_Object*
+_add_buttons(Evas_Object *parent)
+{
+   Evas_Object *bx = NULL;
+   Evas_Object *btn;
+
+   bx = elm_box_add(parent);
+   elm_box_horizontal_set(bx, EINA_TRUE);
+   elm_box_homogeneous_set(bx, EINA_TRUE);
+
+   btn = elm_button_add(parent);
+   evas_object_smart_callback_add(btn, "clicked", _button_clicked_cb, NULL);
+   elm_object_text_set(btn, "click");
+   evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, 0.0);
+   evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_box_pack_end(bx, btn);
+   evas_object_show(btn);
+
+   return bx;
+}
+
+void
+test_multibuttonentry(void *data __UNUSED__,
+                      Evas_Object *obj __UNUSED__,
+                      void *event_info __UNUSED__)
+{
+   Evas_Object *win, *bg, *sc, *bx;
+   Evas_Object *ly;
+   char buf[PATH_MAX];
+
+   win = elm_win_add(NULL, "Multibuttonentry", ELM_WIN_BASIC);
+   elm_win_title_set(win, "Multibuttonentry");
+   elm_win_autodel_set(win, EINA_TRUE);
+
+   bg = elm_bg_add(win);
+   elm_win_resize_object_add(win, bg);
+   evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_show(bg);
+
+   ly = elm_layout_add(win);
+   snprintf(buf, sizeof(buf), "%s/objects/multibuttonentry.edj", elm_app_data_dir_get());
+   elm_layout_file_set(ly, buf, "multibuttonentry_test");
+   evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   elm_win_resize_object_add(win, ly);
+   evas_object_show(ly);
+
+   sc = _add_multibuttonentry(ly);
+   elm_object_part_content_set(ly, "multibuttonentry", sc);
+
+   bx = _add_buttons(ly);
+   elm_object_part_content_set(ly, "box", bx);
+
+   evas_object_resize(win, 320, 480);
+   evas_object_show(win);
+   elm_object_focus_set(sc, EINA_TRUE);
+}
+#endif
index 57d4664..4d53810 100644 (file)
@@ -46,20 +46,32 @@ _title_visible(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_i
 }
 
 void
+_promote(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+   elm_naviframe_item_promote(data);
+}
+
+void
 _page5(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
 {
-   Evas_Object *bt, *content, *nf = data;
+   Evas_Object *bt, *bt2, *content, *nf = data;
    Elm_Object_Item *it;
 
    bt = elm_button_add(nf);
    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
    elm_object_text_set(bt, "Prev");
 
+   bt2 = elm_button_add(nf);
+   evas_object_size_hint_align_set(bt2, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_object_text_set(bt2, "Page 1");
+   evas_object_smart_callback_add(bt2, "clicked", _promote,
+                                  evas_object_data_get(nf, "page1"));
+
    content = _content_new(nf, img5);
    it = elm_naviframe_item_insert_after(elm_naviframe_top_item_get(nf),
                                         "Page 5",
                                         bt,
-                                        NULL,
+                                        bt2,
                                         content,
                                         NULL);
 
@@ -92,12 +104,13 @@ _page4(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
                                 bt,
                                 content,
                                 NULL);
+
    ic = elm_icon_add(nf);
    snprintf(buf, sizeof(buf), "%s/images/logo_small.png",
             elm_app_data_dir_get());
    elm_icon_file_set(ic, buf, NULL);
    evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
-   elm_object_item_content_part_set(it, "icon", ic);
+   elm_object_item_part_content_set(it, "icon", ic);
    elm_naviframe_item_title_visible_set(it, EINA_FALSE);
    evas_object_smart_callback_add(content, "clicked", _title_visible, it);
 }
@@ -132,7 +145,7 @@ _page3(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
    elm_icon_file_set(ic, buf, NULL);
    evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
 
-   elm_object_item_content_part_set(it, "icon", ic);
+   elm_object_item_part_content_set(it, "icon", ic);
 }
 
 void
@@ -156,13 +169,14 @@ _page2(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
    content = _content_new(nf, img2);
 
    it = elm_naviframe_item_push(nf, "Page 2", NULL, bt, content,  NULL);
-   elm_object_item_text_part_set(it, "subtitle", "Here is sub-title part!");
+   elm_object_item_part_text_set(it, "subtitle", "Here is sub-title part!");
 }
 
 void
 test_naviframe(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
 {
    Evas_Object *win, *bg, *nf, *btn, *content;
+   Elm_Object_Item *it;
 
    win = elm_win_add(NULL, "naviframe", ELM_WIN_BASIC);
    elm_win_title_set(win, "Naviframe");
@@ -187,7 +201,8 @@ test_naviframe(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_i
    evas_object_show(btn);
 
    content = _content_new(nf, img1);
-   elm_naviframe_item_push(nf, "Page 1", NULL, btn, content, NULL);
+   it = elm_naviframe_item_push(nf, "Page 1", NULL, btn, content, NULL);
+   evas_object_data_set(nf, "page1", it);
 
    evas_object_resize(win, 400, 600);
    evas_object_show(win);
index dd42ff3..dcc7c58 100644 (file)
@@ -9,7 +9,7 @@ static Elm_Genlist_Item_Class itc;
 static void _bstatus(void *data, Evas_Object *obj, void *event_info);
 static void _tstatus(void *data, Evas_Object *obj, void *event_info);
 static char *_label_get(void *data, Evas_Object *obj, const char *source);
-static Evas_Object *_icon_get(void *data, Evas_Object *obj, const char *source);
+static Evas_Object *_content_get(void *data, Evas_Object *obj, const char *source);
 static Eina_Bool _state_get(void *data, Evas_Object *obj, const char *source);
 static void _item_del(void *data, Evas_Object *obj);
 static void _fill_list(Evas_Object *obj);
@@ -52,7 +52,7 @@ _label_get(void *data, Evas_Object *obj __UNUSED__, const char *source __UNUSED_
 }
 
 static Evas_Object *
-_icon_get(void *data, Evas_Object *obj, const char *source)
+_content_get(void *data, Evas_Object *obj, const char *source)
 {
    if (!strcmp(source, "elm.swallow.icon"))
      {
@@ -89,22 +89,14 @@ _fill_list(Evas_Object *obj)
    struct dirent *de;
    Eina_List *dirs = NULL, *l;
    char *real;
-   const char *home;
 
-#ifdef _WIN32
-   home = evil_homedir_get();
-#else
-   home = getenv("HOME");
-#endif
-   if (!home)
-     home = "./";
-   if (!(d = opendir(home))) return;
+   if (!(d = opendir(getenv("HOME")))) return;
    while ((de = readdir(d)))
      {
         char buff[PATH_MAX];
 
         if (de->d_name[0] == '.') continue;
-        snprintf(buff, sizeof(buff), "%s/%s", home, de->d_name);
+        snprintf(buff, sizeof(buff), "%s/%s", getenv("HOME"), de->d_name);
         if (!ecore_file_is_dir(buff)) continue;
         real = ecore_file_realpath(buff);
         dirs = eina_list_append(dirs, real);
@@ -207,7 +199,7 @@ test_panel(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
 
    itc.item_style = "default";
    itc.func.label_get = _label_get;
-   itc.func.icon_get = _icon_get;
+   itc.func.icon_get = _content_get;
    itc.func.state_get = _state_get;
    itc.func.del = _item_del;
 
index 32dfd47..aadf070 100644 (file)
@@ -8,7 +8,7 @@ void
 test_segment_control(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
 {
    Evas_Object *win, *bg, *ic, *ic1, *ic2, *ic3, *ic4, *ic5;
-   Elm_Segment_Item *it1, *it2, *it3, *it4, *it5;
+   Elm_Segment_Item *it;
 
    Evas_Object * in_layout;
    Evas_Object *segment1, *segment2, *segment3, *segment4;
@@ -46,19 +46,19 @@ test_segment_control(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *e
    evas_object_size_hint_aspect_set(ic1, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
 
    segment1 = elm_segment_control_add(win);
-   it1 = elm_segment_control_item_add(segment1, NULL, "Only Text");
-   it2 = elm_segment_control_item_add(segment1, ic, NULL);
-   elm_segment_control_item_selected_set(it2, EINA_TRUE);
-   it3 = elm_segment_control_item_add(segment1, ic1, "Text_Icon_test");
-   it4 = elm_segment_control_item_add(segment1, NULL, "Seg4");
-   it5 = elm_segment_control_item_add(segment1, NULL, "Seg5");
+   elm_segment_control_item_add(segment1, NULL, "Only Text");
+   it = elm_segment_control_item_add(segment1, ic, NULL);
+   elm_segment_control_item_selected_set(it, EINA_TRUE);
+   elm_segment_control_item_add(segment1, ic1, "Text_Icon_test");
+   elm_segment_control_item_add(segment1, NULL, "Seg4");
+   elm_segment_control_item_add(segment1, NULL, "Seg5");
 
    segment2 = elm_segment_control_add(win);
-   it1 = elm_segment_control_item_add(segment2, NULL, "SegmentItem");
-   it2 = elm_segment_control_item_add(segment2, NULL, "SegmentItem");
-   elm_segment_control_item_selected_set(it2, EINA_TRUE);
-   it3 = elm_segment_control_item_add(segment2, NULL, "SegmentControlItem");
-   it4 = elm_segment_control_item_add(segment2, NULL, "SegmentItem");
+   elm_segment_control_item_add(segment2, NULL, "SegmentItem");
+   it = elm_segment_control_item_add(segment2, NULL, "SegmentItem");
+   elm_segment_control_item_selected_set(it, EINA_TRUE);
+   elm_segment_control_item_add(segment2, NULL, "SegmentControlItem");
+   elm_segment_control_item_add(segment2, NULL, "SegmentItem");
 
    ic2 = elm_icon_add(in_layout);
    snprintf(buf3, sizeof(buf3), "%s/images/logo.png", elm_app_data_dir_get());
@@ -76,10 +76,10 @@ test_segment_control(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *e
    evas_object_size_hint_aspect_set(ic4, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
 
    segment3 = elm_segment_control_add(win);
-   it1 = elm_segment_control_item_add(segment3, ic2, NULL);
-   it2 = elm_segment_control_item_add(segment3, ic3, NULL);
-   elm_segment_control_item_selected_set(it2, EINA_TRUE);
-   it3 = elm_segment_control_item_add(segment3, ic4, NULL);
+   elm_segment_control_item_add(segment3, ic2, NULL);
+   it = elm_segment_control_item_add(segment3, ic3, NULL);
+   elm_segment_control_item_selected_set(it, EINA_TRUE);
+   elm_segment_control_item_add(segment3, ic4, NULL);
 
    ic5 = elm_icon_add(in_layout);
    snprintf(buf6, sizeof(buf6), "%s/images/logo.png", elm_app_data_dir_get());
@@ -87,10 +87,10 @@ test_segment_control(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *e
    evas_object_size_hint_aspect_set(ic5, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
 
    segment4 = elm_segment_control_add(win);
-   it1 = elm_segment_control_item_add(segment4, NULL, "Disabled");
-   it2 = elm_segment_control_item_add(segment4, ic5, "Disabled");
-   elm_segment_control_item_selected_set(it2, EINA_TRUE);
-   it3 = elm_segment_control_item_add(segment4, NULL, "Disabled");
+   elm_segment_control_item_add(segment4, NULL, "Disabled");
+   it = elm_segment_control_item_add(segment4, ic5, "Disabled");
+   elm_segment_control_item_selected_set(it, EINA_TRUE);
+   elm_segment_control_item_add(segment4, NULL, "Disabled");
    elm_object_disabled_set(segment4, EINA_TRUE);
 
    elm_object_part_content_set(in_layout, "segment1", segment1);
index d5acd7d..e66743b 100644 (file)
@@ -475,11 +475,17 @@ test_tooltip(void *data       __UNUSED__,
 
    lst = elm_list_add(win);
    li = elm_list_item_append(lst, "Hello", NULL, NULL, NULL, NULL);
-   elm_list_item_tooltip_text_set(li, "Something useful here?");
+   elm_list_item_tooltip_content_cb_set(li, _tt_item_label, NULL, NULL);
+   elm_list_item_tooltip_size_restrict_disable(li, EINA_TRUE);
    li = elm_list_item_append(lst, "Icon Tooltip", NULL, NULL, NULL, NULL);
    elm_list_item_tooltip_content_cb_set(li, _tt_item_icon, NULL, NULL);
    li = elm_list_item_append(lst, "Big Icon Tooltip", NULL, NULL, NULL, NULL);
    elm_list_item_tooltip_content_cb_set(li, _tt_item_icon2, NULL, NULL);
+   elm_list_item_tooltip_style_set(li, "transparent");
+   elm_list_item_tooltip_size_restrict_disable(li, EINA_TRUE);
+   li = elm_list_item_append(lst, "Insanely Big Icon Tooltip", NULL, NULL, NULL, NULL);
+   elm_list_item_tooltip_content_cb_set(li, _tt_item_icon3, NULL, NULL);
+   elm_list_item_tooltip_style_set(li, "transparent");
    elm_list_item_tooltip_size_restrict_disable(li, EINA_TRUE);
    evas_object_size_hint_weight_set(lst, EVAS_HINT_EXPAND,
                                     EVAS_HINT_EXPAND);
index 1eb490b..9520c2b 100644 (file)
@@ -29,19 +29,21 @@ pkg_LTLIBRARIES = module.la
 module_la_SOURCES = private.h \
 modules.inc \
 elm.c \
+elm_actionslider.c \
 elm_anchorblock.c \
 elm_anchorview.c \
 elm_bubble.c \
 elm_button.c \
+elm_calendar.c \
 elm_check.c \
 elm_clock.c \
-elm_colorpalette.c\
-elm_calendar.c \
+elm_colorpalette.c \
 elm_datefield.c \
 elm_entry.c \
 elm_fileselector.c \
 elm_fileselector_button.c \
 elm_fileselector_entry.c \
+elm_frame.c \
 elm_gengrid.c \
 elm_genlist.c \
 elm_hoversel.c \
@@ -51,8 +53,6 @@ elm_label.c \
 elm_list.c \
 elm_map.c \
 elm_multibuttonentry.c \
-elm_navigationbar.c \
-elm_navigationbar_ex.c \
 elm_nocontents.c \
 elm_notify.c \
 elm_page_control.c \
@@ -69,7 +69,9 @@ elm_slideshow.c \
 elm_spinner.c \
 elm_thumb.c \
 elm_toggle.c \
-elm_toolbar.c
+elm_toolbar.c \
+elm_video.c \
+elm_web.c
 
 module_la_LIBADD = $(top_builddir)/src/lib/libelementary.la
 module_la_LDFLAGS = -no-undefined -module -avoid-version -shared -fPIC
index 7f5193a..185ec3b 100644 (file)
@@ -144,7 +144,7 @@ external_signals_proxy(Evas_Object *obj, Evas_Object *edje, const char *part_nam
    ctxt = malloc(sizeof(Elm_External_Signals_Proxy_Context) * total);
    if (!ctxt) return;
    evas_object_event_callback_add
-     (obj, EVAS_CALLBACK_DEL, _external_signal_proxy_free_cb, ctxt);
+     (obj, EVAS_CALLBACK_FREE, _external_signal_proxy_free_cb, ctxt);
 
    for (; cls_count > 0; cls_count--,  cls_descs++, ctxt++)
      {
index 4868294..ee43e07 100644 (file)
@@ -61,7 +61,7 @@ external_bubble_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_Ex
             Evas_Object *content = \
                    external_common_param_edje_object_get(obj, param);
             if ((strcmp(param->s, "")) && (!content)) return EINA_FALSE;
-            elm_bubble_content_set(obj, content);
+            elm_object_content_set(obj, content);
             return EINA_TRUE;
          }
      }
@@ -137,8 +137,10 @@ external_bubble_params_parse(void *data __UNUSED__, Evas_Object *obj, const Eina
 static Evas_Object *external_bubble_content_get(void *data __UNUSED__,
                const Evas_Object *obj __UNUSED__, const char *content __UNUSED__)
 {
-       ERR("No content.");
-       return NULL;
+   if (!strcmp(content, "content"))
+     return elm_object_content_get(obj);
+   ERR("unknown content '%s'", content);
+   return NULL;
 }
 
 static void
index 98da9ca..c741956 100644 (file)
@@ -13,7 +13,9 @@ typedef struct _Elm_Params_Calendar
 } Elm_Params_Calendar;
 
 static void
-external_calendar_state_set(void *data __UNUSED__, Evas_Object *obj, const void *from_params, const void *to_params, float pos __UNUSED__)
+external_calendar_state_set(void *data __UNUSED__, Evas_Object *obj,
+                            const void *from_params, const void *to_params,
+                            float pos __UNUSED__)
 {
    const Elm_Params_Calendar *p;
    int min,max;
@@ -23,27 +25,28 @@ external_calendar_state_set(void *data __UNUSED__, Evas_Object *obj, const void
    else return;
 
    if (p->year_min)
-    {
-      elm_calendar_min_max_year_get(obj, NULL, &max);
-      elm_calendar_min_max_year_set(obj, p->year_min, max);
-    }
+     {
+        elm_calendar_min_max_year_get(obj, NULL, &max);
+        elm_calendar_min_max_year_set(obj, p->year_min, max);
+     }
    if (p->year_max)
-    {
-      elm_calendar_min_max_year_get(obj, &min, NULL);
-      elm_calendar_min_max_year_set(obj, min, p->year_max);
-    }
+     {
+        elm_calendar_min_max_year_get(obj, &min, NULL);
+        elm_calendar_min_max_year_set(obj, min, p->year_max);
+     }
    if (p->sel_exists)
-      elm_calendar_day_selection_enabled_set(obj, p->sel_enable);
+     elm_calendar_day_selection_enabled_set(obj, p->sel_enable);
    if (p->weekday_color)
-      elm_calendar_text_weekday_color_set(obj,p->weekday_color);
+     elm_calendar_text_weekday_color_set(obj,p->weekday_color);
    if (p->saturday_color)
-      elm_calendar_text_weekday_color_set(obj,p->saturday_color);
+     elm_calendar_text_weekday_color_set(obj,p->saturday_color);
    if (p->sunday_color)
-      elm_calendar_text_weekday_color_set(obj,p->sunday_color);
+     elm_calendar_text_weekday_color_set(obj,p->sunday_color);
 }
 
 static Eina_Bool
-external_calendar_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_External_Param *param)
+external_calendar_param_set(void *data __UNUSED__, Evas_Object *obj,
+                            const Edje_External_Param *param)
 {
    int min,max;
 
@@ -105,9 +108,10 @@ external_calendar_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_
 }
 
 static Eina_Bool
-external_calendar_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_External_Param *param)
+external_calendar_param_get(void *data __UNUSED__, const Evas_Object *obj,
+                            Edje_External_Param *param)
 {
-   int min,max;
+   int min, max;
 
    if (!strcmp(param->name, "year_min"))
      {
@@ -165,7 +169,9 @@ external_calendar_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_
 }
 
 static void *
-external_calendar_params_parse(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const Eina_List *params)
+external_calendar_params_parse(void *data __UNUSED__,
+                               Evas_Object *obj __UNUSED__,
+                               const Eina_List *params)
 {
    Elm_Params_Calendar *mem;
    Edje_External_Param *param;
@@ -177,36 +183,38 @@ external_calendar_params_parse(void *data __UNUSED__, Evas_Object *obj __UNUSED_
 
    EINA_LIST_FOREACH(params, l, param)
      {
-       if (!strcmp(param->name, "year_min"))
-          mem->year_min = param->i;
+        if (!strcmp(param->name, "year_min"))
+         mem->year_min = param->i;
 
        else if(!strcmp(param->name, "year_max"))
-           mem->year_max = param->i;
+          mem->year_max = param->i;
 
        else if (!strcmp(param->name, "sel_enable"))
           {
-          mem->sel_enable = param->i;
-          mem->sel_exists = EINA_TRUE;
+            mem->sel_enable = param->i;
+            mem->sel_exists = EINA_TRUE;
           }
 
-       else if (!strcmp(param->name, "weekday_color"))
-          mem->weekday_color = param->i;
+        else if (!strcmp(param->name, "weekday_color"))
+          mem->weekday_color = param->i;
 
-       else if (!strcmp(param->name, "saturday_color"))
-          mem->saturday_color = param->i;
+        else if (!strcmp(param->name, "saturday_color"))
+          mem->saturday_color = param->i;
 
        else if (!strcmp(param->name, "sunday_color"))
-          mem->sunday_color = param->i;
+          mem->sunday_color = param->i;
      }
 
    return mem;
 }
 
-static Evas_Object *external_calendar_content_get(void *data __UNUSED__,
-               const Evas_Object *obj __UNUSED__, const char *content __UNUSED__)
+static Evas_Object *
+external_calendar_content_get(void *data __UNUSED__,
+                              const Evas_Object *obj __UNUSED__,
+                              const char *content __UNUSED__)
 {
-       ERR("No content.");
-       return NULL;
+   ERR("No content.");
+   return NULL;
 }
 
 static void
index b1dabb5..1076b75 100644 (file)
@@ -1,14 +1,11 @@
-
-
 #include "private.h"
 
 typedef struct _Elm_Params_colorpalette
 {
    unsigned int row, col;
    Elm_Colorpalette_Color *color;
-   char *color_set ;
-   int color_num ;
-
+   char *color_set;
+   int color_num;
 } Elm_Params_colorpalette;
 
 static void
@@ -18,10 +15,10 @@ external_colorpalette_state_set(void *data __UNUSED__, Evas_Object *obj, const v
    if (to_params) p = to_params;
    else if (from_params) p = from_params;
    else return;
-   if((p->row > 0)&&( p->col > 0))
-          elm_colorpalette_row_column_set(obj,p->row,p->col) ;
-   if(p->color_num)
-   elm_colorpalette_color_set(obj,p->color_num, p->color) ;
+   if ((p->row > 0)&&( p->col > 0))
+     elm_colorpalette_row_column_set(obj, p->row, p->col);
+   if (p->color_num)
+     elm_colorpalette_color_set(obj, p->color_num, p->color);
 }
 
 static Eina_Bool
@@ -30,27 +27,27 @@ external_colorpalette_param_set(void *data __UNUSED__, Evas_Object *obj __UNUSED
    if (!strcmp(param->name, "row"))
      {
        if (param->type == EDJE_EXTERNAL_PARAM_TYPE_INT)
-         {
-               //No EAPI for row set
-            return EINA_FALSE;
-         }
+          {
+             //No EAPI for row set
+             return EINA_FALSE;
+          }
      }
    else if (!strcmp(param->name, "col"))
      {
-       if (param->type == EDJE_EXTERNAL_PARAM_TYPE_INT)
-         {
-               //No EAPI for column set
-               return EINA_FALSE;
-         }
+        if (param->type == EDJE_EXTERNAL_PARAM_TYPE_INT)
+          {
+             //No EAPI for column set
+             return EINA_FALSE;
+          }
      }
    else if (!strcmp(param->name,"color_num"))
      {
-       if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
-         {
-               //No EAPI for colour_number set
-               return EINA_FALSE;
-         }
-        }
+       if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
+         {
+            //No EAPI for colour_number set
+            return EINA_FALSE;
+         }
+     }
    ERR("unknown parameter '%s' of type '%s'",
        param->name, edje_external_param_type_str(param->type));
 
@@ -60,8 +57,8 @@ external_colorpalette_param_set(void *data __UNUSED__, Evas_Object *obj __UNUSED
 static Eina_Bool
 external_colorpalette_param_get(void *data __UNUSED__, const Evas_Object *obj __UNUSED__, Edje_External_Param *param __UNUSED__)
 {
-       return EINA_FALSE;
-   //FIX ME:getter functions not provided
+   //FIXME:getter functions not provided
+   return EINA_FALSE;
 }
 
 static void *
@@ -70,78 +67,79 @@ external_colorpalette_params_parse(void *data __UNUSED__, Evas_Object *obj __UNU
    Elm_Params_colorpalette *mem;
    Edje_External_Param *param;
    const Eina_List *l;
-   int k,m,ll ;
+   int k,m,ll;
    k = m = ll = 0;
-   char test[5] ;
+   char test[5];
    int d = 0;
-   char *s = NULL ;
+   char *s = NULL;
    mem = calloc(1, sizeof(Elm_Params_colorpalette));
    if (!mem)
      return NULL;
 
    EINA_LIST_FOREACH(params, l, param)
      {
-        if (!strcmp(param->name, "row"))
-          {
-             mem->row = param->i;
-          }
+       if (!strcmp(param->name, "row"))
+         {
+            mem->row = param->i;
+         }
        else if (!strcmp(param->name, "col"))
-            {
-               mem->col = param->i;
-            }
-          else if (!strcmp(param->name, "color_num"))
-            {
-               mem->color_num = param->i ;
-            }
-
-          else if (!strcmp(param->name, "color_set"))
          {
-           mem->color = (Elm_Colorpalette_Color*) calloc (mem->color_num, sizeof(Elm_Colorpalette_Color));
+            mem->col = param->i;
+         }
+       else if (!strcmp(param->name, "color_num"))
+         {
+            mem->color_num = param->i;
+         }
+       else if (!strcmp(param->name, "color_set"))
+         {
+           mem->color = calloc(mem->color_num, sizeof(Elm_Colorpalette_Color));
            s = (char*)param->i;
-           while(k <(mem->color_num) && (ll <= (int)strlen(s)))
+           while (k < (mem->color_num) && (ll <= (int)strlen(s)))
              {
-                  if(d == 0)
-                   {
-                     while(s[ll]!=':')
-                           test[m++] = s[ll++];
-                     test[m]= 0 ;
-                     ll++ ;
-                     m = 0 ;
-                     mem->color[k].r = atoi(test) ;
-                     d++ ;
-                   }
-                  if(d == 1)
-                   {
-                    while(s[ll]!=':')
-                          test[m++] = s[ll++];
-                    test[m]= 0 ;
-                    ll++ ;
-                     m = 0 ;
-                     mem->color[k].g = atoi(test) ;
-                     d++ ;
-                   }
-                  if(d == 2)
-                   {
-                     while(s[ll]!='/' &&  m<3)
-                           test[m++] = s[ll++];
-                     test[m]= 0 ;
-                     ll++ ;
-                      m = 0 ;
-                      mem->color[k].b = atoi(test) ;
-                      d = 0 ;
-                   }
-                }
+                if (d == 0)
+                  {
+                     while(s[ll]!=':')
+                       test[m++] = s[ll++];
+                     test[m] = 0;
+                     ll++;
+                     m = 0;
+                     mem->color[k].r = atoi(test);
+                     d++;
+                  }
+                if (d == 1)
+                  {
+                     while(s[ll]!=':')
+                       test[m++] = s[ll++];
+                     test[m] = 0;
+                     ll++;
+                     m = 0;
+                     mem->color[k].g = atoi(test);
+                     d++;
+                  }
+                if (d == 2)
+                  {
+                     while(s[ll]!='/' &&  m<3)
+                       test[m++] = s[ll++];
+                     test[m] = 0;
+                    ll++;
+                     m = 0;
+                     mem->color[k].b = atoi(test);
+                     d = 0;
+                  }
+             }
            k++;
          }
-       }
-    return mem;
+     }
+   return mem;
 }
 
-static Evas_Object *external_colorpalette_content_get(void *data __UNUSED__,
-               const Evas_Object *obj __UNUSED__, const char *content __UNUSED__)
+static Evas_Object *
+external_colorpalette_content_get(void *data __UNUSED__,
+                                  const Evas_Object *obj __UNUSED__,
+                                  const char *content __UNUSED__)
 {
-       ERR("No content.");
-       return NULL;
+   ERR("No content.");
+   return NULL;
 }
 
 static void
@@ -151,7 +149,7 @@ external_colorpalette_params_free(void *params)
    if (mem->color)
      free(mem->color);
    if (mem->color_set)
-     free(mem->color_set) ;
+     free(mem->color_set);
    free(params);
 }
 
index 05fcea1..7998f81 100644 (file)
@@ -25,8 +25,8 @@ typedef struct _Elm_Params_Entry
 
 #define CHOICE_GET(CHOICES, STR)                \
   unsigned int i;                               \
-  for (i = 0; i < sizeof(CHOICES)/sizeof(CHOICES[0]); i++)         \
-    if (strcmp(STR, CHOICES[i]) == 0)           \
+  for (i = 0; i < sizeof(CHOICES)/sizeof (CHOICES)[0]; i++)         \
+    if (strcmp((STR), (CHOICES)[i]) == 0)           \
       return i
 
 
index e93e121..3bd7eb5 100644 (file)
@@ -5,7 +5,7 @@
 typedef struct _Elm_Params_Genlist
 {
    Elm_Params base;
-   const char *horizontal_mode;
+   const char *horizontal;
    Eina_Bool multi:1;
    Eina_Bool multi_exists:1;
    Eina_Bool always_select:1;
@@ -22,18 +22,18 @@ typedef struct _Elm_Params_Genlist
    Eina_Bool v_bounce_exists:1;
 } Elm_Params_Genlist;
 
-static const char* list_horizontal_mode_choices[] = {"compress", "scroll", "limit", "expand", NULL};
+static const char* list_horizontal_choices[] = {"compress", "scroll", "limit", "expand", NULL};
 
 static Elm_List_Mode
-_list_horizontal_mode_setting_get(const char *horizontal_mode_str)
+_list_horizontal_setting_get(const char *horizontal_str)
 {
    unsigned int i;
 
-   assert(sizeof(list_horizontal_mode_choices)/sizeof(list_horizontal_mode_choices[0]) == ELM_LIST_LAST + 1);
+   assert(sizeof(list_horizontal_choices)/sizeof(list_horizontal_choices[0]) == ELM_LIST_LAST + 1);
 
    for (i = 0; i < ELM_LIST_LAST; i++)
      {
-       if (!strcmp(horizontal_mode_str, list_horizontal_mode_choices[i]))
+       if (!strcmp(horizontal_str, list_horizontal_choices[i]))
          return i;
      }
    return ELM_LIST_LAST;
@@ -48,9 +48,9 @@ external_genlist_state_set(void *data __UNUSED__, Evas_Object *obj, const void *
    else if (from_params) p = from_params;
    else return;
 
-   if (p->horizontal_mode)
+   if (p->horizontal)
      {
-       Elm_List_Mode set = _list_horizontal_mode_setting_get(p->horizontal_mode);
+       Elm_List_Mode set = _list_horizontal_setting_get(p->horizontal);
 
        if (set != ELM_LIST_LAST)
           elm_genlist_horizontal_mode_set(obj, set);
@@ -86,7 +86,7 @@ external_genlist_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_E
      {
        if (param->type == EDJE_EXTERNAL_PARAM_TYPE_CHOICE)
          {
-            Elm_List_Mode set = _list_horizontal_mode_setting_get(param->s);
+            Elm_List_Mode set = _list_horizontal_setting_get(param->s);
 
             if (set == ELM_LIST_LAST) return EINA_FALSE;
             elm_genlist_horizontal_mode_set(obj, set);
@@ -172,7 +172,7 @@ external_genlist_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_E
             if (list_horizontal_mode_set == ELM_LIST_LAST)
               return EINA_FALSE;
 
-            param->s = list_horizontal_mode_choices[list_horizontal_mode_set];
+            param->s = list_horizontal_choices[list_horizontal_mode_set];
             return EINA_TRUE;
          }
      }
@@ -257,7 +257,7 @@ external_genlist_params_parse(void *data __UNUSED__, Evas_Object *obj __UNUSED__
    EINA_LIST_FOREACH(params, l, param)
      {
        if (!strcmp(param->name, "horizontal mode"))
-            mem->horizontal_mode = eina_stringshare_add(param->s);
+            mem->horizontal = eina_stringshare_add(param->s);
        else if (!strcmp(param->name, "multi select"))
          {
             mem->multi = !!param->i;
@@ -310,15 +310,15 @@ external_genlist_params_free(void *params)
 {
    Elm_Params_Genlist *mem = params;
 
-   if (mem->horizontal_mode)
-     eina_stringshare_del(mem->horizontal_mode);
+   if (mem->horizontal)
+     eina_stringshare_del(mem->horizontal);
 
    free(mem);
 }
 
 static Edje_External_Param_Info external_genlist_params[] = {
    DEFINE_EXTERNAL_COMMON_PARAMS,
-   EDJE_EXTERNAL_PARAM_INFO_CHOICE_FULL("horizontal mode", "scroll", list_horizontal_mode_choices),
+   EDJE_EXTERNAL_PARAM_INFO_CHOICE_FULL("horizontal mode", "scroll", list_horizontal_choices),
    EDJE_EXTERNAL_PARAM_INFO_BOOL("multi select"),
    EDJE_EXTERNAL_PARAM_INFO_BOOL("always select"),
    EDJE_EXTERNAL_PARAM_INFO_BOOL("no select"),
diff --git a/src/edje_externals/elm_navigationbar.c b/src/edje_externals/elm_navigationbar.c
deleted file mode 100644 (file)
index 16105b3..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-#include <assert.h>
-
-#include "private.h"
-
-typedef struct _Elm_Params_Navigationbar
-{
-   Eina_Bool disable_animation_exists:1;
-   Eina_Bool disable_animation:1;
-   Eina_Bool hidden_exists:1;
-   Eina_Bool hidden:1;
-} Elm_Params_Navigationbar;
-
-
-static void
-external_navigationbar_state_set(void *data __UNUSED__, Evas_Object *obj, const void *from_params, const void *to_params, float pos __UNUSED__)
-{
-   const Elm_Params_Navigationbar *p;
-
-   if (to_params) p = to_params;
-   else if (from_params) p = from_params;
-   else return;
-
-  if(p->disable_animation_exists) elm_navigationbar_animation_disabled_set(obj, p->disable_animation);
-  if(p->hidden_exists) elm_navigationbar_hidden_set(obj, p->hidden);
-}
-
-static Eina_Bool
-external_navigationbar_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_External_Param *param)
-{
-   if (!strcmp(param->name, "disable animation"))
-     {
-       if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
-         {
-            elm_navigationbar_animation_disabled_set(obj, param->i);
-            return EINA_TRUE;
-         }
-     }
-   else if (!strcmp(param->name, "hidden"))
-     {
-       if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
-         {
-            elm_navigationbar_hidden_set(obj, param->i);
-            return EINA_TRUE;
-         }
-     }
-   ERR("unknown parameter '%s' of type '%s'",
-       param->name, edje_external_param_type_str(param->type));
-
-   return EINA_FALSE;
-}
-
-static Eina_Bool
-external_navigationbar_param_get(void *data __UNUSED__, const Evas_Object *obj __UNUSED__, Edje_External_Param *param)
-{
-   ERR("unknown parameter '%s' of type '%s'",
-       param->name, edje_external_param_type_str(param->type));
-
-   return EINA_FALSE;
-}
-
-static void *
-external_navigationbar_params_parse(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const Eina_List *params)
-{
-   Elm_Params_Navigationbar *mem;
-   Edje_External_Param *param;
-   const Eina_List *l;
-
-   mem = calloc(1, sizeof(Elm_Params_Navigationbar));
-   if (!mem)
-     return NULL;
-
-   EINA_LIST_FOREACH(params, l, param)
-     {
-       if (!strcmp(param->name, "disable animation"))
-               {
-            mem->disable_animation = !!param->i;
-                 mem->disable_animation_exists = EINA_TRUE;
-               }
-       else if (!strcmp(param->name, "hidden"))
-         {
-            mem->hidden = !!param->i;
-            mem->hidden_exists = EINA_TRUE;
-         }
-     }
-
-   return mem;
-}
-
-static Evas_Object *external_navigationbar_content_get(void *data __UNUSED__,
-               const Evas_Object *obj __UNUSED__, const char *content __UNUSED__)
-{
-       ERR("so content");
-       return NULL;
-}
-
-static void
-external_navigationbar_params_free(void *params)
-{
-   Elm_Params_Navigationbar* mem = params;
-   free(mem);
-}
-
-static Edje_External_Param_Info external_navigationbar_params[] = {
-   EDJE_EXTERNAL_PARAM_INFO_BOOL("disable animation"),
-   EDJE_EXTERNAL_PARAM_INFO_BOOL("hidden"),
-   EDJE_EXTERNAL_PARAM_INFO_SENTINEL
-};
-
-DEFINE_EXTERNAL_ICON_ADD(navigationbar, "navigationbar");
-DEFINE_EXTERNAL_TYPE_SIMPLE(navigationbar, "Navigationbar");
diff --git a/src/edje_externals/elm_navigationbar_ex.c b/src/edje_externals/elm_navigationbar_ex.c
deleted file mode 100644 (file)
index 8aca09a..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-#include <assert.h>
-
-#include "private.h"
-
-typedef struct _Elm_Params_Navigationbar_ex
-{
-   Eina_Bool del_on_pop_exists:1;
-   Eina_Bool del_on_pop:1;
-} Elm_Params_Navigationbar_ex;
-
-
-static void
-external_navigationbar_ex_state_set(void *data __UNUSED__, Evas_Object *obj, const void *from_params, const void *to_params, float pos __UNUSED__)
-{
-   const Elm_Params_Navigationbar_ex *p;
-
-   if (to_params) p = to_params;
-   else if (from_params) p = from_params;
-   else return;
-
-  if(p->del_on_pop_exists) elm_navigationbar_ex_delete_on_pop_set(obj, p->del_on_pop);
-}
-
-static Eina_Bool
-external_navigationbar_ex_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_External_Param *param)
-{
-   if (!strcmp(param->name, "delete on pop"))
-     {
-       if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
-         {
-            elm_navigationbar_ex_delete_on_pop_set(obj, param->i);
-            return EINA_TRUE;
-         }
-     }
-   ERR("unknown parameter '%s' of type '%s'",
-       param->name, edje_external_param_type_str(param->type));
-
-   return EINA_FALSE;
-}
-
-static Eina_Bool
-external_navigationbar_ex_param_get(void *data __UNUSED__, const Evas_Object *obj __UNUSED__, Edje_External_Param *param)
-{
-   ERR("unknown parameter '%s' of type '%s'",
-       param->name, edje_external_param_type_str(param->type));
-
-   return EINA_FALSE;
-}
-
-static void *
-external_navigationbar_ex_params_parse(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const Eina_List *params)
-{
-   Elm_Params_Navigationbar_ex *mem;
-   Edje_External_Param *param;
-   const Eina_List *l;
-
-   mem = calloc(1, sizeof(Elm_Params_Navigationbar_ex));
-   if (!mem)
-     return NULL;
-
-   EINA_LIST_FOREACH(params, l, param)
-     {
-       if (!strcmp(param->name, "delete on pop"))
-               {
-            mem->del_on_pop = !!param->i;
-                 mem->del_on_pop_exists = EINA_TRUE;
-               }
-     }
-
-   return mem;
-}
-
-static Evas_Object *external_navigationbar_ex_content_get(void *data __UNUSED__,
-               const Evas_Object *obj __UNUSED__, const char *content __UNUSED__)
-{
-       ERR("so content");
-       return NULL;
-}
-
-static void
-external_navigationbar_ex_params_free(void *params)
-{
-   Elm_Params_Navigationbar_ex* mem = params;
-   free(mem);
-}
-
-static Edje_External_Param_Info external_navigationbar_ex_params[] = {
-   EDJE_EXTERNAL_PARAM_INFO_BOOL("delete on pop"),
-   EDJE_EXTERNAL_PARAM_INFO_SENTINEL
-};
-
-DEFINE_EXTERNAL_ICON_ADD(navigationbar_ex, "navigationbar_ex");
-DEFINE_EXTERNAL_TYPE_SIMPLE(navigationbar_ex, "Navigationbar_ex");
index 2efffa5..bfcab50 100644 (file)
@@ -32,7 +32,7 @@ external_toggle_state_set(void *data __UNUSED__, Evas_Object *obj, const void *f
      elm_object_part_text_set(obj, "off", p->off);
 
    if (p->state_exists)
-     elm_toggle_state_set(obj, p->state);
+     elm_check_state_set(obj, p->state);
 }
 
 static Eina_Bool
@@ -76,7 +76,7 @@ external_toggle_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_Ex
      {
        if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
          {
-            elm_toggle_state_set(obj, param->i);
+            elm_check_state_set(obj, param->i);
             return EINA_TRUE;
          }
      }
@@ -123,7 +123,7 @@ external_toggle_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_Ex
      {
        if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
          {
-            param->i = elm_toggle_state_get(obj);
+            param->i = elm_check_state_get(obj);
             return EINA_TRUE;
          }
      }
@@ -194,4 +194,21 @@ static Edje_External_Param_Info external_toggle_params[] = {
 };
 
 DEFINE_EXTERNAL_ICON_ADD(toggle, "toggle")
+#undef DEFINE_EXTERNAL_TYPE_SIMPLE
+#define DEFINE_EXTERNAL_TYPE_SIMPLE(type_name, name)    \
+static Evas_Object *                                \
+external_##type_name##_add(void *data __UNUSED__, Evas *evas __UNUSED__, Evas_Object *edje, const Eina_List *params __UNUSED__, const char *part_name) \
+{                                                                      \
+   Evas_Object *parent, *obj;                                          \
+   external_elm_init();                                                 \
+   parent = elm_widget_parent_widget_get(edje);                        \
+   if (!parent) parent = edje;                                         \
+   obj = elm_check_add(parent);                                \
+   elm_object_style_set(obj, "toggle"); \
+   external_signals_proxy(obj, edje, part_name);                       \
+   return obj;                                                         \
+}                                                                      \
+                                                                       \
+DEFINE_EXTERNAL_TYPE(type_name, name)
+
 DEFINE_EXTERNAL_TYPE_SIMPLE(toggle, "Toggle")
index d6590ec..bf9c7c4 100644 (file)
@@ -1,3 +1,4 @@
+DEFINE_TYPE(actionslider)
 DEFINE_TYPE(anchorblock)
 DEFINE_TYPE(anchorview)
 DEFINE_TYPE(bubble)
@@ -11,18 +12,17 @@ DEFINE_TYPE(entry)
 DEFINE_TYPE(fileselector)
 DEFINE_TYPE(fileselector_button)
 DEFINE_TYPE(fileselector_entry)
+DEFINE_TYPE(frame)
 DEFINE_TYPE(genlist)
 DEFINE_TYPE(gengrid)
 DEFINE_TYPE(hoversel)
-DEFINE_TYPE(index)
 DEFINE_TYPE(list)
 DEFINE_TYPE(map)
 DEFINE_TYPE(multibuttonentry)
-DEFINE_TYPE(navigationbar)
-DEFINE_TYPE(navigationbar_ex)
 DEFINE_TYPE(nocontents)
 DEFINE_TYPE(page_control)
 DEFINE_TYPE(pager)
+DEFINE_TYPE(panes)
 DEFINE_TYPE(photocam)
 DEFINE_TYPE(progressbar)
 DEFINE_TYPE(radio)
@@ -34,8 +34,10 @@ DEFINE_TYPE(thumb)
 DEFINE_TYPE(toggle)
 DEFINE_TYPE(toolbar)
 DEFINE_TYPE(notify)
-DEFINE_TYPE(panes)
 DEFINE_TYPE(label)
 DEFINE_TYPE(icon)
 DEFINE_TYPE(scroller)
 DEFINE_TYPE(segment_control)
+DEFINE_TYPE(index)
+DEFINE_TYPE(video)
+DEFINE_TYPE(web)
diff --git a/src/examples/animator_example_01.c b/src/examples/animator_example_01.c
deleted file mode 100644 (file)
index 04272ed..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-//Compile with:
-//gcc -g `pkg-config --cflags --libs elementary` animator_example_01.c -o animator_example_01
-
-#include <Elementary.h>
-#include <limits.h>
-#ifdef HAVE_CONFIG_H
-# include "elementary_config.h"
-#else
-# define __UNUSED__
-#endif
-
-static void
-on_done(void *data, Evas_Object *obj, void *event_info)
-{
-   elm_exit();
-}
-
-static void
-_op_cb(void *data, Elm_Animator *animator, double frame)
-{
-   evas_object_resize(data, 100 * frame, 100 * frame);
-   evas_object_move(data, 50 * frame, 50 * frame);
-   evas_object_color_set(data, 255 * frame, 0, 255 * (1 - frame), 255);
-}
-
-static void
-_end_cb(void *data)
-{
-   printf("Wow, you're very patient!\n");
-}
-
-static void
-_pause_resume(void *data, Evas_Object *obj, void *event_info)
-{
-   static Eina_Bool paused = EINA_FALSE;
-   if (!paused)
-     {
-        elm_animator_pause(data);
-        elm_button_label_set(obj, "Resume");
-        paused = EINA_TRUE;
-     }
-   else
-     {
-        elm_animator_resume(data);
-        elm_button_label_set(obj, "Pause");
-        paused = EINA_FALSE;
-     }
-}
-
-static void
-_stop(void *data, Evas_Object *obj, void *event_info)
-{
-   elm_animator_stop(data);
-}
-
-EAPI int
-elm_main(int argc, char **argv)
-{
-   Evas_Object *win, *bg, *button, *rectangle;
-   Elm_Animator *animator;
-
-   win = elm_win_add(NULL, "animator", ELM_WIN_BASIC);
-   elm_win_title_set(win, "Animator");
-   evas_object_smart_callback_add(win, "delete,request", on_done, NULL);
-
-   bg = elm_bg_add(win);
-   elm_win_resize_object_add(win, bg);
-   evas_object_resize(bg, 200, 200);
-   evas_object_show(bg);
-
-   rectangle = evas_object_rectangle_add(evas_object_evas_get(win));
-   evas_object_color_set(rectangle, 0, 0, 255, 255);
-   evas_object_show(rectangle);
-
-   animator = elm_animator_add(NULL);
-   elm_animator_duration_set(animator, 1);
-   elm_animator_auto_reverse_set(animator, EINA_TRUE);
-   elm_animator_repeat_set(animator, UINT_MAX);
-   elm_animator_curve_style_set(animator, ELM_ANIMATOR_CURVE_IN_OUT);
-   elm_animator_operation_callback_set(animator, _op_cb, rectangle);
-   elm_animator_completion_callback_set(animator, _end_cb, NULL);
-   elm_animator_animate(animator);
-
-   button = elm_button_add(win);
-   elm_button_label_set(button, "Pause");
-   evas_object_resize(button, 50, 30);
-   evas_object_move(button, 10, 210);
-   evas_object_smart_callback_add(button, "clicked", _pause_resume, animator);
-   evas_object_show(button);
-
-   button = elm_button_add(win);
-   elm_button_label_set(button, "Stop");
-   evas_object_resize(button, 50, 30);
-   evas_object_move(button, 70, 210);
-   evas_object_smart_callback_add(button, "clicked", _stop, animator);
-   evas_object_show(button);
-
-   evas_object_resize(win, 200, 250);
-   evas_object_show(win);
-
-   elm_run();
-
-   evas_object_del(rectangle);
-   elm_animator_del(animator);
-
-   return 0;
-}
-ELM_MAIN()
index b938634..52c713c 100644 (file)
@@ -9,7 +9,7 @@
 static void
 _ctxpopup_item_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
 {
-   printf("ctxpopup item selected: %s\n", elm_ctxpopup_item_label_get(event_info));
+   printf("ctxpopup item selected: %s\n", elm_object_item_text_get(event_info));
 }
 
 Elm_Object_Item *item_new(Evas_Object *ctxpopup, const char * label, const char *icon)
@@ -33,10 +33,10 @@ _list_item_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_in
    item_new(ctxpopup, "Save file", "file");
    item_new(ctxpopup, "Delete file", "delete");
    it = item_new(ctxpopup, "Navigate to folder", "folder");
-   elm_ctxpopup_item_disabled_set(it, EINA_TRUE);
+   elm_object_item_disabled_set(it, EINA_TRUE);
    item_new(ctxpopup, "Edit entry", "edit");
    it = item_new(ctxpopup, "Set date and time", "clock");
-   elm_ctxpopup_item_disabled_set(it, EINA_TRUE);
+   elm_object_item_disabled_set(it, EINA_TRUE);
 
    evas_pointer_canvas_xy_get(evas_object_evas_get(obj), &x, &y);
    evas_object_size_hint_max_set(ctxpopup, 240, 240);
@@ -61,7 +61,7 @@ _list_item_cb2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_i
    item_new(ctxpopup, NULL, "delete");
    item_new(ctxpopup, NULL, "folder");
    it = item_new(ctxpopup, NULL, "edit");
-   elm_ctxpopup_item_disabled_set(it, EINA_TRUE);
+   elm_object_item_disabled_set(it, EINA_TRUE);
    item_new(ctxpopup, NULL, "clock");
 
    evas_pointer_canvas_xy_get(evas_object_evas_get(obj), &x, &y);
index cdea766..a6a8bc9 100644 (file)
@@ -38,7 +38,7 @@ _unsel_cb(void        *data,
           Evas_Object *obj __UNUSED__,
           void        *event_info __UNUSED__)
 {
-   Elm_Flipselector_Item *it;
+   Elm_Object_Item *it;
    Evas_Object *fp = data;
 
    it = elm_flipselector_selected_item_get(fp);
@@ -50,7 +50,7 @@ _del_cb(void        *data,
           Evas_Object *obj __UNUSED__,
           void        *event_info __UNUSED__)
 {
-   Elm_Flipselector_Item *it;
+   Elm_Object_Item *it;
    Evas_Object *fp = data;
 
    it = elm_flipselector_selected_item_get(fp);
@@ -111,36 +111,36 @@ _on_keydown(void              *data,
 
    if (strcmp(ev->keyname, "f") == 0) /* print first item's label */
      {
-         Elm_Flipselector_Item *it;
+         Elm_Object_Item *it;
 
          it = elm_flipselector_first_item_get(fs);
 
          fprintf(stdout, "Flip selector's first item is: %s\n", it ?
-                 elm_flipselector_item_label_get(it) : "none");
+                 elm_object_item_text_get(it) : "none");
 
         return;
      }
 
    if (strcmp(ev->keyname, "l") == 0) /* print last item's label */
      {
-         Elm_Flipselector_Item *it;
+         Elm_Object_Item *it;
 
          it = elm_flipselector_last_item_get(fs);
 
          fprintf(stdout, "Flip selector's last item is: %s\n", it ?
-                 elm_flipselector_item_label_get(it) : "none");
+                 elm_object_item_text_get(it) : "none");
 
         return;
      }
 
    if (strcmp(ev->keyname, "s") == 0) /* print selected item's label */
      {
-         Elm_Flipselector_Item *it;
+         Elm_Object_Item *it;
 
          it = elm_flipselector_selected_item_get(fs);
 
          fprintf(stdout, "Flip selector's selected item is: %s\n", it ?
-                 elm_flipselector_item_label_get(it) : "none");
+                 elm_object_item_text_get(it) : "none");
 
         return;
      }
index 7d2f087..a59ec0f 100644 (file)
@@ -254,7 +254,7 @@ ELM_MAIN()
 @author Michael Bouchaud <michael.bouchaud@@gmail.com>
 @author Jonathan Atton (Watchwolf) <jonathan.atton@@gmail.com>
 @author Brian Wang <brian.wang.0721@@gmail.com>
-@author Mike Blumenkrantz (zmike) <mike@@zentific.com>
+@author Mike Blumenkrantz (discomfitor/zmike) <michael.blumenkrantz@@gmail.com>
 @author Samsung Electronics <tbd>
 @author Samsung SAIT <tbd>
 @author Brett Nash <nash@@nash.id.au>
@@ -284,13 +284,16 @@ ELM_MAIN()
 @author Shinwoo Kim <kimcinoo@@gmail.com>
 @author Govindaraju SM <govi.sm@@samsung.com> <govism@@gmail.com>
 @author Prince Kumar Dubey <prince.dubey@@samsung.com> <prince.dubey@@gmail.com>
-@author Sung W. Park <sungwoo@gmail.com>
-@author Thierry el Borgi <thierry@substantiel.fr>
-@author Shilpa Singh <shilpa.singh@samsung.com> <shilpasingh.o@gmail.com>
-@author Chanwook Jung <joey.jung@samsung.com>
-@author Hyoyoung Chang <hyoyoung.chang@samsung.com>
-@author Guillaume "Kuri" Friloux <guillaume.friloux@asp64.com>
-@author Kim Yunhan <spbear@gmail.com>
+@author Sung W. Park <sungwoo@@gmail.com>
+@author Thierry el Borgi <thierry@@substantiel.fr>
+@author Shilpa Singh <shilpa.singh@@samsung.com> <shilpasingh.o@@gmail.com>
+@author Chanwook Jung <joey.jung@@samsung.com>
+@author Hyoyoung Chang <hyoyoung.chang@@samsung.com>
+@author Guillaume "Kuri" Friloux <guillaume.friloux@@asp64.com>
+@author Kim Yunhan <spbear@@gmail.com>
+@author Bluezery <ohpowel@@gmail.com>
+@author Nicolas Aguirre <aguirre.nicolas@@gmail.com>
+@author Sanjeev BA <iamsanjeev@@gmail.com>
 
 Please contact <enlightenment-devel@lists.sourceforge.net> to get in
 contact with the developers and maintainers.
@@ -368,7 +371,7 @@ contact with the developers and maintainers.
 #include <Ecore_Evas.h>
 #include <Ecore_File.h>
 #include <Ecore_IMF.h>
-#include <Ecore_Con.h>
+@ELEMENTARY_ECORE_CON_INC@
 #include <Edje.h>
 
 #ifdef ELM_EDBUS
@@ -421,6 +424,8 @@ contact with the developers and maintainers.
 # define EAPI_MAIN EAPI
 #endif
 
+#define WILL_DEPRECATE /* API is deprecated in upstream EFL, will be deprecated in SLP soon */
+
 /* allow usage from c++ */
 #ifdef __cplusplus
 extern "C" {
@@ -599,7 +604,7 @@ extern "C" {
     */
    typedef Evas_Object *(*Elm_Tooltip_Item_Content_Cb) (void *data, Evas_Object *obj, Evas_Object *tooltip, void *item);
 
-   typedef Eina_Bool (*Elm_Event_Cb) (void *data, Evas_Object *obj, Evas_Object *src, Evas_Callback_Type type, void *event_info);
+   typedef Eina_Bool (*Elm_Event_Cb) (void *data, Evas_Object *obj, Evas_Object *src, Evas_Callback_Type type, void *event_info); /**< Function prototype definition for callbacks on input events happening on Elementary widgets. @a data will receive the user data pointer passed to elm_object_event_callback_add(). @a src will be a pointer to the widget on which the input event took place. @a type will get the type of this event and @a event_info, the struct with details on this event. */
 
 #ifndef ELM_LIB_QUICKLAUNCH
 #define ELM_MAIN() int main(int argc, char **argv) {elm_init(argc, argv); return elm_main(argc, argv);} /**< macro to be used after the elm_main() function */
@@ -1153,6 +1158,16 @@ extern "C" {
 #define elm_object_content_unset(obj) elm_object_part_content_unset((obj), NULL)
 
    /**
+    * Set the text to read out when in accessibility mode
+    *
+    * @param obj The object which is to be described
+    * @param txt The text that describes the widget to people with poor or no vision
+    *
+    * @ingroup General
+    */
+   EAPI void elm_object_access_info_set(Evas_Object *obj, const char *txt);
+
+   /**
     * Get the widget object's handle which contains a given item
     *
     * @param item The Elementary object item
@@ -1172,12 +1187,25 @@ extern "C" {
     * @param content The new content of the object item
     *
     * @note Elementary object items may have many contents
+    * @deprecated Use elm_object_item_part_content_set instead.
+    * @ingroup General
+    */
+   EINA_DEPRECATED EAPI void elm_object_item_content_part_set(Elm_Object_Item *it, const char *part, Evas_Object *content);
+
+   /**
+    * Set a content of an object item
+    *
+    * @param it The Elementary object item
+    * @param part The content part name to set (NULL for the default content)
+    * @param content The new content of the object item
+    *
+    * @note Elementary object items may have many contents
     *
     * @ingroup General
     */
-   EAPI void elm_object_item_content_part_set(Elm_Object_Item *it, const char *part, Evas_Object *content);
+   EAPI void elm_object_item_part_content_set(Elm_Object_Item *it, const char *part, Evas_Object *content);
 
-#define elm_object_item_content_set(it, content) elm_object_item_content_part_set((it), NULL, (content))
+#define elm_object_item_content_set(it, content) elm_object_item_part_content_set((it), NULL, (content))
 
    /**
     * Get a content of an object item
@@ -1187,12 +1215,37 @@ extern "C" {
     * @return content of the object item or NULL for any error
     *
     * @note Elementary object items may have many contents
-    *
+    * @deprecated Use elm_object_item_part_content_get instead.
     * @ingroup General
     */
    EAPI Evas_Object *elm_object_item_content_part_get(const Elm_Object_Item *it, const char *part);
 
-#define elm_object_item_content_get(it) elm_object_item_content_part_get((it), NULL)
+   /**
+    * Get a content of an object item
+    *
+    * @param it The Elementary object item
+    * @param part The content part name to unset (NULL for the default content)
+    * @return content of the object item or NULL for any error
+    *
+    * @note Elementary object items may have many contents
+    *
+    * @ingroup General
+    */
+   EAPI Evas_Object *elm_object_item_part_content_get(const Elm_Object_Item *it, const char *part);
+
+#define elm_object_item_content_get(it) elm_object_item_part_content_get((it), NULL)
+
+   /**
+    * Unset a content of an object item
+    *
+    * @param it The Elementary object item
+    * @param part The content part name to unset (NULL for the default content)
+    *
+    * @note Elementary object items may have many contents
+    * @deprecated Use elm_object_item_part_content_unset instead.
+    * @ingroup General
+    */
+   EINA_DEPRECATED EAPI Evas_Object *elm_object_item_content_part_unset(Elm_Object_Item *it, const char *part);
 
    /**
     * Unset a content of an object item
@@ -1204,9 +1257,22 @@ extern "C" {
     *
     * @ingroup General
     */
-   EAPI Evas_Object *elm_object_item_content_part_unset(Elm_Object_Item *it, const char *part);
+   EAPI Evas_Object *elm_object_item_part_content_unset(Elm_Object_Item *it, const char *part);
+
+#define elm_object_item_content_unset(it) elm_object_item_part_content_unset((it), NULL)
 
-#define elm_object_item_content_unset(it, content) elm_object_item_content_part_unset((it), (content))
+   /**
+    * Set a label of an object item
+    *
+    * @param it The Elementary object item
+    * @param part The text part name to set (NULL for the default label)
+    * @param label The new text of the label
+    *
+    * @note Elementary object items may have many labels
+    * @deprecated Use elm_object_item_part_text_set instead.
+    * @ingroup General
+    */
+   WILL_DEPRECATE  EAPI void elm_object_item_text_part_set(Elm_Object_Item *it, const char *part, const char *label);
 
    /**
     * Set a label of an object item
@@ -1219,9 +1285,9 @@ extern "C" {
     *
     * @ingroup General
     */
-   EAPI void elm_object_item_text_part_set(Elm_Object_Item *it, const char *part, const char *label);
+   EAPI void elm_object_item_part_text_set(Elm_Object_Item *it, const char *part, const char *label);
 
-#define elm_object_item_text_set(it, label) elm_object_item_text_part_set((it), NULL, (label))
+#define elm_object_item_text_set(it, label) elm_object_item_part_text_set((it), NULL, (label))
 
    /**
     * Get a label of an object item
@@ -1231,10 +1297,22 @@ extern "C" {
     * @return text of the label or NULL for any error
     *
     * @note Elementary object items may have many labels
+    * @deprecated Use elm_object_item_part_text_get instead.
+    * @ingroup General
+    */
+   WILL_DEPRECATE  EAPI const char *elm_object_item_text_part_get(const Elm_Object_Item *it, const char *part);
+   /**
+    * Get a label of an object item
+    *
+    * @param it The Elementary object item
+    * @param part The text part name to get (NULL for the default label)
+    * @return text of the label or NULL for any error
+    *
+    * @note Elementary object items may have many labels
     *
     * @ingroup General
     */
-   EAPI const char *elm_object_item_text_part_get(const Elm_Object_Item *it, const char *part);
+   EAPI const char *elm_object_item_part_text_get(const Elm_Object_Item *it, const char *part);
 
    /**
     * Set the text to read out when in accessibility mode
@@ -1256,18 +1334,7 @@ extern "C" {
     */
    EAPI void elm_object_item_access_info_set(Elm_Object_Item *it, const char *txt);
 
-
-#define elm_object_item_text_get(it) elm_object_item_text_part_get((it), NULL)
-
-   /**
-    * Set the text to read out when in accessibility mode
-    *
-    * @param obj The object which is to be described
-    * @param txt The text that describes the widget to people with poor or no vision
-    *
-    * @ingroup General
-    */
-   EAPI void elm_object_access_info_set(Evas_Object *obj, const char *txt);
+#define elm_object_item_text_get(it) elm_object_item_part_text_get((it), NULL)
 
    /**
     * Set the text to read out when in accessibility mode
@@ -1309,7 +1376,40 @@ extern "C" {
     * @param source The signal's source.
     * @ingroup General
     */
-   EAPI void             elm_object_item_signal_emit(Elm_Object_Item *it, const char *emission, const char *source) EINA_ARG_NONNULL(1);
+   EAPI void elm_object_item_signal_emit(Elm_Object_Item *it, const char *emission, const char *source) EINA_ARG_NONNULL(1);
+
+   /**
+    * Set the disabled state of an widget item.
+    *
+    * @param obj The Elementary object item
+    * @param disabled The state to put in in: @c EINA_TRUE for
+    *        disabled, @c EINA_FALSE for enabled
+    *
+    * Elementary object item can be @b disabled, in which state they won't
+    * receive input and, in general, will be themed differently from
+    * their normal state, usually greyed out. Useful for contexts
+    * where you don't want your users to interact with some of the
+    * parts of you interface.
+    *
+    * This sets the state for the widget item, either disabling it or
+    * enabling it back.
+    *
+    * @ingroup Styles
+    */
+   EAPI void elm_object_item_disabled_set(Elm_Object_Item *it, Eina_Bool disabled) EINA_ARG_NONNULL(1);
+
+   /**
+    * Get the disabled state of an widget item.
+    *
+    * @param obj The Elementary object
+    * @return @c EINA_TRUE, if the widget item is disabled, @c EINA_FALSE
+    *            if it's enabled (or on errors)
+    *
+    * This gets the state of the widget, which might be enabled or disabled.
+    *
+    * @ingroup Styles
+    */
+   EAPI Eina_Bool    elm_object_item_disabled_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
 
    /**
     * @}
@@ -2449,10 +2549,11 @@ extern "C" {
     * the one receiving input events.
     *
     * @see elm_object_focus_get()
+    * @deprecated use elm_object_focus_set() instead.
     *
     * @ingroup Focus
     */
-   EAPI void             elm_object_focus(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void             elm_object_focus(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Remove the focus from an Elementary object
@@ -2463,10 +2564,11 @@ extern "C" {
     * previous element in the focus chain list.
     *
     * @see elm_object_focus() and elm_object_focus_custom_chain_get()
+    * @deprecated use elm_object_focus_set() instead.
     *
     * @ingroup Focus
     */
-   EAPI void             elm_object_unfocus(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void             elm_object_unfocus(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Set the ability for an Element object to be focused
@@ -2614,7 +2716,7 @@ extern "C" {
     *
     * @ingroup Focus
     */
-   EAPI void             elm_object_tree_unfocusable_set(Evas_Object *obj, Eina_Bool tree_unfocusable); EINA_ARG_NONNULL(1);
+   EAPI void             elm_object_tree_unfocusable_set(Evas_Object *obj, Eina_Bool tree_unfocusable) EINA_ARG_NONNULL(1);
 
    /**
     * Get whether an Elementary object and its children are unfocusable or not.
@@ -2627,7 +2729,7 @@ extern "C" {
     *
     * @ingroup Focus
     */
-   EAPI Eina_Bool        elm_object_tree_unfocusable_get(const Evas_Object *obj); EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool        elm_object_tree_unfocusable_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * @defgroup Scrolling Scrolling
@@ -4369,6 +4471,12 @@ extern "C" {
     */
    EAPI Evas_Object *elm_win_inlined_image_object_get(Evas_Object *obj);
    /**
+    * Determine whether a window has focus
+    * @param obj The window to query
+    * @return EINA_TRUE if the window exists and has focus, else EINA_FALSE
+    */
+   EAPI Eina_Bool    elm_win_focus_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
     * Get screen geometry details for the screen that a window is on
     * @param obj The window to query
     * @param x where to return the horizontal offset value. May be NULL.
@@ -4731,7 +4839,7 @@ extern "C" {
     * @ingroup Bg
     */
 
-   EAPI void          elm_bg_overlay_set(Evas_Object *obj, Evas_Object *overlay) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void          elm_bg_overlay_set(Evas_Object *obj, Evas_Object *overlay) EINA_ARG_NONNULL(1);
 
    /**
     * Get the overlay object used for the background object.
@@ -4759,7 +4867,7 @@ extern "C" {
     *
     * @ingroup Bg
     */
-   EAPI Evas_Object  *elm_bg_overlay_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object  *elm_bg_overlay_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Set the size of the pixmap representation of the image.
@@ -4925,7 +5033,7 @@ extern "C" {
     *
     * @ingroup Icon
     */
-   EAPI Eina_Bool             elm_icon_memfile_set(Evas_Object *obj, const void *img, size_t size, const char *format, const char *key) EINA_ARG_NONNULL(1, 2);
+   EAPI Eina_Bool             elm_icon_memfile_set(Evas_Object *obj, const void *img, size_t size, const char *format, const char *key) EINA_ARG_NONNULL(1, 2);
    /**
     * Get the file that will be used as icon.
     *
@@ -6396,7 +6504,7 @@ extern "C" {
     * @param icon The icon object for the button
     * @deprecated use elm_object_part_content_set() instead.
     */
-   EAPI void         elm_button_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void         elm_button_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
    /**
     * Get the icon used for the button
     *
@@ -6409,7 +6517,7 @@ extern "C" {
     *
     * @deprecated use elm_object_part_content_get() instead
     */
-   EAPI Evas_Object *elm_button_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object *elm_button_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Remove the icon set without deleting it and return the object
     *
@@ -6422,7 +6530,7 @@ extern "C" {
     * @return The icon object that was being used
     * @deprecated use elm_object_part_content_unset() instead.
     */
-   EAPI Evas_Object *elm_button_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object *elm_button_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Turn on/off the autorepeat event generated when the button is kept pressed
     *
@@ -7237,7 +7345,7 @@ extern "C" {
     * elm_scroller_content_unset() function.
     * @deprecated use elm_object_content_set() instead
     */
-   EAPI void         elm_scroller_content_set(Evas_Object *obj, Evas_Object *child) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void elm_scroller_content_set(Evas_Object *obj, Evas_Object *child) EINA_ARG_NONNULL(1);
    /**
     * @brief Get the content of the scroller widget
     *
@@ -7249,7 +7357,7 @@ extern "C" {
     * @see elm_scroller_content_set()
     * @deprecated use elm_object_content_get() instead.
     */
-   EAPI Evas_Object *elm_scroller_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object *elm_scroller_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Unset the content of the scroller widget
     *
@@ -7261,7 +7369,7 @@ extern "C" {
     * @see elm_scroller_content_set()
     * @deprecated use elm_object_content_unset() instead.
     */
-   EAPI Evas_Object *elm_scroller_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object *elm_scroller_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Set custom theme elements for the scroller
     *
@@ -7570,7 +7678,7 @@ extern "C" {
     *
     * The Label widget @b doesn't allow text to overflow its boundaries, if the
     * text doesn't fit the geometry of the label it will be ellipsized or be
-    * cut. Elementary provides several themes for this widget:
+    * cut. Elementary provides several styles for this widget:
     * @li default - No animation
     * @li marker - Centers the text in the label and make it bold by default
     * @li slide_long - The entire text appears from the right of the screen and
@@ -7682,8 +7790,7 @@ extern "C" {
     * @param size font size
     *
     * @warning NEVER use this. It is for hyper-special cases only. use styles
-    * instead. e.g. "big", "medium", "small" - or better name them by use:
-    * "title", "footnote", "quote" etc.
+    * instead. e.g. "default", "marker", "slide_long" etc.
     */
    EAPI void         elm_label_fontsize_set(Evas_Object *obj, int fontsize) EINA_ARG_NONNULL(1);
    /**
@@ -7696,8 +7803,7 @@ extern "C" {
     * @param a Alpha property background color of The label object
     *
     * @warning NEVER use this. It is for hyper-special cases only. use styles
-    * instead. e.g. "big", "medium", "small" - or better name them by use:
-    * "title", "footnote", "quote" etc.
+    * instead. e.g. "default", "marker", "slide_long" etc.
     */
    EAPI void         elm_label_text_color_set(Evas_Object *obj, unsigned int r, unsigned int g, unsigned int b, unsigned int a) EINA_ARG_NONNULL(1);
    /**
@@ -7707,8 +7813,7 @@ extern "C" {
     * @param align align mode ("left", "center", "right")
     *
     * @warning NEVER use this. It is for hyper-special cases only. use styles
-    * instead. e.g. "big", "medium", "small" - or better name them by use:
-    * "title", "footnote", "quote" etc.
+    * instead. e.g. "default", "marker", "slide_long" etc.
     */
    EAPI void         elm_label_text_align_set(Evas_Object *obj, const char *alignmode) EINA_ARG_NONNULL(1);
    /**
@@ -7721,8 +7826,7 @@ extern "C" {
     * @param a Alpha property background alpha of The label object
     *
     * @warning NEVER use this. It is for hyper-special cases only. use styles
-    * instead. e.g. "big", "medium", "small" - or better name them by use:
-    * "title", "footnote", "quote" etc.
+    * instead. e.g. "default", "marker", "slide_long" etc.
     */
    EAPI void         elm_label_background_color_set(Evas_Object *obj, unsigned int r, unsigned int g, unsigned int b, unsigned int a) EINA_ARG_NONNULL(1);
    /**
@@ -7850,7 +7954,7 @@ extern "C" {
     *
     * @deprecated use elm_object_content_set() instead.
     */
-   EAPI void         elm_frame_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void         elm_frame_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
    /**
     * @brief Get the content of the frame widget
     *
@@ -7861,7 +7965,7 @@ extern "C" {
     *
     * @deprecated use elm_object_content_get() instead.
     */
-   EAPI Evas_Object *elm_frame_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object *elm_frame_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Unset the content of the frame widget
     *
@@ -7872,7 +7976,7 @@ extern "C" {
     *
     * @deprecated use elm_object_content_unset() instead.
     */
-   EAPI Evas_Object *elm_frame_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object *elm_frame_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @}
     */
@@ -8216,10 +8320,36 @@ extern "C" {
    typedef struct _Elm_Gengrid_Item_Class Elm_Gengrid_Item_Class; /**< Gengrid item class definition structs */
    typedef struct _Elm_Gengrid_Item Elm_Gengrid_Item; /**< Gengrid item handles */
    typedef struct _Elm_Gengrid_Item_Class_Func Elm_Gengrid_Item_Class_Func; /**< Class functions for gengrid item classes. */
-   typedef char        *(*Elm_Gengrid_Item_Label_Get_Cb) (void *data, Evas_Object *obj, const char *part); /**< Label fetching class function for gengrid item classes. */
-   typedef Evas_Object *(*Elm_Gengrid_Item_Content_Get_Cb)  (void *data, Evas_Object *obj, const char *part); /**< Content (swallowed object) fetching class function for gengrid item classes. */
-   typedef Eina_Bool    (*Elm_Gengrid_Item_State_Get_Cb) (void *data, Evas_Object *obj, const char *part); /**< State fetching class function for gengrid item classes. */
-   typedef void         (*Elm_Gengrid_Item_Del_Cb)      (void *data, Evas_Object *obj); /**< Deletion class function for gengrid item classes. */
+   /**
+    * Label fetching class function for Elm_Gen_Item_Class.
+    * @param data The data passed in the item creation function
+    * @param obj The base widget object
+    * @param part The part name of the swallow
+    * @return The allocated (NOT stringshared) string to set as the label
+    */
+   typedef char        *(*Elm_Gengrid_Item_Label_Get_Cb) (void *data, Evas_Object *obj, const char *part);
+   /**
+    * Content (swallowed object) fetching class function for Elm_Gen_Item_Class.
+    * @param data The data passed in the item creation function
+    * @param obj The base widget object
+    * @param part The part name of the swallow
+    * @return The content object to swallow
+    */
+   typedef Evas_Object *(*Elm_Gengrid_Item_Content_Get_Cb)  (void *data, Evas_Object *obj, const char *part);
+   /**
+    * State fetching class function for Elm_Gen_Item_Class.
+    * @param data The data passed in the item creation function
+    * @param obj The base widget object
+    * @param part The part name of the swallow
+    * @return The hell if I know
+    */
+   typedef Eina_Bool    (*Elm_Gengrid_Item_State_Get_Cb) (void *data, Evas_Object *obj, const char *part);
+   /**
+    * Deletion class function for Elm_Gen_Item_Class.
+    * @param data The data passed in the item creation function
+    * @param obj The base widget object
+    */
+   typedef void         (*Elm_Gengrid_Item_Del_Cb)      (void *data, Evas_Object *obj);
 
    /* temporary compatibility code */
    typedef Elm_Gengrid_Item_Label_Get_Cb GridItemLabelGetFunc EINA_DEPRECATED;
@@ -8539,7 +8669,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI void               elm_gengrid_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void               elm_gengrid_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select) EINA_ARG_NONNULL(1);
 
    /**
     * Get whether items on a given gengrid widget have their selection
@@ -8554,7 +8684,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI Eina_Bool          elm_gengrid_always_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Eina_Bool          elm_gengrid_always_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Set whether items on a given gengrid widget can be selected or not.
@@ -8572,7 +8702,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI void               elm_gengrid_no_select_mode_set(Evas_Object *obj, Eina_Bool no_select) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void               elm_gengrid_no_select_mode_set(Evas_Object *obj, Eina_Bool no_select) EINA_ARG_NONNULL(1);
 
    /**
     * Get whether items on a given gengrid widget can be selected or
@@ -8586,7 +8716,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI Eina_Bool          elm_gengrid_no_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Eina_Bool          elm_gengrid_no_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Enable or disable multi-selection in a given gengrid widget
@@ -8644,7 +8774,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI void               elm_gengrid_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void               elm_gengrid_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce) EINA_ARG_NONNULL(1);
 
    /**
     * Get whether bouncing effects are enabled or disabled, for a
@@ -8660,7 +8790,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI void               elm_gengrid_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void               elm_gengrid_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce) EINA_ARG_NONNULL(1);
 
    /**
     * Set a given gengrid widget's scrolling page size, relative to
@@ -8694,7 +8824,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI void               elm_gengrid_page_relative_set(Evas_Object *obj, double h_pagerel, double v_pagerel) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void               elm_gengrid_page_relative_set(Evas_Object *obj, double h_pagerel, double v_pagerel) EINA_ARG_NONNULL(1);
 
    /**
     * Get a given gengrid widget's scrolling page size, relative to
@@ -8710,7 +8840,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI void               elm_gengrid_page_relative_get(const Evas_Object *obj, double *h_pagerel, double *v_pagerel) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void               elm_gengrid_page_relative_get(const Evas_Object *obj, double *h_pagerel, double *v_pagerel) EINA_ARG_NONNULL(1);
 
    /**
     * Set a given gengrid widget's scrolling page size
@@ -8790,7 +8920,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI Elm_Gengrid_Item  *elm_gengrid_first_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE EAPI Elm_Gengrid_Item  *elm_gengrid_first_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Get the last item in a given gengrid widget
@@ -8806,7 +8936,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI Elm_Gengrid_Item  *elm_gengrid_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE EAPI Elm_Gengrid_Item  *elm_gengrid_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Get the @b next item in a gengrid widget's internal list of items,
@@ -8823,7 +8953,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI Elm_Gengrid_Item  *elm_gengrid_item_next_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE EAPI Elm_Gengrid_Item  *elm_gengrid_item_next_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
 
    /**
     * Get the @b previous item in a gengrid widget's internal list of items,
@@ -8840,7 +8970,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI Elm_Gengrid_Item  *elm_gengrid_item_prev_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE EAPI Elm_Gengrid_Item  *elm_gengrid_item_prev_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
 
    /**
     * Get the gengrid object's handle which contains a given gengrid
@@ -8853,7 +8983,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI Evas_Object       *elm_gengrid_item_gengrid_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE EAPI Evas_Object       *elm_gengrid_item_gengrid_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
 
    /**
     * Remove a gengrid item from its parent, deleting it.
@@ -8974,7 +9104,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI void               elm_gengrid_item_selected_set(Elm_Gengrid_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE EAPI void elm_gengrid_item_selected_set(Elm_Gengrid_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1);
 
    /**
     * Get whether a given gengrid item is selected or not
@@ -8988,7 +9118,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI Eina_Bool          elm_gengrid_item_selected_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE EAPI Eina_Bool elm_gengrid_item_selected_get(const Elm_Gengrid_Item *item) EINA_ARG_NONNULL(1);
 
    /**
     * Get the real Evas object created to implement the view of a
@@ -9331,7 +9461,7 @@ extern "C" {
     *
     * @ingroup Gengrid
     */
-   EAPI void               elm_gengrid_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE EAPI void elm_gengrid_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Get the selected item in a given gengrid widget
@@ -9713,7 +9843,7 @@ extern "C" {
     * elm_object_content_set/get/unset functions to set, retrieve and unset 
     * objects as content of the @c SWALLOW. After being set to this part, the 
     * object size, position, visibility, clipping and other description 
-    * properties will be totally controled by the description of the given part 
+    * properties will be totally controlled by the description of the given part
     * (inside the Edje theme file).
     *
     * One can use @c evas_object_size_hint_* functions on the child to have some
@@ -9741,12 +9871,12 @@ extern "C" {
     * itself).
     *
     * A similar effect for having a box with its position, size and other things
-    * controled by the Layout theme would be to create an Elementary @ref Box
+    * controlled by the Layout theme would be to create an Elementary @ref Box
     * widget and add it as a Content in the @c SWALLOW part.
     *
     * The main difference of using the Layout Box is that its behavior, the box
     * properties like layouting format, padding, align, etc. will be all
-    * controled by the theme. This means, for example, that a signal could be
+    * controlled by the theme. This means, for example, that a signal could be
     * sent to the Layout theme (with elm_object_signal_emit()) and the theme
     * handled the signal by changing the box padding, or align, or both. Using
     * the Elementary @ref Box widget is not necessarily harder or easier, it
@@ -9880,7 +10010,7 @@ extern "C" {
     *
     * @ingroup Layout
     */
-   EAPI void               elm_layout_content_set(Evas_Object *obj, const char *swallow, Evas_Object *content) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE EAPI void               elm_layout_content_set(Evas_Object *obj, const char *swallow, Evas_Object *content) EINA_ARG_NONNULL(1);
    /**
     * Get the child object in the given content part.
     *
@@ -9893,7 +10023,7 @@ extern "C" {
     *
     * @ingroup Layout
     */
-   EAPI Evas_Object       *elm_layout_content_get(const Evas_Object *obj, const char *swallow) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE EAPI Evas_Object       *elm_layout_content_get(const Evas_Object *obj, const char *swallow) EINA_ARG_NONNULL(1);
    /**
     * Unset the layout content.
     *
@@ -9907,7 +10037,7 @@ extern "C" {
     *
     * @ingroup Layout
     */
-   EAPI Evas_Object       *elm_layout_content_unset(Evas_Object *obj, const char *swallow) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE EAPI Evas_Object       *elm_layout_content_unset(Evas_Object *obj, const char *swallow) EINA_ARG_NONNULL(1);
    /**
     * Set the text of the given part
     *
@@ -10032,7 +10162,7 @@ extern "C" {
     */
    EAPI Evas_Object       *elm_layout_box_remove(Evas_Object *obj, const char *part, Evas_Object *child) EINA_ARG_NONNULL(1, 2, 3);
    /**
-    * Remove all child of the given part box.
+    * Remove all children of the given part box.
     *
     * @param obj The layout object
     * @param part The box part name to remove child.
@@ -10103,7 +10233,7 @@ extern "C" {
     */
    EAPI Evas_Object       *elm_layout_table_unpack(Evas_Object *obj, const char *part, Evas_Object *child_obj) EINA_ARG_NONNULL(1, 2, 3);
    /**
-    * Remove all child of the given part table.
+    * Remove all the child objects of the given part table.
     *
     * @param obj The layout object
     * @param part The table part name to remove child.
@@ -10275,8 +10405,8 @@ extern "C" {
     *
     * @param obj The layout object.
     * @param part_name a part from loaded edje group.
-    * @param engine_only if cursors should be just provided by the engine
-    *        or should also search on widget's theme as well
+    * @param engine_only if cursors should be just provided by the engine (EINA_TRUE)
+    *        or should also search on widget's theme as well (EINA_FALSE)
     *
     * @return EINA_TRUE on success or EINA_FALSE on failure, that may be
     *         part not exists or it did not had a cursor set.
@@ -10299,7 +10429,7 @@ extern "C" {
 
 /**
  * @def elm_layout_icon_set
- * Convienience macro to set the icon object in a layout that follows the
+ * Convenience macro to set the icon object in a layout that follows the
  * Elementary naming convention for its parts.
  *
  * @ingroup Layout
@@ -10434,8 +10564,11 @@ extern "C" {
     * Once the content object is set, a previously set one will be deleted. If
     * you want to keep that old content object, use the
     * elm_notify_content_unset() function.
+    *
+    * @deprecated use elm_object_content_set() instead
+    *
     */
-   EAPI void              elm_notify_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void              elm_notify_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
    /**
     * @brief Unset the content of the notify widget
     *
@@ -10445,8 +10578,10 @@ extern "C" {
     * Unparent and return the content object which was set for this widget
     *
     * @see elm_notify_content_set()
+    * @deprecated use elm_object_content_unset() instead
+    *
     */
-   EAPI Evas_Object      *elm_notify_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object      *elm_notify_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Return the content of the notify widget
     *
@@ -10454,8 +10589,10 @@ extern "C" {
     * @return The content that is being used
     *
     * @see elm_notify_content_set()
+    * @deprecated use elm_object_content_get() instead
+    *
     */
-   EAPI Evas_Object      *elm_notify_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object      *elm_notify_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Set the notify parent
     *
@@ -10609,7 +10746,7 @@ extern "C" {
     * @brief Sets the target object for the hover.
     *
     * @param obj The hover object
-    * @param target The object to center the hover onto. The hover
+    * @param target The object to center the hover onto.
     *
     * This function will cause the hover to be centered on the target object.
     */
@@ -10618,7 +10755,7 @@ extern "C" {
     * @brief Gets the target object for the hover.
     *
     * @param obj The hover object
-    * @param parent The object to locate the hover over.
+    * @return The target object for the hover.
     *
     * @see elm_hover_target_set()
     */
@@ -10662,9 +10799,9 @@ extern "C" {
     * "smart". This is a special placement hint and its use case
     * independs of the calculations coming from
     * elm_hover_best_content_location_get(). Its use is for cases when
-    * one desires only one hover content, but with a dinamic special
+    * one desires only one hover content, but with a dynamic special
     * placement within the hover area. The content's geometry, whenever
-    * it changes, will be used to decide on a best location not
+    * it changes, will be used to decide on a best location, not
     * extrapolating the hover's parent object view to show it in (still
     * being the hover's target determinant of its medium part -- move and
     * resize it to simulate finger sizes, for example). If one of the
@@ -10829,8 +10966,8 @@ extern "C" {
     * @li full: Items will be placed between the descent and ascent, or the
     * lowest point in the line and its highest.
     *
-    * The next image shows different configurations of items and how they
-    * are the previously mentioned options affect their sizes. In all cases,
+    * The next image shows different configurations of items and how
+    * the previously mentioned options affect their sizes. In all cases,
     * the green line indicates the ascent, blue for the baseline and red for
     * the descent.
     *
@@ -11104,6 +11241,45 @@ extern "C" {
     */
    EAPI const char  *elm_entry_selection_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
+    * Returns the actual textblock object of the entry.
+    *
+    * This function exposes the internal textblock object that actually
+    * contains and draws the text. This should be used for low-level
+    * manipulations that are otherwise not possible.
+    *
+    * Changing the textblock directly from here will not notify edje/elm to
+    * recalculate the textblock size automatically, so any modifications
+    * done to the textblock returned by this function should be followed by
+    * a call to elm_entry_calc_force().
+    *
+    * The return value is marked as const as an additional warning.
+    * One should not use the returned object with any of the generic evas
+    * functions (geometry_get/resize/move and etc), but only with the textblock
+    * functions; The former will either not work at all, or break the correct
+    * functionality.
+    *
+    * IMPORTANT: Many functions may change (i.e delete and create a new one)
+    * the internal textblock object. Do NOT cache the returned object, and try
+    * not to mix calls on this object with regular elm_entry calls (which may
+    * change the internal textblock object). This applies to all cursors
+    * returned from textblock calls, and all the other derivative values.
+    *
+    * @param obj The entry object
+    * @return The textblock object.
+    */
+   EAPI const Evas_Object *elm_entry_textblock_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * Forces calculation of the entry size and text layouting.
+    *
+    * This should be used after modifying the textblock object directly. See
+    * elm_entry_textblock_get() for more information.
+    *
+    * @param obj The entry object
+    *
+    * @see elm_entry_textblock_get()
+    */
+   EAPI void elm_entry_calc_force(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
     * Inserts the given text into the entry at the current cursor position.
     *
     * This inserts text at the cursor position as if it was typed
@@ -11531,6 +11707,47 @@ extern "C" {
     * @see elm_entry_file_set()
     */
    EAPI Eina_Bool    elm_entry_autosave_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+   /**
+    * @enum _Elm_CNP_Mode
+    * @typedef Elm_CNP_Mode
+    * Enum of entry's copy & paste policy.
+    *
+    * @see elm_entry_cnp_mode_set()
+    * @see elm_entry_cnp_mode_get()
+    */
+   typedef enum _Elm_CNP_Mode {
+      ELM_CNP_MODE_MARKUP = 0,       /**< copy & paste text with markup tag */
+      ELM_CNP_MODE_NO_IMAGE = 1,     /**< copy & paste text without item(image) tag */
+      ELM_CNP_MODE_PLAINTEXT = 2     /**< copy & paste text without markup tag */
+   } Elm_CNP_Mode;
+
+   /**
+    * Control pasting of text and images for the widget.
+    *
+    * Normally the entry allows both text and images to be pasted.
+    * By setting textonly to be ELM_CNP_MODE_NO_IMAGE, this prevents images from being copy or past.
+    * By setting textonly to be ELM_CNP_MODE_PLAINTEXT, this remove all tags in text .
+    *
+    * @note this only changes the behaviour of text.
+    *
+    * @param obj The entry object
+    * @param mode One of #Elm_CNP_Mode: #ELM_CNP_MODE_MARKUP,
+    * #ELM_CNP_MODE_NO_IMAGE, #ELM_CNP_MODE_PLAINTEXT.
+    */
+   EAPI void         elm_entry_cnp_mode_set(Evas_Object *obj, Elm_CNP_Mode cnp_mode) EINA_ARG_NONNULL(1);
+   /**
+    * Getting elm_entry text paste/drop mode.
+    *
+    * Normally the entry allows both text and images to be pasted.
+    * This gets the copy & paste mode of the entry.
+    *
+    * @param obj The entry object
+    * @return mode One of #Elm_CNP_Mode: #ELM_CNP_MODE_MARKUP,
+    * #ELM_CNP_MODE_NO_IMAGE, #ELM_CNP_MODE_PLAINTEXT.
+    */
+   EAPI Elm_CNP_Mode elm_entry_cnp_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
    /**
     * Control pasting of text and images for the widget.
     *
@@ -12398,8 +12615,11 @@ extern "C" {
     * @param content The given content of the bubble
     *
     * This function sets the content shown on the middle of the bubble.
+    * 
+    * @deprecated use elm_object_content_set() instead
+    *
     */
-   EAPI void         elm_bubble_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void         elm_bubble_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
    /**
     * Get the content shown in the bubble
     *
@@ -12407,8 +12627,11 @@ extern "C" {
     *
     * @param obj The bubble object
     * @return The content that is being used
+    *
+    * @deprecated use elm_object_content_get() instead
+    *
     */
-   EAPI Evas_Object *elm_bubble_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object *elm_bubble_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Unset the content shown in the bubble
     *
@@ -12416,8 +12639,11 @@ extern "C" {
     *
     * @param obj The bubble object
     * @return The content that was being used
+    *
+    * @deprecated use elm_object_content_unset() instead
+    *
     */
-   EAPI Evas_Object *elm_bubble_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object *elm_bubble_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Set the icon of the bubble
     *
@@ -13350,7 +13576,7 @@ extern "C" {
     */
    typedef enum _Elm_Web_Zoom_Mode
      {
-        ELM_WEB_ZOOM_MODE_MANUAL = 0, /**< Zoom controled normally by elm_web_zoom_set */
+        ELM_WEB_ZOOM_MODE_MANUAL = 0, /**< Zoom controlled normally by elm_web_zoom_set */
         ELM_WEB_ZOOM_MODE_AUTO_FIT, /**< Zoom until content fits in web object */
         ELM_WEB_ZOOM_MODE_AUTO_FILL, /**< Zoom until content fills web object */
         ELM_WEB_ZOOM_MODE_LAST
@@ -16929,7 +17155,6 @@ extern "C" {
     * @ingroup List
     */
    EAPI void             elm_list_item_end_set(Elm_List_Item *item, Evas_Object *end) EINA_ARG_NONNULL(1);
-   EAPI Evas_Object     *elm_list_item_base_get(const Elm_List_Item *item) EINA_ARG_NONNULL(1);
 
    /**
     * Gets the base object of the item.
@@ -16942,6 +17167,7 @@ extern "C" {
     * @ingroup List
     */
    EAPI Evas_Object     *elm_list_item_object_get(const Elm_List_Item *item) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object     *elm_list_item_base_get(const Elm_List_Item *item) EINA_ARG_NONNULL(1);
 
    /**
     * Get the label of item.
@@ -17372,7 +17598,7 @@ extern "C" {
     * @ingroup Slider
     * @deprecated use elm_object_text_get() instead.
     */
-   EAPI const char        *elm_slider_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI const char        *elm_slider_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Set the icon object of the slider object.
@@ -17393,7 +17619,7 @@ extern "C" {
     * @ingroup Slider
     * @deprecated use elm_object_part_content_set() instead.
     */
-   EAPI void               elm_slider_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void               elm_slider_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
 
    /**
     * Unset an icon set on a given slider widget.
@@ -17414,7 +17640,7 @@ extern "C" {
     *
     * @ingroup Slider
     */
-   EAPI Evas_Object       *elm_slider_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object       *elm_slider_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Retrieve the icon object set for a given slider widget.
@@ -17433,7 +17659,7 @@ extern "C" {
     *
     * @ingroup Slider
     */
-   EAPI Evas_Object       *elm_slider_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object       *elm_slider_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Set the end object of the slider object.
@@ -17455,7 +17681,7 @@ extern "C" {
     *
     * @ingroup Slider
     */
-   EAPI void               elm_slider_end_set(Evas_Object *obj, Evas_Object *end) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void               elm_slider_end_set(Evas_Object *obj, Evas_Object *end) EINA_ARG_NONNULL(1);
 
    /**
     * Unset an end object set on a given slider widget.
@@ -17478,7 +17704,7 @@ extern "C" {
     *
     * @ingroup Slider
     */
-   EAPI Evas_Object       *elm_slider_end_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object       *elm_slider_end_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Retrieve the end object set for a given slider widget.
@@ -17499,7 +17725,7 @@ extern "C" {
     *
     * @ingroup Slider
     */
-   EAPI Evas_Object       *elm_slider_end_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object       *elm_slider_end_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Set the (exact) length of the bar region of a given slider widget.
@@ -18052,7 +18278,7 @@ extern "C" {
     *   theme. It must return @c NULL, when no content is desired, or a valid
     *   object handle, otherwise.  The object will be deleted by the genlist on
     *   its deletion or when the item is "unrealized".  See
-    *   #Elm_Genlist_Item_Icon_Get_Cb.
+    *   #Elm_Genlist_Item_Content_Get_Cb.
     * - @c func.state_get - The @c part parameter is the name string of one of
     *   the state parts in the Edje group implementing the item's theme. Return
     *   @c EINA_FALSE for false/off or @c EINA_TRUE for true/on. Genlists will
@@ -18151,7 +18377,7 @@ extern "C" {
     * If the application wants multiple items to be able to be selected,
     * elm_genlist_multi_select_set() can enable this. If the list is
     * single-selection only (the default), then elm_genlist_selected_item_get()
-    * will return the selected item, if any, or NULL I none is selected. If the
+    * will return the selected item, if any, or NULL if none is selected. If the
     * list is multi-select then elm_genlist_selected_items_get() will return a
     * list (that is only valid as long as no items are modified (added, deleted,
     * selected or unselected)).
@@ -18408,11 +18634,13 @@ extern "C" {
     *
     * This removes (and deletes) all items in @p obj, leaving it empty.
     *
+    * This is deprecated. Please use elm_gen_clear() instead.
+    * 
     * @see elm_genlist_item_del(), to remove just one item.
     *
     * @ingroup Genlist
     */
-   EAPI void elm_genlist_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void elm_genlist_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Enable or disable multi-selection in the genlist
     *
@@ -18481,15 +18709,17 @@ extern "C" {
     *
     * Items will only call their selection func and callback when first
     * becoming selected. Any further clicks will do nothing, unless you
-    * enable always select with elm_genlist_always_select_mode_set().
+    * enable always select with elm_gen_always_select_mode_set().
     * This means that, even if selected, every click will make the selected
     * callbacks be called.
+    * 
+    * This function is deprecated. please see elm_gen_always_select_mode_set()
     *
     * @see elm_genlist_always_select_mode_get()
     *
     * @ingroup Genlist
     */
-   EAPI void              elm_genlist_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void              elm_genlist_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select) EINA_ARG_NONNULL(1);
    /**
     * Get the always select mode.
     *
@@ -18501,7 +18731,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI Eina_Bool         elm_genlist_always_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Eina_Bool         elm_genlist_always_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Enable/disable the no select mode.
     *
@@ -18516,7 +18746,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI void              elm_genlist_no_select_mode_set(Evas_Object *obj, Eina_Bool no_select) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void              elm_genlist_no_select_mode_set(Evas_Object *obj, Eina_Bool no_select) EINA_ARG_NONNULL(1);
    /**
     * Gets whether the no select mode is enabled.
     *
@@ -18528,7 +18758,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI Eina_Bool         elm_genlist_no_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Eina_Bool         elm_genlist_no_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Enable/disable compress mode.
     *
@@ -18610,7 +18840,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI void              elm_genlist_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void              elm_genlist_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce) EINA_ARG_NONNULL(1);
    /**
     * Get whether the horizontal and vertical bouncing effect is enabled.
     *
@@ -18624,7 +18854,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI void              elm_genlist_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void              elm_genlist_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce) EINA_ARG_NONNULL(1);
    /**
     * Enable/disable homogenous mode.
     *
@@ -18942,7 +19172,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI Elm_Genlist_Item *elm_genlist_first_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Elm_Genlist_Item *elm_genlist_first_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Get the last item in the genlist
     *
@@ -18952,7 +19182,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI Elm_Genlist_Item *elm_genlist_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Elm_Genlist_Item *elm_genlist_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Set the scrollbar policy
     *
@@ -19000,7 +19230,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI Elm_Genlist_Item  *elm_genlist_item_next_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Elm_Genlist_Item  *elm_genlist_item_next_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
    /**
     * Get the @b previous item in a genlist widget's internal list of items,
     * given a handle to one of those items.
@@ -19016,7 +19246,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI Elm_Genlist_Item  *elm_genlist_item_prev_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Elm_Genlist_Item  *elm_genlist_item_prev_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
    /**
     * Get the genlist object's handle which contains a given genlist
     * item
@@ -19026,9 +19256,11 @@ extern "C" {
     *
     * This returns the genlist object itself that an item belongs to.
     *
+    * This function is deprecated. Please use elm_gen_item_widget_get()
+    * 
     * @ingroup Genlist
     */
-   EAPI Evas_Object       *elm_genlist_item_genlist_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object       *elm_genlist_item_genlist_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
    /**
     * Get the parent item of the given item
     *
@@ -19071,7 +19303,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI void elm_genlist_item_selected_set(Elm_Genlist_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void elm_genlist_item_selected_set(Elm_Genlist_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1);
    /**
     * Get whether a given genlist item is selected or not
     *
@@ -19082,7 +19314,7 @@ extern "C" {
     *
     * @ingroup Genlist
     */
-   EAPI Eina_Bool elm_genlist_item_selected_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Eina_Bool elm_genlist_item_selected_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
    /**
     * Sets the expanded state of an item.
     *
@@ -19345,7 +19577,7 @@ extern "C" {
     * @ingroup Genlist
     */
    EAPI void               elm_genlist_item_contents_orphan(Elm_Genlist_Item *it) EINA_ARG_NONNULL(1);
-   EAPI void               elm_genlist_item_icons_orphan(Elm_Genlist_Item *it) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void               elm_genlist_item_icons_orphan(Elm_Genlist_Item *it) EINA_ARG_NONNULL(1);
    /**
     * Get the real Evas object created to implement the view of a
     * given genlist item
@@ -19496,6 +19728,26 @@ extern "C" {
     */
    EAPI const char        *elm_genlist_item_tooltip_style_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
    /**
+    * @brief Disable size restrictions on an object's tooltip
+    * @param item The tooltip's anchor object
+    * @param disable If EINA_TRUE, size restrictions are disabled
+    * @return EINA_FALSE on failure, EINA_TRUE on success
+    *
+    * This function allows a tooltip to expand beyond its parant window's canvas.
+    * It will instead be limited only by the size of the display.
+    */
+   EAPI Eina_Bool          elm_genlist_item_tooltip_size_restrict_disable(Elm_Genlist_Item *item, Eina_Bool disable);
+   /**
+    * @brief Retrieve size restriction state of an object's tooltip
+    * @param item The tooltip's anchor object
+    * @return If EINA_TRUE, size restrictions are disabled
+    *
+    * This function returns whether a tooltip is allowed to expand beyond
+    * its parant window's canvas.
+    * It will instead be limited only by the size of the display.
+    */
+   EAPI Eina_Bool          elm_genlist_item_tooltip_size_restrict_disabled_get(const Elm_Genlist_Item *item);
+   /**
     * Set the type of mouse pointer/cursor decoration to be shown,
     * when the mouse pointer is over the given genlist widget item
     *
@@ -20015,7 +20267,7 @@ extern "C" {
     * @deprecated use elm_object_part_content_set() instead.
     *
     */
-   EAPI void         elm_radio_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void         elm_radio_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
    /**
     * @brief Get the icon object of the radio object
     *
@@ -20027,7 +20279,7 @@ extern "C" {
     * @deprecated use elm_object_part_content_get() instead.
     *
     */
-   EAPI Evas_Object *elm_radio_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object *elm_radio_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Unset the icon used for the radio object
     *
@@ -20040,7 +20292,7 @@ extern "C" {
     * @deprecated use elm_object_part_content_unset() instead.
     *
     */
-   EAPI Evas_Object *elm_radio_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object *elm_radio_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Add this radio to a group of other radio objects
     *
@@ -20114,37 +20366,47 @@ extern "C" {
     * @image html img/widget/pager/preview-00.png
     * @image latex img/widget/pager/preview-00.eps
     *
-    * @brief Widget that allows flipping between 1 or more “pages” of objects.
-    *
-    * The flipping between “pages” of objects is animated. All content in pager
-    * is kept in a stack, the last content to be added will be on the top of the
-    * stack(be visible).
-    *
-    * Objects can be pushed or popped from the stack or deleted as normal.
-    * Pushes and pops will animate (and a pop will delete the object once the
-    * animation is finished). Any object already in the pager can be promoted to
-    * the top(from its current stacking position) through the use of
-    * elm_pager_content_promote(). Objects are pushed to the top with
-    * elm_pager_content_push() and when the top item is no longer wanted, simply
-    * pop it with elm_pager_content_pop() and it will also be deleted. If an
-    * object is no longer needed and is not the top item, just delete it as
-    * normal. You can query which objects are the top and bottom with
+    * @brief Widget that allows flipping between one or more “pages”
+    * of objects.
+    *
+    * The flipping between pages of objects is animated. All content
+    * in the pager is kept in a stack, being the last content added
+    * (visible one) on the top of that stack.
+    *
+    * Objects can be pushed or popped from the stack or deleted as
+    * well. Pushes and pops will animate the widget accordingly to its
+    * style (a pop will also delete the child object once the
+    * animation is finished). Any object already in the pager can be
+    * promoted to the top (from its current stacking position) through
+    * the use of elm_pager_content_promote(). New objects are pushed
+    * to the top with elm_pager_content_push(). When the top item is
+    * no longer wanted, simply pop it with elm_pager_content_pop() and
+    * it will also be deleted. If an object is no longer needed and is
+    * not the top item, just delete it as normal. You can query which
+    * objects are the top and bottom with
     * elm_pager_content_bottom_get() and elm_pager_content_top_get().
     *
     * Signals that you can add callbacks for are:
-    * "hide,finished" - when the previous page is hided
+    * - @c "show,finished" - when a new page is actually shown on the top
+    * - @c "hide,finished" - when a previous page is hidden
+    *
+    * Only after the first of that signals the child object is
+    * guaranteed to be visible, as in @c evas_object_visible_get().
     *
     * This widget has the following styles available:
-    * @li default
-    * @li fade
-    * @li fade_translucide
-    * @li fade_invisible
-    * @note This styles affect only the flipping animations, the appearance when
-    * not animating is unaffected by styles.
+    * - @c "default"
+    * - @c "fade"
+    * - @c "fade_translucide"
+    * - @c "fade_invisible"
+    *
+    * @note These styles affect only the flipping animations on the
+    * default theme; the appearance when not animating is unaffected
+    * by them.
     *
     * @ref tutorial_pager gives a good overview of the usage of the API.
     * @{
     */
+
    /**
     * Add a new pager to the parent
     *
@@ -20154,6 +20416,7 @@ extern "C" {
     * @ingroup Pager
     */
    EAPI Evas_Object *elm_pager_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+
    /**
     * @brief Push an object to the top of the pager stack (and show it).
     *
@@ -20169,6 +20432,7 @@ extern "C" {
     * undefined behavior.
     */
    EAPI void         elm_pager_content_push(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+
    /**
     * @brief Pop the object that is on top of the stack
     *
@@ -20179,6 +20443,7 @@ extern "C" {
     * the stack will become visible.
     */
    EAPI void         elm_pager_content_pop(Evas_Object *obj) EINA_ARG_NONNULL(1);
+
    /**
     * @brief Moves an object already in the pager stack to the top of the stack.
     *
@@ -20194,6 +20459,7 @@ extern "C" {
     * results in undefined behavior.
     */
    EAPI void         elm_pager_content_promote(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+
    /**
     * @brief Return the object at the bottom of the pager stack
     *
@@ -20201,6 +20467,7 @@ extern "C" {
     * @return The bottom object or NULL if none
     */
    EAPI Evas_Object *elm_pager_content_bottom_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
    /**
     * @brief  Return the object at the top of the pager stack
     *
@@ -21267,7 +21534,7 @@ extern "C" {
     *
     * @ingroup Progressbar
     */
-   EAPI void         elm_progressbar_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void         elm_progressbar_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
 
    /**
     * Retrieve the icon object set for a given progress bar widget
@@ -21281,7 +21548,7 @@ extern "C" {
     *
     * @ingroup Progressbar
     */
-   EAPI Evas_Object *elm_progressbar_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object *elm_progressbar_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Unset an icon set on a given progress bar widget
@@ -21298,7 +21565,7 @@ extern "C" {
     *
     * @ingroup Progressbar
     */
-   EAPI Evas_Object *elm_progressbar_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object *elm_progressbar_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Set the (exact) length of the bar region of a given progress bar
@@ -22722,28 +22989,6 @@ extern "C" {
     */
    EAPI void                  elm_map_geo_region_get(const Evas_Object *obj, double *lon, double *lat) EINA_ARG_NONNULL(1);
 
-
-   /**
-    * @brief Disable size restrictions on an object's tooltip
-    * @param item The tooltip's anchor object
-    * @param disable If EINA_TRUE, size restrictions are disabled
-    * @return EINA_FALSE on failure, EINA_TRUE on success
-    *
-    * This function allows a tooltip to expand beyond its parant window's canvas.
-    * It will instead be limited only by the size of the display.
-    */
-   EAPI Eina_Bool        elm_list_item_tooltip_size_restrict_disable(Elm_List_Item *item, Eina_Bool disable) EINA_ARG_NONNULL(1);
-   /**
-    * @brief Retrieve size restriction state of an object's tooltip
-    * @param obj The tooltip's anchor object
-    * @return If EINA_TRUE, size restrictions are disabled
-    *
-    * This function returns whether a tooltip is allowed to expand beyond
-    * its parant window's canvas.
-    * It will instead be limited only by the size of the display.
-    */
-   EAPI Eina_Bool        elm_list_item_tooltip_size_restrict_disabled_get(const Elm_List_Item *item) EINA_ARG_NONNULL(1);
-
    /**
     * Animatedly bring in given coordinates to the center of the map.
     *
@@ -23943,8 +24188,11 @@ extern "C" {
     * Once the content object is set, a previously set one will be deleted.
     * If you want to keep that old content object, use the
     * elm_panel_content_unset() function.
+    *
+    * @deprecated use elm_object_content_set() instead
+    *
     */
-   EAPI void                  elm_panel_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void                  elm_panel_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
    /**
     * @brief Get the content of the panel.
     *
@@ -23954,8 +24202,11 @@ extern "C" {
     * Return the content object which is set for this widget.
     *
     * @see elm_panel_content_set()
+    * 
+    * @deprecated use elm_object_content_get() instead
+    *
     */
-   EAPI Evas_Object          *elm_panel_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object          *elm_panel_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Unset the content of the panel.
     *
@@ -23965,8 +24216,11 @@ extern "C" {
     * Unparent and return the content object which was set for this widget.
     *
     * @see elm_panel_content_set()
+    *
+    * @deprecated use elm_object_content_unset() instead
+    *
     */
-   EAPI Evas_Object          *elm_panel_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object          *elm_panel_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Set the state of the panel.
     *
@@ -24154,7 +24408,7 @@ extern "C" {
     *
     * @ingroup Panes
     */
-   EAPI Evas_Object          *elm_panes_content_right_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object          *elm_panes_content_right_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Get the size proportion of panes widget's left side.
@@ -24638,9 +24892,11 @@ extern "C" {
     * @see elm_object_content_unset()
     * @see elm_object_content_get()
     *
+    * @deprecated use elm_object_content_set() instead
+    *
     * @ingroup Conformant
     */
-   EAPI void         elm_conformant_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void         elm_conformant_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
 
    /**
     * Get the content of the conformant widget.
@@ -24655,9 +24911,11 @@ extern "C" {
     * @see elm_object_content_set().
     * @see elm_object_content_unset()
     *
+    * @deprecated use elm_object_content_get() instead
+    *
     * @ingroup Conformant
     */
-   EAPI Evas_Object *elm_conformant_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object *elm_conformant_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Unset the content of the conformant widget.
@@ -24669,9 +24927,11 @@ extern "C" {
     *
     * @see elm_object_content_set().
     *
+    * @deprecated use elm_object_content_unset() instead
+    *
     * @ingroup Conformant
     */
-   EAPI Evas_Object *elm_conformant_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_conformant_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Returns the Evas_Object that represents the content area.
@@ -24740,9 +25000,11 @@ extern "C" {
     *
     * To enable map, elm_mapbuf_enabled_set() should be used.
     *
+    * @deprecated use elm_object_content_set() instead
+    *
     * @ingroup Mapbuf
     */
-   EAPI void         elm_mapbuf_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void         elm_mapbuf_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
 
    /**
     * Get the content of the mapbuf.
@@ -24754,9 +25016,11 @@ extern "C" {
     *
     * @see elm_mapbuf_content_set() for details.
     *
+    * @deprecated use elm_object_content_get() instead
+    *
     * @ingroup Mapbuf
     */
-   EAPI Evas_Object *elm_mapbuf_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object *elm_mapbuf_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Unset the content of the mapbuf.
@@ -24768,9 +25032,11 @@ extern "C" {
     *
     * @see elm_mapbuf_content_set() for details.
     *
+    * @deprecated use elm_object_content_unset() instead
+    *
     * @ingroup Mapbuf
     */
-   EAPI Evas_Object *elm_mapbuf_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object *elm_mapbuf_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Enable or disable the map.
@@ -24916,8 +25182,6 @@ extern "C" {
     * @{
     */
 
-   typedef struct _Elm_Flipselector_Item Elm_Flipselector_Item; /**< Item handle for a flip selector widget. */
-
    /**
     * Add a new flip selector widget to the given parent Elementary
     * (container) widget
@@ -24982,7 +25246,7 @@ extern "C" {
     *
     * @ingroup Flipselector
     */
-   EAPI Elm_Flipselector_Item     *elm_flipselector_item_append(Evas_Object *obj, const char *label, Evas_Smart_Cb func, void *data) EINA_ARG_NONNULL(1);
+   EAPI Elm_Object_Item     *elm_flipselector_item_append(Evas_Object *obj, const char *label, Evas_Smart_Cb func, void *data) EINA_ARG_NONNULL(1);
 
    /**
     * Prepend a (text) item to a flip selector widget
@@ -25008,19 +25272,19 @@ extern "C" {
     *
     * @ingroup Flipselector
     */
-   EAPI Elm_Flipselector_Item     *elm_flipselector_item_prepend(Evas_Object *obj, const char *label, Evas_Smart_Cb func, void *data) EINA_ARG_NONNULL(1);
+   EAPI Elm_Object_Item     *elm_flipselector_item_prepend(Evas_Object *obj, const char *label, Evas_Smart_Cb func, void *data) EINA_ARG_NONNULL(1);
 
    /**
     * Get the internal list of items in a given flip selector widget.
     *
     * @param obj The flipselector object
-    * @return The list of items (#Elm_Flipselector_Item as data) or
+    * @return The list of items (#Elm_Object_Item as data) or
     * @c NULL on errors.
     *
     * This list is @b not to be modified in any way and must not be
     * freed. Use the list members with functions like
-    * elm_flipselector_item_label_set(),
-    * elm_flipselector_item_label_get(),
+    * elm_object_item_text_set(),
+    * elm_object_item_text_get(),
     * elm_flipselector_item_del(),
     * elm_flipselector_item_selected_get(),
     * elm_flipselector_item_selected_set().
@@ -25046,7 +25310,7 @@ extern "C" {
     *
     * @ingroup Flipselector
     */
-   EAPI Elm_Flipselector_Item     *elm_flipselector_first_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Elm_Object_Item     *elm_flipselector_first_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Get the last item in the given flip selector widget's list of
@@ -25061,7 +25325,7 @@ extern "C" {
     *
     * @ingroup Flipselector
     */
-   EAPI Elm_Flipselector_Item     *elm_flipselector_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Elm_Object_Item     *elm_flipselector_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Get the currently selected item in a flip selector widget.
@@ -25072,13 +25336,13 @@ extern "C" {
     *
     * @ingroup Flipselector
     */
-   EAPI Elm_Flipselector_Item     *elm_flipselector_selected_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Elm_Object_Item     *elm_flipselector_selected_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
 
    /**
     * Set whether a given flip selector widget's item should be the
     * currently selected one.
     *
-    * @param item The flip selector item
+    * @param it The flip selector item
     * @param selected @c EINA_TRUE to select it, @c EINA_FALSE to unselect.
     *
     * This sets whether @p item is or not the selected (thus, under
@@ -25091,13 +25355,13 @@ extern "C" {
     *
     * @ingroup Flipselector
     */
-   EAPI void                       elm_flipselector_item_selected_set(Elm_Flipselector_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1);
+   EAPI void                       elm_flipselector_item_selected_set(Elm_Object_Item *it, Eina_Bool selected) EINA_ARG_NONNULL(1);
 
    /**
     * Get whether a given flip selector widget's item is the currently
     * selected one.
     *
-    * @param item The flip selector item
+    * @param it The flip selector item
     * @return @c EINA_TRUE, if it's selected, @c EINA_FALSE otherwise
     * (or on errors).
     *
@@ -25105,46 +25369,48 @@ extern "C" {
     *
     * @ingroup Flipselector
     */
-   EAPI Eina_Bool                  elm_flipselector_item_selected_get(const Elm_Flipselector_Item *item) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool                  elm_flipselector_item_selected_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
 
    /**
     * Delete a given item from a flip selector widget.
     *
-    * @param item The item to delete
+    * @param it The item to delete
     *
     * @ingroup Flipselector
     */
-   EAPI void                       elm_flipselector_item_del(Elm_Flipselector_Item *item) EINA_ARG_NONNULL(1);
+   EAPI void                       elm_flipselector_item_del(Elm_Object_Item *it) EINA_ARG_NONNULL(1);
 
    /**
     * Get the label of a given flip selector widget's item.
     *
-    * @param item The item to get label from
+    * @param it The item to get label from
     * @return The text label of @p item or @c NULL, on errors
     *
-    * @see elm_flipselector_item_label_set()
+    * @see elm_object_item_text_set()
     *
+    * @deprecated see elm_object_item_text_get() instead
     * @ingroup Flipselector
     */
-   EAPI const char                *elm_flipselector_item_label_get(const Elm_Flipselector_Item *item) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI const char                *elm_flipselector_item_label_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
 
    /**
     * Set the label of a given flip selector widget's item.
     *
-    * @param item The item to set label on
+    * @param it The item to set label on
     * @param label The text label string, in UTF-8 encoding
     *
-    * @see elm_flipselector_item_label_get()
+    * @see elm_object_item_text_get()
     *
+        * @deprecated see elm_object_item_text_set() instead
     * @ingroup Flipselector
     */
-   EAPI void                       elm_flipselector_item_label_set(Elm_Flipselector_Item *item, const char *label) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void                       elm_flipselector_item_label_set(Elm_Object_Item *it, const char *label) EINA_ARG_NONNULL(1);
 
    /**
     * Gets the item before @p item in a flip selector widget's
     * internal list of items.
     *
-    * @param item The item to fetch previous from
+    * @param it The item to fetch previous from
     * @return The item before the @p item, in its parent's list. If
     *         there is no previous item for @p item or there's an
     *         error, @c NULL is returned.
@@ -25153,13 +25419,13 @@ extern "C" {
     *
     * @ingroup Flipselector
     */
-   EAPI Elm_Flipselector_Item     *elm_flipselector_item_prev_get(Elm_Flipselector_Item *item) EINA_ARG_NONNULL(1);
+   EAPI Elm_Object_Item     *elm_flipselector_item_prev_get(Elm_Object_Item *it) EINA_ARG_NONNULL(1);
 
    /**
     * Gets the item after @p item in a flip selector widget's
     * internal list of items.
     *
-    * @param item The item to fetch next from
+    * @param it The item to fetch next from
     * @return The item after the @p item, in its parent's list. If
     *         there is no next item for @p item or there's an
     *         error, @c NULL is returned.
@@ -25168,7 +25434,7 @@ extern "C" {
     *
     * @ingroup Flipselector
     */
-   EAPI Elm_Flipselector_Item     *elm_flipselector_item_next_get(Elm_Flipselector_Item *item) EINA_ARG_NONNULL(1);
+   EAPI Elm_Object_Item     *elm_flipselector_item_next_get(Elm_Object_Item *it) EINA_ARG_NONNULL(1);
 
    /**
     * Set the interval on time updates for an user mouse button hold
@@ -26554,6 +26820,12 @@ extern "C" {
     * Default contents parts of the ctxpopup widget that you can use for are:
     * @li "default" - A content of the ctxpopup
     *
+    * Default contents parts of the naviframe items that you can use for are:
+    * @li "icon" - A icon in the title area
+    * 
+    * Default text parts of the naviframe items that you can use for are:
+    * @li "default" - Title label in the title area
+    *
     * @ref tutorial_ctxpopup shows the usage of a good deal of the API.
     * @{
     */
@@ -26654,8 +26926,9 @@ extern "C" {
     * @param disabled @c EINA_TRUE to disable it, @c EINA_FALSE to enable it
     *
     * When disabled the item is greyed out to indicate it's state.
+    * @deprecated use elm_object_item_disabled_set() instead
     */
-   EAPI void          elm_ctxpopup_item_disabled_set(Elm_Object_Item *it, Eina_Bool disabled) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void          elm_ctxpopup_item_disabled_set(Elm_Object_Item *it, Eina_Bool disabled) EINA_ARG_NONNULL(1);
    /**
     * @brief Get the ctxpopup item's disabled/enabled state.
     *
@@ -26675,8 +26948,10 @@ extern "C" {
     *
     * @see elm_ctxpopup_item_append()
     * @see elm_ctxpopup_item_icon_set()
+    *
+    * @deprecated use elm_object_item_part_content_get() instead
     */
-   EAPI Evas_Object  *elm_ctxpopup_item_icon_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object  *elm_ctxpopup_item_icon_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
    /**
     * @brief Sets the side icon associated with the ctxpopup item
     *
@@ -26688,8 +26963,11 @@ extern "C" {
     * dissapear from the first item.
     *
     * @see elm_ctxpopup_item_append()
+    *  
+    * @deprecated use elm_object_item_part_content_set() instead
+    *
     */
-   EAPI void          elm_ctxpopup_item_icon_set(Elm_Object_Item *it, Evas_Object *icon) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void          elm_ctxpopup_item_icon_set(Elm_Object_Item *it, Evas_Object *icon) EINA_ARG_NONNULL(1);
    /**
     * @brief Get the label for the given ctxpopup item.
     *
@@ -26699,15 +26977,19 @@ extern "C" {
     *
     * @see elm_ctxpopup_item_append()
     * @see elm_ctxpopup_item_label_set()
+    *
+    * @deprecated use elm_object_item_text_get() instead
     */
-   EAPI const char   *elm_ctxpopup_item_label_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI const char   *elm_ctxpopup_item_label_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
    /**
     * @brief (Re)set the label on the given ctxpopup item.
     *
     * @param it Ctxpopup item
     * @param label String to set as label
+    *
+    * @deprecated use elm_object_item_text_set() instead
     */
-   EAPI void          elm_ctxpopup_item_label_set(Elm_Object_Item *it, const char *label) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI void          elm_ctxpopup_item_label_set(Elm_Object_Item *it, const char *label) EINA_ARG_NONNULL(1);
    /**
     * @brief Set an elm widget as the content of the ctxpopup.
     *
@@ -26718,12 +27000,13 @@ extern "C" {
     * you want to keep that old content object, use the
     * elm_ctxpopup_content_unset() function.
     *
-    * @deprecated use elm_object_content_set()
-    *
     * @warning Ctxpopup can't hold both a item list and a content at the same
     * time. When a content is set, any previous items will be removed.
+    * 
+    * @deprecated use elm_object_content_set() instead
+    *
     */
-   EAPI void          elm_ctxpopup_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1, 2);
+   WILL_DEPRECATE  EAPI void          elm_ctxpopup_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1, 2);
    /**
     * @brief Unset the ctxpopup content
     *
@@ -26735,8 +27018,11 @@ extern "C" {
     * @deprecated use elm_object_content_unset()
     *
     * @see elm_ctxpopup_content_set()
+    *
+    * @deprecated use elm_object_content_unset() instead
+    *
     */
-   EAPI Evas_Object  *elm_ctxpopup_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   WILL_DEPRECATE  EAPI Evas_Object  *elm_ctxpopup_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * @brief Set the direction priority of a ctxpopup.
     *
@@ -27705,18 +27991,95 @@ extern "C" {
 #define ELM_STORE_ITEM_MAPPING_END { ELM_STORE_ITEM_MAPPING_NONE, NULL, 0, { .empty = { EINA_TRUE } } }
 #define ELM_STORE_ITEM_MAPPING_OFFSET(st, it) offsetof(st, it)
 
+   /**
+    * dbsystem Store object
+    *
+    * @addtogroup DBStore
+    * @{
+    *
+    * @return The new object or NULL if it cannot be created
+    */
    EAPI Elm_Store              *elm_store_dbsystem_new(void);
+   /**
+    * Sets the item count of a store
+    *
+    * @param st The store object
+    * @param count The item count of an store
+    */
    EAPI void                    elm_store_item_count_set(Elm_Store *st, int count) EINA_ARG_NONNULL(1);
-   EAPI void                    elm_store_item_select_func_set(Elm_Store *st, Elm_Store_Item_Select_Cb func, const void *data) EINA_ARG_NONNULL(1);
+   /**
+    * Set the select func that select the state of a list item whether true or false
+    *
+    * @param st The store object
+    * @param func The select cb function of an store
+    * @param data The new data pointer to set
+    */
+   EAPI void                    elm_store_item_select_func_set(Elm_Store *st, Elm_Store_Item_Select_Cb func, const void *data) EINA_ARG_NONNULL(1);
+   /**
+    * Sets the sort func that sort the item with a next in the list
+    *
+    * @param st The store object
+    * @param func The sort cb function of an store
+    * @param data The new data pointer to set
+    */
    EAPI void                    elm_store_item_sort_func_set(Elm_Store *st, Elm_Store_Item_Sort_Cb func, const void *data) EINA_ARG_NONNULL(1);
+   /**
+    * Set the store item free func
+    *
+    * @param st The store object
+    * @param func The free cb function of an store
+    * @param data The new data pointer to set
+    */
    EAPI void                    elm_store_item_free_func_set(Elm_Store *st, Elm_Store_Item_Free_Cb func, const void *data) EINA_ARG_NONNULL(1);
+   /**
+    * Get the item index that included header items
+    *
+    * @param sti The store item object
+    * @return The item index in genlist
+    */
    EAPI int                     elm_store_item_data_index_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
+   /**
+    * Get the DB pointer of an item
+    *
+    * @param sti The store item object
+    * @return The DB pointer of item
+    */
    EAPI void                   *elm_store_dbsystem_db_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
+   /**
+    * Set the DB pointer of an item
+    *
+    * @param sti The store item object
+    * @parm p_db The DB pointer of item
+    */
    EAPI void                    elm_store_dbsystem_db_set(Elm_Store *store, void *pDB) EINA_ARG_NONNULL(1);
+   /**
+    */
    EAPI int                     elm_store_item_index_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
+   /**
+    * Append the item to the genlist
+    *
+    * @param st The store object
+    * @param info The store item info dbsystem object
+    * @return The item of store
+    */
    EAPI Elm_Store_Item         *elm_store_item_add(Elm_Store *st, Elm_Store_Item_Info *info) EINA_ARG_NONNULL(1);
+   /**
+    * Realize the visible items to the screen
+    *
+    * @param st The store object
+    */
    EAPI void                    elm_store_item_update(Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
+   /**
+    * Realize the item to the screen
+    *
+    * @param sti The store item object
+    */
    EAPI void                    elm_store_visible_items_update(Elm_Store *st) EINA_ARG_NONNULL(1);
+   /**
+    * Delete the item of genlist
+    *
+    * @param sti The store item object
+    */
    EAPI void                    elm_store_item_del(Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
    EAPI void                    elm_store_free(Elm_Store *st);
    EAPI Elm_Store              *elm_store_filesystem_new(void);
@@ -27740,6 +28103,9 @@ extern "C" {
    EAPI void                   *elm_store_item_data_get(Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
    EAPI const Elm_Store        *elm_store_item_store_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
    EAPI const Elm_Genlist_Item *elm_store_item_genlist_item_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
+   /**
+    * @}
+    */
 
    /**
     * @defgroup SegmentControl SegmentControl
@@ -28540,84 +28906,6 @@ extern "C" {
    EAPI void         elm_popup_orient_set(Evas_Object *obj, Elm_Popup_Orient orient);
    EAPI int          elm_popup_run(Evas_Object *obj);
 
-   /* NavigationBar */
-   #define NAVIBAR_TITLEOBJ_INSTANT_HIDE "elm,state,hide,noanimate,title", "elm"
-   #define NAVIBAR_TITLEOBJ_INSTANT_SHOW "elm,state,show,noanimate,title", "elm"
-
-   typedef enum
-     {
-        ELM_NAVIGATIONBAR_FUNCTION_BUTTON1,
-        ELM_NAVIGATIONBAR_FUNCTION_BUTTON2,
-        ELM_NAVIGATIONBAR_FUNCTION_BUTTON3,
-        ELM_NAVIGATIONBAR_BACK_BUTTON
-     } Elm_Navi_Button_Type;
-
-   EINA_DEPRECATED EAPI Evas_Object *elm_navigationbar_add(Evas_Object *parent);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_push(Evas_Object *obj, const char *title, Evas_Object *fn_btn1, Evas_Object *fn_btn2, Evas_Object *fn_btn3, Evas_Object *content);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_pop(Evas_Object *obj);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_to_content_pop(Evas_Object *obj, Evas_Object *content);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_title_label_set(Evas_Object *obj, Evas_Object *content, const char *title);
-   EINA_DEPRECATED    EAPI const char  *elm_navigationbar_title_label_get(Evas_Object *obj, Evas_Object *content);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_title_object_add(Evas_Object *obj, Evas_Object *content, Evas_Object *title_obj);
-   EINA_DEPRECATED    EAPI Evas_Object *elm_navigationbar_title_object_get(Evas_Object *obj, Evas_Object *content);
-   EINA_DEPRECATED    EAPI Eina_List   *elm_navigationbar_title_object_list_get(Evas_Object *obj, Evas_Object *content);
-   EINA_DEPRECATED    EAPI Evas_Object *elm_navigationbar_content_top_get(Evas_Object *obj);
-   EINA_DEPRECATED    EAPI Evas_Object *elm_navigationbar_content_bottom_get(Evas_Object *obj);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_hidden_set(Evas_Object *obj, Eina_Bool hidden);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_title_button_set(Evas_Object *obj, Evas_Object *content, Evas_Object *button, Elm_Navi_Button_Type button_type);
-   EINA_DEPRECATED    EAPI Evas_Object *elm_navigationbar_title_button_get(Evas_Object *obj, Evas_Object *content, Elm_Navi_Button_Type button_type);
-   EINA_DEPRECATED    EAPI const char  *elm_navigationbar_subtitle_label_get(Evas_Object *obj, Evas_Object *content);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_subtitle_label_set(Evas_Object *obj, Evas_Object *content, const char *subtitle);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_title_object_list_unset(Evas_Object *obj, Evas_Object *content, Eina_List **list);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_animation_disabled_set(Evas_Object *obj, Eina_Bool disable);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_title_object_visible_set(Evas_Object *obj, Evas_Object *content, Eina_Bool visible);
-   EINA_DEPRECATED    Eina_Bool         elm_navigationbar_title_object_visible_get(Evas_Object *obj, Evas_Object *content);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_title_icon_set(Evas_Object *obj, Evas_Object *content, Evas_Object *icon);
-   EINA_DEPRECATED    EAPI Evas_Object *elm_navigationbar_title_icon_get(Evas_Object *obj, Evas_Object *content);
-
-   /* NavigationBar */
-   #define NAVIBAR_EX_TITLEOBJ_INSTANT_HIDE "elm,state,hide,noanimate,title", "elm"
-   #define NAVIBAR_EX_TITLEOBJ_INSTANT_SHOW "elm,state,show,noanimate,title", "elm"
-
-   typedef enum
-     {
-        ELM_NAVIGATIONBAR_EX_BACK_BUTTON,
-        ELM_NAVIGATIONBAR_EX_FUNCTION_BUTTON1,
-        ELM_NAVIGATIONBAR_EX_FUNCTION_BUTTON2,
-        ELM_NAVIGATIONBAR_EX_FUNCTION_BUTTON3,
-        ELM_NAVIGATIONBAR_EX_MAX
-     } Elm_Navi_ex_Button_Type;
-   typedef struct _Elm_Navigationbar_ex_Item Elm_Navigationbar_ex_Item;
-
-   EINA_DEPRECATED    EAPI Evas_Object *elm_navigationbar_ex_add(Evas_Object *parent);
-   EINA_DEPRECATED    EAPI Elm_Navigationbar_ex_Item *elm_navigationbar_ex_item_push(Evas_Object *obj, Evas_Object *content, const char *item_style);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_ex_item_pop(Evas_Object *obj);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_ex_item_promote(Elm_Navigationbar_ex_Item* item);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_ex_to_item_pop(Elm_Navigationbar_ex_Item* item);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_ex_item_title_label_set(Elm_Navigationbar_ex_Item *item, const char *title);
-   EINA_DEPRECATED    EAPI const char  *elm_navigationbar_ex_item_title_label_get(Elm_Navigationbar_ex_Item* item);
-   EINA_DEPRECATED    EAPI Elm_Navigationbar_ex_Item *elm_navigationbar_ex_item_top_get(const Evas_Object *obj);
-   EINA_DEPRECATED    EAPI Elm_Navigationbar_ex_Item *elm_navigationbar_ex_item_bottom_get(const Evas_Object *obj);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_ex_item_title_button_set(Elm_Navigationbar_ex_Item* item, char *btn_label, Evas_Object *icon, int button_type, Evas_Smart_Cb func, const void *data);
-   EINA_DEPRECATED    EAPI Evas_Object *elm_navigationbar_ex_item_title_button_get(Elm_Navigationbar_ex_Item* item, int button_type);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_ex_item_title_object_set(Elm_Navigationbar_ex_Item* item, Evas_Object *title_obj);
-   EINA_DEPRECATED    EAPI Evas_Object *elm_navigationbar_ex_item_title_object_unset(Elm_Navigationbar_ex_Item* item);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_ex_item_title_hidden_set(Elm_Navigationbar_ex_Item* item, Eina_Bool hidden);
-   EINA_DEPRECATED    EAPI Evas_Object *elm_navigationbar_ex_item_title_object_get(Elm_Navigationbar_ex_Item* item);
-   EINA_DEPRECATED    EAPI const char  *elm_navigationbar_ex_item_subtitle_label_get(Elm_Navigationbar_ex_Item* item);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_ex_item_subtitle_label_set( Elm_Navigationbar_ex_Item* item, const char *subtitle);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_ex_item_style_set(Elm_Navigationbar_ex_Item* item, const char* item_style);
-   EINA_DEPRECATED    EAPI const char  *elm_navigationbar_ex_item_style_get(Elm_Navigationbar_ex_Item* item);
-   EINA_DEPRECATED    EAPI Evas_Object *elm_navigationbar_ex_item_content_unset(Elm_Navigationbar_ex_Item* item);
-   EINA_DEPRECATED    EAPI Evas_Object *elm_navigationbar_ex_item_content_get(Elm_Navigationbar_ex_Item* item);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_ex_delete_on_pop_set(Evas_Object *obj, Eina_Bool del_on_pop);
-   EINA_DEPRECATED    EAPI Evas_Object *elm_navigationbar_ex_item_icon_get(Elm_Navigationbar_ex_Item* item);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_ex_item_icon_set(Elm_Navigationbar_ex_Item* item, Evas_Object *icon);
-   EINA_DEPRECATED    EAPI Evas_Object *elm_navigationbar_ex_item_title_button_unset(Elm_Navigationbar_ex_Item* item, int button_type);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_ex_animation_disable_set(Evas_Object *obj, Eina_Bool disable);
-   EINA_DEPRECATED    EAPI void         elm_navigationbar_ex_title_object_visible_set(Elm_Navigationbar_ex_Item* item, Eina_Bool visible);
-   EINA_DEPRECATED    Eina_Bool         elm_navigationbar_ex_title_object_visible_get(Elm_Navigationbar_ex_Item* item);
-
    /**
     * @defgroup Naviframe Naviframe
     * @ingroup Elementary
@@ -28958,6 +29246,16 @@ extern "C" {
     * @}
     */
 
+   /**
+    * @defgroup Controlbar Controlbar
+    * @ingroup Elementary
+    * @addtogroup Controlbar
+    * @{
+    *
+    * This is a Controlbar. It can contain label and icon objects.
+    * In edit mode, you can change the location of items.
+    */
+
    /* Control Bar */
    #define CONTROLBAR_SYSTEM_ICON_ALBUMS "controlbar_albums"
    #define CONTROLBAR_SYSTEM_ICON_ARTISTS "controlbar_artists"
@@ -28981,55 +29279,398 @@ extern "C" {
      } Elm_Controlbar_Mode_Type;
 
    typedef struct _Elm_Controlbar_Item Elm_Controlbar_Item;
+   /**
+    * Add a new controlbar object
+    *
+    * @param parent The parent object
+    * @return The new object or NULL if it cannot be created
+    */
    EAPI Evas_Object *elm_controlbar_add(Evas_Object *parent);
+   /**
+    * Append new tab item
+    *
+    * @param   obj The controlbar object
+    * @param   icon_path The icon path of item
+    * @param   label The label of item
+    * @param   view The view of item
+    * @return  The item of controlbar
+    */
    EAPI Elm_Controlbar_Item *elm_controlbar_tab_item_append(Evas_Object *obj, const char *icon_path, const char *label, Evas_Object *view);
+   /**
+    * Prepend new tab item
+    *
+    * @param   obj The controlbar object
+    * @param   icon_path The icon path of item
+    * @param   label The label of item
+    * @param   view The view of item
+    * @return  The item of controlbar
+    */
    EAPI Elm_Controlbar_Item *elm_controlbar_tab_item_prepend(Evas_Object *obj, const char *icon_path, const char *label, Evas_Object *view);
+   /**
+    * Insert new tab item before given item
+    *
+    * @param   obj The controlbar object
+    * @param   before The given item
+    * @param   icon_path The icon path of item
+    * @param   label The label of item
+    * @param   view The view of item
+    * @return  The item of controlbar
+    */
    EAPI Elm_Controlbar_Item *elm_controlbar_tab_item_insert_before(Evas_Object *obj, Elm_Controlbar_Item *before, const char *icon_path, const char *label, Evas_Object *view);
+   /**
+    * Insert new tab item after given item
+    *
+    * @param   obj The controlbar object
+    * @param   after The given item
+    * @param   icon_path The icon path of item
+    * @param   label The label of item
+    * @param   view The view of item
+    * @return  The item of controlbar
+    */
    EAPI Elm_Controlbar_Item *elm_controlbar_tab_item_insert_after(Evas_Object *obj, Elm_Controlbar_Item *after, const char *icon_path, const char *label, Evas_Object *view);
+   /**
+    * Append new tool item
+    *
+    * @param   obj The controlbar object
+    * @param   icon_path The icon path of item
+    * @param   label The label of item
+    * @param   func Callback function of item
+    * @param   data The data of callback function
+    * @return  The item of controlbar
+    */
    EAPI Elm_Controlbar_Item *elm_controlbar_tool_item_append(Evas_Object *obj, const char *icon_path, const char *label, void (*func) (void *data, Evas_Object *obj, void *event_info), void *data);
+   /**
+    * Prepend new tool item
+    *
+    * @param   obj The controlbar object
+    * @param   icon_path The icon path of item
+    * @param   label The label of item
+    * @param   func Callback function of item
+    * @param   data The data of callback function
+    * @return  The item of controlbar
+    */
    EAPI Elm_Controlbar_Item *elm_controlbar_tool_item_prepend(Evas_Object *obj, const char *icon_path, const char *label, void (*func) (void *data, Evas_Object *obj, void *event_info), void *data);
+   /**
+    * Insert new tool item before given item
+    *
+    * @param   obj The controlbar object
+    * @param   before The given item
+    * @param   icon_path The icon path of item
+    * @param   label The label of item
+    * @param   func Callback function of item
+    * @param   data The data of callback function
+    * @return  The item of controlbar
+    */
    EAPI Elm_Controlbar_Item *elm_controlbar_tool_item_insert_before(Evas_Object *obj, Elm_Controlbar_Item *before, const char *icon_path, const char *label, void (*func) (void *data, Evas_Object *obj, void *event_info), void *data);
+   /**
+    * Insert new tool item after given item
+    *
+    * @param   obj The controlbar object
+    * @param   after The given item
+    * @param   icon_path The icon path of item
+    * @param   label The label of item
+    * @param   func Callback function of item
+    * @param   data The data of callback function
+    * @return  The item of controlbar
+    */
    EAPI Elm_Controlbar_Item *elm_controlbar_tool_item_insert_after(Evas_Object *obj, Elm_Controlbar_Item *after, const char *icon_path, const char *label, void (*func) (void *data, Evas_Object *obj, void *event_info), void *data);
+   /**
+    * Append new object item
+    *
+    * @param   obj The controlbar object
+    * @param   obj_item The object of item
+    * @param   sel The number of sel occupied
+    * @return  The item of controlbar
+    */
    EAPI Elm_Controlbar_Item *elm_controlbar_object_item_append(Evas_Object *obj, Evas_Object *obj_item, const int sel);
+   /**
+    * Prepend new object item
+    *
+    * @param   obj The controlbar object
+    * @param   obj_item The object of item
+    * @param   sel The number of sel occupied
+    * @return  The item of controlbar
+    */
    EAPI Elm_Controlbar_Item *elm_controlbar_object_item_prepend(Evas_Object *obj, Evas_Object *obj_item, const int sel);
+   /**
+    * Insert new object item before given item
+    *
+    * @param   obj The controlbar object
+    * @param   before The given item
+    * @param   obj_item The object of item
+    * @param   sel The number of sel occupied
+    * @return  The item of controlbar
+    */
    EAPI Elm_Controlbar_Item *elm_controlbar_object_item_insert_before(Evas_Object *obj, Elm_Controlbar_Item *before, Evas_Object *obj_item, const int sel);
+   /**
+    * Insert new object item after given item
+    *
+    * @param   obj The controlbar object
+    * @param   after The given item
+    * @param   obj_item The object of item
+    * @param   sel The number of sel occupied
+    * @return  The item of controlbar
+    */
    EAPI Elm_Controlbar_Item *elm_controlbar_object_item_insert_after(Evas_Object *obj, Elm_Controlbar_Item *after, Evas_Object *obj_item, const int sel);
+   /**
+    * Get the object of the object item
+    *
+    * @param       it The item of controlbar
+    * @return      The object of the object item
+    */
    EAPI Evas_Object *elm_controlbar_object_item_object_get(const Elm_Controlbar_Item *it);
+   /**
+    * Delete item from controlbar
+    *
+    * @param   it The item of controlbar
+    */
    EAPI void         elm_controlbar_item_del(Elm_Controlbar_Item *it);
+   /**
+    * Select item in controlbar
+    *
+    * @param   it The item of controlbar
+    */
    EAPI void         elm_controlbar_item_select(Elm_Controlbar_Item *it);
+   /**
+    * Set the visible status of item in bar
+    *
+    * @param   it The item of controlbar
+    * @param   bar EINA_TRUE or EINA_FALSE
+    */
    EAPI void         elm_controlbar_item_visible_set(Elm_Controlbar_Item *it, Eina_Bool bar);
+   /**
+    * Get the result which or not item is visible in bar
+    *
+    * @param   it The item of controlbar
+    * @return  EINA_TRUE or EINA_FALSE
+    */
    EAPI Eina_Bool    elm_controlbar_item_visible_get(const Elm_Controlbar_Item * it);
+   /**
+    * Set item disable
+    *
+    * @param   it The item of controlbar
+    * @param   bar EINA_TRUE or EINA_FALSE
+    */
    EAPI void         elm_controlbar_item_disabled_set(Elm_Controlbar_Item * it, Eina_Bool disabled);
+   /**
+    * Get item disable
+    *
+    * @param   it The item of controlbar
+    * @return  EINA_TRUE or EINA_FALSE
+    */
    EAPI Eina_Bool    elm_controlbar_item_disabled_get(const Elm_Controlbar_Item * it);
+   /**
+    * Set the icon of item
+    *
+    * @param   it The item of controlbar
+    * @param   icon_path The icon path of the item
+    * @return  The icon object
+    */
    EAPI void         elm_controlbar_item_icon_set(Elm_Controlbar_Item *it, const char *icon_path);
+   /**
+    * Get the icon of item
+    *
+    * @param   it The item of controlbar
+    * @return  The icon object
+    */
    EAPI Evas_Object *elm_controlbar_item_icon_get(const Elm_Controlbar_Item *it);
+   /**
+    * Set the label of item
+    *
+    * @param   it The item of controlbar
+    * @param   label The label of item
+    */
    EAPI void         elm_controlbar_item_label_set(Elm_Controlbar_Item *it, const char *label);
+   /**
+    * Get the label of item
+    *
+    * @param   it The item of controlbar
+    * @return The label of item
+    */
    EAPI const char  *elm_controlbar_item_label_get(const Elm_Controlbar_Item *it);
+   /**
+    * Get the selected item
+    *
+    * @param   obj The controlbar object
+    * @return          The item of controlbar
+    */
    EAPI Elm_Controlbar_Item *elm_controlbar_selected_item_get(const Evas_Object *obj);
+   /**
+    * Get the first item
+    *
+    * @param   obj The controlbar object
+    * @return          The item of controlbar
+    */
    EAPI Elm_Controlbar_Item *elm_controlbar_first_item_get(const Evas_Object *obj);
+   /**
+    * Get the last item
+    *
+    * @param   obj The controlbar object
+    * @return          The item of controlbar
+    */
    EAPI Elm_Controlbar_Item *elm_controlbar_last_item_get(const Evas_Object *obj);
+   /**
+    * Get the items
+    *
+    * @param   obj The controlbar object
+    * @return  The list of the items
+    */
    EAPI const Eina_List   *elm_controlbar_items_get(const Evas_Object *obj);
+   /**
+    * Get the previous item
+    *
+    * @param   it The item of controlbar
+    * @return  The previous item of the parameter item
+    */
    EAPI Elm_Controlbar_Item *elm_controlbar_item_prev(Elm_Controlbar_Item *it);
+   /**
+    * Get the next item
+    *
+    * @param   obj The controlbar object
+    * @return  The next item of the parameter item
+    */
    EAPI Elm_Controlbar_Item *elm_controlbar_item_next(Elm_Controlbar_Item *it);
+   /**
+    * Set the view of the item
+    *
+    * @param   it The item of controlbar
+    * @param   view The view for the item
+    */
    EAPI void         elm_controlbar_item_view_set(Elm_Controlbar_Item *it, Evas_Object * view);
+   /**
+    * Get the view of the item
+    *
+    * @param   it The item of controlbar
+    * @return  The view for the item
+    */
    EAPI Evas_Object *elm_controlbar_item_view_get(const Elm_Controlbar_Item *it);
+   /**
+    * Unset the view of the item
+    *
+    * @param   it The item of controlbar
+    * @return  The view for the item
+    */
    EAPI Evas_Object *elm_controlbar_item_view_unset(Elm_Controlbar_Item *it);
+   /**
+    * Set the vertical mode of the controlbar
+    *
+    * @param   obj The object of the controlbar
+    * @param   vertical The vertical mode of the controlbar (TRUE = vertical, FALSE = horizontal)
+    */
    EAPI Evas_Object *elm_controlbar_item_button_get(const Elm_Controlbar_Item *it);
+   /**
+    * Set the mode of the controlbar
+    *
+    * @param   obj The object of the controlbar
+    * @param   mode The mode of the controlbar
+    */
    EAPI void         elm_controlbar_mode_set(Evas_Object *obj, int mode);
+   /**
+    * Set the alpha of the controlbar
+    *
+    * @param   obj The object of the controlbar
+    * @param   alpha The alpha value of the controlbar (0-100)
+    */
    EAPI void         elm_controlbar_alpha_set(Evas_Object *obj, int alpha);
+   /**
+    * Set auto-align mode of the controlbar(It's not prepared yet)
+    * If you set the auto-align and add items more than 5,
+    * the "more" item will be made and the items more than 5 will be unvisible.
+    *
+    * @param   obj The object of the controlbar
+    * @param   auto_align The dicision that the controlbar use the auto-align
+    */
    EAPI void         elm_controlbar_item_auto_align_set(Evas_Object *obj, Eina_Bool auto_align);
+   /**
+    * Get the button object of the item
+    *
+    * @param   it The item of controlbar
+    * @return  button object of the item
+    */
    EAPI void         elm_controlbar_vertical_set(Evas_Object *obj, Eina_Bool vertical);
+   /**
+    * @}
+    */
 
-   /* SearchBar */
+
+   /**
+    * @defgroup Searchbar Searchbar
+    * @addtogroup TickerNoti
+    * @{
+    * @ingroup Elementary
+    *
+    * This is Searchbar.
+    * It can contain a simple entry and button object.
+    */
+
+   /**
+    * Add a new searchbar to the parent
+    * @param parent The parent object
+    * @return The new object or NULL if it cannot be created
+    */
    EAPI Evas_Object *elm_searchbar_add(Evas_Object *parent);
+   /**
+    * set the text of entry
+    *
+    * @param obj The searchbar object
+    * @return void
+    */
    EAPI void         elm_searchbar_text_set(Evas_Object *obj, const char *entry);
+   /**
+    * get the text of entry
+    *
+    * @param obj The searchbar object
+    * @return string pointer of entry
+    */
    EAPI const char  *elm_searchbar_text_get(Evas_Object *obj);
+   /**
+    * get the pointer of entry
+    *
+    * @param obj The searchbar object
+    * @return the entry object
+    */
    EAPI Evas_Object *elm_searchbar_entry_get(Evas_Object *obj);
+   /**
+    * get the pointer of editfield
+    *
+    * @param obj The searchbar object
+    * @return the editfield object
+    */
    EAPI Evas_Object *elm_searchbar_editfield_get(Evas_Object *obj);
+   /**
+    * set the cancel button animation flag
+    *
+    * @param obj The searchbar object
+    * @param cancel_btn_ani_flag The flag of animating cancen button or not
+    * @return void
+    */
    EAPI void         elm_searchbar_cancel_button_animation_set(Evas_Object *obj, Eina_Bool cancel_btn_ani_flag);
+   /**
+    * set the cancel button show mode
+    *
+    * @param obj The searchbar object
+    * @param visible The flag of cancen button show or not
+    * @return void
+    */
    EAPI void         elm_searchbar_cancel_button_set(Evas_Object *obj, Eina_Bool visible);
+   /**
+    * clear searchbar status
+    *
+    * @param obj The searchbar object
+    * @return void
+    */
    EAPI void         elm_searchbar_clear(Evas_Object *obj);
+   /**
+    * set the searchbar boundary rect mode(with bg rect) set
+    *
+    * @param obj The searchbar object
+    * @param boundary The present flag of boundary rect or not
+    * @return void
+    */
    EAPI void         elm_searchbar_boundary_rect_set(Evas_Object *obj, Eina_Bool boundary);
+   /**
+    * @}
+    */
 
    EAPI Evas_Object *elm_page_control_add(Evas_Object *parent);
    EAPI void         elm_page_control_page_count_set(Evas_Object *obj, unsigned int page_count);
@@ -29043,45 +29684,13 @@ extern "C" {
    EAPI void         elm_nocontents_custom_set(const Evas_Object *obj, Evas_Object *custom);
    EAPI Evas_Object *elm_nocontents_custom_get(const Evas_Object *obj);
 
-   /* TickerNoti */
-   typedef enum
-     {
-        ELM_TICKERNOTI_ORIENT_TOP = 0,
-        ELM_TICKERNOTI_ORIENT_BOTTOM,
-        ELM_TICKERNOTI_ORIENT_LAST
-     }  Elm_Tickernoti_Orient;
-
-   EAPI Evas_Object              *elm_tickernoti_add (Evas_Object *parent);
-   EAPI void                      elm_tickernoti_orient_set (Evas_Object *obj, Elm_Tickernoti_Orient orient) EINA_ARG_NONNULL(1);
-   EAPI Elm_Tickernoti_Orient     elm_tickernoti_orient_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI int                       elm_tickernoti_rotation_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI void                      elm_tickernoti_rotation_set (Evas_Object *obj, int angle) EINA_ARG_NONNULL(1);
-   EAPI Evas_Object              *elm_tickernoti_win_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   /* #### Below APIs and data structures are going to be deprecated, announcment will be made soon ####*/
-   typedef enum
-    {
-       ELM_TICKERNOTI_DEFAULT,
-       ELM_TICKERNOTI_DETAILVIEW
-    } Elm_Tickernoti_Mode;
-   EAPI void                      elm_tickernoti_detailview_label_set (Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
-   EAPI const char               *elm_tickernoti_detailview_label_get (const Evas_Object *obj)EINA_ARG_NONNULL(1);
-   EAPI void                      elm_tickernoti_detailview_button_set (Evas_Object *obj, Evas_Object *button) EINA_ARG_NONNULL(2);
-   EAPI Evas_Object              *elm_tickernoti_detailview_button_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI void                      elm_tickernoti_detailview_icon_set (Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
-   EAPI Evas_Object              *elm_tickernoti_detailview_icon_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI Evas_Object              *elm_tickernoti_detailview_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI void                      elm_tickernoti_mode_set (Evas_Object *obj, Elm_Tickernoti_Mode mode) EINA_ARG_NONNULL(1);
-   EAPI Elm_Tickernoti_Mode       elm_tickernoti_mode_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI void                      elm_tickernoti_orientation_set (Evas_Object *obj, Elm_Tickernoti_Orient orient) EINA_ARG_NONNULL(1);
-   EAPI Elm_Tickernoti_Orient     elm_tickernoti_orientation_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI void                      elm_tickernoti_label_set (Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
-   EAPI const char               *elm_tickernoti_label_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI void                      elm_tickernoti_icon_set (Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
-   EAPI Evas_Object              *elm_tickernoti_icon_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   EAPI void                      elm_tickernoti_button_set (Evas_Object *obj, Evas_Object *button) EINA_ARG_NONNULL(1);
-   EAPI Evas_Object              *elm_tickernoti_button_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
-   /* ############################################################################### */
-   /*
+   /**
+    * @defgroup TickerNoti TickerNoti
+    * @addtogroup TickerNoti
+    * @{
+    *
+    * This is a notification widget which can be used to display some short information.
+    *
     * Parts which can be used with elm_object_text_part_set() and
     * elm_object_text_part_get():
     *
@@ -29099,23 +29708,254 @@ extern "C" {
     * @li "hide" - emitted when the tickernoti is completely hidden. In case of
     * any hide animation, this signal is emitted after the animation.
     */
-
-   /* colorpalette */
-   typedef struct _Colorpalette_Color Elm_Colorpalette_Color;
-
-   struct _Colorpalette_Color
+   typedef enum
      {
-        unsigned int r, g, b;
-     };
+        ELM_TICKERNOTI_ORIENT_TOP = 0,
+        ELM_TICKERNOTI_ORIENT_BOTTOM,
+        ELM_TICKERNOTI_ORIENT_LAST
+     }  Elm_Tickernoti_Orient;
 
-   EAPI Evas_Object *elm_colorpalette_add(Evas_Object *parent);
-   EAPI void         elm_colorpalette_color_set(Evas_Object *obj, int color_num, Elm_Colorpalette_Color *color);
-   EAPI void         elm_colorpalette_row_column_set(Evas_Object *obj, int row, int col);
-   /* smart callbacks called:
-    * "clicked" - when image clicked
+   /**
+    * Add a tickernoti object to @p parent
+    *
+    * @param parent The parent object
+    *
+    * @return The tickernoti object, or NULL upon failure
     */
-
-   /* editfield */
+   EAPI Evas_Object              *elm_tickernoti_add (Evas_Object *parent);
+   /**
+    * Set the orientation of the tickernoti object
+    *
+    * @param obj The tickernoti object
+    * @param orient The orientation of tickernoti object
+    */
+   EAPI void                      elm_tickernoti_orient_set (Evas_Object *obj, Elm_Tickernoti_Orient orient) EINA_ARG_NONNULL(1);
+   /**
+    * Get the orientation of the tickernoti object
+    *
+    * @param obj The tickernotil object
+    * @return The orientation of tickernotil object
+    */
+   EAPI Elm_Tickernoti_Orient     elm_tickernoti_orient_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * Get the rotation of tickernoti object
+    *
+    * @param obj The tickernotil object
+    * @return The rotation angle
+    */
+   EAPI int                       elm_tickernoti_rotation_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * Set the rotation angle for the tickernoti object
+    *
+    * @param obj The tickernoti object
+    * @param angle The rotation angle(in degree) will be used on the tickernoti object
+    */
+   EAPI void                      elm_tickernoti_rotation_set (Evas_Object *obj, int angle) EINA_ARG_NONNULL(1);
+   /**
+    * Get the view window(elm_win) on the tickernoti object
+    *
+    * @param obj The tickernotil object
+    * @return internal view window(elm_win) object
+    */
+   EAPI Evas_Object              *elm_tickernoti_win_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /* #### Below APIs and data structures are going to be deprecated, announcment will be made soon ####*/
+   /**
+    * @deprecated
+    */
+   typedef enum
+    {
+       ELM_TICKERNOTI_DEFAULT,
+       ELM_TICKERNOTI_DETAILVIEW
+    } Elm_Tickernoti_Mode;
+   /**
+    * Set the detail label on the tickernoti object
+    *
+    * @param obj The tickernoti object
+    * @param label The label will be used on the tickernoti object
+    * @deprecated use elm_object_text_set() instead
+    */
+   WILL_DEPRECATE  EAPI void                      elm_tickernoti_detailview_label_set (Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
+   /**
+    * Get the detail label used on the tickernoti object
+    *
+    * @param obj The tickernotil object
+    * @return The string inside the label
+    * @deprecated use elm_object_text_get() instead
+    */
+   WILL_DEPRECATE  EAPI const char               *elm_tickernoti_detailview_label_get (const Evas_Object *obj)EINA_ARG_NONNULL(1);
+   /**
+    * Set the button object used on the tickernoti object
+    *
+    * @param obj The tickernotil object
+    * @param button The button object will be used on the tickernoti object
+    * @deprecated use elm_object_content_part_set() instead with "icon" as part name
+    */
+   WILL_DEPRECATE  EAPI void                      elm_tickernoti_detailview_button_set (Evas_Object *obj, Evas_Object *button) EINA_ARG_NONNULL(2);
+   /**
+    * Get the button object used on the tickernoti object
+    *
+    * @param obj The tickernotil object
+    * @return The button object inside the tickernoti
+    * @deprecated use elm_object_content_part_get() instead with "button" as part name
+    */
+   WILL_DEPRECATE  EAPI Evas_Object              *elm_tickernoti_detailview_button_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * Set the detail icon object used on the tickernoti object
+    *
+    * @param obj The tickernotil object
+    * @param icon The icon object will be used on the tickernoti object
+    * @deprecated use elm_object_content_part_set() instead with "icon" as part name
+    */
+   WILL_DEPRECATE  EAPI void                      elm_tickernoti_detailview_icon_set (Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+   /**
+    * Get the detail icon object used on the tickernoti object
+    *
+    * @param obj The tickernotil object
+    * @return The icon object inside the tickernoti
+    * @deprecated use elm_object_content_part_get() instead with "icon" as part name
+    */
+   WILL_DEPRECATE  EAPI Evas_Object              *elm_tickernoti_detailview_icon_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * Get the view mode on the tickernoti object
+    *
+    * @param obj The tickernotil object
+    * @return The view mode
+    * @deprecated removed as now styles are used instead
+    */
+   WILL_DEPRECATE  EAPI Evas_Object              *elm_tickernoti_detailview_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * Set the view mode used on the tickernoti object
+    *
+    * @param obj The tickernotil object
+    * @param mode The view mode will be used on the tickernoti object
+    * @deprecated removed as now styles are used instead
+    */
+   WILL_DEPRECATE  EAPI void                      elm_tickernoti_mode_set (Evas_Object *obj, Elm_Tickernoti_Mode mode) EINA_ARG_NONNULL(1);
+   /**
+    * Get the detail view window(elm_win) on the tickernoti object
+    *
+    * @param obj The tickernotil object
+    * @return detail view window(elm_win) object
+    */
+   WILL_DEPRECATE  EAPI Elm_Tickernoti_Mode       elm_tickernoti_mode_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * Set the orientation of the tickernoti object
+    *
+    * @param obj The tickernoti object
+    * @param orient The orientation of tickernoti object
+    * @deprecated use elm_tickernoti_orient_set() instead
+    */
+   WILL_DEPRECATE  EAPI void                      elm_tickernoti_orientation_set (Evas_Object *obj, Elm_Tickernoti_Orient orient) EINA_ARG_NONNULL(1);
+   /**
+    * Get the orientation of the tickernoti object
+    *
+    * @param obj The tickernotil object
+    * @return The orientation of tickernotil object
+    * @deprecated use elm_tickernoti_orient_get() instead
+    */
+   WILL_DEPRECATE  EAPI Elm_Tickernoti_Orient     elm_tickernoti_orientation_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * Set the label on the tickernoti object
+    *
+    * @param obj The tickernoti object
+    * @param label The label will be used on the tickernoti object
+    * @deprecated use elm_object_text_get()
+    */
+   WILL_DEPRECATE  EAPI void                      elm_tickernoti_label_set (Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
+   /**
+    * Get the label used on the tickernoti object
+    *
+    * @param obj The tickernotil object
+    * @return The string inside the label
+    * @deprecated use elm_object_text_get() instead
+    */
+   WILL_DEPRECATE  EAPI const char               *elm_tickernoti_label_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * Set the icon object of the tickernoti object
+    *
+    * @param obj The tickernotil object
+    * @param icon The icon object will be used on the tickernoti object
+    * @deprecated use elm_object_content_part_set() instead with "icon" as part name
+    */
+   WILL_DEPRECATE  EAPI void                      elm_tickernoti_icon_set (Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+   /**
+    * Get the icon object of the tickernoti object
+    *
+    * @param obj The tickernotil object
+    * @return The icon object inside the tickernoti
+    * @deprecated use elm_object_content_part_get() instead with "icon" as part name
+    */
+   WILL_DEPRECATE  EAPI Evas_Object              *elm_tickernoti_icon_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * Set the action button object used on the tickernoti object
+    *
+    * @param obj The tickernotil object
+    * @param button The button object will be used on the tickernoti object
+    * @deprecated use elm_object_content_part_set() instead with "button" as part name
+    */
+   WILL_DEPRECATE  EAPI void                      elm_tickernoti_button_set (Evas_Object *obj, Evas_Object *button) EINA_ARG_NONNULL(1);
+   /**
+    * Get the action button object used on the tickernoti object
+    *
+    * @param obj The tickernotil object
+    * @return The button object inside the tickernoti
+    * @deprecated use elm_object_content_part_get() instead with "button" as part name
+    */
+   WILL_DEPRECATE  EAPI Evas_Object              *elm_tickernoti_button_get (const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * @}
+    */
+
+   /**
+    * @defgroup Colorpalette Colorpalette
+    * @ingroup Elementary
+    * @addtogroup Colorpalette
+    * @{
+    *
+    * Using colorpalette, you can select a color by clicking
+    * a color rectangle on the colorpalette.
+    *
+    * Smart callbacks that you can add are:
+    *
+    * clicked - This signal is sent when a color rectangle is clicked.
+    */
+   typedef struct _Colorpalette_Color Elm_Colorpalette_Color;
+   struct _Colorpalette_Color
+     {
+        unsigned int r, g, b;
+     };
+
+   /**
+    * Add a new colorpalette to the parent.
+    *
+    * @param parent The parent object
+    * @return The new object or NULL if it cannot be created
+    *
+    * @ingroup Colorpalette
+    */
+   EAPI Evas_Object *elm_colorpalette_add(Evas_Object *parent);
+   /**
+    * Set colors to the colorpalette.
+    *
+    * @param obj   Colorpalette object
+    * @param color_num     number of the colors on the colorpalette
+    * @param color     Color lists
+    */
+   EAPI void         elm_colorpalette_color_set(Evas_Object *obj, int color_num, Elm_Colorpalette_Color *color);
+   /**
+    * Set row/column value for the colorpalette.
+    *
+    * @param obj   Colorpalette object
+    * @param row   row value for the colorpalette
+    * @param col   column value for the colorpalette
+    */
+   EAPI void         elm_colorpalette_row_column_set(Evas_Object *obj, int row, int col);
+
+   /**
+    * @}
+    */
+
+   /* editfield */
    EAPI Evas_Object *elm_editfield_add(Evas_Object *parent);
    EAPI void         elm_editfield_label_set(Evas_Object *obj, const char *label);
    EAPI const char  *elm_editfield_label_get(Evas_Object *obj);
@@ -29137,90 +29977,282 @@ extern "C" {
     */
 
 
-   /* Sliding Drawer */
-   typedef enum _Elm_SlidingDrawer_Pos
-     {
-        ELM_SLIDINGDRAWER_BOTTOM,
-        ELM_SLIDINGDRAWER_LEFT,
-        ELM_SLIDINGDRAWER_RIGHT,
-        ELM_SLIDINGDRAWER_TOP
-     } Elm_SlidingDrawer_Pos;
-
-   typedef struct _Elm_SlidingDrawer_Drag_Value
-     {
-        double x, y;
-     } Elm_SlidingDrawer_Drag_Value;
-
-   EINA_DEPRECATED EAPI Evas_Object *elm_slidingdrawer_add(Evas_Object *parent);
-   EINA_DEPRECATED EAPI void         elm_slidingdrawer_content_set (Evas_Object *obj, Evas_Object *content);
-   EINA_DEPRECATED EAPI Evas_Object *elm_slidingdrawer_content_unset(Evas_Object *obj);
-   EINA_DEPRECATED EAPI void         elm_slidingdrawer_pos_set(Evas_Object *obj, Elm_SlidingDrawer_Pos pos);
-   EINA_DEPRECATED EAPI void         elm_slidingdrawer_max_drag_value_set(Evas_Object *obj, double dw,  double dh);
-   EINA_DEPRECATED EAPI void         elm_slidingdrawer_drag_value_set(Evas_Object *obj, double dx, double dy);
+   /**
+    * @defgroup Multibuttonenetry Multibuttonenetry
+    *
+    * @image html img/widget/flipselector/preview-00.png
+    * @image latex img/widget/flipselector/preview-00.eps
+    *
+    * A Multibuttonentry is a widget to allow a user to insert a text button.
+    * the text button is inserted by pressing the "return" key. If there is no space in the current row,
+    * the new button is entered in the next row. If the button is pressed, it will become focused. 
+    * The focus can be removed by pressing the "backspace" key.
+    * when items are added over 1 lines, if Multibuttonentry lost focus, it becase shrink mode ( made it 1 line)
+    *
+    * Smart callbacks one can register to:
+    * - @c "item,selected" - when item is selected . it can be called by backspace key.                       
+    * - @c "item,added" - when a new multibuttonentry item is added. 
+    * - @c "item,deleted" -when a multibuttonentry item is deleted. 
+    * - @c "item,clicked" - selected item of multibuttonentry is clicked.                  
+    * - @c "clicked" - when multibuttonentry is clicked. 
+    * - @c "focused" - when multibuttonentry is focused. 
+    * - @c "unfocused" - when multibuttonentry is unfocused. 
+    * - @c "expanded" - when multibuttonentry is expanded . 
+    * - @c "shrank" - when multibuttonentry is shrank. 
+    * - @c "shrank,state,changed" - when shrink mode state of multibuttonentry is changed. 
+    *
+    * Here is an example on its usage:
+    * @li @ref multibuttonentry_example
+    */
+    /**
+    * @addtogroup Multibuttonentry
+    * @{
+    */
 
-   /* multibuttonentry */
    typedef struct _Multibuttonentry_Item Elm_Multibuttonentry_Item;
    typedef Eina_Bool (*Elm_Multibuttonentry_Item_Verify_Callback) (Evas_Object *obj, const char *item_label, void *item_data, void *data);
+
+   /**
+    * @brief Add a new multibuttonentry to the parent
+    *
+    * @param parent The parent object
+    * @return The new object or NULL if it cannot be created
+    */
    EAPI Evas_Object               *elm_multibuttonentry_add(Evas_Object *parent);
+   /**
+    * Get the label
+    *
+    * @param obj The multibuttonentry object
+    * @return The label, or NULL if none
+    */
    EAPI const char                *elm_multibuttonentry_label_get(const Evas_Object *obj);
+   /**
+    * Set the label
+    *
+    * @param obj The multibuttonentry object
+    * @param label The text label string
+    */
    EAPI void                       elm_multibuttonentry_label_set(Evas_Object *obj, const char *label);
+   /**
+    * Get the entry of the multibuttonentry object
+    *
+    * @param obj The multibuttonentry object
+    * @return The entry object, or NULL if none
+    */
    EAPI Evas_Object               *elm_multibuttonentry_entry_get(const Evas_Object *obj);
+   /**
+    * Get the guide text
+    *
+    * @param obj The multibuttonentry object
+    * @return The guide text, or NULL if none
+    */
    EAPI const char *               elm_multibuttonentry_guide_text_get(const Evas_Object *obj);
+   /**
+    * Set the guide text
+    *
+    * @param obj The multibuttonentry object
+    * @param label The guide text string
+    */
    EAPI void                       elm_multibuttonentry_guide_text_set(Evas_Object *obj, const char *guidetext);
+   /**
+    * Get the value of shrink_mode state.
+    *
+    * @param obj The multibuttonentry object
+    * @param the value of shrink mode state.
+    */
    EAPI int                        elm_multibuttonentry_contracted_state_get(const Evas_Object *obj);
+   /**
+    * Set/Unset the multibuttonentry to shrink mode state of single line
+    *
+    * @param obj The multibuttonentry object
+    * @param the value of shrink_mode state. set this to 1 to set the multibuttonentry to shrink state of single line. set this to 0 to unset the contracted state.
+    */
    EAPI void                       elm_multibuttonentry_contracted_state_set(Evas_Object *obj, int contracted);
+   /**
+    * Prepend a new item to the multibuttonentry
+    *
+    * @param obj The multibuttonentry object
+    * @param label The label of new item
+    * @param data The ponter to the data to be attached
+    * @return A handle to the item added or NULL if not possible
+    */
    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_add_start(Evas_Object *obj, const char *label, void *data);
+   /**
+    * Append a new item to the multibuttonentry
+    *
+    * @param obj The multibuttonentry object
+    * @param label The label of new item
+    * @param data The ponter to the data to be attached
+    * @return A handle to the item added or NULL if not possible
+    */
    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_add_end(Evas_Object *obj, const char *label, void *data);
+   /**
+    * Add a new item to the multibuttonentry before the indicated object
+    *
+    * reference.
+    * @param obj The multibuttonentry object
+    * @param before The item before which to add it
+    * @param label The label of new item
+    * @param data The ponter to the data to be attached
+    * @return A handle to the item added or NULL if not possible
+    */
    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_add_before(Evas_Object *obj, const char *label, Elm_Multibuttonentry_Item *before, void *data);
+   /**
+    * Add a new item to the multibuttonentry after the indicated object
+    *
+    * @param obj The multibuttonentry object
+    * @param after The item after which to add it
+    * @param label The label of new item
+    * @param data The ponter to the data to be attached
+    * @return A handle to the item added or NULL if not possible
+    */
    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_add_after(Evas_Object *obj, const char *label, Elm_Multibuttonentry_Item *after, void *data);
+   /**
+    * Get a list of items in the multibuttonentry
+    *
+    * @param obj The multibuttonentry object
+    * @return The list of items, or NULL if none
+    */
    EAPI const Eina_List           *elm_multibuttonentry_items_get(const Evas_Object *obj);
+   /**
+    * Get the first item in the multibuttonentry
+    *
+    * @param obj The multibuttonentry object
+    * @return The first item, or NULL if none
+    */
    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_first_get(const Evas_Object *obj);
+   /**
+    * Get the last item in the multibuttonentry
+    *
+    * @param obj The multibuttonentry object
+    * @return The last item, or NULL if none
+    */
    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_last_get(const Evas_Object *obj);
+   /**
+    * Get the selected item in the multibuttonentry
+    *
+    * @param obj The multibuttonentry object
+    * @return The selected item, or NULL if none
+    */
    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_selected_get(const Evas_Object *obj);
+   /**
+    * Set the selected state of an item
+    *
+    * @param item The item
+    * @param selected if it's EINA_TRUE, select the item otherwise, unselect the item
+    */
    EAPI void                       elm_multibuttonentry_item_selected_set(Elm_Multibuttonentry_Item *item);
+   /**
+   * unselect all of items.
+   *
+   * @param obj The multibuttonentry object
+   */
    EAPI void                       elm_multibuttonentry_item_unselect_all(Evas_Object *obj);
+  /**
+   * Delete a given item
+   *
+   * @param item The item
+   */
    EAPI void                       elm_multibuttonentry_item_del(Elm_Multibuttonentry_Item *item);
+  /**
+   * Remove all items in the multibuttonentry.
+   *
+   * @param obj The multibuttonentry object
+   */
    EAPI void                       elm_multibuttonentry_items_del(Evas_Object *obj);
+  /**
+   * Get the label of a given item
+   *
+   * @param item The item
+   * @return The label of a given item, or NULL if none
+   */
    EAPI const char                *elm_multibuttonentry_item_label_get(const Elm_Multibuttonentry_Item *item);
+  /**
+   * Set the label of a given item
+   *
+   * @param item The item
+   * @param label The text label string
+   */
    EAPI void                       elm_multibuttonentry_item_label_set(Elm_Multibuttonentry_Item *item, const char *str);
+  /**
+   * Get the previous item in the multibuttonentry
+   *
+   * @param item The item
+   * @return The item before the item @p item
+   */
    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_prev(Elm_Multibuttonentry_Item *item);
+  /**
+   * Get the next item in the multibuttonentry
+   *
+   * @param item The item
+   * @return The item after the item @p item
+   */
    EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_next(Elm_Multibuttonentry_Item *item);
+
    EAPI void                      *elm_multibuttonentry_item_data_get(const Elm_Multibuttonentry_Item *item);
    EAPI void                       elm_multibuttonentry_item_data_set(Elm_Multibuttonentry_Item *item, void *data);
    EAPI void                       elm_multibuttonentry_item_verify_callback_set(Evas_Object *obj, Elm_Multibuttonentry_Item_Verify_Callback func, void *data);
-   /* smart callback called:
-    * "selected" - This signal is emitted when the selected item of multibuttonentry is changed.
-    * "added" - This signal is emitted when a new multibuttonentry item is added.
-    * "deleted" - This signal is emitted when a multibuttonentry item is deleted.
-    * "expanded" - This signal is emitted when a multibuttonentry is expanded.
-    * "contracted" - This signal is emitted when a multibuttonentry is contracted.
-    * "contracted,state,changed" - This signal is emitted when the contracted state of multibuttonentry is changed.
-    * "item,selected" - This signal is emitted when the selected item of multibuttonentry is changed.
-    * "item,added" - This signal is emitted when a new multibuttonentry item is added.
-    * "item,deleted" - This signal is emitted when a multibuttonentry item is deleted.
-    * "item,clicked" - This signal is emitted when a multibuttonentry item is clicked.
-    * "clicked" - This signal is emitted when a multibuttonentry is clicked.
-    * "unfocused" - This signal is emitted when a multibuttonentry is unfocused.
-    */
-   /* available styles:
-    * default
+
+   /**
+    * @}
     */
 
-   /* stackedicon */
+   /**
+    * @defgroup Stackedicon Stackedicon
+    * @ingroup Elementary
+    * @addtogroup Stackedicon
+    * @{
+    *
+    * This is a Stackedicon.
+    * smart callback called:
+    * "expanded" - This signal is emitted when a stackedicon is expanded.
+    * "clicked" - This signal is emitted when a stackedicon is clicked.
+    *
+    * available styles:
+    * default
+    */
    typedef struct _Stackedicon_Item Elm_Stackedicon_Item;
+   /**
+    * Add a new stackedicon to the parent
+    *
+    * @param parent The parent object
+    * @return The new object or NULL if it cannot be created
+    */
    EAPI Evas_Object          *elm_stackedicon_add(Evas_Object *parent);
+   /**
+    * This appends a path to the stackedicon
+    *
+    * @param    obj   The stackedicon object
+    * @param    path   The image full path
+    * @return   The new item or NULL if it cannot be created
+    */
    EAPI Elm_Stackedicon_Item *elm_stackedicon_item_append(Evas_Object *obj, const char *path);
+   /**
+    * This prepends a path to the stackedicon
+    *
+    * @param    obj   The stackedicon object
+    * @param    path   The image full path
+    * @return   The new item or NULL if it cannot be created
+    */
    EAPI Elm_Stackedicon_Item *elm_stackedicon_item_prepend(Evas_Object *obj, const char *path);
+   /**
+    * This delete a path at the stackedicon
+    *
+    * @param    Elm_Stackedicon_Item   The delete item
+    */
    EAPI void                  elm_stackedicon_item_del(Elm_Stackedicon_Item *it);
-   EAPI Eina_List            *elm_stackedicon_item_list_get(Evas_Object *obj);
-   /* smart callback called:
-    * "expanded" - This signal is emitted when a stackedicon is expanded.
-    * "clicked" - This signal is emitted when a stackedicon is clicked.
+   /**
+    * Get item list from the stackedicon
+    *
+    * @param    obj   The stackedicon object
+    * @return   The item list or NULL if it cannot be created
     */
-   /* available styles:
-    * default
+   EAPI Eina_List            *elm_stackedicon_item_list_get(Evas_Object *obj);
+   /**
+    * @}
     */
 
+
    /* dialoguegroup */
    typedef struct _Dialogue_Item Dialogue_Item;
 
@@ -29272,24 +30304,131 @@ extern "C" {
    EAPI Eina_Bool    elm_dayselector_check_state_get(Evas_Object *obj, Elm_DaySelector_Day day);
    EAPI void         elm_dayselector_check_state_set(Evas_Object *obj, Elm_DaySelector_Day day, Eina_Bool checked);
 
-   /* Image Slider */
+   /**
+    * @defgroup Imageslider Imageslider
+    * @ingroup Elementary
+    * @addtogroup Imageslider
+    * @{
+    *
+    * By flicking images on the screen,
+    * you can see the images in specific path.
+    */
    typedef struct _Imageslider_Item Elm_Imageslider_Item;
    typedef void (*Elm_Imageslider_Cb)(void *data, Evas_Object *obj, void *event_info);
+
+   /**
+    * Add an Image Slider widget
+    *
+    * @param        parent  The parent object
+    * @return       The new Image slider object or NULL if it cannot be created
+    */
    EAPI Evas_Object           *elm_imageslider_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+   /**
+    * Append an Image Slider item
+    *
+    * @param        obj          The Image Slider object
+    * @param        photo_file   photo file path
+    * @param        func         callback function
+    * @param        data         callback data
+    * @return       The Image Slider item handle or NULL
+    */
    EAPI Elm_Imageslider_Item  *elm_imageslider_item_append(Evas_Object *obj, const char *photo_file, Elm_Imageslider_Cb func, void *data) EINA_ARG_NONNULL(1);
+   /**
+    * Insert an Image Slider item into the Image Slider Widget by using the given index.
+    *
+    * @param        obj                     The Image Slider object
+    * @param        photo_file      photo file path
+    * @param        func            callback function
+    * @param        index           required position
+    * @param        data            callback data
+    * @return       The Image Slider item handle or NULL
+    */
    EAPI Elm_Imageslider_Item  *elm_imageslider_item_append_relative(Evas_Object *obj, const char *photo_file, Elm_Imageslider_Cb func, unsigned int index, void *data) EINA_ARG_NONNULL(1);
+   /**
+    * Prepend Image Slider item
+    *
+    * @param        obj          The Image Slider object
+    * @param        photo_file   photo file path
+    * @param        func         callback function
+    * @param        data         callback data
+    * @return       The imageslider item handle or NULL
+    */
    EAPI Elm_Imageslider_Item  *elm_imageslider_item_prepend(Evas_Object *obj, const char *photo_file, Elm_Imageslider_Cb func, void *data) EINA_ARG_NONNULL(1);
+   /**
+    * Delete the selected Image Slider item
+    *
+    * @param it             The selected Image Slider item handle
+    */
    EAPI void                   elm_imageslider_item_del(Elm_Imageslider_Item *it) EINA_ARG_NONNULL(1);
+   /**
+    * Get the selected Image Slider item
+    *
+    * @param obj            The Image Slider object
+    * @return The selected Image Slider item or NULL
+    */
    EAPI Elm_Imageslider_Item  *elm_imageslider_selected_item_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * Get whether an Image Slider item is selected or not
+    *
+    * @param it              the selected Image Slider item
+    * @return EINA_TRUE or EINA_FALSE
+    */
    EAPI Eina_Bool              elm_imageslider_item_selected_get(Elm_Imageslider_Item *it) EINA_ARG_NONNULL(1);
+   /**
+    * Set the selected Image Slider item
+    *
+    * @param it             The Imaga Slider item
+    */
    EAPI void                   elm_imageslider_item_selected_set(Elm_Imageslider_Item *it) EINA_ARG_NONNULL(1);
+   /**
+    * Get the photo file path of given Image Slider item
+    *
+    * @param it             The Image Slider item
+    * @return The photo file path or NULL;
+    */
    EAPI const char            *elm_imageslider_item_photo_file_get(Elm_Imageslider_Item *it) EINA_ARG_NONNULL(1);
+   /**
+    * Sets the photo file path of given Image Slider item
+    *
+    * @param it         The Image Slider item
+    * @param photo_file The photo file path or NULL;
+    */
    EAPI Elm_Imageslider_Item  *elm_imageslider_item_prev(Elm_Imageslider_Item *it) EINA_ARG_NONNULL(1);
+   /**
+    * Get the previous Image Slider item
+    *
+    * @param it             The Image Slider item
+    * @return The previous Image Slider item or NULL
+    */
    EAPI Elm_Imageslider_Item  *elm_imageslider_item_next(Elm_Imageslider_Item *it) EINA_ARG_NONNULL(1);
+   /**
+    * Get the next Image Slider item
+    *
+    * @param it             The Image Slider item
+    * @return The next Image Slider item or NULL
+    */
    EAPI void                   elm_imageslider_prev(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * Move to the previous Image Slider item
+    *
+    * @param obj    The Image Slider object
+    */
    EAPI void                   elm_imageslider_next(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   /**
+    * Move to the next Image Slider item
+    *
+    * @param obj The Image Slider object
+    */
    EAPI void                   elm_imageslider_item_photo_file_set(Elm_Imageslider_Item *it, const char *photo_file) EINA_ARG_NONNULL(1,2);
+   /**
+    * Updates an Image Slider item
+    *
+    * @param it The Image Slider item
+    */
    EAPI void                   elm_imageslider_item_update(Elm_Imageslider_Item *it) EINA_ARG_NONNULL(1);
+   /**
+    * @}
+    */
 #ifdef __cplusplus
 }
 #endif
index 378ce41..e3770d0 100644 (file)
@@ -49,8 +49,7 @@ elc_fileselector.c \
 elc_fileselector_entry.c \
 elc_hoversel.c \
 elc_naviframe.c \
-elc_navigationbar.c \
-elc_navigationbar_ex.c\
+elc_multibuttonentry.c \
 elc_player.c \
 elc_scrolled_entry.c \
 elm_access.c \
@@ -99,7 +98,6 @@ elm_mapbuf.c \
 elm_map.c \
 elm_menu.c \
 elm_module.c \
-elm_multibuttonentry.c \
 elm_nocontents.c \
 elm_notify.c \
 elm_pagecontrol.c \
@@ -111,13 +109,13 @@ elm_photocam.c \
 elm_popup.c \
 elm_progressbar.c \
 elm_radio.c \
+elm_route.c \
 elm_scroller.c \
 elm_searchbar.c \
 elm_segment_control.c \
 elm_separator.c \
 elm_slider.c \
 elm_slideshow.c \
-elm_slidingdrawer.c \
 elm_spinner.c \
 elm_stackedicon.c \
 elm_store.c \
@@ -142,7 +140,8 @@ els_pan.c \
 els_pan.h \
 els_scroller.c \
 els_scroller.h \
-els_tooltip.c
+els_tooltip.c \
+elu_ews_wm.c
 
 libelementary_la_CFLAGS =
 libelementary_la_LIBADD = \
index 95e84df..9ee79c3 100644 (file)
@@ -12,7 +12,6 @@ struct _Elm_Ctxpopup_Item
    const char *label;
    Evas_Object *icon;
    Evas_Smart_Cb func;
-   Eina_Bool disabled:1;
 };
 
 struct _Widget_Data
@@ -81,7 +80,21 @@ static void _content_set_hook(Evas_Object *obj,
 static Evas_Object * _content_unset_hook(Evas_Object *obj,
                                          const char *item __UNUSED__);
 static Evas_Object * _content_get_hook(const Evas_Object *obj,
-                                       const char *item __UNUSED__);
+                                       const char *part);
+static void _item_text_set_hook(Elm_Object_Item *it,
+                               const char *part,
+                               const char *label);
+static const char * _item_text_get_hook(const Elm_Object_Item *it,
+                                        const char *part);
+static void _item_content_set_hook(Elm_Object_Item *it,
+                                   const char *part,
+                                   Evas_Object *content);
+static Evas_Object * _item_content_get_hook(const Elm_Object_Item *it,
+                                            const char *part);
+static void _item_disable_set_hook(Elm_Object_Item *it);
+static void _item_signal_emit_hook(Elm_Object_Item *it,
+                                   const char *emission,
+                                   const char *source);
 static void _bg_clicked_cb(void *data, Evas_Object *obj,
                            const char *emission,
                            const char *source);
@@ -780,7 +793,7 @@ _theme_hook(Evas_Object *obj)
         if (item->label)
           edje_object_part_text_set(VIEW(item), "elm.text", item->label);
 
-        if (item->disabled)
+        if (elm_widget_item_disabled_get(item))
           edje_object_signal_emit(VIEW(item), "elm,state,disabled", "elm");
 
        /*
@@ -893,6 +906,106 @@ _content_get_hook(const Evas_Object *obj, const char *part)
 }
 
 static void
+_item_text_set_hook(Elm_Object_Item *it,
+                    const char *part,
+                    const char *label)
+{
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
+
+   Widget_Data *wd;
+   Elm_Ctxpopup_Item *ctxpopup_it;
+
+   if (part && strcmp(part, "default")) return;
+
+   ctxpopup_it = (Elm_Ctxpopup_Item *) it;
+
+   wd = elm_widget_data_get(WIDGET(ctxpopup_it));
+   if (!wd) return;
+
+   _item_label_set(ctxpopup_it, label);
+   wd->dir = ELM_CTXPOPUP_DIRECTION_UNKNOWN;
+
+   if (wd->visible)
+     {
+        _scroller_size_reset(wd);
+        _sizing_eval(WIDGET(ctxpopup_it));
+     }
+}
+
+static const char *
+_item_text_get_hook(const Elm_Object_Item *it, const char *part)
+{
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
+   Elm_Ctxpopup_Item *ctxpopup_it;
+   if (part && strcmp(part, "default")) return NULL;
+   ctxpopup_it = (Elm_Ctxpopup_Item *) it;
+   return ctxpopup_it->label;
+}
+
+static void
+_item_content_set_hook(Elm_Object_Item *it,
+                       const char *part,
+                       Evas_Object *content)
+{
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
+   Widget_Data *wd;
+   Elm_Ctxpopup_Item *ctxpopup_it;
+
+   if (part && strcmp(part, "icon")) return;
+
+   ctxpopup_it = (Elm_Ctxpopup_Item *) it;
+
+   wd = elm_widget_data_get(WIDGET(ctxpopup_it));
+   if (!wd) return;
+
+   _item_icon_set(ctxpopup_it, content);
+   wd->dir = ELM_CTXPOPUP_DIRECTION_UNKNOWN;
+
+   if (wd->visible)
+     {
+        _scroller_size_reset(wd);
+        _sizing_eval(WIDGET(ctxpopup_it));
+     }
+}
+
+static Evas_Object *
+_item_content_get_hook(const Elm_Object_Item *it, const char *part)
+{
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
+   Elm_Ctxpopup_Item *ctxpopup_it;
+   if (part && strcmp(part, "icon")) return NULL;
+   ctxpopup_it  = (Elm_Ctxpopup_Item *) it;
+   return ctxpopup_it->icon;
+}
+
+static void
+_item_disable_set_hook(Elm_Object_Item *it)
+{
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
+
+   Widget_Data *wd;
+   Elm_Ctxpopup_Item *ctxpopup_it = (Elm_Ctxpopup_Item *) it;
+
+   wd = elm_widget_data_get(WIDGET(ctxpopup_it));
+   if (!wd) return;
+
+   if (elm_widget_item_disabled_get(it))
+     edje_object_signal_emit(VIEW(ctxpopup_it), "elm,state,disabled", "elm");
+   else
+     edje_object_signal_emit(VIEW(ctxpopup_it), "elm,state,enabled", "elm");
+}
+
+static void
+_item_signal_emit_hook(Elm_Object_Item *it,
+                       const char *emission,
+                       const char *source)
+{
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
+   Elm_Ctxpopup_Item *ctxpopup_it = (Elm_Ctxpopup_Item *) it;
+   edje_object_signal_emit(VIEW(ctxpopup_it), emission, source);
+}
+
+static void
 _bg_clicked_cb(void *data, Evas_Object *obj __UNUSED__,
                const char *emission __UNUSED__, const char *source __UNUSED__)
 {
@@ -1041,7 +1154,7 @@ _item_select_cb(void *data, Evas_Object *obj __UNUSED__,
    Elm_Ctxpopup_Item *item = data;
 
    if (!item) return;
-   if (item->disabled) return;
+   if (elm_widget_item_disabled_get(item)) return;
 
    if (item->func)
      item->func((void*) item->base.data, WIDGET(item), data);
@@ -1224,57 +1337,25 @@ elm_ctxpopup_add(Evas_Object *parent)
 EAPI Evas_Object *
 elm_ctxpopup_item_icon_get(const Elm_Object_Item *it)
 {
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
-   Elm_Ctxpopup_Item *ctxpopup_it = (Elm_Ctxpopup_Item *) it;
-   return ctxpopup_it->icon;
+   return _item_content_get_hook(it, "icon");
 }
 
 EAPI void
 elm_ctxpopup_item_icon_set(Elm_Object_Item *it, Evas_Object *icon)
 {
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
-
-   Widget_Data *wd;
-   Elm_Ctxpopup_Item *ctxpopup_it = (Elm_Ctxpopup_Item *) it;
-
-   wd = elm_widget_data_get(WIDGET(ctxpopup_it));
-   if (!wd) return;
-
-   _item_icon_set(ctxpopup_it, icon);
-
-   if (wd->visible)
-     {
-        _scroller_size_reset(wd);
-        _sizing_eval(WIDGET(ctxpopup_it));
-     }
+   _item_content_set_hook(it, "icon", icon);
 }
 
 EAPI const char *
 elm_ctxpopup_item_label_get(const Elm_Object_Item *it)
 {
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
-   Elm_Ctxpopup_Item *ctxpopup_it = (Elm_Ctxpopup_Item *) it;
-   return ctxpopup_it->label;
+   return _item_text_get_hook(it, NULL);
 }
 
 EAPI void
 elm_ctxpopup_item_label_set(Elm_Object_Item *it, const char *label)
 {
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
-
-   Widget_Data *wd;
-   Elm_Ctxpopup_Item *ctxpopup_it = (Elm_Ctxpopup_Item *) it;
-
-   wd = elm_widget_data_get(WIDGET(ctxpopup_it));
-   if (!wd) return;
-
-   _item_label_set(ctxpopup_it, label);
-
-   if (wd->visible)
-     {
-        _scroller_size_reset(wd);
-        _sizing_eval(WIDGET(ctxpopup_it));
-     }
+   _item_text_set_hook(it, NULL, label);
 }
 
 EAPI void
@@ -1411,6 +1492,13 @@ elm_ctxpopup_item_append(Evas_Object *obj, const char *label,
    item = elm_widget_item_new(obj, Elm_Ctxpopup_Item);
    if (!item) return NULL;
 
+   elm_widget_item_disable_set_hook_set(item, _item_disable_set_hook);
+   elm_widget_item_text_set_hook_set(item, _item_text_set_hook);
+   elm_widget_item_text_get_hook_set(item, _item_text_get_hook);
+   elm_widget_item_content_set_hook_set(item, _item_content_set_hook);
+   elm_widget_item_content_get_hook_set(item, _item_content_get_hook);
+   elm_widget_item_signal_emit_hook_set(item, _item_signal_emit_hook);
+
    //The first item is appended.
    if (wd->content)
      evas_object_del(elm_object_content_unset(obj));
@@ -1474,31 +1562,13 @@ elm_ctxpopup_item_del(Elm_Object_Item *it)
 EAPI void
 elm_ctxpopup_item_disabled_set(Elm_Object_Item *it, Eina_Bool disabled)
 {
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
-
-   Widget_Data *wd;
-   Elm_Ctxpopup_Item *ctxpopup_it = (Elm_Ctxpopup_Item *) it;
-
-   wd = elm_widget_data_get(WIDGET(ctxpopup_it));
-   if (!wd) return;
-
-   if (disabled == ctxpopup_it->disabled)
-     return;
-
-   if (disabled)
-     edje_object_signal_emit(VIEW(ctxpopup_it), "elm,state,disabled", "elm");
-   else
-     edje_object_signal_emit(VIEW(ctxpopup_it), "elm,state,enabled", "elm");
-
-   ctxpopup_it->disabled = !!disabled;
+   elm_object_item_disabled_set(it, disabled);
 }
 
 EAPI Eina_Bool
 elm_ctxpopup_item_disabled_get(const Elm_Object_Item *it)
 {
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it, EINA_FALSE);
-   Elm_Ctxpopup_Item *ctxpopup_it = (Elm_Ctxpopup_Item *) it;
-   return ctxpopup_it->disabled;
+   return elm_object_item_disabled_get(it);
 }
 
 EAPI void
similarity index 82%
rename from src/lib/elm_multibuttonentry.c
rename to src/lib/elc_multibuttonentry.c
index b148899..0949492 100644 (file)
@@ -1,77 +1,74 @@
 #include <Elementary.h>
 #include "elm_priv.h"
 
-/**
- * @defgroup Multibuttonentry Multibuttonentry
- * @ingroup Elementary
- *
- * This is a Multibuttonentry.
- */
-
 #define MAX_STR 256
 #define MIN_W_ENTRY 20
 
 typedef enum _Multibuttonentry_Pos
-{
-   MULTIBUTONENTRY_POS_START,
-   MULTIBUTONENTRY_POS_END,
-   MULTIBUTONENTRY_POS_BEFORE,
-   MULTIBUTONENTRY_POS_AFTER,
-   MULTIBUTONENTRY_POS_NUM
-} Multibuttonentry_Pos;
+  {
+     MULTIBUTTONENTRY_POS_START,
+     MULTIBUTTONENTRY_POS_END,
+     MULTIBUTTONENTRY_POS_BEFORE,
+     MULTIBUTTONENTRY_POS_AFTER,
+     MULTIBUTTONENTRY_POS_NUM
+  } Multibuttonentry_Pos;
 
 typedef enum _Multibuttonentry_Button_State
-{
-   MULTIBUTONENTRY_BUTTON_STATE_DEFAULT,
-   MULTIBUTONENTRY_BUTTON_STATE_SELECTED,
-   MULTIBUTONENTRY_BUTTON_STATE_NUM
-} Multibuttonentry_Button_State;
-
-typedef enum _MultiButtonEntry_Closed_Button_Type {
-   MULTIBUTTONENTRY_CLOSED_IMAGE,
-   MULTIBUTTONENTRY_CLOSED_LABEL
-} MultiButtonEntry_Closed_Button_Type;
+  {
+     MULTIBUTTONENTRY_BUTTON_STATE_DEFAULT,
+     MULTIBUTTONENTRY_BUTTON_STATE_SELECTED,
+     MULTIBUTTONENTRY_BUTTON_STATE_NUM
+  } Multibuttonentry_Button_State;
+
+typedef enum _MultiButtonEntry_Closed_Button_Type
+  {
+     MULTIBUTTONENTRY_CLOSED_IMAGE,
+     MULTIBUTTONENTRY_CLOSED_LABEL
+  } MultiButtonEntry_Closed_Button_Type;
 
 typedef enum _Multibuttonentry_View_State
-{
-   MULTIBUTTONENTRY_VIEW_NONE,
-   MULTIBUTTONENTRY_VIEW_GUIDETEXT,
-   MULTIBUTTONENTRY_VIEW_ENTRY,
-   MULTIBUTTONENTRY_VIEW_CONTRACTED
-} Multibuttonentry_View_State;
-
-struct _Multibuttonentry_Item {
-   Evas_Object *multibuttonentry;
-   Evas_Object *button;
-   void *data;
-   Evas_Coord vw, rw; // vw: visual width, real width
-   Eina_Bool  visible: 1;
-};
+  {
+     MULTIBUTTONENTRY_VIEW_NONE,
+     MULTIBUTTONENTRY_VIEW_GUIDETEXT,
+     MULTIBUTTONENTRY_VIEW_ENTRY,
+     MULTIBUTTONENTRY_VIEW_CONTRACTED
+  } Multibuttonentry_View_State;
+
+struct _Multibuttonentry_Item
+  {
+     Evas_Object *multibuttonentry;
+     Evas_Object *button;
+     void *data;
+     Evas_Coord vw, rw; // vw: visual width, real width
+     Eina_Bool  visible: 1;
+  };
 
 typedef struct _Widget_Data Widget_Data;
-struct _Widget_Data {
-   Evas_Object *base;
-   Evas_Object *box;
-   Evas_Object *entry;
-   Evas_Object *label;
-   Evas_Object *guidetext;
-   Evas_Object *end;   // used to represent the total number of invisible buttons
-
-   Evas_Object *rectForEnd;
-   MultiButtonEntry_Closed_Button_Type end_type;
-
-   Eina_List *items;
-   Eina_List *current;
-   int n_str;
-   Multibuttonentry_View_State view_state;
-
-   Evas_Coord w_box, h_box;
-   int  contracted;
-   Eina_Bool focused: 1;
-   Eina_Bool last_btn_select: 1;
-   Elm_Multibuttonentry_Item_Verify_Callback add_callback;
-   void *add_callback_data;
-};
+struct _Widget_Data
+  {
+     Evas_Object *base;
+     Evas_Object *box;
+     Evas_Object *entry;
+     Evas_Object *label;
+     Evas_Object *guidetext;
+     Evas_Object *end;   // used to represent the total number of invisible buttons
+
+     Evas_Object *rect_for_end;
+     MultiButtonEntry_Closed_Button_Type end_type;
+
+     Eina_List *items;
+     Eina_List *current;
+
+     int n_str;
+     Multibuttonentry_View_State view_state;
+
+     Evas_Coord w_box, h_box;
+     int  contracted;
+     Eina_Bool focused: 1;
+     Eina_Bool last_btn_select: 1;
+     Elm_Multibuttonentry_Item_Verify_Callback add_callback;
+     void *add_callback_data;
+  };
 
 static const char *widtype = NULL;
 static void _del_hook(Evas_Object *obj);
@@ -84,23 +81,24 @@ static void _resize_cb(void *data, Evas *evas, Evas_Object *obj, void *event);
 static void _event_init(Evas_Object *obj);
 static void _contracted_state_set(Evas_Object *obj, int contracted);
 static void _view_update(Evas_Object *obj);
-static void _set_label(Evas_Object *obj, const charstr);
+static void _set_label(Evas_Object *obj, const char *str);
 static void _change_current_button_state(Evas_Object *obj, Multibuttonentry_Button_State state);
 static void _change_current_button(Evas_Object *obj, Evas_Object *btn);
 static void _button_clicked(void *data, Evas_Object *obj, const char *emission, const char *source);
 static void _del_button_obj(Evas_Object *obj, Evas_Object *btn);
 static void _del_button_item(Elm_Multibuttonentry_Item *item);
 static void _select_button(Evas_Object *obj, Evas_Object *btn);
-static Elm_Multibuttonentry_Item* _add_button_item(Evas_Object *obj, const char *str, Multibuttonentry_Pos pos, const Elm_Multibuttonentry_Item *reference, void *data);
+static Elm_Multibuttonentry_Item *_add_button_item(Evas_Object *obj, const char *str, Multibuttonentry_Pos pos,
+                                                   const Elm_Multibuttonentry_Item *reference, void *data);
 static void _add_button(Evas_Object *obj, char *str);
 static void _evas_mbe_key_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
 static void _entry_changed_cb(void *data, Evas_Object *obj, void *event_info);
 static void _entry_key_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
 static void _entry_key_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+static void _entry_resized_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info);
 static void _entry_focus_in_cb(void *data, Evas_Object *obj, void *event_info);
 static void _entry_focus_out_cb(void *data, Evas_Object *obj, void *event_info);
 static void _entry_clicked_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__);
-static void _entry_resized_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__);
 static void _view_init(Evas_Object *obj);
 static void _set_vis_guidetext(Evas_Object *obj);
 static void _calculate_box_min_size(Evas_Object *box, Evas_Object_Box_Data *priv);
@@ -111,8 +109,8 @@ static void
 _del_hook(Evas_Object *obj)
 {
    Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
 
+   if (!wd) return;
    if (wd->items)
      {
         Elm_Multibuttonentry_Item *item;
@@ -129,7 +127,7 @@ _del_hook(Evas_Object *obj)
    if (wd->label) evas_object_del (wd->label);
    if (wd->guidetext) evas_object_del (wd->guidetext);
    if (wd->end) evas_object_del (wd->end);
-   if (wd->rectForEnd) evas_object_del(wd->rectForEnd);
+   if (wd->rect_for_end) evas_object_del(wd->rect_for_end);
 }
 
 static void
@@ -138,10 +136,11 @@ _theme_hook(Evas_Object *obj)
    Widget_Data *wd = elm_widget_data_get(obj);
    Eina_List *l;
    Elm_Multibuttonentry_Item *item;
+
    if (!wd) return;
 
    _elm_theme_object_set(obj, wd->base, "multibuttonentry", "base", elm_widget_style_get(obj));
-   if (wd->box)   edje_object_part_swallow (wd->base, "box.swallow", wd->box);
+   if (wd->box) edje_object_part_swallow (wd->base, "box.swallow", wd->box);
    edje_object_scale_set(wd->base, elm_widget_scale_get(obj) * _elm_config->scale);
 
    EINA_LIST_FOREACH(wd->items, l, item)
@@ -192,11 +191,11 @@ _event_hook(Evas_Object *obj __UNUSED__, Evas_Object *src __UNUSED__, Evas_Callb
    return EINA_TRUE;
 }
 
-
 static void
 _signal_emit_hook(Evas_Object *obj, const char *emission, const char *source)
 {
    Widget_Data *wd = elm_widget_data_get(obj);
+
    if (!wd) return;
    edje_object_signal_emit(wd->base, emission, source);
 }
@@ -205,11 +204,10 @@ static void
 _sizing_eval(Evas_Object *obj)
 {
    Widget_Data *wd = elm_widget_data_get(obj);
-
    Evas_Coord minw = -1, minh = -1;
    Evas_Coord left, right, top, bottom;
-   if (!wd) return;
 
+   if (!wd) return;
    evas_object_size_hint_min_get(wd->box, &minw, &minh);
    edje_object_part_geometry_get(wd->base, "top.left.pad", NULL, NULL, &left, &top);
    edje_object_part_geometry_get(wd->base, "bottom.right.pad", NULL, NULL, &right, &bottom);
@@ -224,8 +222,8 @@ static void
 _signal_mouse_clicked(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__)
 {
    Widget_Data *wd = elm_widget_data_get(data);
-   if(!wd || !wd->base) return;
 
+   if (!wd || !wd->base) return;
    wd->focused = EINA_TRUE;
    _view_update(data);
 
@@ -240,6 +238,7 @@ _changed_size_hint_cb(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUS
 {
    Evas_Object *eo = (Evas_Object *)data;
    Widget_Data *wd = elm_widget_data_get(data);
+
    if (!wd) return;
    _sizing_eval(eo);
 }
@@ -249,8 +248,8 @@ _resize_cb(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void
 {
    Widget_Data *wd = elm_widget_data_get(data);
    Evas_Coord w, h;
-   if (!wd) return;
 
+   if (!wd) return;
    evas_object_geometry_get(wd->box, NULL, NULL, &w, &h);
 
    if (wd->h_box < h) evas_object_smart_callback_call (data, "expanded", NULL);
@@ -266,8 +265,8 @@ static void
 _event_init(Evas_Object *obj)
 {
    Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd || !wd->base)   return;
 
+   if (!wd || !wd->base) return;
    if (wd->base)
      {
         edje_object_signal_callback_add(wd->base, "mouse,clicked,1", "*", _signal_mouse_clicked, obj);
@@ -296,8 +295,8 @@ static void
 _set_vis_guidetext(Evas_Object *obj)
 {
    Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
 
+   if (!wd) return;
    elm_box_unpack(wd->box, wd->guidetext);
    elm_box_unpack(wd->box, wd->entry);
    if (wd->view_state == MULTIBUTTONENTRY_VIEW_CONTRACTED) return;
@@ -317,10 +316,9 @@ _set_vis_guidetext(Evas_Object *obj)
         evas_object_show(wd->entry);
         if (elm_widget_focus_get(obj) || wd->focused)
           if (!wd->current)
-            elm_object_focus(wd->entry);
+            elm_object_focus_set(wd->entry, EINA_TRUE);
         wd->view_state = MULTIBUTTONENTRY_VIEW_ENTRY;
      }
-   return;
 }
 
 static void
@@ -329,15 +327,15 @@ _contracted_state_set(Evas_Object *obj, int contracted)
    Widget_Data *wd = elm_widget_data_get(obj);
    Eina_List *l;
    Elm_Multibuttonentry_Item *item;
-   if (!wd || !wd->box) return;
 
+   if (!wd || !wd->box) return;
    if (wd->view_state == MULTIBUTTONENTRY_VIEW_ENTRY)
      evas_object_hide(wd->entry);
    else if (wd->view_state == MULTIBUTTONENTRY_VIEW_GUIDETEXT)
      evas_object_hide(wd->guidetext);
    else if (wd->view_state == MULTIBUTTONENTRY_VIEW_CONTRACTED)
      {
-        evas_object_hide(wd->rectForEnd);
+        evas_object_hide(wd->rect_for_end);
         evas_object_hide(wd->end);
         wd->view_state = MULTIBUTTONENTRY_VIEW_NONE;
      }
@@ -358,7 +356,6 @@ _contracted_state_set(Evas_Object *obj, int contracted)
                   item->visible = EINA_FALSE;
                }
           }
-
         // pack buttons only 1line
         w = wd->w_box;
 
@@ -378,10 +375,10 @@ _contracted_state_set(Evas_Object *obj, int contracted)
           {
              const char *size_str;
              size_str = edje_object_data_get(wd->end, "closed_button_width");
-             if(size_str) button_min_width = (Evas_Coord)atoi(size_str);
+             if (size_str) button_min_width = (Evas_Coord)atoi(size_str);
              /* it use for later
              size_str = edje_object_data_get(wd->end, "closed_button_height");
-             if(size_str) button_min_width = (Evas_Coord)atoi(size_str);
+             if (size_str) button_min_width = (Evas_Coord)atoi(size_str);
               */
           }
 
@@ -390,7 +387,7 @@ _contracted_state_set(Evas_Object *obj, int contracted)
              if (item)
                {
                   int w_label_count = 0;
-                  char buf[MAX_STR] = {0,};
+                  char buf[MAX_STR];
 
                   elm_box_pack_end(wd->box, item->button);
                   evas_object_show(item->button);
@@ -435,22 +432,23 @@ _contracted_state_set(Evas_Object *obj, int contracted)
                             Evas_Coord rectSize;
                             Evas_Coord closed_height = 0;
                             const char *height_str = edje_object_data_get(wd->base, "closed_height");
-                            if(height_str) closed_height = (Evas_Coord)atoi(height_str);
+
+                            if (height_str) closed_height = (Evas_Coord)atoi(height_str);
                             elm_box_unpack(wd->box, item->button);
                             evas_object_hide(item->button);
                             item->visible = EINA_FALSE;
 
                             w += item->vw;
                             rectSize = w - button_min_width;
-                            if (!wd->rectForEnd)
+                            if (!wd->rect_for_end)
                               {
                                  Evas *e = evas_object_evas_get(obj);
-                                 wd->rectForEnd = evas_object_rectangle_add(e);
-                                 evas_object_color_set(wd->rectForEnd, 0, 0, 0, 0);
+                                 wd->rect_for_end = evas_object_rectangle_add(e);
+                                 evas_object_color_set(wd->rect_for_end, 0, 0, 0, 0);
                               }
-                            evas_object_size_hint_min_set(wd->rectForEnd, rectSize, closed_height * elm_scale_get());
-                            elm_box_pack_end(wd->box, wd->rectForEnd);
-                            evas_object_show(wd->rectForEnd);
+                            evas_object_size_hint_min_set(wd->rect_for_end, rectSize, closed_height * elm_scale_get());
+                            elm_box_pack_end(wd->box, wd->rect_for_end);
+                            evas_object_show(wd->rect_for_end);
 
                             elm_box_pack_end(wd->box, wd->end);
                             evas_object_show(wd->end);
@@ -477,7 +475,7 @@ _contracted_state_set(Evas_Object *obj, int contracted)
           }
         evas_object_hide(wd->end);
 
-        if (wd->rectForEnd) evas_object_hide(wd->rectForEnd);
+        if (wd->rect_for_end) evas_object_hide(wd->rect_for_end);
 
         // pack buttons only 1line
 
@@ -538,8 +536,8 @@ static void
 _set_label(Evas_Object *obj, const char* str)
 {
    Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd || !str) return;
 
+   if (!wd || !str) return;
    if (wd->label)
    {
       Evas_Coord width, height, sum_width = 0;
@@ -558,6 +556,7 @@ _set_label(Evas_Object *obj, const char* str)
         {
            edje_object_signal_emit(wd->label, "elm,mbe,set_text", "");
            edje_object_part_geometry_get(wd->label, "mbe.label", NULL, NULL, &width, &height);
+
            sum_width += width;
 
            edje_object_part_geometry_get(wd->label, "mbe.label.left.padding", NULL, NULL, &width, NULL);
@@ -576,8 +575,8 @@ static void
 _set_guidetext(Evas_Object *obj, const char* str)
 {
    Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd || !str)   return;
 
+   if (!wd || !str) return;
    if (!wd->guidetext)
      {
         if (! (wd->guidetext = edje_object_add (evas_object_evas_get (obj)))) return;
@@ -595,20 +594,20 @@ _change_current_button_state(Evas_Object *obj, Multibuttonentry_Button_State sta
 {
    Widget_Data *wd = elm_widget_data_get(obj);
    Elm_Multibuttonentry_Item *item = NULL;
-   if (!wd) return;
 
+   if (!wd) return;
    if (wd->current)
      item = eina_list_data_get(wd->current);
 
    if (item && item->button)
      {
-        switch(state)
+        switch (state)
           {
-             case MULTIBUTONENTRY_BUTTON_STATE_DEFAULT:
+             case MULTIBUTTONENTRY_BUTTON_STATE_DEFAULT:
                 edje_object_signal_emit(item->button, "default", "");
                 wd->current = NULL;
                 break;
-             case MULTIBUTONENTRY_BUTTON_STATE_SELECTED:
+             case MULTIBUTTONENTRY_BUTTON_STATE_SELECTED:
                 edje_object_signal_emit(item->button, "focused", "");
                 evas_object_smart_callback_call(obj, "item,selected", item);
                 break;
@@ -626,10 +625,11 @@ _change_current_button(Evas_Object *obj, Evas_Object *btn)
    Widget_Data *wd = elm_widget_data_get(obj);
    Eina_List *l;
    Elm_Multibuttonentry_Item *item;
+
    if (!wd) return;
 
    // change the state of previous button to "default"
-   _change_current_button_state(obj, MULTIBUTONENTRY_BUTTON_STATE_DEFAULT);
+   _change_current_button_state(obj, MULTIBUTTONENTRY_BUTTON_STATE_DEFAULT);
 
    // change the current
    EINA_LIST_FOREACH(wd->items, l, item)
@@ -640,10 +640,8 @@ _change_current_button(Evas_Object *obj, Evas_Object *btn)
              break;
           }
      }
-
-   // chagne the state of current button to "focused"
-   _change_current_button_state(obj, MULTIBUTONENTRY_BUTTON_STATE_SELECTED);
-
+   // change the state of current button to "focused"
+   _change_current_button_state(obj, MULTIBUTTONENTRY_BUTTON_STATE_SELECTED);
 }
 
 static void
@@ -668,10 +666,9 @@ static void
 _del_button_obj(Evas_Object *obj, Evas_Object *btn)
 {
    Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd || !btn)   return;
 
+   if (!wd || !btn) return;
    if (btn)
-     // del button
      evas_object_del(btn);
 }
 
@@ -714,22 +711,22 @@ static void
 _select_button(Evas_Object *obj, Evas_Object *btn)
 {
    Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
 
+   if (!wd) return;
    if (btn)
      {
         _change_current_button(obj, btn);
         if (elm_widget_focus_get(obj))
           {
-             elm_object_unfocus(wd->entry);
+             elm_object_focus_set(wd->entry, EINA_FALSE);
              evas_object_focus_set(btn, EINA_TRUE);
           }
      }
    else
      {
-        _change_current_button_state(obj, MULTIBUTONENTRY_BUTTON_STATE_DEFAULT);
+        _change_current_button_state(obj, MULTIBUTTONENTRY_BUTTON_STATE_DEFAULT);
         if (elm_widget_focus_get(obj))
-          elm_object_focus(wd->entry);
+          elm_object_focus_set(wd->entry, EINA_TRUE);
      }
 }
 
@@ -769,8 +766,8 @@ _resize_button(Evas_Object *btn, Evas_Coord *realw, Evas_Coord *vieww)
    evas_object_resize(btn, vw, h_btn);
    evas_object_size_hint_min_set(btn, vw, h_btn);
 
-   if(realw) *realw = rw;
-   if(vieww) *vieww = vw;
+   if (realw) *realw = rw;
+   if (vieww) *vieww = vw;
 }
 
 static Elm_Multibuttonentry_Item*
@@ -800,7 +797,9 @@ _add_button_item(Evas_Object *obj, const char *str, Multibuttonentry_Pos pos, co
    _elm_theme_object_set(obj, btn, "multibuttonentry", "btn", elm_widget_style_get(obj));
    edje_object_part_text_set(btn, "elm.btn.text", str_utf8);
    edje_object_part_geometry_get(btn, "elm.btn.text", NULL, NULL, &width, &height);
+
    evas_object_size_hint_min_set(btn, width, height);
+
    edje_object_signal_callback_add(btn, "mouse,clicked,1", "*", _button_clicked, obj);
    evas_object_size_hint_weight_set(btn, 0.0, 0.0);
    evas_object_show(btn);
@@ -818,9 +817,9 @@ _add_button_item(Evas_Object *obj, const char *str, Multibuttonentry_Pos pos, co
         item->vw = vw;
         item->visible = EINA_TRUE;
 
-        switch(pos)
+        switch (pos)
           {
-             case MULTIBUTONENTRY_POS_START:
+             case MULTIBUTTONENTRY_POS_START:
                 wd->items = eina_list_prepend(wd->items, item);
                 if (wd->view_state == MULTIBUTTONENTRY_VIEW_CONTRACTED)
                   {
@@ -837,7 +836,7 @@ _add_button_item(Evas_Object *obj, const char *str, Multibuttonentry_Pos pos, co
                        _set_vis_guidetext(obj);
                   }
                 break;
-             case MULTIBUTONENTRY_POS_END:
+             case MULTIBUTTONENTRY_POS_END:
                 wd->items = eina_list_append(wd->items, item);
                 if (wd->view_state == MULTIBUTTONENTRY_VIEW_CONTRACTED)
                   {
@@ -854,7 +853,7 @@ _add_button_item(Evas_Object *obj, const char *str, Multibuttonentry_Pos pos, co
                        elm_box_pack_end(wd->box, btn);
                   }
                 break;
-             case MULTIBUTONENTRY_POS_BEFORE:
+             case MULTIBUTTONENTRY_POS_BEFORE:
                 if (reference)
                      wd->items = eina_list_prepend_relative(wd->items, item, reference);
                 else
@@ -880,7 +879,7 @@ _add_button_item(Evas_Object *obj, const char *str, Multibuttonentry_Pos pos, co
                        }
                   }
                 break;
-             case MULTIBUTONENTRY_POS_AFTER:
+             case MULTIBUTTONENTRY_POS_AFTER:
                 if (reference)
                      wd->items = eina_list_append_relative(wd->items, item, reference);
                 else
@@ -910,6 +909,7 @@ _add_button_item(Evas_Object *obj, const char *str, Multibuttonentry_Pos pos, co
           }
      }
    evas_object_smart_callback_call(obj, "item,added", item);
+
    free(str_utf8);
 
    return item;
@@ -922,7 +922,7 @@ _add_button(Evas_Object *obj, char *str)
    if (!wd) return;
 
    // add button
-   _add_button_item(obj, str, MULTIBUTONENTRY_POS_END, NULL, NULL);
+   _add_button_item(obj, str, MULTIBUTTONENTRY_POS_END, NULL, NULL);
 }
 
 static void
@@ -971,7 +971,7 @@ _entry_key_down_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__,
 
    if (!wd) return;
 
-   if ( (wd->n_str == 1) && (strcmp (ev->keyname, "BackSpace") == 0 || (strcmp (ev->keyname, "BackSpace (") == 0 )))
+   if ((wd->n_str == 1) && (strcmp(ev->keyname, "BackSpace") == 0 || (strcmp(ev->keyname, "BackSpace (") == 0 )))
      wd->last_btn_select = EINA_FALSE;
 }
 
@@ -1001,8 +1001,8 @@ _entry_clicked_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UN
    Widget_Data *wd = elm_widget_data_get(data);
    if (!wd) return;
 
-   _change_current_button_state(data, MULTIBUTONENTRY_BUTTON_STATE_DEFAULT);
-   elm_object_focus(wd->entry);
+   _change_current_button_state(data, MULTIBUTTONENTRY_BUTTON_STATE_DEFAULT);
+   elm_object_focus_set(wd->entry, EINA_TRUE);
 }
 
 static void
@@ -1010,12 +1010,13 @@ _entry_focus_in_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __U
 {
    Widget_Data *wd = elm_widget_data_get(data);
    Elm_Multibuttonentry_Item *item = NULL;
+
    if (!wd) return;
 
    if (wd->current)
      {
         item = eina_list_data_get(wd->current);
-        elm_object_unfocus(wd->entry);
+        elm_object_focus_set(wd->entry, EINA_FALSE);
         evas_object_focus_set(item->button, EINA_TRUE);
      }
 }
@@ -1061,7 +1062,6 @@ _entry_resized_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, v
    evas_object_geometry_get(wd->entry, &en_x, &en_y, &en_w, &en_h);
    evas_object_geometry_get(wd->box, &bx_x, &bx_y, NULL, NULL);
 
-   // should be reconsidered appropriate location to use the function as below.
    elm_widget_show_region_set(wd->box, en_x - bx_x, en_y - bx_y, en_w, en_h, EINA_TRUE);
 }
 
@@ -1069,20 +1069,22 @@ static void
 _view_init(Evas_Object *obj)
 {
    Widget_Data *wd = elm_widget_data_get(obj);
+
    if (!wd) return;
 
    if (!wd->box)
      {
-        if (! (wd->box = elm_box_add (obj))) return;
+        wd->box = elm_box_add (obj);
+        if (!wd->box) return;
         elm_widget_sub_object_add(obj, wd->box);
         elm_box_layout_set(wd->box, _box_layout_cb, NULL, NULL);
         elm_box_homogeneous_set(wd->box, EINA_FALSE);
         edje_object_part_swallow(wd->base, "box.swallow", wd->box);
      }
-
    if (!wd->label)
      {
-        if (!(wd->label = edje_object_add(evas_object_evas_get(obj)))) return;
+        wd->label = edje_object_add(evas_object_evas_get(obj));
+        if (!wd->label) return;
         _elm_theme_object_set(obj, wd->label, "multibuttonentry", "label", elm_widget_style_get(obj));
         _set_label(obj, "");
         elm_widget_sub_object_add(obj, wd->label);
@@ -1156,12 +1158,12 @@ _calculate_box_min_size(Evas_Object *box, Evas_Object_Box_Data *priv)
         evas_object_size_hint_min_get(opt->obj, &mnw, &mnh);
         evas_object_size_hint_weight_get(opt->obj, &wx, NULL);
 
-        if(wx)
+        if (wx)
           {
              if (mnw != -1 && (w - cw) >= mnw)
-                ww = w - cw;
+               ww = w - cw;
              else
-                ww = w;
+               ww = w;
           }
         else
            ww = mnw;
@@ -1197,7 +1199,7 @@ _calculate_item_max_height(Evas_Object *box, Evas_Object_Box_Data *priv, int obj
         evas_object_size_hint_min_get(opt->obj, &mnw, &mnh);
         evas_object_size_hint_weight_get(opt->obj, &wx, NULL);
 
-        if(wx)
+        if (wx)
           {
              if (mnw != -1 && (w - cw) >= mnw)
                 ww = w - cw;
@@ -1278,7 +1280,7 @@ _box_layout_cb(Evas_Object *o, Evas_Object_Box_Data *priv, void *data __UNUSED__
         if (wy > 0.0) xh = 1;
         Evas_Coord ww, hh, ow, oh;
 
-        if(wx)
+        if (wx)
           {
              if (mnw != -1 && (w - cw) >= mnw)
                 ww = w - cw;
@@ -1315,14 +1317,6 @@ _box_layout_cb(Evas_Object *o, Evas_Object_Box_Data *priv, void *data __UNUSED__
      }
 }
 
-/**
- * Add a new multibuttonentry to the parent
- *
- * @param parent The parent object
- * @return The new object or NULL if it cannot be created
- *
- * @ingroup Multibuttonentry
- */
 EAPI Evas_Object *
 elm_multibuttonentry_add(Evas_Object *parent)
 {
@@ -1346,13 +1340,13 @@ elm_multibuttonentry_add(Evas_Object *parent)
    wd->base = edje_object_add(e);
    _elm_theme_object_set(obj, wd->base, "multibuttonentry", "base", "default");
    elm_widget_resize_object_set(obj, wd->base);
-   elm_widget_can_focus_set(obj,EINA_TRUE);
+   elm_widget_can_focus_set(obj, EINA_TRUE);
 
    wd->view_state = MULTIBUTTONENTRY_VIEW_NONE;
    wd->focused = EINA_FALSE;
    wd->last_btn_select = EINA_TRUE;
    wd->n_str = 0;
-   wd->rectForEnd = NULL;
+   wd->rect_for_end= NULL;
    wd->add_callback = NULL;
    wd->add_callback_data = NULL;
 
@@ -1362,55 +1356,34 @@ elm_multibuttonentry_add(Evas_Object *parent)
    return obj;
 }
 
-/**
- * Get the entry of the multibuttonentry object
- *
- * @param obj The multibuttonentry object
- * @return The entry object, or NULL if none
- *
- * @ingroup Multibuttonentry
- */
 EAPI Evas_Object *
 elm_multibuttonentry_entry_get(const Evas_Object *obj)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd)   return NULL;
+
+   if (!wd) return NULL;
 
    return wd->entry;
 }
 
-/**
- * Get the label
- *
- * @param obj The multibuttonentry object
- * @return The label, or NULL if none
- *
- * @ingroup Multibuttonentry
- */
 EAPI const char *
 elm_multibuttonentry_label_get(const Evas_Object *obj)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd = elm_widget_data_get(obj);
+
    if (!wd) return NULL;
    if (wd->label) return edje_object_part_text_get(wd->label, "mbe.label");
    return NULL;
 }
 
-/**
- * Set the label
- *
- * @param obj The multibuttonentry object
- * @param label The text label string
- *
- * @ingroup Multibuttonentry
- */
 EAPI void
 elm_multibuttonentry_label_set(Evas_Object *obj, const char *label)
 {
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
+
    if (!wd) return;
    if (label)
      _set_label(obj, label);
@@ -1418,242 +1391,139 @@ elm_multibuttonentry_label_set(Evas_Object *obj, const char *label)
      _set_label(obj, "");
 }
 
-/**
- * Get the guide text
- *
- * @param obj The multibuttonentry object
- * @return The guide text, or NULL if none
- *
- * @ingroup Multibuttonentry
- */
 EAPI const char *
 elm_multibuttonentry_guide_text_get(const Evas_Object *obj)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd)   return NULL;
+
+   if (!wd) return NULL;
    if (wd->guidetext) return edje_object_part_text_get(wd->guidetext, "elm.text");
    return NULL;
 }
 
-/**
- * Set the guide text
- *
- * @param obj The multibuttonentry object
- * @param label The guide text string
- *
- * @ingroup Multibuttonentry
- */
 EAPI void
 elm_multibuttonentry_guide_text_set(Evas_Object *obj, const char *guidetext)
 {
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
+
    if (!wd) return;
    if (guidetext)
-      _set_guidetext(obj, guidetext);
+     _set_guidetext(obj, guidetext);
    else
-      _set_guidetext(obj, "");
-
+     _set_guidetext(obj, "");
 }
 
-/**
- * Get the value of contracted state.
- *
- * @param obj The multibuttonentry object
- * @param the value of contracted state.
- *
- * @ingroup Multibuttonentry
- */
 EAPI int
 elm_multibuttonentry_contracted_state_get(const Evas_Object *obj)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) -1;
    Widget_Data *wd = elm_widget_data_get(obj);
+
    if (!wd) return -1;
    return wd->view_state == MULTIBUTTONENTRY_VIEW_CONTRACTED ? 1 : 0;
 }
 
-/**
- * Set/Unset the multibuttonentry to contracted state of single line
- *
- * @param obj The multibuttonentry object
- * @param the value of contracted state. set this to 1 to set the multibuttonentry to contracted state of single line. set this to 0 to unset the contracted state.
- *
- * @ingroup Multibuttonentry
- */
 EAPI void
 elm_multibuttonentry_contracted_state_set(Evas_Object *obj, int contracted)
 {
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
+
    if (!wd || !wd->box ||
        ((wd->view_state == MULTIBUTTONENTRY_VIEW_CONTRACTED) ? 1 : 0) == contracted) return;
    _contracted_state_set(obj, contracted);
 }
 
-/**
- * Prepend a new item to the multibuttonentry
- *
- * @param obj The multibuttonentry object
- * @param label The label of new item
- * @param data The ponter to the data to be attached
- * @return A handle to the item added or NULL if not possible
- *
- * @ingroup Multibuttonentry
- */
 EAPI Elm_Multibuttonentry_Item *
 elm_multibuttonentry_item_add_start(Evas_Object *obj, const char *label, void *data)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd = elm_widget_data_get(obj);
    Elm_Multibuttonentry_Item *item;
+
    if (!wd || !label) return NULL;
-   item = _add_button_item(obj, label, MULTIBUTONENTRY_POS_START, NULL, data);
+   item = _add_button_item(obj, label, MULTIBUTTONENTRY_POS_START, NULL, data);
    return item;
 }
 
-/**
- * Append a new item to the multibuttonentry
- *
- * @param obj The multibuttonentry object
- * @param label The label of new item
- * @param data The ponter to the data to be attached
- * @return A handle to the item added or NULL if not possible
- *
- * @ingroup Multibuttonentry
- */
 EAPI Elm_Multibuttonentry_Item *
 elm_multibuttonentry_item_add_end(Evas_Object *obj, const char *label, void *data)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd = elm_widget_data_get(obj);
    Elm_Multibuttonentry_Item *item;
+
    if (!wd || !label) return NULL;
-   item = _add_button_item(obj, label, MULTIBUTONENTRY_POS_END, NULL, data);
+   item = _add_button_item(obj, label, MULTIBUTTONENTRY_POS_END, NULL, data);
    return item;
 }
 
-/**
- * Add a new item to the multibuttonentry before the indicated object
- *
- * reference.
- * @param obj The multibuttonentry object
- * @param label The label of new item
- * @param before The item before which to add it
- * @param data The ponter to the data to be attached
- * @return A handle to the item added or NULL if not possible
- *
- * @ingroup Multibuttonentry
- */
 EAPI Elm_Multibuttonentry_Item *
 elm_multibuttonentry_item_add_before(Evas_Object *obj, const char *label, Elm_Multibuttonentry_Item *before, void *data)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd = elm_widget_data_get(obj);
    Elm_Multibuttonentry_Item *item;
+
    if (!wd || !label) return NULL;
-   item = _add_button_item(obj, label, MULTIBUTONENTRY_POS_BEFORE, before, data);
+   item = _add_button_item(obj, label, MULTIBUTTONENTRY_POS_BEFORE, before, data);
    return item;
 }
 
-/**
- * Add a new item to the multibuttonentry after the indicated object
- *
- * @param obj The multibuttonentry object
- * @param label The label of new item
- * @param after The item after which to add it
- * @param data The ponter to the data to be attached
- * @return A handle to the item added or NULL if not possible
- *
- * @ingroup Multibuttonentry
- */
 EAPI Elm_Multibuttonentry_Item *
 elm_multibuttonentry_item_add_after(Evas_Object *obj, const char *label, Elm_Multibuttonentry_Item *after, void *data)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd = elm_widget_data_get(obj);
    Elm_Multibuttonentry_Item *item;
+
    if (!wd || !label) return NULL;
-   item = _add_button_item(obj, label, MULTIBUTONENTRY_POS_AFTER, after, data);
+   item = _add_button_item(obj, label, MULTIBUTTONENTRY_POS_AFTER, after, data);
    return item;
 }
 
-/**
- * Get a list of items in the multibuttonentry
- *
- * @param obj The multibuttonentry object
- * @return The list of items, or NULL if none
- *
- * @ingroup Multibuttonentry
- */
 EAPI const Eina_List *
 elm_multibuttonentry_items_get(const Evas_Object *obj)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd = elm_widget_data_get(obj);
+
    if (!wd) return NULL;
    return wd->items;
 }
 
-/**
- * Get the first item in the multibuttonentry
- *
- * @param obj The multibuttonentry object
- * @return The first item, or NULL if none
- *
- * @ingroup Multibuttonentry
- */
 EAPI Elm_Multibuttonentry_Item *
 elm_multibuttonentry_item_first_get(const Evas_Object *obj)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd = elm_widget_data_get(obj);
+
    if (!wd || !wd->items) return NULL;
    return eina_list_data_get(wd->items);
 }
 
-/**
- * Get the last item in the multibuttonentry
- *
- * @param obj The multibuttonentry object
- * @return The last item, or NULL if none
- *
- * @ingroup Multibuttonentry
- */
 EAPI Elm_Multibuttonentry_Item *
 elm_multibuttonentry_item_last_get(const Evas_Object *obj)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd = elm_widget_data_get(obj);
+
    if (!wd || !wd->items) return NULL;
    return eina_list_data_get(eina_list_last(wd->items));
 }
 
-/**
- * Get the selected item in the multibuttonentry
- *
- * @param obj The multibuttonentry object
- * @return The selected item, or NULL if none
- *
- * @ingroup Multibuttonentry
- */
 EAPI Elm_Multibuttonentry_Item *
 elm_multibuttonentry_item_selected_get(const Evas_Object *obj)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd = elm_widget_data_get(obj);
+
    if (!wd || !wd->current) return NULL;
    return eina_list_data_get(wd->current);
 }
 
-/**
- * Set the selected state of an item
- *
- * @param item The item
- *
- * @ingroup Multibuttonentry
- */
 EAPI void
 elm_multibuttonentry_item_selected_set(Elm_Multibuttonentry_Item *item)
 {
@@ -1673,13 +1543,6 @@ elm_multibuttonentry_item_selected_set(Elm_Multibuttonentry_Item *item)
      }
 }
 
-/**
- * unselect all of items.
- *
- * @param obj The multibuttonentry object
- *
- * @ingroup Multibuttonentry
- */
 EAPI void
 elm_multibuttonentry_item_unselect_all(Evas_Object *obj)
 {
@@ -1690,13 +1553,6 @@ elm_multibuttonentry_item_unselect_all(Evas_Object *obj)
    _select_button(obj, NULL);
 }
 
-/**
- * Remove all items in the multibuttonentry.
- *
- * @param obj The multibuttonentry object
- *
- * @ingroup Multibuttonentry
- */
 EAPI void
 elm_multibuttonentry_items_del(Evas_Object *obj)
 {
@@ -1719,13 +1575,6 @@ elm_multibuttonentry_items_del(Evas_Object *obj)
    _view_update(obj);
 }
 
-/**
- * Delete a given item
- *
- * @param item The item
- *
- * @ingroup Multibuttonentry
- */
 EAPI void
 elm_multibuttonentry_item_del(Elm_Multibuttonentry_Item *item)
 {
@@ -1733,14 +1582,6 @@ elm_multibuttonentry_item_del(Elm_Multibuttonentry_Item *item)
    _del_button_item(item);
 }
 
-/**
- * Get the label of a given item
- *
- * @param item The item
- * @return The label of a given item, or NULL if none
- *
- * @ingroup Multibuttonentry
- */
 EAPI const char *
 elm_multibuttonentry_item_label_get(const Elm_Multibuttonentry_Item *item)
 {
@@ -1761,14 +1602,6 @@ elm_multibuttonentry_item_label_get(const Elm_Multibuttonentry_Item *item)
    return NULL;
 }
 
-/**
- * Set the label of a given item
- *
- * @param item The item
- * @param label The text label string
- *
- * @ingroup Multibuttonentry
- */
 EAPI void
 elm_multibuttonentry_item_label_set(Elm_Multibuttonentry_Item *item, const char *str)
 {
@@ -1781,22 +1614,14 @@ elm_multibuttonentry_item_label_set(Elm_Multibuttonentry_Item *item, const char
    if (!wd || !wd->items) return;
 
    EINA_LIST_FOREACH(wd->items, l, _item)
-      if (_item == item)
-        {
-           edje_object_part_text_set(_item->button, "elm.btn.text", str);
-           _resize_button(_item->button, &_item->rw, &_item->vw);
-           break;
-        }
+     if (_item == item)
+       {
+          edje_object_part_text_set(_item->button, "elm.btn.text", str);
+          _resize_button(_item->button, &_item->rw, &_item->vw);
+          break;
+       }
 }
 
-/**
- * Get the previous item in the multibuttonentry
- *
- * @param item The item
- * @return The item before the item @p item
- *
- * @ingroup Multibuttonentry
- */
 EAPI Elm_Multibuttonentry_Item *
 elm_multibuttonentry_item_prev(Elm_Multibuttonentry_Item *item)
 {
@@ -1818,20 +1643,13 @@ elm_multibuttonentry_item_prev(Elm_Multibuttonentry_Item *item)
    return NULL;
 }
 
-/**
- * Get the next item in the multibuttonentry
- *
- * @param item The item
- * @return The item after the item @p item
- *
- * @ingroup Multibuttonentry
- */
 EAPI Elm_Multibuttonentry_Item *
 elm_multibuttonentry_item_next(Elm_Multibuttonentry_Item *item)
 {
    Widget_Data *wd;
    Eina_List *l;
    Elm_Multibuttonentry_Item *_item;
+
    if (!item) return NULL;
    ELM_CHECK_WIDTYPE(item->multibuttonentry, widtype) NULL;
    wd = elm_widget_data_get(item->multibuttonentry);
@@ -1847,14 +1665,6 @@ elm_multibuttonentry_item_next(Elm_Multibuttonentry_Item *item)
    return NULL;
 }
 
-/**
- * Get private data of item
- *
- * @param item The item
- * @return The data pointer stored, or NULL if none was stored
- *
- * @ingroup Multibuttonentry
- */
 EAPI void *
 elm_multibuttonentry_item_data_get(const Elm_Multibuttonentry_Item *item)
 {
@@ -1862,14 +1672,6 @@ elm_multibuttonentry_item_data_get(const Elm_Multibuttonentry_Item *item)
    return item->data;
 }
 
-/**
- * Set private data of item
- *
- * @param item The item
- * @param data The ponter to the data to be attached
- *
- * @ingroup Multibuttonentry
- */
 EAPI void
 elm_multibuttonentry_item_data_set(Elm_Multibuttonentry_Item *item, void *data)
 {
@@ -1877,15 +1679,6 @@ elm_multibuttonentry_item_data_set(Elm_Multibuttonentry_Item *item, void *data)
    item->data = data;
 }
 
-/**
- * Set the multibuttonentry item_verify_callback function
- *
- * @param obj The multibuttonentry object
- * @param func The function pointer to be called, it it's NULL, callback function will be deleted.
- * @param data user data to be passed to the callback function
- *
- * @ingroup Multibuttonentry
- */
 EAPI void
 elm_multibuttonentry_item_verify_callback_set(Evas_Object *obj, Elm_Multibuttonentry_Item_Verify_Callback func, void *data)
 {
index 99d6f09..32c8cbd 100644 (file)
@@ -670,14 +670,7 @@ _title_prev_btn_set(Elm_Naviframe_Item *it,
      evas_object_del(it->title_prev_btn);
 
    it->title_prev_btn = btn;
-
-   if (!btn)
-     {
-        edje_object_signal_emit(VIEW(it),
-                                "elm,state,prev_btn,hide",
-                                "elm");
-        return;
-     }
+   if (!btn) return;
 
    elm_widget_sub_object_add(WIDGET(it), btn);
    evas_object_event_callback_add(btn,
@@ -700,14 +693,7 @@ _title_next_btn_set(Elm_Naviframe_Item *it, Evas_Object *btn)
      evas_object_del(it->title_next_btn);
 
    it->title_next_btn = btn;
-
-   if (!btn)
-     {
-        edje_object_signal_emit(VIEW(it),
-                                "elm,state,next_btn,hide",
-                                "elm");
-        return;
-     }
+   if (!btn) return;
 
    elm_widget_sub_object_add(WIDGET(it), btn);
    evas_object_event_callback_add(btn,
@@ -729,14 +715,7 @@ _title_icon_set(Elm_Naviframe_Item *it, Evas_Object *icon)
      evas_object_del(it->icon);
 
    it->icon = icon;
-
-   if (!icon)
-     {
-        edje_object_signal_emit(VIEW(it),
-                                "elm,state,icon,hide",
-                                "elm");
-        return;
-     }
+   if (!icon) return;
 
    elm_widget_sub_object_add(WIDGET(it), icon);
    evas_object_event_callback_add(icon,
diff --git a/src/lib/elc_navigationbar.c b/src/lib/elc_navigationbar.c
deleted file mode 100644 (file)
index 8a33a0f..0000000
+++ /dev/null
@@ -1,1491 +0,0 @@
-#include <Elementary.h>
-#include "elm_priv.h"
-
-/**
- * @defgroup NavigationBar NavigationBar
- * @ingroup Elementary
- *
- * The Navigationbar is an object that allows flipping (with animation) between 1 or
- * more of objects, much like a stack of windows within the window. It also displays title
- * area above all the pages consisting of title,function buttons.
- *
- * Objects can be pushed or popped from the stack.
- * Pushes and pops will animate (and a pop will delete the object once the
- * animation is finished). Objects are pushed to the top with
- * elm_navigationbar_push() and when the top item is no longer
- * wanted, simply pop it with elm_navigationbar_pop() and it will also be
- * deleted. You can query which objects are the top and bottom with
- * elm_navigationbar_content_bottom_get() and elm_navigationbar_content_top_get().
- */
-
-#define _ELM_NAVIBAR_PREV_BTN_DEFAULT_LABEL "Previous"
-
-typedef struct _Widget_Data Widget_Data;
-typedef struct _Elm_Navigationbar_Item Elm_Navigationbar_Item;
-typedef struct _Transit_Cb_Data Transit_Cb_Data;
-
-static const char _navigationbar_key[] = "_elm_navigationbar";
-
-//TODO: Remove!
-typedef enum
-  {
-     ELM_NAVIGATIONBAR_PREV_BUTTON = ELM_NAVIGATIONBAR_FUNCTION_BUTTON1,
-     ELM_NAVIGATIONBAR_NEXT_BUTTON = ELM_NAVIGATIONBAR_FUNCTION_BUTTON2,
-     ELM_NAVIGATIONBAR_TITLE_BTN_CNT = 2
-  } Elm_Navigationbar_Button_Type;
-
-struct _Widget_Data
-{
-   Eina_List *stack;
-   Evas_Object *rect;
-   Evas_Object *base;
-   Evas_Object *pager;
-   Eina_Bool title_visible : 1;
-   Eina_Bool popping: 1;
- };
-
-struct _Elm_Navigationbar_Item
-{
-   Elm_Widget_Item base;
-   const char *title;
-   const char *subtitle;
-   Eina_List *title_obj_list;   //TODO: Remove!
-   Evas_Object *title_obj;
-   Evas_Object *title_btns[ELM_NAVIGATIONBAR_TITLE_BTN_CNT];
-   Evas_Object *content;
-   Evas_Object *icon;
-   Eina_Bool titleobj_visible :1;
-   Eina_Bool back_btn :1;
-};
-
-//TODO: Remove!
-struct _Transit_Cb_Data
-{
-   Elm_Navigationbar_Item* prev_it;
-   Elm_Navigationbar_Item* it;
-   Evas_Object *navibar;
-   Eina_Bool pop : 1;
-   Eina_Bool first_page : 1;
-};
-
-static const char *widtype = NULL;
-
-static void _del_hook(Evas_Object *obj);
-static void _theme_hook(Evas_Object *obj);
-static void _sizing_eval(Evas_Object *obj);
-static void _resize(void *data, Evas *e, Evas_Object *obj, void *event_info);
-static void _item_sizing_eval(Elm_Navigationbar_Item *it);
-static void _item_del(Elm_Navigationbar_Item *it);
-static void _back_button_clicked(void *data, Evas_Object *obj, void *event_info);
-static void _button_size_set(Evas_Object *obj);
-static Eina_Bool _button_set(Evas_Object *obj, Evas_Object *prev_btn, Evas_Object *new_btn, Eina_Bool back_btn);
-static void _transition_complete_cb(void *data);
-static void _elm_navigationbar_prev_btn_set(Evas_Object *obj,
-                                            Evas_Object *content,
-                                            Evas_Object *new_btn,
-                                            Elm_Navigationbar_Item *it);
-static void _elm_navigationbar_next_btn_set(Evas_Object *obj,
-                                            Evas_Object *content,
-                                            Evas_Object *new_btn,
-                                            Elm_Navigationbar_Item *it);
-static void _title_clicked(void *data, Evas_Object *obj, const char *emission, const char *source);
-static void _titleobj_switching(Evas_Object *obj, Elm_Navigationbar_Item *it);
-static void _emit_hook(Evas_Object *obj, const char *emission, const char *source);
-
-static const char SIG_HIDE_FINISHED[] = "hide,finished";
-static const char SIG_TITLE_OBJ_VISIBLE_CHANGED[] = "titleobj,visible,changed";
-static const char SIG_TITLE_CLICKED[] = "title,clicked";
-
-static const Evas_Smart_Cb_Description _signals[] = {
-       {SIG_HIDE_FINISHED, ""},
-       {SIG_TITLE_OBJ_VISIBLE_CHANGED, ""},
-       {SIG_TITLE_CLICKED, ""},
-       {NULL, NULL}
-};
-
-static void
-_content_del(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
-{
-   Elm_Navigationbar_Item *it = data;
-   evas_object_data_del(obj, _navigationbar_key);
-   it->content = NULL;
-   //TODO: it will be better remove this page?
-}
-
-static void
-_title_obj_del(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
-{
-   Elm_Navigationbar_Item *it = data;
-   Eina_List *l = NULL;
-   elm_navigationbar_title_object_list_unset(it->base.widget, it->content, &l);
-   if (!l) return;
-   evas_object_del(eina_list_data_get(l));
-   eina_list_free(l);
-}
-
-static void
-_title_icon_del(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
-{
-   Elm_Navigationbar_Item *it = data;
-   it->icon = NULL;
-}
-
-static void
-_title_btn_del(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
-{
-   Elm_Navigationbar_Item *it = data;
-
-   if (it->title_btns[ELM_NAVIGATIONBAR_PREV_BUTTON] == obj)
-     it->title_btns[ELM_NAVIGATIONBAR_PREV_BUTTON] = NULL;
-   else if (it->title_btns[ELM_NAVIGATIONBAR_NEXT_BUTTON] == obj)
-     it->title_btns[ELM_NAVIGATIONBAR_NEXT_BUTTON] = NULL;
-}
-
-static Eina_Bool
-_title_btn_set(Elm_Navigationbar_Item *it, Evas_Object *btn, int title_btn_idx, Eina_Bool back_btn)
-{
-   Eina_Bool changed;
-
-   if(it->title_btns[title_btn_idx] == btn) return EINA_FALSE;
-
-   changed = _button_set(it->base.widget, it->title_btns[title_btn_idx], btn, back_btn);
-   it->title_btns[title_btn_idx] = btn;
-
-   if ((!changed) || (!btn)) return EINA_FALSE;
-
-   it->back_btn = back_btn;
-
-   evas_object_event_callback_add(btn, EVAS_CALLBACK_DEL, _title_btn_del, it);
-
-   return EINA_TRUE;
-}
-
-static Evas_Object *
-_create_back_btn(Evas_Object *parent, const char *title, void *data)
-{
-   Evas_Object *btn = elm_button_add(parent);
-   if (!btn) return NULL;
-   elm_object_text_set(btn, title);
-   evas_object_smart_callback_priority_add(btn, "clicked", EVAS_CALLBACK_PRIORITY_AFTER, _back_button_clicked, data);
-   return btn;
-}
-
-static void
-_del_hook(Evas_Object *obj)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   Eina_List *list;
-   Elm_Navigationbar_Item *it;
-
-   EINA_LIST_FOREACH(wd->stack, list, it)
-     _item_del(it);
-   eina_list_free(wd->stack);
-   free(wd);
-}
-
-void
-_emit_hook(Evas_Object *obj, const char *emission, const char *source)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-
-   Widget_Data *wd;
-   Eina_List *last;
-   Elm_Navigationbar_Item *it;
-
-   wd = elm_widget_data_get(obj);
-   if (!wd) return;
-
-   last = eina_list_last(wd->stack);
-   if (!last) return;
-
-   it = eina_list_data_get(last);
-   if ((!it) || (!it->title_obj)) return;
-
-   //FIXME: I know this is really bullshit.
-   //We don't need to keep the titleobj_visible but return the status in edc.
-   if (!strcmp(source, "elm"))
-     {
-        if (!strcmp(emission, "elm,state,hide,noanimate,title"))
-          it->titleobj_visible = EINA_FALSE;
-        else if (!strcmp(emission, "elm,state,show,noanimate,title"))
-          it->titleobj_visible = EINA_TRUE;
-     }
-
-   edje_object_signal_emit(wd->base, emission, source);
-}
-
-static void
-_theme_hook(Evas_Object *obj)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   Eina_List *list = NULL;
-   Elm_Navigationbar_Item *it = NULL;
-
-   if (!wd) return;
-   _elm_theme_object_set(obj, wd->base, "navigationbar", "base", elm_widget_style_get(obj));
-
-   list = eina_list_last(wd->stack);
-   if (list)
-     {
-        it = eina_list_data_get(list);
-        if (it)
-          {
-             //buttons
-             if (it->title_btns[ELM_NAVIGATIONBAR_PREV_BUTTON])
-               edje_object_part_swallow(wd->base, "elm.swallow.prev_btn", it->title_btns[ELM_NAVIGATIONBAR_PREV_BUTTON]);
-             if (it->title_btns[ELM_NAVIGATIONBAR_NEXT_BUTTON])
-               edje_object_part_swallow(wd->base, "elm.swallow.next_btn", it->title_btns[ELM_NAVIGATIONBAR_NEXT_BUTTON]);
-
-             //icon
-             if (it->icon)
-               {
-                  edje_object_part_swallow(wd->base, "elm.swallow.icon", it->icon);
-                  edje_object_signal_emit(wd->base, "elm,state,icon,visible", "elm");
-               }
-
-             //title text
-             if (it->title)
-               edje_object_part_text_set(wd->base, "elm.text", it->title);
-
-             //title object
-             if (it->title_obj)
-               {
-                  edje_object_part_swallow(wd->base, "elm.swallow.title", it->title_obj);
-
-                  if (it->titleobj_visible)
-                    edje_object_signal_emit(wd->base, "elm,state,show,noanimate,title", "elm");
-                  else
-                    edje_object_signal_emit(wd->base, "elm,state,hide,noanimate,title", "elm"); //elm,state,title,hide
-
-                  if (it->title)
-                    edje_object_signal_emit(wd->base, "elm,state,show,extended", "elm");
-               }
-            }
-     }
-
-   if (!wd->title_visible)
-     edje_object_signal_emit(wd->base, "elm,state,item,moveup", "elm");
-
-   edje_object_message_signal_process(wd->base);
-   _sizing_eval(obj);
-}
-
-static void
-_item_del(Elm_Navigationbar_Item *it)
-{
-   //TODO: So hard to manage.
-   //TODO: Just prepare one layout for title objects.
-   //TODO: then remove the layout only.
-   Widget_Data *wd;
-   int idx;
-
-   if (!it) return;
-
-   wd = elm_widget_data_get(it->base.widget);
-   if (!wd) return;
-
-   //Remove Function Buttons
-   for (idx = 0; idx < ELM_NAVIGATIONBAR_TITLE_BTN_CNT; idx++)
-     {
-        if (!it->title_btns[idx]) continue;
-        if (!it->back_btn) elm_object_unfocus(it->title_btns[idx]);
-        evas_object_event_callback_del(it->title_btns[idx], EVAS_CALLBACK_DEL, _title_btn_del);
-        evas_object_del(it->title_btns[idx]);
-     }
-   if (it->icon)
-     {
-        evas_object_event_callback_del(it->icon, EVAS_CALLBACK_DEL, _title_icon_del);
-        evas_object_del(it->icon);
-     }
-   if (it->title_obj)
-     {
-        evas_object_event_callback_del(it->title_obj, EVAS_CALLBACK_DEL, _title_obj_del);
-        evas_object_del(it->title_obj);
-        eina_list_free(it->title_obj_list);
-     }
-   if (it->title) eina_stringshare_del(it->title);
-   if (it->subtitle) eina_stringshare_del(it->subtitle);
-
-   if (it->content)
-     {
-        evas_object_data_del(it->content, _navigationbar_key);
-        evas_object_event_callback_del(it->content, EVAS_CALLBACK_DEL, _content_del);
-     }
-
-   free(it);
-}
-
-static void
-_sizing_eval(Evas_Object *obj)
-{
-   Widget_Data *wd;
-   Eina_List *list;
-
-   wd  = elm_widget_data_get(obj);
-   if (!wd) return;
-
-   list = eina_list_last(wd->stack);
-   if (!list) return;
-
-   _item_sizing_eval(list->data);
-}
-
-static void
-_item_sizing_eval(Elm_Navigationbar_Item *it)
-{
-   if (!it) return;
-   Widget_Data *wd = elm_widget_data_get(it->base.widget);
-   Evas_Coord minw;
-
-   if (!wd) return;
-
-   edje_object_size_min_calc(wd->base, &minw, NULL);
-
-   //TODO: Even the below code for size calculation is redundant and should be removed.
-   //TODO: Item_sizing_eval function has to be totally refactored/removed.
-   _button_size_set(it->title_btns[ELM_NAVIGATIONBAR_PREV_BUTTON]);
-   _button_size_set(it->title_btns[ELM_NAVIGATIONBAR_NEXT_BUTTON]);
-}
-
-static void
-_resize(void *data __UNUSED__, Evas *e  __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-
-   Evas_Coord w, h;
-   evas_object_geometry_get(obj, NULL, NULL, &w, &h);
-   evas_object_resize(wd->rect, w, h);
-
-   _sizing_eval(obj);
-}
-
-static void
-_hide(void *data __UNUSED__, Evas *e  __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-
-   evas_object_hide(wd->rect);
-}
-
-static void
-_move(void *data __UNUSED__, Evas *e  __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-
-   Evas_Coord x, y;
-   evas_object_geometry_get(obj, &x, &y, NULL, NULL);
-   evas_object_move(wd->rect, x, y);
-}
-
-static void
-_titleobj_switching(Evas_Object *obj, Elm_Navigationbar_Item *it)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-
-   if (!it->title_obj) return;
-
-   if (elm_navigationbar_content_top_get(it->base.widget) != it->content)
-     return;
-
-   if (it->titleobj_visible)
-     edje_object_signal_emit(wd->base, "elm,state,show,title", "elm"); //elm,state,title,show
-   else
-     edje_object_signal_emit(wd->base, "elm,state,hide,title", "elm"); //elm,state,title,hide
-
-   _item_sizing_eval(it);
-}
-
-static void
-_title_clicked(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__)
-{
-   Evas_Object *navibar = data;
-   Widget_Data *wd;
-   Eina_List *last;
-   Elm_Navigationbar_Item *it;
-
-   wd = elm_widget_data_get(navibar);
-   if (!wd) return;
-
-   last = eina_list_last(wd->stack);
-   if (!last) return;
-
-   it = eina_list_data_get(last);
-   if ((!it) || (!it->title_obj)) return;
-
-   if (!it->titleobj_visible)
-     {
-        it->titleobj_visible = EINA_TRUE;
-        evas_object_smart_callback_call(it->base.widget, SIG_TITLE_OBJ_VISIBLE_CHANGED, (void *) EINA_TRUE);
-     }
-   else
-     {
-        it->titleobj_visible = EINA_FALSE;
-        evas_object_smart_callback_call(it->base.widget, SIG_TITLE_OBJ_VISIBLE_CHANGED, (void *) EINA_FALSE);
-     }
-
-   evas_object_smart_callback_call(navibar, SIG_TITLE_CLICKED, NULL);
-
-   _titleobj_switching(navibar, it);
-}
-
-//TODO: should be renamed.
-static void
-_transition_complete_cb(void *data)
-{
-   Evas_Object *navi_bar;
-   Widget_Data *wd;
-   Elm_Navigationbar_Item *prev_it;
-   Elm_Navigationbar_Item *it;
-   Eina_List *ll;
-
-   Transit_Cb_Data *cb = data;
-   if (!cb) return;
-
-   navi_bar = cb->navibar;
-   if (!navi_bar) return;
-
-   wd = elm_widget_data_get(navi_bar);
-   if (!wd) return;
-
-   prev_it = cb->prev_it;
-   it = cb->it;
-
-   if (cb->pop && prev_it)
-     {
-        ll = eina_list_last(wd->stack);
-        if (ll->data == prev_it)
-          {
-             _item_del(prev_it);
-             wd->stack = eina_list_remove_list(wd->stack, ll);
-          }
-     }
-   else if (prev_it)
-     {
-        if (prev_it->title_btns[ELM_NAVIGATIONBAR_PREV_BUTTON])
-           evas_object_hide(prev_it->title_btns[ELM_NAVIGATIONBAR_PREV_BUTTON]);
-        if (prev_it->title_btns[ELM_NAVIGATIONBAR_NEXT_BUTTON])
-          evas_object_hide(prev_it->title_btns[ELM_NAVIGATIONBAR_NEXT_BUTTON]);
-        if (prev_it->title_obj)
-          evas_object_hide(prev_it->title_obj);
-        if (prev_it->icon)
-          evas_object_hide(prev_it->icon);
-     }
-   if ((it) && (wd->title_visible))
-     {
-        edje_object_part_text_set(wd->base, "elm.text", it->title);
-
-        if (!cb->first_page)
-          {
-             if (cb->pop)
-               edje_object_signal_emit(wd->base, "elm,action,pop", "elm");
-             else
-               edje_object_signal_emit(wd->base, "elm,action,push", "elm");
-             evas_object_pass_events_set(wd->base, EINA_TRUE);
-             evas_object_show(wd->rect);
-          }
-        if (it->title_obj)
-          {
-             edje_object_part_swallow(wd->base, "elm.swallow.title", it->title_obj);
-          }
-        if (it->subtitle)
-          edje_object_part_text_set(wd->base, "elm.text.sub", it->subtitle);
-        else
-          edje_object_part_text_set(wd->base, "elm.text.sub", NULL);
-
-        if (it->title_btns[ELM_NAVIGATIONBAR_PREV_BUTTON])
-          edje_object_part_swallow(wd->base, "elm.swallow.prev_btn", it->title_btns[ELM_NAVIGATIONBAR_PREV_BUTTON]);
-        if (it->title_btns[ELM_NAVIGATIONBAR_NEXT_BUTTON])
-          edje_object_part_swallow(wd->base, "elm.swallow.next_btn", it->title_btns[ELM_NAVIGATIONBAR_NEXT_BUTTON]);
-
-        if(it->icon)
-          {
-             edje_object_part_swallow(wd->base, "elm.swallow.icon", it->icon);
-             edje_object_signal_emit(wd->base, "elm,state,icon,visible", "elm");
-          }
-        else
-          edje_object_signal_emit(wd->base, "elm,state,icon,hidden", "elm");
-
-        if ((it->title_obj) && (it->title))
-          {
-             edje_object_signal_emit(wd->base, "elm,state,show,extended", "elm");
-             if(it->titleobj_visible)
-               {
-                 //TODO: remove the dependency on these signals as related to nbeat, try to make it totally theme dependent
-                 edje_object_signal_emit(wd->base, "elm,state,show,noanimate,title", "elm");
-               }
-             else
-               //TODO: remove the dependency on these signals as related to nbeat, try to make it totally theme dependent
-               edje_object_signal_emit(wd->base, "elm,state,hide,noanimate,title", "elm");
-          }
-        else
-          {
-             edje_object_signal_emit(wd->base, "elm,state,hide,extended", "elm");
-             //TODO: remove the dependency on these signals as related to nbeat, try to make it totally theme dependent
-             edje_object_signal_emit(wd->base, "elm,state,hide,noanimate,title", "elm");
-             it->titleobj_visible = EINA_FALSE;
-          }
-     }
-}
-
-static void
-_back_button_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
-{
-   Elm_Navigationbar_Item *it = data;
-   elm_navigationbar_pop(it->base.widget);
-}
-
-static void
-_hide_finished(void *data, Evas_Object *obj __UNUSED__, void *event_info)
-{
-   Evas_Object *navi_bar = data;
-   Widget_Data *wd =  elm_widget_data_get(navi_bar);
-   wd->popping = EINA_FALSE;
-   evas_object_smart_callback_call(navi_bar, SIG_HIDE_FINISHED, event_info);
-   evas_object_pass_events_set(wd->base, EINA_FALSE);
-   evas_object_hide(wd->rect);
-}
-
-static void
-_button_size_set(Evas_Object *obj)
-{
-   if (!obj) return;
-   Evas_Coord minw = -1, minh = -1, maxw= -1, maxh = -1;
-   Evas_Coord w = 0, h = 0;
-
-   evas_object_size_hint_min_get(obj, &minw, &minh);
-   evas_object_size_hint_max_get(obj, &maxw, &maxh);
-   evas_object_geometry_get(obj, NULL, NULL, &w, &h);
-   if (w < minw) w = minw;
-   if (h < minh) h = minh;
-   if ((maxw >= 0) && (w > maxw)) w = maxw;
-   if ((maxh >= 0) && (h > maxh)) h = maxh;
-   evas_object_resize(obj, w, h);
-}
-
-static void
-_elm_navigationbar_prev_btn_set(Evas_Object *obj, Evas_Object *content, Evas_Object *new_btn, Elm_Navigationbar_Item *it)
-{
-   Widget_Data *wd;
-   Evas_Object *prev_btn;
-
-   wd = elm_widget_data_get(obj);
-   if (!wd) return;
-
-   if (!_title_btn_set(it, new_btn, ELM_NAVIGATIONBAR_PREV_BUTTON, EINA_FALSE))
-     return;
-
-   //update if the content is the top item
-   if (elm_navigationbar_content_top_get(obj) != content)
-     return;
-
-   prev_btn = edje_object_part_swallow_get(wd->base, "elm.swallow.prev_btn");
-   if (prev_btn) evas_object_del(prev_btn);
-   edje_object_part_swallow(wd->base, "elm.swallow.prev_btn", new_btn);
-}
-
-//TODO: looks make this  _elm_navigationbar_function_button1_set  same.
-static void
-_elm_navigationbar_next_btn_set(Evas_Object *obj, Evas_Object *content, Evas_Object *new_btn, Elm_Navigationbar_Item *it)
-{
-   Widget_Data *wd;
-   Evas_Object *prev_btn;
-
-   wd = elm_widget_data_get(obj);
-   if (!wd) return;
-
-   if (!_title_btn_set(it, new_btn, ELM_NAVIGATIONBAR_NEXT_BUTTON, EINA_FALSE))
-     return;
-
-   //update if the content is the top item
-   if (elm_navigationbar_content_top_get(obj) != content)
-     return;
-
-   prev_btn = edje_object_part_swallow_get(wd->base, "elm.swallow.next_btn");
-   if (prev_btn) evas_object_del(prev_btn);
-   edje_object_part_swallow(wd->base, "elm.swallow.next_btn", new_btn);
-}
-
-static Eina_Bool
-_button_set(Evas_Object *obj, Evas_Object *prev_btn, Evas_Object *new_btn, Eina_Bool back_btn)
-{
-   char buf[4096];   //TODO: How to guarantee this buffer size?
-   Eina_Bool changed = EINA_FALSE;
-
-   if (prev_btn)
-     {
-        changed = EINA_TRUE;
-        evas_object_del(prev_btn);
-     }
-   if (!new_btn) return changed;
-
-   if (back_btn)
-     {
-        snprintf(buf, sizeof(buf), "navigationbar_prev_btn/%s", elm_widget_style_get(obj));
-        elm_object_style_set(new_btn, buf);
-     }
-   else
-     {
-        if (!strcmp("default", elm_object_style_get(new_btn)))
-          {
-             snprintf(buf, sizeof(buf), "navigationbar_next_btn/%s", elm_widget_style_get(obj));
-             elm_object_style_set(new_btn, buf);
-          }
-     }
-
-   elm_widget_sub_object_add(obj, new_btn);
-   changed = EINA_TRUE;
-
-   return changed;
-}
-
-/**
- * Add a new navigationbar to the parent
- *
- * @param[in] parent The parent object
- * @return The new object or NULL if it cannot be created
- *
- * @ingroup NavigationBar
- */
-EAPI Evas_Object *
-elm_navigationbar_add(Evas_Object *parent)
-{
-   Evas_Object *obj;
-   Evas *e;
-   Widget_Data *wd;
-
-   EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-
-   wd = ELM_NEW(Widget_Data);
-   e = evas_object_evas_get(parent);
-   obj = elm_widget_add(e);
-   ELM_SET_WIDTYPE(widtype, "navigationbar");
-   elm_widget_type_set(obj, "navigationbar");
-   elm_widget_sub_object_add(parent, obj);
-   elm_widget_data_set(obj, wd);
-   elm_widget_del_hook_set(obj, _del_hook);
-   elm_widget_theme_hook_set(obj, _theme_hook);
-   elm_widget_signal_emit_hook_set(obj, _emit_hook);
-
-   wd->base = edje_object_add(e);
-   _elm_theme_object_set(obj, wd->base, "navigationbar", "base", "default");
-   elm_widget_resize_object_set(obj, wd->base);
-   //TODO: elm,action,title,clicked
-   edje_object_signal_callback_add(wd->base, "elm,action,clicked", "elm",
-                                            _title_clicked, obj);
-
-   //TODO: How about making the pager as a base?
-   //TODO: Swallow title and content as one content into the pager.
-   wd->pager = elm_pager_add(obj);
-   elm_object_style_set(wd->pager, "navigationbar");
-   elm_widget_sub_object_add(obj, wd->pager);
-   edje_object_part_swallow(wd->base, "elm.swallow.content", wd->pager);
-   evas_object_smart_callback_add(wd->pager, "hide,finished", _hide_finished, obj);
-   evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, _resize, NULL);
-   evas_object_event_callback_add(obj, EVAS_CALLBACK_MOVE, _move, NULL);
-   evas_object_event_callback_add(obj, EVAS_CALLBACK_HIDE, _hide, NULL);
-
-   wd->title_visible = EINA_TRUE;
-
-   evas_object_smart_callbacks_descriptions_set(obj, _signals);
-
-   //Rect
-   wd->rect = evas_object_rectangle_add(e);
-   evas_object_color_set(wd->rect, 0, 0, 0, 0);
-   elm_widget_sub_object_add(obj, wd->rect);
-
-   //TODO: apply elm_object_disabled_set
-
-   return obj;
-}
-
-/**
- * Push an object to the top of the NavigationBar stack (and show it)
- * The object pushed becomes a child of the navigationbar and will be controlled
- * it is deleted when the navigationbar is deleted or when the content is popped.
- *
- * @param[in] obj The NavigationBar object
- * @param[in] title The title string
- * @param[in] prev_btn The previous button
- * @param[in] next_btn The next button
- * @param[in] unused Unused.
- * @param[in] content The object to push
- *
- * @ingroup NavigationBar
- */
-EAPI void
-elm_navigationbar_push(Evas_Object *obj, const char *title, Evas_Object *prev_btn, Evas_Object *next_btn, Evas_Object *unused __UNUSED__, Evas_Object *content)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-
-   Widget_Data *wd;
-   Elm_Navigationbar_Item *it;
-   Elm_Navigationbar_Item *top_it;
-
-   if (!content) return;
-
-   wd = elm_widget_data_get(obj);
-   if (!wd) return;
-
-   if (evas_object_data_get(content, _navigationbar_key)) return;
-
-   it = elm_widget_item_new(obj, Elm_Navigationbar_Item);
-   if (!it) return;
-
-   top_it = eina_list_data_get(eina_list_last(wd->stack));
-
-   _title_btn_set(it, prev_btn, ELM_NAVIGATIONBAR_PREV_BUTTON, EINA_FALSE);
-   _title_btn_set(it, next_btn, ELM_NAVIGATIONBAR_NEXT_BUTTON, EINA_FALSE);
-
-   it->content = content;
-   evas_object_event_callback_add(content, EVAS_CALLBACK_DEL, _content_del, it);
-   evas_object_data_set(content, _navigationbar_key, it);
-
-   //Add a prev-button automatically.
-   if ((!prev_btn) && (top_it))
-   {
-      if (top_it->title)
-        _title_btn_set(it, _create_back_btn(obj, top_it->title, it), ELM_NAVIGATIONBAR_PREV_BUTTON, EINA_TRUE);
-      else
-        _title_btn_set(it, _create_back_btn(obj, _ELM_NAVIBAR_PREV_BTN_DEFAULT_LABEL, it), ELM_NAVIGATIONBAR_PREV_BUTTON, EINA_TRUE);
-   }
-
-   eina_stringshare_replace(&it->title, title);
-   edje_object_part_text_set(wd->base, "elm.text", title);
-   _item_sizing_eval(it);
-
-   Transit_Cb_Data *cb = ELM_NEW(Transit_Cb_Data);
-   // unswallow items and start transition
-   // TODO: For what? why does it need to unswallow?
-   if (top_it)
-     {
-        cb->prev_it = top_it;
-        cb->first_page = EINA_FALSE;
-        if (top_it->title_obj) edje_object_part_unswallow(wd->base, top_it->title_obj);
-        if (top_it->title_btns[ELM_NAVIGATIONBAR_PREV_BUTTON])
-          edje_object_part_unswallow(wd->base, top_it->title_btns[ELM_NAVIGATIONBAR_PREV_BUTTON]);
-        if (top_it->title_btns[ELM_NAVIGATIONBAR_NEXT_BUTTON])
-          edje_object_part_unswallow(wd->base, top_it->title_btns[ELM_NAVIGATIONBAR_NEXT_BUTTON]);
-        if (top_it->icon)
-          edje_object_part_unswallow(wd->base, top_it->icon);
-     }
-   //If page is the first, then do not run the transition... but if user want.. ?
-   else
-     {
-        cb->prev_it = NULL;
-        cb->first_page = EINA_TRUE;
-     }
-   cb->navibar = obj;
-   cb->it = it;
-   cb->pop = EINA_FALSE;
-
-   _transition_complete_cb(cb);
-   free(cb);
-   elm_pager_content_push(wd->pager, it->content);
-
-   wd->stack = eina_list_append(wd->stack, it);
-   _sizing_eval(obj);
-}
-
-/**
- * This pops the object that is on top (visible) in the navigationbar, makes it disappear, then deletes the object.
- * The object that was underneath it, on the stack will become visible.
- *
- * @param[in] obj The NavigationBar object
- *
- * @ingroup NavigationBar
- */
-EAPI void
-elm_navigationbar_pop(Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   Eina_List *ll;
-   Transit_Cb_Data *cb;
-   Elm_Navigationbar_Item *it = NULL;
-   Elm_Navigationbar_Item *prev_it = NULL;
-
-   //TODO: It's impossible to pop while popping?
-   if (wd->popping) return;
-   if (!wd->stack) return;
-
-   //find item to be popped and to be shown
-   //TODO: hmm.. i think it's hard to manager separated list from elm_pager internal list. but how about use evas_object_data_set to each content??
-   ll = eina_list_last(wd->stack);
-   if (ll)
-     {
-        prev_it = ll->data;
-        ll = ll->prev;
-        if (ll)
-          it = ll->data;
-     }
-   //unswallow items and start trasition
-   cb = ELM_NEW(Transit_Cb_Data);
-
-   //Previous page is exist.
-   if (prev_it)
-     {
-        if (it)
-          {
-             cb->prev_it = prev_it;
-             cb->it = it;
-             cb->pop = EINA_TRUE;
-             if (prev_it->title_obj)
-               edje_object_part_unswallow(wd->base, prev_it->title_obj);
-             if (prev_it->title_btns[ELM_NAVIGATIONBAR_PREV_BUTTON])
-               edje_object_part_unswallow(wd->base, prev_it->title_btns[ELM_NAVIGATIONBAR_PREV_BUTTON]);
-             if (prev_it->title_btns[ELM_NAVIGATIONBAR_NEXT_BUTTON])
-               edje_object_part_unswallow(wd->base, prev_it->title_btns[ELM_NAVIGATIONBAR_NEXT_BUTTON]);
-             if (prev_it->icon)
-               edje_object_part_unswallow(wd->base, prev_it->icon);
-             _item_sizing_eval(it);
-          }
-        else
-          {
-             cb->prev_it = prev_it;
-             cb->it = NULL;
-             cb->pop = EINA_TRUE;
-             //TODO: seems that flag is inverted.
-             cb->first_page = EINA_FALSE;
-          }
-
-        if (prev_it->content)
-          elm_object_tree_unfocusable_set(prev_it->content, EINA_TRUE);
-     }
-
-   cb->navibar = obj;
-   _transition_complete_cb(cb);
-   wd->popping = EINA_TRUE;
-
-   elm_pager_content_pop(wd->pager);
-
-   if ((prev_it) && (!it))
-     edje_object_part_text_set(wd->base, "elm.text", NULL);
-
-   free(cb);
-}
-
-/**
- * This Pops to the given content object (and update it) by deleting rest of the objects in between.
- *
- * @param[in] obj The NavigationBar object
- * @param[in] content the object to show
- *
- * @ingroup NavigationBar
- */
-EAPI void
-elm_navigationbar_to_content_pop(Evas_Object *obj, Evas_Object *content)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-
-   Widget_Data *wd;
-   Eina_List *ll;
-   Elm_Navigationbar_Item *it;
-   Elm_Navigationbar_Item *prev_it;
-   Transit_Cb_Data *cb;
-
-   wd = elm_widget_data_get(obj);
-   if ((!wd) || (!content) || (!wd->stack)) return;
-
-   //find item to be popped and to be shown
-   it = prev_it = NULL;
-   ll = eina_list_last(wd->stack);
-
-   if (elm_navigationbar_content_top_get(obj) == content) return;
-
-   if (ll)
-     {
-        prev_it = ll->data;
-        ll =  ll->prev;
-     }
-   while (ll)
-     {
-        it = ll->data;
-        if ((it->base.widget) && (it->content != content))
-          {
-             _item_del(ll->data);
-             wd->stack = eina_list_remove_list(wd->stack, ll);
-             it = NULL;
-           }
-         else
-           break;
-         ll =  ll->prev;
-      }
-   if (prev_it && it)
-     {
-        //unswallow items and start trasition
-        cb = ELM_NEW(Transit_Cb_Data);
-        cb->prev_it = prev_it;
-        cb->it = it;
-        cb->pop = EINA_TRUE;
-        cb->first_page = EINA_FALSE;
-        cb->navibar = obj;
-
-        //TODO: make one call.
-        if (prev_it->title_obj)
-          edje_object_part_unswallow(wd->base, prev_it->title_obj);
-        if (prev_it->title_btns[ELM_NAVIGATIONBAR_PREV_BUTTON])
-          edje_object_part_unswallow(wd->base, prev_it->title_btns[ELM_NAVIGATIONBAR_PREV_BUTTON]);
-        if (prev_it->title_btns[ELM_NAVIGATIONBAR_NEXT_BUTTON])
-          edje_object_part_unswallow(wd->base, prev_it->title_btns[ELM_NAVIGATIONBAR_NEXT_BUTTON]);
-
-        _item_sizing_eval(it);
-        _transition_complete_cb(cb);
-
-        elm_pager_to_content_pop(wd->pager, content);
-
-        free(cb);
-     }
-}
-
-/**
- * Set the title string for the pushed content
- *
- * @param[in] obj The NavigationBar object
- * @param[in] content The object to push or pushed
- * @param[in] title The title string
- *
- * @ingroup NavigationBar
- */
-EAPI void
-elm_navigationbar_title_label_set(Evas_Object *obj, Evas_Object *content, const char *title)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd;
-   Elm_Navigationbar_Item *it;
-
-   if (!content) return;
-
-   wd = elm_widget_data_get(obj);
-   if (!wd) return;
-
-   it = evas_object_data_get(content, _navigationbar_key);
-   if (!it) return;
-
-   eina_stringshare_replace(&it->title, title);
-   edje_object_part_text_set(wd->base, "elm.text", title);
-   _item_sizing_eval(it);
-}
-
-/**
- * Return the title string of the pushed content
- *
- * @param[in] obj The NavigationBar object
- * @param[in] content The object to push or pushed
- * @return The title string or NULL if none
- *
- * @ingroup NavigationBar
- */
-EAPI const char *
-elm_navigationbar_title_label_get(Evas_Object *obj, Evas_Object *content)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype) NULL;
-   Widget_Data *wd;
-   Elm_Navigationbar_Item *it;
-
-   if (!content) return NULL;
-
-   wd = elm_widget_data_get(obj);
-   if (!wd) return NULL;
-
-   it = evas_object_data_get(content, _navigationbar_key);
-   if (!it) return NULL;
-   return it->title;
-}
-
-/**
- * Set the title icon for the pushed content
- *
- * @param[in] obj The NavigationBar object
- * @param[in] content The object to push or pushed
- * @param[in] icon The icon object
- *
- * @ingroup NavigationBar
- */
-EAPI void
-elm_navigationbar_title_icon_set(Evas_Object *obj, Evas_Object *content, Evas_Object *icon)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd;
-   Elm_Navigationbar_Item *it;
-   Evas_Object *swallow;
-
-   if (!content) return;
-
-    wd = elm_widget_data_get(obj);
-    if (!wd) return;
-
-   it = evas_object_data_get(content, _navigationbar_key);
-   if (!it) return;
-
-   if (it->icon == icon) return;
-   if (it->icon) evas_object_del(it->icon);
-   it->icon = icon;
-
-   if (!icon) return;
-
-   elm_widget_sub_object_add(obj, icon);
-   evas_object_event_callback_add(icon, EVAS_CALLBACK_DEL, _title_icon_del, it);
-   _item_sizing_eval(it);
-   //update if the content is the top item
-   if (elm_navigationbar_content_top_get(obj) != content)
-     return;
-
-   swallow = edje_object_part_swallow_get(wd->base, "elm.swallow.icon");
-   if (swallow)
-     {
-        edje_object_signal_emit(wd->base, "elm,state,icon,hidden", "elm");
-        edje_object_part_unswallow(wd->base, swallow);
-        evas_object_hide(swallow);
-     }
-   if (wd->title_visible)
-     {
-        edje_object_part_swallow(wd->base, "elm.swallow.icon", icon);
-        edje_object_signal_emit(wd->base, "elm,state,icon,visible", "elm");
-        edje_object_message_signal_process(wd->base);
-     }
-   else
-      edje_object_signal_emit(wd->base, "elm,state,icon,hidden", "elm");
-}
-
-/**
- * Get the title icon for the pushed content
- *
- * @param[in] obj The NavigationBar object
- * @param[in] content The object to push or pushed
- * @return The icon object or NULL if none
- *
- * @ingroup NavigationBar
- */
-EAPI Evas_Object *
-elm_navigationbar_title_icon_get(Evas_Object *obj, Evas_Object *content)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype)NULL;
-   Widget_Data *wd;
-   Elm_Navigationbar_Item *it;
-
-   if (!content) return NULL;
-
-   wd = elm_widget_data_get(obj);
-   if (!wd) return NULL;
-
-   it = evas_object_data_get(content, _navigationbar_key);
-   if (!it) return NULL;
-
-   return it->icon;
-}
-
-/**
- * Add a title object for the content.
- *
- * @param[in] obj The NavigationBar object
- * @param[in] content The object pushed
- * @param[in] title_obj a title object (normally button or segment_control)
- *
- * @ingroup NavigationBar
- */
-//TODO: elm_navigationbar_title_object_set ( .... )
-EAPI void
-elm_navigationbar_title_object_add(Evas_Object *obj, Evas_Object *content, Evas_Object *title_obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd;
-   Elm_Navigationbar_Item *it;
-
-   if ((!title_obj) || (!content)) return;
-
-   wd = elm_widget_data_get(obj);
-   if (!wd) return;
-
-   it = evas_object_data_get(content, _navigationbar_key);
-   if (!it) return;
-
-   if (it->title_obj)
-     {
-       evas_object_event_callback_del(it->title_obj, EVAS_CALLBACK_DEL, _title_obj_del);
-       evas_object_del(it->title_obj);
-     }
-
-   it->title_obj = title_obj;
-   elm_widget_sub_object_add(obj, title_obj);
-   evas_object_event_callback_add(title_obj, EVAS_CALLBACK_DEL, _title_obj_del, it);
-
-   //TODO: Conserve this line for a while the object list get API is alive.
-   eina_list_free(it->title_obj_list);
-   it->title_obj_list = eina_list_append(NULL, title_obj);
-
-   if (elm_navigationbar_content_top_get(obj) != content)
-     return;
-
-   edje_object_part_swallow(wd->base, "elm.swallow.title", title_obj);
-
-   //TODO: Looks something incorrect.
-   if (wd->title_visible)
-     {
-       if (it->title)
-         {
-            edje_object_signal_emit(wd->base, "elm,state,show,extended", "elm");
-            //TODO: for before nbeat?
-            edje_object_signal_emit(wd->base, "elm,state,show,noanimate,title", "elm");
-            it->titleobj_visible = EINA_TRUE;
-         }
-     }
-   _item_sizing_eval(it);
-}
-
-/**
- * Unset the list of title objects corresponding to given content and returns it to
- * the application.
- * @param[in] obj The NavigationBar object
- * @param[in] content The content object pushed
- * @param[out] list updates the list with title objects list, this list has to be freed and the
- * objects have to be deleted by application.
- * @ingroup NavigationBar
- */
-//TODO: remove!
-EAPI void
-elm_navigationbar_title_object_list_unset(Evas_Object *obj, Evas_Object *content, Eina_List **list)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd;
-   Elm_Navigationbar_Item *it;
-   Evas_Object *swallow;
-
-   if ((!list) || (!content)) return;
-
-   wd = elm_widget_data_get(obj);
-   if (!wd) return;
-
-   it = evas_object_data_get(content, _navigationbar_key);
-   if (!it) return;
-
-   *list = eina_list_append(*list, it->title_obj);
-   it->title_obj = NULL;
-
-   if (elm_navigationbar_content_top_get(obj) != content)
-     return;
-
-   //In this case, the content is in the last of the stack
-   swallow = edje_object_part_swallow_get(wd->base, "elm.swallow.title");
-   if (!swallow) return;
-
-   if (wd->title_visible)
-    {
-      if(it->titleobj_visible)
-        {
-          //TODO: remove the dependency on these signals as related to nbeat?
-          edje_object_signal_emit(wd->base, "elm,state,hide,noanimate,title", "elm");
-          it->titleobj_visible = EINA_FALSE;
-        }
-       edje_object_signal_emit(wd->base, "elm,state,hide,extended", "elm");
-   }
-   _item_sizing_eval(it);
-}
-
-EAPI Evas_Object *
-elm_navigationbar_title_object_get(Evas_Object *obj, Evas_Object *content)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype) NULL;
-   Widget_Data *wd;
-   Elm_Navigationbar_Item *it;
-
-   if (!content) return NULL;
-
-   wd = elm_widget_data_get(obj);
-   if (!wd) return NULL;
-
-   it = evas_object_data_get(content, _navigationbar_key);
-   if (!it) return NULL;
-
-   return it->title_obj;
-}
-
-/**
- * Return the list of title objects of the pushed content.
- *
- * @param[in] obj The NavigationBar object
- * @param[in] content The object to push or pushed
- * @return The list of title objects
- *
- * @ingroup NavigationBar
- */
-//TODO: Remove!!
-EAPI Eina_List *
-elm_navigationbar_title_object_list_get(Evas_Object *obj, Evas_Object *content)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype) NULL;
-   Widget_Data *wd;
-   Elm_Navigationbar_Item *it;
-
-   if (!content) return NULL;
-
-   wd = elm_widget_data_get(obj);
-   if (!wd) return NULL;
-
-   it = evas_object_data_get(content, _navigationbar_key);
-   if (!it) return NULL;
-
-   return it->title_obj_list;
-}
-
-/**
- * Return the content object at the top of the NavigationBar stack
- *
- * @param[in] obj The NavigationBar object
- * @return The top content object or NULL if none
- *
- * @ingroup NavigationBar
- */
-EAPI Evas_Object *
-elm_navigationbar_content_top_get(Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype) NULL;
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return NULL;
-   return elm_pager_content_top_get(wd->pager);
-}
-
-/**
- * Return the content object at the bottom of the NavigationBar stack
- *
- * @param[in] obj The NavigationBar object
- * @return The bottom content object or NULL if none
- *
- * @ingroup NavigationBar
- */
-EAPI Evas_Object *
-elm_navigationbar_content_bottom_get(Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype)NULL;
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return NULL;
-   return elm_pager_content_bottom_get(wd->pager);
-}
-
-/**
- * This hides the title area of navigationbar.
- *
- * @param[in] obj The NavigationBar object
- * @param[in] hidden if EINA_TRUE the title area is hidden.
- *
- * @ingroup NavigationBar
- */
-//TODO: does not provide hidden get ?
-EAPI void
-elm_navigationbar_hidden_set(Evas_Object *obj,
-                        Eina_Bool hidden)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-
-   if (hidden)
-     edje_object_signal_emit(wd->base, "elm,state,item,moveup", "elm");
-   else
-     edje_object_signal_emit(wd->base, "elm,state,item,movedown", "elm");
-
-   wd->title_visible = !hidden;
-}
-
-/**
- * Set the button object of the pushed content.
- *
- * @param[in] obj The NavigationBar object
- * @param[in] content The object to push or pushed
- * @param[in] button The button
- * @param[in] button_type Indicates the position
- *
- * @ingroup NavigationBar
- */
-EAPI void
-elm_navigationbar_title_button_set(Evas_Object *obj, Evas_Object *content, Evas_Object *button, Elm_Navi_Button_Type button_type)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-
-   Widget_Data *wd;
-   Elm_Navigationbar_Item *it;
-
-   if (!content) return;
-
-   wd = elm_widget_data_get(obj);
-   if (!wd) return;
-
-   it = evas_object_data_get(content, _navigationbar_key);
-   if (!it) return;
-
-   switch(button_type)
-     {
-      case ELM_NAVIGATIONBAR_PREV_BUTTON:
-        _elm_navigationbar_prev_btn_set(obj, content, button, it);
-        break;
-      case ELM_NAVIGATIONBAR_NEXT_BUTTON:
-        _elm_navigationbar_next_btn_set(obj, content, button, it);
-        break;
-      default:
-        _elm_navigationbar_prev_btn_set(obj, content, button, it);
-        break;
-     }
-   _sizing_eval(obj);
-}
-
-/**
- * Return the button object of the pushed content
- *
- * @param[in] obj The NavigationBar object
- * @param[in] content The object to push or pushed
- * @param[in] button_type Indicates the position
- * @return The button object or NULL if none
- *
- * @ingroup NavigationBar
- */
-EAPI Evas_Object *
-elm_navigationbar_title_button_get(Evas_Object *obj, Evas_Object *content, Elm_Navi_Button_Type button_type)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype) NULL;
-   Widget_Data *wd;
-   Elm_Navigationbar_Item *it;
-
-   if (!content) return NULL;
-
-   wd = elm_widget_data_get(obj);
-   if (!wd) return NULL;
-
-   it = evas_object_data_get(content, _navigationbar_key);
-   if (!it) return NULL;
-
-   switch(button_type)
-     {
-        case ELM_NAVIGATIONBAR_PREV_BUTTON:
-           return it->title_btns[ELM_NAVIGATIONBAR_PREV_BUTTON];
-        case ELM_NAVIGATIONBAR_NEXT_BUTTON:
-           return it->title_btns[ELM_NAVIGATIONBAR_NEXT_BUTTON];
-        default:
-           return it->title_btns[ELM_NAVIGATIONBAR_PREV_BUTTON];
-     }
-   return NULL;
-}
-
-/**
- * Set the sub title string for the pushed content.
- *
- * @param[in] obj The NavigationBar object
- * @param[in] content The object to push or pushed
- * @param[in] subtitle The subtitle string
- *
- * @ingroup NavigationBar
- */
-EAPI void
-elm_navigationbar_subtitle_label_set(Evas_Object *obj, Evas_Object *content, const char *subtitle)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd;
-   Elm_Navigationbar_Item *it;
-
-   wd = elm_widget_data_get(obj);
-   if (!wd) return;
-
-   it = evas_object_data_get(content, _navigationbar_key);
-   if (!it) return;
-
-   eina_stringshare_replace(&it->subtitle, subtitle);
-   edje_object_part_text_set(wd->base, "elm.text.sub", subtitle);
-   _item_sizing_eval(it);
-}
-
-/**
- * Return the subtitle string of the pushed content.
- *
- * @param[in] obj The NavigationBar object
- * @param[in] content The object to push or pushed
- * @return The subtitle string or NULL if none
- *
- * @ingroup NavigationBar
- */
-EAPI const char *
-elm_navigationbar_subtitle_label_get(Evas_Object *obj, Evas_Object *content)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype) NULL;
-   Widget_Data *wd;
-   Elm_Navigationbar_Item *it;
-
-   wd = elm_widget_data_get(obj);
-   if (!wd) return NULL;
-
-   it = evas_object_data_get(content, _navigationbar_key);
-   if (!it) return NULL;
-   return it->subtitle;
-}
-
-/**
- * This disables content area animation on push/pop.
- *
- * @param[in] obj The NavigationBar object
- * @param[in] disable  if EINA_TRUE animation is disabled.
- *
- * @ingroup NavigationBar
- */
-//TODO: Let's check to remove this API.
-EAPI void
-elm_navigationbar_animation_disabled_set(Evas_Object *obj, Eina_Bool disable)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_pager_animation_disabled_set(wd->pager, disable);
-}
-
-/**
- * This shows/hides title object area.
- *
- * @param[in] obj The NavigationBar object
- * @param[in] show  if EINA_TRUE title object is shown else its hidden.
- * @param[in] content  The content object packed in navigationbar.
- * @ingroup NavigationBar
- */
-EAPI void
-elm_navigationbar_title_object_visible_set(Evas_Object *obj, Evas_Object *content, Eina_Bool visible)
-{
-    ELM_CHECK_WIDTYPE(obj, widtype);
-    Elm_Navigationbar_Item *it;
-    Widget_Data *wd;
-
-    if (!content) return;
-
-    wd = elm_widget_data_get(obj);
-    if (!wd) return;
-
-    it = evas_object_data_get(content, _navigationbar_key);
-    if (!it) return;
-    if (it->titleobj_visible == visible) return;
-    it->titleobj_visible = visible;
-    _titleobj_switching(obj, it);
-}
-
-/**
- * This gets the status whether title object is shown/hidden.
- *
- * @param[in] obj The NavigationBar object
- * @param[in] content  The content object packed in navigationbar.
- * @return The status whether title object is shown/hidden.
- * @ingroup NavigationBar
- */
-Eina_Bool
-elm_navigationbar_title_object_visible_get(Evas_Object *obj, Evas_Object *content)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
-   Elm_Navigationbar_Item *it;
-   Widget_Data *wd;
-
-   if (!content) return EINA_FALSE;
-
-   wd = elm_widget_data_get(obj);
-   if (!wd) return EINA_FALSE;
-
-   it = evas_object_data_get(content, _navigationbar_key);
-   if (!it) return EINA_FALSE;
-
-   return it->titleobj_visible;
-}
diff --git a/src/lib/elc_navigationbar_ex.c b/src/lib/elc_navigationbar_ex.c
deleted file mode 100644 (file)
index 69b2b60..0000000
+++ /dev/null
@@ -1,1211 +0,0 @@
-#include <Elementary.h>
-#include "elm_priv.h"
-
-/**
- * @defgroup Navigationbar_ex Navigationbar_ex
- * @ingroup Elementary
- *
- * The NavigationBar_ex is an object that allows flipping (with animation) between 1 or
- * more pages of objects, much like a stack of windows within the window as well display
- * the title area for the page consisting of buttons, title, titleobjects etc:-.
- *
- * Objects can be pushed or popped from the stack or deleted as normal.
- * Pushes and pops will animate and a pop will delete the object once the
- * animation is finished if delete_on_pop is set else the content is unset and the
- * content pointer is sent as event information in the hide,finished signal.
- * Any object in the Navigationbar_ex can be promoted to the top
- * (from its current stacking position) as well. Objects are pushed to the
- * top with elm_navigationbar_ex_item_push() and when the top item is no longer
- * wanted, simply pop it with elm_navigationbar_ex_item_pop() and it will also be
- * deleted/unset depending on delete_on_pop variable.
- * Any object you wish to promote to the top that is already in the
- * navigationbar, simply use elm_navigationbar_ex_item_promote(). If an object is no longer
- * needed and is not the top item, just delete it as normal. You can query
- * which objects are the top and bottom with elm_navigationbar_ex_item_bottom_get()
- * and elm_navigationbar_ex_item_top_get().
- */
-
-typedef struct _Widget_Data Widget_Data;
-typedef struct _function_button fn_button;
-
-struct _Widget_Data
-{
-   Eina_List *stack, *to_delete;
-   Elm_Navigationbar_ex_Item *top, *oldtop;
-   Evas_Object *rect, *clip;
-   Eina_Bool del_on_pop : 1;
-   Eina_Bool disable_animation: 1;
-};
-
-struct _Elm_Navigationbar_ex_Item
-{
-   Evas_Object *obj, *base, *content;
-   Evas_Object *ct_base;
-   Evas_Coord minw, minh;
-   const char *title;
-   const char *subtitle;
-   const char *item_style;
-   Eina_List *fnbtn_list;
-   Evas_Object *title_obj;
-   Evas_Object *icon;
-   Eina_Bool popme : 1;
-   Eina_Bool titleobj_visible:1;
-};
-
-struct _function_button
-{
-   Evas_Object *btn;
-   int btn_id;
-};
-
-static const char *widtype = NULL;
-static void _del_hook(Evas_Object *obj);
-static void _theme_hook(Evas_Object *obj);
-static void _sizing_eval(Evas_Object *obj);
-static void _changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info);
-static void _sub_del(void *data, Evas_Object *obj, void *event_info);
-
-static const char SIG_HIDE_FINISHED[] = "hide,finished";
-static const char SIG_TITLE_OBJ_VISIBLE_CHANGED[] = "titleobj,visible,changed";
-
-static const Evas_Smart_Cb_Description _signals[] = {
-       {SIG_HIDE_FINISHED, ""},
-       {SIG_TITLE_OBJ_VISIBLE_CHANGED, ""},
-       {NULL, NULL}
-};
-
-static void
-_del_hook(Evas_Object *obj)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   free(wd);
-}
-
-static Evas_Object*
-_content_unset(Elm_Navigationbar_ex_Item* item)
-{
-   if (!item) return NULL;
-   Evas_Object *content = NULL;
-   if (!item->content) return NULL;
-   content = item->content;
-   elm_widget_sub_object_del(item->obj,item->content);
-   edje_object_part_unswallow(item->ct_base,item->content);
-   item->content = NULL;
-   evas_object_hide(content);
-   return content;
-}
-
-static void
-_theme_hook(Evas_Object *obj)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   Eina_List *l;
-   char buf_fn[1024];
-   char buf[1024];
-   Elm_Navigationbar_ex_Item *it;
-   if (!wd) return;
-   EINA_LIST_FOREACH(wd->stack, l, it)
-     {
-        Eina_List *bl;
-        fn_button *btn_det;
-        edje_object_scale_set(it->base, elm_widget_scale_get(obj) *
-                              _elm_config->scale);
-        strncpy(buf, "item/", sizeof(buf));
-        strncat(buf, it->item_style, sizeof(buf) - strlen(buf));
-        _elm_theme_object_set(obj, it->base,  "navigationbar_ex", buf, elm_widget_style_get(obj));
-        _elm_theme_object_set(obj, it->ct_base,  "navigationbar_ex", "content", elm_widget_style_get(obj));
-        if (it->title)
-          edje_object_part_text_set(it->base, "elm.text", it->title);
-        if (it->subtitle)
-          edje_object_part_text_set(it->base, "elm.text.sub", it->subtitle);
-        if (it->title_obj)
-          {
-             edje_object_part_swallow(it->base, "elm.swallow.title", it->title_obj);
-             if (it->titleobj_visible)
-               edje_object_signal_emit(it->base, "elm,state,show,title", "elm");
-             else
-               edje_object_signal_emit(it->base, "elm,state,hide,title", "elm");
-          }
-        if (it->icon)
-          edje_object_part_swallow(it->base, "elm.swallow.icon", it->icon);
-        EINA_LIST_FOREACH(it->fnbtn_list, bl, btn_det)
-          {
-             if (btn_det->btn_id == ELM_NAVIGATIONBAR_EX_BACK_BUTTON)
-               {
-                  snprintf(buf_fn, sizeof(buf_fn), "navigationbar_backbutton/%s", elm_widget_style_get(obj));
-                  snprintf(buf, sizeof(buf), "elm.swallow.back");
-               }
-             else
-               {
-                  snprintf(buf_fn, sizeof(buf_fn), "navigationbar_functionbutton/%s", elm_widget_style_get(obj));
-                  snprintf(buf, sizeof(buf), "elm.swallow.btn%d", btn_det->btn_id);
-               }
-             elm_object_style_set(btn_det->btn, buf_fn);
-             edje_object_part_swallow(it->base, buf, btn_det->btn);
-          }
-     }
-   _sizing_eval(obj);
-}
-
-static void
-_sizing_eval(Evas_Object *obj)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   Evas_Coord minw = -1, minh = -1;
-   Eina_List *l;
-   Elm_Navigationbar_ex_Item *it;
-   if (!wd) return;
-   EINA_LIST_FOREACH(wd->stack, l, it)
-     {
-        if (it->minw > minw) minw = it->minw;
-        if (it->minh > minh) minh = it->minh;
-     }
-   evas_object_size_hint_min_set(obj, minw, minh);
-   evas_object_size_hint_max_set(obj, -1, -1);
-}
-
-static void
-_changed_size_hints(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
-{
-   Elm_Navigationbar_ex_Item *it = data;
-   Evas_Coord minw = -1, minh = -1;
-   evas_object_size_hint_min_get(it->content, &minw, &minh);
-   // FIXME: why is this needed? how does edje get this unswallowed or
-   // lose its callbacks to edje
-   edje_object_part_swallow(it->ct_base, "elm.swallow.content", it->content);
-   edje_object_size_min_calc(it->base, &it->minw, &it->minh);
-   _sizing_eval(it->obj);
-}
-
-static void
-_eval_top(Evas_Object *obj)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   Eina_Bool animate = EINA_TRUE;
-   Elm_Navigationbar_ex_Item *ittop = NULL;
-   if (!wd) return;
-   if (!wd->stack) return;
-   ittop = eina_list_last(wd->stack)->data;
-   if (ittop != wd->top)
-     {
-        Evas_Object *o1, *o2;
-        const char *onshow, *onhide;
-
-        if (wd->top)
-          {
-             o1 = wd->top->ct_base;
-             o2 = wd->top->base;/*make use of the signals sent for animation*/
-
-             /*issue to fix, hide signal does not come for t_base, increasing time helps
-              in getting correct events in pop*/
-             if (wd->disable_animation)
-               {
-                  edje_object_signal_emit(o2, "elm,action,hide,noanimate", "elm");
-                  edje_object_signal_emit(o1, "elm,action,hide,noanimate", "elm");
-               }
-             else if (wd->top->popme)
-               {
-                  edje_object_signal_emit(o2, "elm,action,pop", "elm");
-                  edje_object_signal_emit(o1, "elm,action,pop", "elm");
-               }
-             else
-               {
-                  edje_object_signal_emit(o2, "elm,action,hide", "elm");
-                  edje_object_signal_emit(o1, "elm,action,hide", "elm");
-               }
-             onhide = edje_object_data_get(o1, "onhide");
-             if (onhide)
-               {
-                  if (!strcmp(onhide, "raise")) {
-                     evas_object_raise(o2);
-                     evas_object_raise(o1);
-                  }
-                  else if (!strcmp(onhide, "lower")) {
-                       evas_object_lower(o2);
-                       evas_object_lower(o1);
-                  }
-               }
-          }
-        else
-          {
-             animate = EINA_FALSE;
-          }
-        wd->oldtop = wd->top;
-        wd->top = ittop;
-        o1 = wd->top->ct_base;
-        o2 = wd->top->base;
-        evas_object_show(o2);
-        evas_object_show(o1);
-
-        if ((!animate)||(wd->disable_animation))
-          {
-             edje_object_signal_emit(o2, "elm,action,show,noanimate", "elm");
-             edje_object_signal_emit(o1, "elm,action,show,noanimate", "elm");
-          }
-        else if (wd->oldtop)
-          {
-             if (elm_object_focus_get(wd->oldtop->content))
-               elm_widget_focused_object_clear(wd->oldtop->content);
-             if (wd->oldtop->popme)
-               {
-                  edje_object_signal_emit(o2, "elm,action,show", "elm");
-                  edje_object_signal_emit(o1, "elm,action,show", "elm");
-               }
-             else
-               {
-                  edje_object_signal_emit(o2, "elm,action,push", "elm");
-                  edje_object_signal_emit(o1, "elm,action,push", "elm");
-               }
-          }
-        else
-          {
-             edje_object_signal_emit(o2, "elm,action,push", "elm");
-             edje_object_signal_emit(o1, "elm,action,push", "elm");
-          }
-        onshow = edje_object_data_get(o1, "onshow");
-        if (onshow)
-          {
-             if (!strcmp(onshow, "raise")) {
-                evas_object_raise(o2);
-                evas_object_raise(o1);
-             }
-             else if (!strcmp(onshow, "lower")) {
-                evas_object_lower(o2);
-                evas_object_lower(o1);
-             }
-          }
-     }
-}
-
-static void
-_move(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
-{
-   Widget_Data *wd = elm_widget_data_get(data);
-   Evas_Coord x, y;
-   Eina_List *l;
-   Elm_Navigationbar_ex_Item *it;
-   if (!wd) return;
-   evas_object_geometry_get(obj, &x, &y, NULL, NULL);
-   EINA_LIST_FOREACH(wd->stack, l, it)
-     evas_object_move(it->base, x, y);
-}
-
-static void
-_sub_del(void *data, Evas_Object *obj __UNUSED__, void *event_info)
-{
-   Widget_Data *wd = elm_widget_data_get(data);
-   Evas_Object *sub = event_info;
-   Eina_List *l,*list;
-   fn_button *btn_data;
-   Elm_Navigationbar_ex_Item *it;
-   if (!wd) return;
-   EINA_LIST_FOREACH(wd->stack, l, it)
-     {
-        if (it->content == sub)
-          {
-             wd->stack = eina_list_remove_list(wd->stack, l);
-             evas_object_event_callback_del_full
-               (sub, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hints, it);
-             if (it->title) eina_stringshare_del(it->title);
-             if (it->subtitle) eina_stringshare_del(it->subtitle);
-             EINA_LIST_FOREACH(it->fnbtn_list, list, btn_data)
-               {
-                  evas_object_del(btn_data->btn);
-                  free(btn_data);
-                  btn_data = NULL;
-               }
-             if (it->item_style) eina_stringshare_del(it->item_style);
-             if (it->title_obj) evas_object_del(it->title_obj);
-             if (it->icon) evas_object_del(it->icon);
-             evas_object_del(it->ct_base);
-             evas_object_del(it->base);
-             _eval_top(it->obj);
-             free(it);
-             return;
-          }
-     }
-}
-
-static void
-_resize(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
-{
-   Widget_Data *wd = elm_widget_data_get(data);
-   Evas_Coord w, h;
-   Eina_List *l;
-   Elm_Navigationbar_ex_Item *it;
-   if (!wd) return;
-   evas_object_geometry_get(obj, NULL, NULL, &w, &h);
-   EINA_LIST_FOREACH(wd->stack, l, it) evas_object_resize(it->base, w, h);
-}
-
-static void
-_signal_hide_finished(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__)
-{
-   Elm_Navigationbar_ex_Item *it = data;
-   Evas_Object *obj2 = it->obj;
-   Widget_Data *wd = elm_widget_data_get(it->obj);
-   evas_object_hide(it->ct_base);
-   evas_object_hide(it->base);
-   edje_object_signal_emit(it->base, "elm,action,reset", "elm");
-   edje_object_signal_emit(it->ct_base, "elm,action,reset", "elm");
-   evas_object_smart_callback_call(obj2, SIG_HIDE_FINISHED, it->content);
-   edje_object_message_signal_process(it->base);
-   edje_object_message_signal_process(it->ct_base);
-   if (it->popme)
-     {
-        if (wd->del_on_pop)
-          {
-             evas_object_del(it->content);
-          }
-        else
-          {
-             _content_unset(it);
-          }
-     }
-   _sizing_eval(obj2);
-}
-
-static void
-_item_promote(Elm_Navigationbar_ex_Item* item)
-{
-   if (!item) return;
-   Widget_Data *wd = elm_widget_data_get(item->obj);
-   Eina_List *l;
-   Elm_Navigationbar_ex_Item *it;
-   if (!wd) return;
-   EINA_LIST_FOREACH(wd->stack, l, it)
-     {
-        if (it == item)
-          {
-             wd->stack = eina_list_remove_list(wd->stack, l);
-             wd->stack = eina_list_append(wd->stack, it);
-             _eval_top(it->obj);
-             return;
-          }
-     }
-}
-
-static void
-_process_deletions(Widget_Data *wd)
-{
-   if (!wd) return;
-   Elm_Navigationbar_ex_Item *it;
-   fn_button *btn_data;
-   Eina_List *list;
-   EINA_LIST_FREE(wd->to_delete, it)
-     {
-        evas_object_event_callback_del_full
-          (it->content, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hints, it);
-        if (it->title) eina_stringshare_del(it->title);
-        if (it->subtitle) eina_stringshare_del(it->subtitle);
-        if (it->item_style) eina_stringshare_del(it->item_style);
-        EINA_LIST_FOREACH(it->fnbtn_list, list, btn_data)
-          {
-             evas_object_del(btn_data->btn);
-             free(btn_data);
-             btn_data = NULL;
-          }
-        if (it->title_obj) evas_object_del(it->title_obj);
-        if (it->content)  evas_object_del(it->content);
-        if (it->icon) evas_object_del(it->icon);
-        evas_object_del(it->ct_base);
-        evas_object_del(it->base);
-        _eval_top(it->obj);
-        free(it);
-        it = NULL;
-     }
-}
-
-static void
-_switch_titleobj_visibility(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__)
-{
-   Elm_Navigationbar_ex_Item *item = (Elm_Navigationbar_ex_Item *)data;
-   if(!item) return;
-   if(!item->title_obj) return;
-   if(!item->titleobj_visible)
-     {
-        edje_object_signal_emit(item->base, "elm,state,show,title", "elm");
-        evas_object_smart_callback_call(item->obj, SIG_TITLE_OBJ_VISIBLE_CHANGED, (void *) EINA_TRUE);
-        item->titleobj_visible = EINA_TRUE;
-     }
-   else
-     {
-        edje_object_signal_emit(item->base, "elm,state,hide,title", "elm");
-        evas_object_smart_callback_call(item->obj, SIG_TITLE_OBJ_VISIBLE_CHANGED, (void *) EINA_FALSE);
-        item->titleobj_visible = EINA_FALSE;
-     }
-}
-
-static void
-_emit_hook(Evas_Object *obj, const char *emission, const char *source)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-
-   Widget_Data *wd;
-   Eina_List *last;
-   Elm_Navigationbar_ex_Item *it;
-
-   wd = elm_widget_data_get(obj);
-   if (!wd) return;
-
-   last = eina_list_last(wd->stack);
-   if (!last) return;
-
-   it = eina_list_data_get(last);
-   if ((!it) || (!it->title_obj)) return;
-
-   if (!strcmp(source, "elm"))
-     {
-        if (!strcmp(emission, "elm,state,hide,noanimate,title"))
-          it->titleobj_visible = EINA_FALSE;
-        else if (!strcmp(emission, "elm,state,show,noanimate,title"))
-          it->titleobj_visible = EINA_TRUE;
-     }
-   /*sending signal to top most item of the stack*/
-   edje_object_signal_emit(it->base, emission, source);
-}
-
-/**
- * Add a new navigationbar_ex to the parent
- *
- * @param[in] parent The parent object
- * @return The new object or NULL if it cannot be created
- *
- * @ingroup Navigationbar_ex
- */
-EAPI Evas_Object *
-elm_navigationbar_ex_add(Evas_Object *parent)
-{
-   Evas_Object *obj;
-   Evas *e;
-   Widget_Data *wd;
-
-   EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-
-   wd = ELM_NEW(Widget_Data);
-   e = evas_object_evas_get(parent);
-   obj = elm_widget_add(e);
-   ELM_SET_WIDTYPE(widtype, "navigationbar_ex");
-   elm_widget_type_set(obj, "navigationbar_ex");
-   elm_widget_sub_object_add(parent, obj);
-   elm_widget_data_set(obj, wd);
-   elm_widget_del_hook_set(obj, _del_hook);
-   elm_widget_theme_hook_set(obj, _theme_hook);
-   elm_widget_can_focus_set(obj, EINA_FALSE);
-   elm_widget_signal_emit_hook_set(obj, _emit_hook);
-   wd->clip = evas_object_rectangle_add(e);
-   elm_widget_resize_object_set(obj, wd->clip);
-   elm_widget_sub_object_add(obj, wd->clip);
-
-   wd->rect = evas_object_rectangle_add(e);
-   elm_widget_sub_object_add(obj, wd->rect);
-   evas_object_color_set(wd->rect, 255, 255, 255, 0);
-   evas_object_clip_set(wd->rect, wd->clip);
-
-   evas_object_event_callback_add(obj, EVAS_CALLBACK_MOVE, _move, obj);
-   evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, _resize, obj);
-
-   evas_object_smart_callback_add(obj, "sub-object-del", _sub_del, obj);
-   wd->del_on_pop = EINA_TRUE;
-   _sizing_eval(obj);
-   return obj;
-}
-
-/**
- * Push an object along with its style to the top of the Navigationbar_ex stack (and show it)
- *
- * The object pushed becomes a child of the Navigationbar_ex and will be controlled
- * it will be deleted when the Navigationbar_ex is deleted or when content is popped(depending on del_
- * on_pop variable).
- *
- * @param[in] obj The Navigationbar_ex object
- * @param[in] content The object to push
- * @param[in] item_style The style of the page
- * @return The Navigationbar_ex Item or NULL
- * @ingroup Navigationbar_ex
- */
-EAPI Elm_Navigationbar_ex_Item*
-elm_navigationbar_ex_item_push(Evas_Object *obj, Evas_Object *content, const char* item_style)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype)NULL;
-   Widget_Data *wd = elm_widget_data_get(obj);
-   Elm_Navigationbar_ex_Item *it;
-   Evas_Coord x, y, w, h;
-   char buf[1024];
-   if (!wd) return NULL;
-   if (!content) return NULL;
-   if (!item_style) return NULL;
-   it = ELM_NEW(Elm_Navigationbar_ex_Item);
-   if (!it) return NULL;
-   it->obj = obj;
-   it->content = content;
-   it->base = edje_object_add(evas_object_evas_get(obj));
-   it->ct_base = edje_object_add(evas_object_evas_get(obj));
-   it->titleobj_visible = EINA_TRUE;
-
-   evas_object_smart_member_add(it->base, obj);
-   evas_object_smart_member_add(it->ct_base, obj);
-
-   evas_object_geometry_get(obj, &x, &y, &w, &h);
-   evas_object_move(it->base, x, y);
-   evas_object_resize(it->base, w, h);
-   evas_object_clip_set(it->base, wd->clip);
-
-   elm_widget_sub_object_add(obj, it->base);
-   elm_widget_sub_object_add(obj, it->ct_base);
-
-   elm_widget_sub_object_add(obj, it->content);
-
-   _elm_theme_object_set(obj, it->ct_base,  "navigationbar_ex", "content", elm_widget_style_get(obj));
-
-   strncpy(buf, "item/", sizeof(buf));
-   strncat(buf, item_style, sizeof(buf) - strlen(buf));
-   eina_stringshare_replace(&it->item_style, item_style);
-   _elm_theme_object_set(obj, it->base,  "navigationbar_ex", buf, elm_widget_style_get(obj));
-
-
-   edje_object_part_swallow(it->base, "elm.swallow.content", it->ct_base);
-
-   edje_object_signal_callback_add(it->ct_base, "elm,action,hide,finished", "",
-                                   _signal_hide_finished, it);
-   evas_object_event_callback_add(it->content,
-                                  EVAS_CALLBACK_CHANGED_SIZE_HINTS,
-                                  _changed_size_hints, it);
-   edje_object_part_swallow(it->ct_base, "elm.swallow.content", it->content);
-   edje_object_size_min_calc(it->base, &it->minw, &it->minh);
-   evas_object_data_set(it->base, "_elm_leaveme", obj);
-   evas_object_show(it->content);
-   wd->stack = eina_list_append(wd->stack, it);
-   _eval_top(obj);
-   _sizing_eval(obj);
-   return it;
-}
-
-/**
- * Set the title string for the pushed Item.
- * @param[in] item The Navigationbar_ex Item
- * @param[in] title The title string
- *
- * @ingroup Navigationbar_ex
- */
-EAPI void
-elm_navigationbar_ex_item_title_label_set( Elm_Navigationbar_ex_Item* item, const char *title)
-{
-   if (!item) return;
-   if (!eina_stringshare_replace(&item->title, title)) return;
-   if (item->base)
-     {
-        edje_object_part_text_set(item->base, "elm.text", item->title);
-     }
-}
-
-/**
- * Return the title string of the pushed item.
- *
- * @param[in]  item The Navigationbar_ex Item
- * @return The title string or NULL if none
- *
- * @ingroup Navigationbar_ex
- */
-EAPI const char *
-elm_navigationbar_ex_item_title_label_get(Elm_Navigationbar_ex_Item* item)
-{
-   if(!item) return NULL;
-   return item->title;
-}
-
-/**
- * Set the sub title string for the pushed content
- *
- * @param[in] item The Navigationbar_ex Item
- * @param[in] subtitle The subtitle string
- *
- * @ingroup Navigationbar_ex
- */
-EAPI void
-elm_navigationbar_ex_item_subtitle_label_set( Elm_Navigationbar_ex_Item* item, const char *subtitle)
-{
-   if (!item) return;
-   if (!eina_stringshare_replace(&item->subtitle, subtitle)) return;
-   if (item->base)
-     edje_object_part_text_set(item->base, "elm.text.sub", item->subtitle);
-}
-
-/**
- * Return the subtitle string of the pushed content
- *
- * @param[in] item The Navigationbar_ex Item
- * @return The subtitle string or NULL if none
- *
- * @ingroup Navigationbar_ex
- */
-EAPI const char *
-elm_navigationbar_ex_item_subtitle_label_get(Elm_Navigationbar_ex_Item* item)
-{
-   if (!item) return NULL;
-   return item->subtitle;
-}
-
-/**
- * Set's the icon object of the pushed content
- *
- * @param[in] item The Navigationbar_ex Item
- * @param[in] The icon object or NULL if none
- *
- *@ingroup Navigationbar_ex
- */
-EAPI void
-elm_navigationbar_ex_item_icon_set(Elm_Navigationbar_ex_Item* item, Evas_Object *icon)
-{
-   if (!item) return;
-   if (item->icon == icon) return;
-   if (item->icon) evas_object_del(item->icon);
-   item->icon = icon;
-   if(icon)
-     {
-        edje_object_part_swallow(item->base, "elm.swallow.icon", icon);
-        elm_widget_sub_object_add(item->obj, icon);
-        edje_object_signal_emit(item->base, "elm,state,icon,visible", "elm");
-        edje_object_message_signal_process(item->base);
-     }
-   else
-     edje_object_signal_emit(item->base, "elm,state,icon,hidden", "elm");
-}
-
-/**
- * Return the icon object of the pushed content
- *
- * @param[in] item The Navigationbar_ex Item
- * @return The icon object or NULL if none
- *
- * @ingroup Navigationbar_ex
- */
-EAPI Evas_Object *
-elm_navigationbar_ex_item_icon_get(Elm_Navigationbar_ex_Item* item)
-{
-   if (!item) return NULL;
-   return item->icon;
-}
-
-
-/**
- * Set the button object of the pushed content
- *
- * @param[in] item The Navigationbar_ex Item
- * @param[in] btn_label The button label
- * @param[in] icon The button icon
- * @param[in] button_type Indicates the position[use macros of type Elm_Navi_ex_Button_Type
- * if more function buttons are required you can use values ELM_NAVIGATIONBAR_EX_MAX and more]
- * @param[in] func Callback function called when button is clicked.
- * @param[in] data Callback data that would be sent when button is clicked.
- * @ingroup Navigationbar_ex
- */
-EAPI void
-elm_navigationbar_ex_item_title_button_set(Elm_Navigationbar_ex_Item* item, char *btn_label, Evas_Object *icon, int button_type, Evas_Smart_Cb func, const void *data)
-{
-   if (!item) return;
-   Eina_List *bl;
-   Evas_Object *btn;
-   char buf[1024],theme[1024];
-   fn_button *btn_det = NULL;
-   EINA_LIST_FOREACH(item->fnbtn_list, bl, btn_det)
-     {
-        if (btn_det->btn_id == button_type)
-          {
-             evas_object_del(btn_det->btn);
-             free(btn_det);
-             btn_det = NULL;
-             item->fnbtn_list = eina_list_remove_list(item->fnbtn_list, bl);
-          }
-     }
-   btn = elm_button_add(item->obj);
-   btn_det = ELM_NEW(btn_det);
-   if (!btn_det) return;
-   if (button_type == ELM_NAVIGATIONBAR_EX_BACK_BUTTON)
-     {
-        snprintf(theme, sizeof(theme), "navigationbar_backbutton/%s", elm_widget_style_get(item->obj));
-        elm_object_style_set(btn, theme);
-        snprintf(buf, sizeof(buf), "elm.swallow.back");
-     }
-   else
-     {
-        snprintf(theme, sizeof(theme), "navigationbar_functionbutton/%s", elm_widget_style_get(item->obj));
-        elm_object_style_set(btn, theme);
-        snprintf(buf, sizeof(buf), "elm.swallow.btn%d", button_type);
-     }
-   if (btn_label)
-     elm_object_text_set(btn, btn_label);
-   if (icon)
-     elm_object_content_set(btn, icon);
-   elm_object_focus_allow_set(btn, EINA_FALSE);
-   evas_object_smart_callback_add(btn, "clicked", func, data);
-   edje_object_part_swallow(item->base, buf, btn);
-   elm_widget_sub_object_add(item->obj, btn);
-   btn_det->btn = btn;
-   btn_det->btn_id = button_type;
-   item->fnbtn_list = eina_list_append(item->fnbtn_list, btn_det);
-}
-
-/**
- * Return the button object of the pushed content
- *
- * @param[in] item The Navigationbar_ex Item
- * @param[in] button_type Indicates the position
- * @return The button object or NULL if none
- *
- * @ingroup Navigationbar_ex
- */
-EAPI Evas_Object *
-elm_navigationbar_ex_item_title_button_get(Elm_Navigationbar_ex_Item* item, int button_type)
-{
-   if (!item) return NULL;
-   fn_button *btn_det;
-   Eina_List *bl;
-   EINA_LIST_FOREACH(item->fnbtn_list, bl, btn_det)
-     {
-        if (btn_det->btn_id == button_type)
-          return btn_det->btn;
-     }
-   return NULL;
-}
-
-/**
- * Unset the button object of the pushed content
- *
- * @param[in] item The Navigationbar_ex Item
- * @param[in] button_type Indicates the position
- * @return The button object or NULL if none
- *
- * @ingroup Navigationbar_ex
- */
-EAPI Evas_Object *
-elm_navigationbar_ex_item_title_button_unset(Elm_Navigationbar_ex_Item* item, int button_type)
-{
-   if (!item) return NULL;
-   fn_button *btn_det;
-   Eina_List *bl;
-   Evas_Object *btn_ret;
-   EINA_LIST_FOREACH(item->fnbtn_list, bl, btn_det)
-     {
-        if (btn_det->btn_id == button_type)
-          {
-             btn_ret = btn_det->btn;
-             elm_widget_sub_object_del(item->obj,btn_det->btn);
-             edje_object_part_unswallow(item->base,btn_det->btn);
-             item->fnbtn_list = eina_list_remove_list(item->fnbtn_list, bl);
-             btn_det->btn = NULL;
-             return btn_ret;
-          }
-     }
-   return NULL;
-}
-
-/**
- * Sets a title object for the Item
- * @param[in] item The Navigationbar_ex Item
- * @param[in] title_obj Title object (normally segment_control/searchbar)
- *
- * @ingroup Navigationbar_ex
- */
-EAPI void
-elm_navigationbar_ex_item_title_object_set(Elm_Navigationbar_ex_Item* item, Evas_Object *title_obj)
-{
-   if (!item) return;
-   if (item->title_obj) evas_object_del(item->title_obj);
-   item->title_obj = title_obj;
-   if (title_obj)
-     {
-        elm_widget_sub_object_add(item->obj,title_obj);
-        edje_object_part_swallow(item->base, "elm.swallow.title", title_obj);
-        edje_object_signal_callback_add(item->base, "elm,action,clicked", "elm",
-                                        _switch_titleobj_visibility, item);
-     }
-   _sizing_eval(item->obj);
-}
-
-/**
- * Hides the title area of the item.
- * @param[in] item The Navigationbar_ex Item
- * @param[in] hidden if EINA_TRUE the title area is hidden else its shown.
- *
- * @ingroup Navigationbar_ex
- */
-
-EAPI void
-elm_navigationbar_ex_item_title_hidden_set(Elm_Navigationbar_ex_Item* item, Eina_Bool hidden)
-{
-   if (!item) return;
-   if (hidden) edje_object_signal_emit(item->base, "elm,state,item,moveup", "elm");
-   else edje_object_signal_emit(item->base, "elm,state,item,movedown", "elm");
-   _sizing_eval(item->obj);
-}
-
-/**
- * Unsets a title object for the item, the return object has to be deleted
- * by application if not added again in to navigationbar.
- *
- * @param[in] item The Navigationbar_ex Item
- * @return The title object or NULL if none is set
- *
- * @ingroup Navigationbar_ex
- */
-EAPI Evas_Object*
-elm_navigationbar_ex_item_title_object_unset(Elm_Navigationbar_ex_Item* item)
-{
-   if (!item) return NULL;
-   Evas_Object *title_obj=NULL;
-   if (!item->title_obj) return NULL;
-   title_obj = item->title_obj;
-   edje_object_signal_callback_del(item->base, "elm,action,clicked", "elm",
-                                   _switch_titleobj_visibility);
-   elm_widget_sub_object_del(item->obj,item->title_obj);
-   edje_object_part_unswallow(item->base,item->title_obj);
-   item->title_obj = NULL;
-   return title_obj;
-}
-
-/**
- * Returns the title object of the pushed content.
- *
- * @param[in] item The Navigationbar_ex Item
- * @return The title object or NULL if none is set
- *
- * @ingroup Navigationbar_ex
- */
-EAPI Evas_Object*
-elm_navigationbar_ex_item_title_object_get(Elm_Navigationbar_ex_Item* item)
-{
-   if (!item) return NULL;
-   return item->title_obj;
-}
-
-
-/**
- * Unsets the content of the item, the return object has to be deleted
- * by application if not added again in to navigationbar, when the content
- * is unset the corresponding item would be deleted, when this content is pushed again
- * a new item would be created again.
- *
- * @param[in] item The Navigationbar_ex Item
- * @return The content object or NULL if none is set
- *
- * @ingroup Navigationbar_ex
- */
-EAPI Evas_Object *
-elm_navigationbar_ex_item_content_unset(Elm_Navigationbar_ex_Item* item)
-{
- if (!item) return NULL;
-   Evas_Object *content = _content_unset(item);
-   return content;
-}
-
-/**
- * Returns the content of the item.
- *
- * @param[in] item The Navigationbar_ex Item
- * @return The content object or NULL if none is set
- *
- * @ingroup Navigationbar_ex
- */
-EAPI Evas_Object *
-elm_navigationbar_ex_item_content_get(Elm_Navigationbar_ex_Item* item)
-{
-   if (!item) return NULL;
-   return item->content;
-}
-
-/**
- * Set whether the content pushed has to be deleted on pop.
- * if false the item is not deleted but only removed from the stack
- * the pointer of the content is sent along with hide,finished signal.
- *
- * @param[in] obj The Navigationbar_ex object.
- * @param[in] del_on_pop if set the content is deleted on pop else unset, by default the value is EINA_TRUE.
- *
- * @ingroup Navigationbar_ex
- */
-EAPI void
-elm_navigationbar_ex_delete_on_pop_set(Evas_Object *obj, Eina_Bool del_on_pop)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   wd->del_on_pop = del_on_pop;
-}
-
-/**
- * Sets the style of the navigationbar item.
- * @param[in] item The Navigationbar_ex Item
- * @param[in] item_style Navigationbar Item style, this can be used when the style of the item has to be dynamically set.
- *
- * @ingroup Navigationbar_ex
- */
-EAPI void
-elm_navigationbar_ex_item_style_set(Elm_Navigationbar_ex_Item* item, const char* item_style)
-{
-   if (!item) return;
-   if(!item_style) return;
-   char buf[1024];
-   char buf_fn[1024];
-   Eina_List *bl;
-   fn_button *btn_det;
-   strncpy(buf, "item/", sizeof(buf));
-   strncat(buf, item_style, sizeof(buf) - strlen(buf));
-   if (!eina_stringshare_replace(&item->item_style, item_style)) return;
-   _elm_theme_object_set(item->obj, item->base,  "navigationbar_ex", buf, elm_widget_style_get(item->obj));
-   if (item->title)
-     edje_object_part_text_set(item->base, "elm.text", item->title);
-   if (item->subtitle)
-     edje_object_part_text_set(item->base, "elm.text.sub", item->subtitle);
-   if (item->fnbtn_list)
-     {
-        EINA_LIST_FOREACH(item->fnbtn_list, bl, btn_det)
-          {
-             if (btn_det->btn_id == ELM_NAVIGATIONBAR_EX_BACK_BUTTON)
-               {
-                  snprintf(buf_fn, sizeof(buf_fn), "navigationbar_backbutton/%s", elm_widget_style_get(item->obj));
-                  elm_object_style_set(btn_det->btn, buf_fn);
-               }
-             else
-               {
-                  snprintf(buf_fn, sizeof(buf_fn), "navigationbar_functionbutton/%s", elm_widget_style_get(item->obj));
-                  elm_object_style_set(btn_det->btn, buf_fn);
-               }
-          }
-     }
-}
-
-/**
- * Returns the style of the item.
- *
- * @param[in] item The Navigationbar_ex Item
- * @return The item style.
- *
- * @ingroup Navigationbar_ex
- */
-EAPI const char*
-elm_navigationbar_ex_item_style_get(Elm_Navigationbar_ex_Item* item)
-{
-   if (!item) return NULL;
-   return item->item_style;
-}
-
-
-/**
- * Promote an object already in the stack to the top of the stack
- *
- * This will take the indicated object and promote it to the top of the stack
- * as if it had been pushed there. The object must already be inside the
- * Navigationbar_ex stack to work.
- *
- * @param[in] item The Navigationbar_ex item to promote.
- * @ingroup Navigationbar_ex
- */
-EAPI void
-elm_navigationbar_ex_item_promote(Elm_Navigationbar_ex_Item* item)
-{
-   if (!item) return;
-   _item_promote(item);
-}
-
-/**
- * Pop to the inputted Navigationbar_ex item
- * the rest of the items are deleted.
- *
- * @param[in] item The Navigationbar_ex item
- *
- * @ingroup Navigationbar_ex
- */
-EAPI void
-elm_navigationbar_ex_to_item_pop(Elm_Navigationbar_ex_Item* item)
-{
-   if (!item) return;
-   Widget_Data *wd = elm_widget_data_get(item->obj);
-   Elm_Navigationbar_ex_Item *it = NULL;
-   Eina_List *list;
-   if (!wd) return;
-   if (!wd->stack) return;
-   it = eina_list_last(wd->stack)->data;
-   it->popme = EINA_TRUE;
-   list = eina_list_last(wd->stack);
-   if (list)
-     {
-        while (list)
-          {
-             it = list->data;
-             if (it != item)
-               {
-                  wd->to_delete = eina_list_append(wd->to_delete, it);
-                  wd->stack = eina_list_remove_list(wd->stack, list);
-               }
-             else
-               break;
-
-             list = list->prev;
-          }
-     }
-   _eval_top(it->obj);
-   if (wd->to_delete)
-     _process_deletions(wd);
-}
-
-/**
- * Pop the object that is on top of the Navigationbar_ex stack
- * This pops the object that is on top (visible) in the navigationbar, makes it disappear, then deletes/unsets the object
- * based on del_on_pop variable.
- * The object that was underneath it on the stack will become visible.
- *
- * @param[in] obj The Navigationbar_ex object
- *
- * @ingroup Navigationbar_ex
- */
-EAPI void
-elm_navigationbar_ex_item_pop(Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   Eina_List *ll;
-   Elm_Navigationbar_ex_Item *it;
-   if (!wd) return;
-   if (!wd->stack) return;
-   it = eina_list_last(wd->stack)->data;
-   it->popme = EINA_TRUE;
-   ll = eina_list_last(wd->stack);
-   if (ll)
-     {
-        ll = ll->prev;
-        if (!ll)
-          {
-
-             Evas_Object *o, *o2;
-             const char *onhide;
-
-             wd->top = it;
-             o = wd->top->ct_base;
-             o2 = wd->top->base;
-
-             edje_object_signal_emit(o2, "elm,action,pop", "elm");
-             edje_object_signal_emit(o, "elm,action,pop", "elm");
-             onhide = edje_object_data_get(o, "onhide");
-             if (onhide)
-               {
-                  if (!strcmp(onhide, "raise"))
-                    {
-                       evas_object_raise(o2);
-                       evas_object_raise(o);
-                    }
-                  else if (!strcmp(onhide, "lower"))
-                    {
-                       evas_object_lower(o2);
-                       evas_object_lower(o);
-                    }
-               }
-             wd->top = NULL;
-          }
-        else
-          {
-             it = ll->data;
-             _item_promote(it);
-          }
-     }
-}
-
-
-/**
- * Return the item at the bottom of the Navigationbar_ex stack
- *
- * @param[in] obj The Navigationbar_ex object
- * @return The bottom item or NULL if none
- *
- * @ingroup Navigationbar_ex
- */
-EAPI Elm_Navigationbar_ex_Item*
-elm_navigationbar_ex_item_bottom_get(const Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype) NULL;
-   Widget_Data *wd = elm_widget_data_get(obj);
-   Elm_Navigationbar_ex_Item *it;
-   if (!wd) return NULL;
-   if (!wd->stack) return NULL;
-   it = wd->stack->data;
-   return it;
-}
-
-/**
- * Return the item at the top of the Navigationbar_ex stack
- *
- * @param[in] obj The Navigationbar_ex object
- * @return The top object or NULL if none
- *
- * @ingroup Navigationbar_ex
- */
-EAPI Elm_Navigationbar_ex_Item*
-elm_navigationbar_ex_item_top_get(const Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype) NULL;
-   Widget_Data *wd = elm_widget_data_get(obj);
-   Elm_Navigationbar_ex_Item *it;
-   if (!wd) return NULL;
-   if (!wd->stack) return NULL;
-   it = eina_list_last(wd->stack)->data;
-   return it;
-}
-
-/**
- * This disables content animation on push/pop.
- *
- * @param obj The navigationbar_ex object
- * @param disable  if EINA_TRUE animation is disabled.
- *
- * @ingroup Navigationbar_ex
- */
-EAPI void
-elm_navigationbar_ex_animation_disable_set(Evas_Object *obj, Eina_Bool disable)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   wd->disable_animation = disable;
-}
-
-/**
- * This shows/hides title object area.
- *
- * @param[in] item The Navigationbar_ex item
- * @param[in] visible  if EINA_TRUE title object is shown else its hidden.
- * @ingroup Navigationbar_ex
- */
-EAPI void
-elm_navigationbar_ex_title_object_visible_set(Elm_Navigationbar_ex_Item* item, Eina_Bool visible)
-{
-   if(!item) return;
-   if(!item->title_obj) return;
-   if(visible)
-     {
-        edje_object_signal_emit(item->base, "elm,state,show,title", "elm");
-        evas_object_smart_callback_call(item->obj, SIG_TITLE_OBJ_VISIBLE_CHANGED, (void *) EINA_TRUE);
-     }
-   else
-     {
-        edje_object_signal_emit(item->base, "elm,state,hide,title", "elm");
-        evas_object_smart_callback_call(item->obj, SIG_TITLE_OBJ_VISIBLE_CHANGED, (void *) EINA_FALSE);
-     }
-   item->titleobj_visible = visible;
-}
-
-/**
- * This gets the status whether title object is shown/hidden.
- *
- * @param[in] item The Navigationbar_ex item
- * @return The status whether title object is shown/hidden.
- * @ingroup Navigationbar_ex
- */
-Eina_Bool
-elm_navigationbar_ex_title_object_visible_get(Elm_Navigationbar_ex_Item* item)
-{
-   if (!item) return EINA_FALSE;
-   return item->titleobj_visible;
-}
-
-
-
index 9d90e43..89f8925 100644 (file)
@@ -456,7 +456,7 @@ _double_to_time(double value)
 static void
 _content_set_hook(Evas_Object *obj, const char *part, Evas_Object *content)
 {
-   if (!part || strcmp(part, "video")) return;
+   if (part && strcmp(part, "video")) return;
 #ifdef HAVE_EMOTION
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
index dd463e9..99d4157 100644 (file)
@@ -122,7 +122,7 @@ _content_set_hook(Evas_Object *obj, const char *part, Evas_Object *content)
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd;
 
-   if (!part || strcmp(part, "overlay")) return;
+   if (part && strcmp(part, "overlay")) return;
 
    wd = elm_widget_data_get(obj);
    if (!wd) return;
@@ -146,7 +146,7 @@ _content_get_hook(const Evas_Object *obj, const char *part)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd;
-   if (!part || strcmp(part, "overlay")) return NULL;
+   if (part && strcmp(part, "overlay")) return NULL;
    wd = elm_widget_data_get(obj);
    if (!wd) return NULL;
    return wd->overlay;
@@ -158,7 +158,7 @@ _content_unset_hook(Evas_Object *obj, const char *part)
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd;
    Evas_Object *overlay;
-   if (!part || strcmp(part, "overlay")) return NULL;
+   if (part && strcmp(part, "overlay")) return NULL;
    wd = elm_widget_data_get(obj);
    if (!wd || !wd->overlay) return NULL;
    overlay = wd->overlay;
index b846eb8..395159f 100644 (file)
@@ -518,6 +518,8 @@ elm_button_add(Evas_Object *parent)
                         ELM_ACCESS_TYPE, E_("Button"));
    _elm_access_callback_set(_elm_access_object_get(obj),
                             ELM_ACCESS_INFO, _access_info_cb, obj);
+   _elm_access_callback_set(_elm_access_object_get(obj),
+                            ELM_ACCESS_STATE, _access_state_cb, obj);
    return obj;
 }
 
index 53765ea..77bef04 100644 (file)
@@ -238,7 +238,7 @@ _content_set_hook(Evas_Object *obj, const char *part, Evas_Object *content)
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd;
 
-   if (strcmp(part, "icon")) return;
+   if (part && strcmp(part, "icon")) return;
    wd = elm_widget_data_get(obj);
    if (!wd) return;
    if (wd->icon == content) return;
@@ -263,7 +263,7 @@ _content_get_hook(const Evas_Object *obj, const char *part)
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd;
 
-   if (strcmp(part, "icon")) return NULL;
+   if (part && strcmp(part, "icon")) return NULL;
    wd = elm_widget_data_get(obj);
    if (!wd) return NULL;
    return wd->icon;
@@ -275,7 +275,7 @@ _content_unset_hook(Evas_Object *obj, const char *part)
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd;
 
-   if (strcmp(part, "icon")) return NULL;
+   if (part && strcmp(part, "icon")) return NULL;
    wd = elm_widget_data_get(obj);
    if (!wd) return NULL;
    if (!wd->icon) return NULL;
index 59554ca..62c8198 100644 (file)
@@ -1181,6 +1181,16 @@ _convert_to_edje(Eina_List* nodes)
 }
 
 Eina_Bool
+elm_selection_selection_has_owner(void)
+{
+#ifdef HAVE_ELEMENTARY_X
+   return !!ecore_x_selection_owner_get(clipboard_atom);
+#else
+   return EINA_FALSE;
+#endif
+}
+
+Eina_Bool
 elm_selection_set(Elm_Sel_Type selection, Evas_Object *widget, Elm_Sel_Format format, const char *selbuf)
 {
 #ifdef HAVE_ELEMENTARY_X
@@ -1532,7 +1542,7 @@ entry_insert_filter(Evas_Object* entry, char* str)
 
    char *insertStr = str;
    // if entry has text only set then remove item tags
-   if (elm_entry_cnp_textonly_get(entry))
+   if (elm_entry_cnp_mode_get(entry) != ELM_CNP_MODE_MARKUP)
      {
         while (EINA_TRUE)
           {
@@ -1600,7 +1610,8 @@ notify_handler_text(Cnp_Selection *sel, Ecore_X_Event_Selection_Notify *notify)
      {
         Elm_Selection_Data ddata;
 
-        str = strdup(data->data);
+        str = malloc(data->length);
+        memcpy(str, data->data, data->length);
         ddata.x = ddata.y = 0;
         ddata.format = ELM_SEL_FORMAT_TEXT;
         ddata.data = str;
@@ -2152,7 +2163,7 @@ pasteimage_append(Paste_Image *pi, Evas_Object *entry)
 
    if (!pi) return EINA_FALSE;
    if (!entry) return EINA_FALSE;
-   if (elm_entry_cnp_textonly_get(entry)) return EINA_FALSE;
+   if (elm_entry_cnp_mode_get(entry) != ELM_CNP_MODE_MARKUP) return EINA_FALSE;
 
    pasteimage_provider_set(entry);
 
index b1f417d..3294c5b 100644 (file)
@@ -2,19 +2,6 @@
 #include "elm_priv.h"
 #include <Ecore.h>
 
-/**
- * @defgroup Colorpalette Colorpalette
- * @ingroup Elementary
- *
- * Using colorpalette, you can select a color by clicking
- * a color rectangle on the colorpalette.
- *
- * Smart callbacks that you can add are:
- *
- * clicked - This signal is sent when a color rectangle is clicked.
- *
- */
-
 #define MAX_NUM_COLORS 30
 
 typedef struct _Colorpalette_Item Colorpalette_Item;
@@ -233,14 +220,6 @@ _color_parse(const char *str, unsigned char *r, unsigned char *g, unsigned char
    *b = (*b * 0xff) / 255;
 }
 
-/**
- * Add a new colorpalette to the parent.
- *
- * @param parent The parent object
- * @return The new object or NULL if it cannot be created
- *
- * @ingroup Colorpalette
- */
 EAPI Evas_Object *elm_colorpalette_add(Evas_Object *parent)
 {
    Evas_Object *obj = NULL;
@@ -296,15 +275,6 @@ EAPI Evas_Object *elm_colorpalette_add(Evas_Object *parent)
 }
 
 
-/**
- * Set colors to the colorpalette.
- *
- * @param obj   Colorpalette object
- * @param color_num     number of the colors on the colorpalette
- * @param color     Color lists
- *
- * @ingroup Colorpalette
- */
 EAPI void elm_colorpalette_color_set(Evas_Object *obj, int color_num, Elm_Colorpalette_Color *color)
 {
    ELM_CHECK_WIDTYPE(obj, widtype);
@@ -330,15 +300,6 @@ EAPI void elm_colorpalette_color_set(Evas_Object *obj, int color_num, Elm_Colorp
    _sizing_eval(obj);
 }
 
-/**
- * Set row/column value for the colorpalette.
- *
- * @param obj   Colorpalette object
- * @param row   row value for the colorpalette
- * @param col   column value for the colorpalette
- *
- * @ingroup Colorpalette
- */
 EAPI void elm_colorpalette_row_column_set(Evas_Object *obj, int row, int col)
 {
    ELM_CHECK_WIDTYPE(obj, widtype);
index ca7ec0a..ebbfb64 100644 (file)
@@ -406,7 +406,11 @@ _draw_rects(void *data, double x)
          break;
       case ALPHA:
          wd->a = 255.0 * x;
-         evas_object_color_set(wd->cp[3]->arrow, wd->er, wd->eg, wd->eb, wd->a);
+         evas_object_color_set(wd->cp[3]->arrow,
+                               (wd->er * wd->a) / 255,
+                               (wd->eg * wd->a) / 255,
+                               (wd->eb * wd->a) / 255,
+                               wd->a);
          break;
       default:
          break;
index 9148924..50b0351 100644 (file)
@@ -1,11 +1,3 @@
-/**
- * @defgroup Controlbar Controlbar
- * @ingroup Elementary
- *
- * This is a Controlbar. It can contain label and icon objects.
- * In edit mode, you can change the location of items.
- */
-
 #include <string.h>
 #include <math.h>
 
@@ -99,7 +91,7 @@ struct _Elm_Controlbar_Item
 };
 
 static const char *widtype = NULL;
-// prototype
+
 static void _sizing_eval(Evas_Object * obj);
 static int _check_bar_item_number(Widget_Data *wd);
 static void _select_box(Elm_Controlbar_Item * it);
@@ -107,12 +99,6 @@ static void _cancel_selected_box(Widget_Data *wd);
 static void _check_toolbar_line(Widget_Data *wd);
 static Eina_Bool _press_box(Elm_Controlbar_Item * it);
 
-///////////////////////////////////////////////////////////////////
-//
-//  Smart Object basic function
-//
-////////////////////////////////////////////////////////////////////
-
 static void
 _controlbar_move(void *data, Evas_Object * obj __UNUSED__)
 {
@@ -125,7 +111,7 @@ _controlbar_move(void *data, Evas_Object * obj __UNUSED__)
    wd->x = x;
    wd->y = y;
    evas_object_move(wd->edje, x, y);
-   evas_object_geometry_get(elm_object_content_part_get(wd->edje, "bg_image"), NULL, NULL, &width, NULL);
+   evas_object_geometry_get(elm_object_part_content_get(wd->edje, "bg_image"), NULL, NULL, &width, NULL);
    evas_object_geometry_get(wd->edje, &x_, &y_, NULL, NULL);
 }
 
@@ -141,7 +127,7 @@ _controlbar_resize(void *data, Evas_Object * obj __UNUSED__)
    wd->w = w;
    wd->h = h;
    evas_object_resize(wd->edje, w, h);
-   evas_object_geometry_get(elm_object_content_part_get(wd->edje, "bg_image"), NULL, NULL, &width, &height);
+   evas_object_geometry_get(elm_object_part_content_get(wd->edje, "bg_image"), NULL, NULL, &width, &height);
    evas_object_geometry_get(wd->edje, &x_, &y_, NULL, NULL);
 }
 
@@ -262,9 +248,9 @@ _theme_hook(Evas_Object * obj)
    Widget_Data * wd = elm_widget_data_get(obj);
    if (!wd) return;
    elm_layout_theme_set(wd->edje, "controlbar", "base",
-                         elm_widget_style_get(obj));
+                        elm_widget_style_get(obj));
    elm_layout_theme_set(wd->bg, "controlbar", "background",
-                         elm_widget_style_get(obj));
+                        elm_widget_style_get(obj));
    evas_object_color_get(wd->bg, &r, &g, &b, NULL);
    evas_object_color_set(wd->bg, r, g, b, (int)(255 * wd->alpha / 100));
    EINA_LIST_FOREACH(wd->items, l, item)
@@ -313,12 +299,6 @@ _sizing_eval(Evas_Object * obj)
    _controlbar_resize(obj, obj);
 }
 
-/////////////////////////////////////////////////////////////
-//
-// animation function
-//
-/////////////////////////////////////////////////////////////
-
 static Eina_Bool
 _move_evas_object(void *data)
 {
@@ -413,12 +393,6 @@ _move_object_with_animation(Evas_Object * obj, Evas_Coord x, Evas_Coord y,
    return ad;
 }
 
-/////////////////////////////////////////////////////////////
-//
-// callback function
-//
-/////////////////////////////////////////////////////////////
-
 static int
 _sort_cb(const void *d1, const void *d2)
 {
@@ -430,12 +404,6 @@ _sort_cb(const void *d1, const void *d2)
    return item1->order > item2->order ? 1 : -1;
 }
 
-///////////////////////////////////////////////////////////////////
-//
-//  basic utility function
-//
-////////////////////////////////////////////////////////////////////
-
 static Eina_Bool
 _check_item(Widget_Data *wd, Elm_Controlbar_Item *item)
 {
@@ -446,7 +414,7 @@ _check_item(Widget_Data *wd, Elm_Controlbar_Item *item)
    if (!wd->items) return EINA_FALSE;
 
    EINA_LIST_FOREACH(wd->items, l, it)
-      if (it == item) return EINA_TRUE;
+     if (it == item) return EINA_TRUE;
 
    return EINA_FALSE;
 }
@@ -706,7 +674,7 @@ _move_selected_box(Widget_Data *wd, Elm_Controlbar_Item * fit, Elm_Controlbar_It
         wd->ad = NULL;
      }
    wd->ad = _move_object_with_animation(wd->edje, fx, fy, fw, fh, tx, ty, tw, th,
-                                       0.3, _move_evas_object, _end_selected_box, wd);
+                                        0.3, _move_evas_object, _end_selected_box, wd);
 }
 
 static void
@@ -725,7 +693,7 @@ _select_box(Elm_Controlbar_Item * it)
 
    if (it->style == TABBAR)
      {
-        content = elm_object_content_part_unset(wd->edje, "elm.swallow.view");
+        content = elm_object_part_content_unset(wd->edje, "elm.swallow.view");
         if (content) evas_object_hide(content);
 
         EINA_LIST_FOREACH(wd->items, l, item){
@@ -752,7 +720,7 @@ _select_box(Elm_Controlbar_Item * it)
                evas_object_smart_callback_call(it->obj, "view,change,before", it);
           }
 
-        elm_object_content_part_set(wd->edje, "elm.swallow.view", it->view);
+        elm_object_part_content_set(wd->edje, "elm.swallow.view", it->view);
      }
    else if (it->style == TOOLBAR)
      {
@@ -882,7 +850,7 @@ _create_item_layout(Evas_Object * parent, Elm_Controlbar_Item * it, Evas_Object
    *item = elm_button_add(parent);
    if (*item == NULL) return NULL;
    elm_object_style_set(*item, "controlbar/vertical");
-   elm_object_content_part_set(obj, "item", *item);
+   elm_object_part_content_set(obj, "item", *item);
 
    if (it->text)
      elm_object_text_set(*item, it->text);
@@ -987,9 +955,9 @@ _create_tool_item(Evas_Object * obj, const char *icon_path, const char *label,
 }
 
 static Elm_Controlbar_Item *
-_create_object_item(Evas_Object * obj, Evas_Object * obj_item, const int sel)
+_create_object_item(Evas_Object *obj, Evas_Object *obj_item, const int sel)
 {
-   Elm_Controlbar_Item * it;
+   Elm_Controlbar_Item *it;
    Widget_Data * wd;
    if (obj == NULL)
      {
@@ -1015,7 +983,7 @@ _create_object_item(Evas_Object * obj, Evas_Object * obj_item, const int sel)
    evas_object_size_hint_weight_set(it->base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    evas_object_size_hint_align_set(it->base, EVAS_HINT_FILL, EVAS_HINT_FILL);
    it->base_item = obj_item;
-   elm_object_content_part_set(it->base, "item", it->base_item);
+   elm_object_part_content_set(it->base, "item", it->base_item);
    evas_object_show(it->base);
    return it;
 }
@@ -1040,8 +1008,8 @@ _repack_items(Widget_Data *wd)
 }
 
 static void
-_set_items_position(Evas_Object * obj, Elm_Controlbar_Item * it,
-                   Elm_Controlbar_Item * mit, Eina_Bool bar)
+_set_items_position(Evas_Object *obj, Elm_Controlbar_Item *it,
+                    Elm_Controlbar_Item *mit, Eina_Bool bar)
 {
    Widget_Data * wd;
    const Eina_List *l;
@@ -1127,11 +1095,11 @@ _list_clicked(void *data, Evas_Object *obj, void *event_info __UNUSED__)
 
    if (item->style == TABBAR)
      {
-        content = elm_object_content_part_unset(wd->edje, "elm.swallow.view");
+        content = elm_object_part_content_unset(wd->edje, "elm.swallow.view");
         evas_object_hide(content);
         item->selected = EINA_TRUE;
         evas_object_smart_callback_call(item->obj, "view,change,before", item);
-        elm_object_content_part_set(wd->edje, "elm.swallow.view", item->view);
+        elm_object_part_content_set(wd->edje, "elm.swallow.view", item->view);
      }
 
    if ((item->style == TOOLBAR) && (item->func))
@@ -1168,7 +1136,8 @@ _create_more_view(Widget_Data *wd)
    return list;
 }
 
-static void _ctxpopup_cb(void *data, Evas_Object *obj, void *event_info)
+static void
+_ctxpopup_cb(void *data, Evas_Object *obj, void *event_info)
 {
    Elm_Controlbar_Item *it;
    const Eina_List *l;
@@ -1191,7 +1160,8 @@ static void _ctxpopup_cb(void *data, Evas_Object *obj, void *event_info)
    ctxpopup = NULL;
 }
 
-static void _ctxpopup_dismissed_cb(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
+static void
+_ctxpopup_dismissed_cb(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
 {
    Evas_Object *ctxpopup = obj;
 
@@ -1263,21 +1233,8 @@ _create_more_item(Widget_Data *wd, int style)
    return it;
 }
 
-///////////////////////////////////////////////////////////////////
-//
-//  API function
-//
-////////////////////////////////////////////////////////////////////
-
-/**
- * Add a new controlbar object
- *
- * @param parent The parent object
- * @return The new object or NULL if it cannot be created
- *
- * @ingroup Controlbar
- */
-EAPI Evas_Object * elm_controlbar_add(Evas_Object * parent)
+EAPI Evas_Object *
+elm_controlbar_add(Evas_Object *parent)
 {
    if (parent == NULL) return NULL;
    Evas_Object * obj = NULL;
@@ -1330,7 +1287,7 @@ EAPI Evas_Object * elm_controlbar_add(Evas_Object * parent)
         printf("Cannot load bg edj\n");
         return NULL;
      }
-   elm_object_content_part_set(wd->edje, "bg_image", wd->bg);
+   elm_object_part_content_set(wd->edje, "bg_image", wd->bg);
 
    // initialization
    evas_object_event_callback_add(wd->edje, EVAS_CALLBACK_RESIZE,
@@ -1342,7 +1299,7 @@ EAPI Evas_Object * elm_controlbar_add(Evas_Object * parent)
    evas_object_event_callback_add(wd->edje, EVAS_CALLBACK_HIDE,
                                   _controlbar_object_hide, obj);
 
-   bg = elm_object_content_part_get(wd->edje, "bg_image");
+   bg = elm_object_part_content_get(wd->edje, "bg_image");
    evas_object_event_callback_add(bg, EVAS_CALLBACK_MOVE, _controlbar_object_move, obj);
    evas_object_event_callback_add(bg, EVAS_CALLBACK_RESIZE, _controlbar_object_resize, obj);
 
@@ -1352,7 +1309,7 @@ EAPI Evas_Object * elm_controlbar_add(Evas_Object * parent)
    evas_object_size_hint_weight_set(wd->box, EVAS_HINT_EXPAND,
                                     EVAS_HINT_EXPAND);
    evas_object_size_hint_align_set(wd->box, EVAS_HINT_FILL, EVAS_HINT_FILL);
-   elm_object_content_part_set(wd->edje, "elm.swallow.items", wd->box);
+   elm_object_part_content_set(wd->edje, "elm.swallow.items", wd->box);
    evas_object_show(wd->box);
 
    evas_object_smart_callback_add(obj, "sub-object-del", _sub_del, obj);
@@ -1364,23 +1321,9 @@ EAPI Evas_Object * elm_controlbar_add(Evas_Object * parent)
    return obj;
 }
 
-/**
- * Append new tab item
- *
- * @param      obj The controlbar object
- * @param      icon_path The icon path of item
- * @param      label The label of item
- * @param      view The view of item
- * @return     The item of controlbar
- *
- * @ingroup Controlbar
- */
-EAPI Elm_Controlbar_Item * elm_controlbar_tab_item_append(Evas_Object * obj,
-                                                          const char
-                                                          *icon_path,
-                                                          const char *label,
-                                                          Evas_Object *
-                                                          view)
+EAPI Elm_Controlbar_Item *
+elm_controlbar_tab_item_append(Evas_Object *obj, const char *icon_path,
+                               const char *label, Evas_Object *view)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Elm_Controlbar_Item * it;
@@ -1397,10 +1340,11 @@ EAPI Elm_Controlbar_Item * elm_controlbar_tab_item_append(Evas_Object * obj,
              _create_more_item(wd, TABBAR);
         }
         _set_items_position(obj, it, NULL, EINA_FALSE);
-   }
-   else{
+     }
+   else
+     {
         _set_items_position(obj, it, NULL, EINA_TRUE);
-   }
+     }
    wd->items = eina_list_append(wd->items, it);
    if (wd->more_item)
      elm_controlbar_item_view_set(wd->more_item, _create_more_view(wd));
@@ -1410,25 +1354,9 @@ EAPI Elm_Controlbar_Item * elm_controlbar_tab_item_append(Evas_Object * obj,
    return it;
 }
 
-/**
- * Prepend new tab item
- *
- * @param      obj The controlbar object
- * @param      icon_path The icon path of item
- * @param      label The label of item
- * @param      view The view of item
- * @return     The item of controlbar
- *
- * @ingroup Controlbar
- */
-EAPI Elm_Controlbar_Item * elm_controlbar_tab_item_prepend(Evas_Object *
-                                                           obj,
-                                                           const char
-                                                           *icon_path,
-                                                           const char
-                                                           *label,
-                                                           Evas_Object *
-                                                           view)
+EAPI Elm_Controlbar_Item *
+elm_controlbar_tab_item_prepend(Evas_Object *obj, const char *icon_path,
+                                const char *label, Evas_Object *view)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data * wd;
@@ -1441,18 +1369,20 @@ EAPI Elm_Controlbar_Item * elm_controlbar_tab_item_prepend(Evas_Object *
    item = eina_list_data_get(wd->items);
    if ((_check_bar_item_number(wd) >= 5) && (wd->auto_align))
      {
-        if (!wd->more_item) {
+        if (!wd->more_item)
+          {
              lit = elm_controlbar_last_item_get(obj);
              _set_item_visible(lit, EINA_FALSE);
              _create_more_item(wd, TABBAR);
-        }
+          }
         lit = elm_controlbar_item_prev(wd->more_item);
         _set_item_visible(lit, EINA_FALSE);
         _set_items_position(obj, it, item, EINA_TRUE);
-   }
-   else{
+     }
+   else
+     {
         _set_items_position(obj, it, item, EINA_TRUE);
-   }
+     }
    wd->items = eina_list_prepend(wd->items, it);
    if (wd->more_item)
      elm_controlbar_item_view_set(wd->more_item, _create_more_view(wd));
@@ -1462,23 +1392,11 @@ EAPI Elm_Controlbar_Item * elm_controlbar_tab_item_prepend(Evas_Object *
    return it;
 }
 
-/**
- * Insert new tab item before given item
- *
- * @param      obj The controlbar object
- * @param      before The given item
- * @param      icon_path The icon path of item
- * @param      label The label of item
- * @param      view The view of item
- * @return     The item of controlbar
- *
- * @ingroup Controlbar
- */
 EAPI Elm_Controlbar_Item *
-elm_controlbar_tab_item_insert_before(Evas_Object * obj,
-                                      Elm_Controlbar_Item * before,
+elm_controlbar_tab_item_insert_before(Evas_Object *obj,
+                                      Elm_Controlbar_Item *before,
                                       const char *icon_path,
-                                      const char *label, Evas_Object * view)
+                                      const char *label, Evas_Object *view)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data * wd;
@@ -1507,10 +1425,11 @@ elm_controlbar_tab_item_insert_before(Evas_Object * obj,
           {
              _set_items_position(obj, it, before, EINA_FALSE);
           }
-   }
-   else{
+     }
+   else
+     {
         _set_items_position(obj, it, before, EINA_TRUE);
-   }
+     }
    wd->items = eina_list_prepend_relative(wd->items, it, before);
    if (wd->more_item)
      elm_controlbar_item_view_set(wd->more_item, _create_more_view(wd));
@@ -1520,21 +1439,9 @@ elm_controlbar_tab_item_insert_before(Evas_Object * obj,
    return it;
 }
 
-/**
- * Insert new tab item after given item
- *
- * @param      obj The controlbar object
- * @param      after The given item
- * @param      icon_path The icon path of item
- * @param      label The label of item
- * @param      view The view of item
- * @return     The item of controlbar
- *
- * @ingroup Controlbar
- */
 EAPI Elm_Controlbar_Item *
-elm_controlbar_tab_item_insert_after(Evas_Object * obj,
-                                     Elm_Controlbar_Item * after,
+elm_controlbar_tab_item_insert_after(Evas_Object *obj,
+                                     Elm_Controlbar_Item *after,
                                      const char *icon_path, const char *label,
                                      Evas_Object * view)
 {
@@ -1566,10 +1473,11 @@ elm_controlbar_tab_item_insert_after(Evas_Object * obj,
           {
              _set_items_position(obj, it, NULL, EINA_FALSE);
           }
-   }
-   else{
+     }
+   else
+     {
         _set_items_position(obj, it, item, EINA_TRUE);
-   }
+     }
    wd->items = eina_list_append_relative(wd->items, it, after);
    if (wd->more_item)
      elm_controlbar_item_view_set(wd->more_item, _create_more_view(wd));
@@ -1579,31 +1487,11 @@ elm_controlbar_tab_item_insert_after(Evas_Object * obj,
    return it;
 }
 
-/**
- * Append new tool item
- *
- * @param      obj The controlbar object
- * @param      icon_path The icon path of item
- * @param      label The label of item
- * @param      func Callback function of item
- * @param      data The data of callback function
- * @return     The item of controlbar
- *
- * @ingroup Controlbar
- */
-EAPI Elm_Controlbar_Item * elm_controlbar_tool_item_append(Evas_Object *
-                                                           obj,
-                                                           const char
-                                                           *icon_path,
-                                                           const char
-                                                           *label,
-                                                           void (*func)
-                                                           (void *data,
-                                                            Evas_Object *
-                                                            obj,
-                                                            void
-                                                            *event_info),
-                                                           void *data)
+EAPI Elm_Controlbar_Item *
+elm_controlbar_tool_item_append(Evas_Object *obj, const char *icon_path,
+                                const char *label,
+                                void (*func)(void *data, Evas_Object * obj, void *event_info),
+                                void *data)
 
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
@@ -1615,49 +1503,29 @@ EAPI Elm_Controlbar_Item * elm_controlbar_tool_item_append(Evas_Object *
    wd = elm_widget_data_get(obj);
    if ((_check_bar_item_number(wd) >= 5) && (wd->auto_align))
      {
-        if (!wd->more_item) {
+        if (!wd->more_item)
+          {
              lit = elm_controlbar_last_item_get(obj);
              _set_item_visible(lit, EINA_FALSE);
              _create_more_item(wd, TOOLBAR);
-        }
+          }
         _set_items_position(obj, it, NULL, EINA_FALSE);
-   }
-   else{
+     }
+   else
+     {
         _set_items_position(obj, it, NULL, EINA_TRUE);
-   }
+     }
    wd->items = eina_list_append(wd->items, it);
    _check_toolbar_line(wd);
    _sizing_eval(obj);
    return it;
 }
 
-/**
- * Prepend new tool item
- *
- * @param      obj The controlbar object
- * @param      icon_path The icon path of item
- * @param      label The label of item
- * @param      func Callback function of item
- * @param      data The data of callback function
- * @return     The item of controlbar
- *
- * @ingroup Controlbar
- */
-EAPI Elm_Controlbar_Item * elm_controlbar_tool_item_prepend(Evas_Object *
-                                                            obj,
-                                                            const char
-                                                            *icon_path,
-                                                            const char
-                                                            *label,
-                                                            void (*func)
-                                                            (void
-                                                             *data,
-                                                             Evas_Object *
-                                                             obj,
-                                                             void
-                                                             *event_info),
-                                                            void
-                                                            *data)
+EAPI Elm_Controlbar_Item *
+elm_controlbar_tool_item_prepend(Evas_Object *obj, const char *icon_path,
+                                 const char *label,
+                                 void (*func) (void *data, Evas_Object *obj, void *event_info),
+                                 void *data)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data * wd;
@@ -1670,45 +1538,32 @@ EAPI Elm_Controlbar_Item * elm_controlbar_tool_item_prepend(Evas_Object *
    item = eina_list_data_get(wd->items);
    if ((_check_bar_item_number(wd) >= 5) && (wd->auto_align))
      {
-        if (!wd->more_item) {
+        if (!wd->more_item)
+          {
              lit = elm_controlbar_last_item_get(obj);
              _set_item_visible(lit, EINA_FALSE);
              _create_more_item(wd, TOOLBAR);
-        }
+          }
         lit = elm_controlbar_item_prev(wd->more_item);
         _set_item_visible(lit, EINA_FALSE);
         _set_items_position(obj, it, item, EINA_TRUE);
-   }
-   else{
+     }
+   else
+     {
         _set_items_position(obj, it, item, EINA_TRUE);
-   }
+     }
    wd->items = eina_list_prepend(wd->items, it);
    _check_toolbar_line(wd);
    _sizing_eval(obj);
    return it;
 }
 
-/**
- * Insert new tool item before given item
- *
- * @param      obj The controlbar object
- * @param      before The given item
- * @param      icon_path The icon path of item
- * @param      label The label of item
- * @param      func Callback function of item
- * @param      data The data of callback function
- * @return     The item of controlbar
- *
- * @ingroup Controlbar
- */
 EAPI Elm_Controlbar_Item *
-elm_controlbar_tool_item_insert_before(Evas_Object * obj,
-                                       Elm_Controlbar_Item * before,
+elm_controlbar_tool_item_insert_before(Evas_Object *obj,
+                                       Elm_Controlbar_Item *before,
                                        const char *icon_path,
                                        const char *label,
-                                       void (*func) (void *data,
-                                                     Evas_Object * obj,
-                                                     void *event_info),
+                                       void (*func)(void *data, Evas_Object *obj, void *event_info),
                                        void *data)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
@@ -1738,37 +1593,23 @@ elm_controlbar_tool_item_insert_before(Evas_Object * obj,
           {
              _set_items_position(obj, it, before, EINA_FALSE);
           }
-   }
-   else{
+     }
+   else
+     {
         _set_items_position(obj, it, before, EINA_TRUE);
-   }
+     }
    wd->items = eina_list_prepend_relative(wd->items, it, before);
    _check_toolbar_line(wd);
    _sizing_eval(obj);
    return it;
 }
 
-/**
- * Insert new tool item after given item
- *
- * @param      obj The controlbar object
- * @param      after The given item
- * @param      icon_path The icon path of item
- * @param      label The label of item
- * @param      func Callback function of item
- * @param      data The data of callback function
- * @return     The item of controlbar
- *
- * @ingroup Controlbar
- */
 EAPI Elm_Controlbar_Item *
-elm_controlbar_tool_item_insert_after(Evas_Object * obj,
-                                      Elm_Controlbar_Item * after,
+elm_controlbar_tool_item_insert_after(Evas_Object *obj,
+                                      Elm_Controlbar_Item *after,
                                       const char *icon_path,
                                       const char *label,
-                                      void (*func) (void *data,
-                                                    Evas_Object * obj,
-                                                    void *event_info),
+                                      void (*func) (void *data, Evas_Object *obj, void *event_info),
                                       void *data)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
@@ -1799,31 +1640,20 @@ elm_controlbar_tool_item_insert_after(Evas_Object * obj,
           {
              _set_items_position(obj, it, NULL, EINA_FALSE);
           }
-   }
-   else{
+     }
+   else
+     {
         _set_items_position(obj, it, item, EINA_TRUE);
-   }
+     }
    wd->items = eina_list_append_relative(wd->items, it, after);
    _check_toolbar_line(wd);
    _sizing_eval(obj);
    return it;
 }
 
-/**
- * Append new object item
- *
- * @param      obj The controlbar object
- * @param      obj_item The object of item
- * @param      sel The number of sel occupied
- * @return  The item of controlbar
- *
- * @ingroup Controlbar
- */
-EAPI Elm_Controlbar_Item * elm_controlbar_object_item_append(Evas_Object *
-                                                             obj,
-                                                             Evas_Object *
-                                                             obj_item,
-                                                             const int sel)
+EAPI Elm_Controlbar_Item *
+elm_controlbar_object_item_append(Evas_Object *obj, Evas_Object *obj_item,
+                                  const int sel)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data * wd;
@@ -1838,21 +1668,9 @@ EAPI Elm_Controlbar_Item * elm_controlbar_object_item_append(Evas_Object *
    return it;
 }
 
-/**
- * Prepend new object item
- *
- * @param      obj The controlbar object
- * @param      obj_item The object of item
- * @param      sel The number of sel occupied
- * @return  The item of controlbar
- *
- * @ingroup Controlbar
- */
-EAPI Elm_Controlbar_Item * elm_controlbar_object_item_prepend(Evas_Object *
-                                                              obj,
-                                                              Evas_Object *
-                                                              obj_item,
-                                                              const int sel)
+EAPI Elm_Controlbar_Item *
+elm_controlbar_object_item_prepend(Evas_Object *obj, Evas_Object *obj_item,
+                                   const int sel)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data * wd;
@@ -1869,21 +1687,10 @@ EAPI Elm_Controlbar_Item * elm_controlbar_object_item_prepend(Evas_Object *
    return it;
 }
 
-/**
- * Insert new object item before given item
- *
- * @param      obj The controlbar object
- * @param      before The given item
- * @param      obj_item The object of item
- * @param      sel The number of sel occupied
- * @return  The item of controlbar
- *
- * @ingroup Controlbar
- */
 EAPI Elm_Controlbar_Item *
-elm_controlbar_object_item_insert_before(Evas_Object * obj,
-                                         Elm_Controlbar_Item * before,
-                                         Evas_Object * obj_item, const int sel)
+elm_controlbar_object_item_insert_before(Evas_Object *obj,
+                                         Elm_Controlbar_Item *before,
+                                         Evas_Object *obj_item, const int sel)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data * wd;
@@ -1899,26 +1706,15 @@ elm_controlbar_object_item_insert_before(Evas_Object * obj,
    return it;
 }
 
-/**
- * Insert new object item after given item
- *
- * @param      obj The controlbar object
- * @param      after The given item
- * @param      obj_item The object of item
- * @param      sel The number of sel occupied
- * @return  The item of controlbar
- *
- * @ingroup Controlbar
- */
 EAPI Elm_Controlbar_Item *
-elm_controlbar_object_item_insert_after(Evas_Object * obj,
-                                        Elm_Controlbar_Item * after,
-                                        Evas_Object * obj_item, const int sel)
+elm_controlbar_object_item_insert_after(Evas_Object *obj,
+                                        Elm_Controlbar_Item *after,
+                                        Evas_Object *obj_item, const int sel)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
-   Widget_Data * wd;
-   Elm_Controlbar_Item * it;
-   Elm_Controlbar_Item * item;
+   Widget_Data *wd;
+   Elm_Controlbar_Item *it;
+   Elm_Controlbar_Item *item;
    wd = elm_widget_data_get(obj);
    if (!wd) return NULL;
    if (!after) return NULL;
@@ -1931,16 +1727,8 @@ elm_controlbar_object_item_insert_after(Evas_Object * obj,
    return it;
 }
 
-/**
- * Get the object of the object item
- *
- * @param       it The item of controlbar
- * @return      The object of the object item
- *
- * @ingroup Controlbar
- */
 EAPI Evas_Object *
-elm_controlbar_object_item_object_get(const Elm_Controlbar_Item * it)
+elm_controlbar_object_item_object_get(const Elm_Controlbar_Item *it)
 {
    if (!it) return NULL;
    if (it->style != OBJECT) return NULL;
@@ -1948,21 +1736,14 @@ elm_controlbar_object_item_object_get(const Elm_Controlbar_Item * it)
    return it->base_item;
 }
 
-/**
- * Delete item from controlbar
- *
- * @param      it The item of controlbar
-
- * @ingroup Controlbar
- */
 EAPI void
-elm_controlbar_item_del(Elm_Controlbar_Item * it)
+elm_controlbar_item_del(Elm_Controlbar_Item *it)
 {
-   Evas_Object * obj;
-   Widget_Data * wd;
+   Evas_Object *obj;
+   Widget_Data *wd;
    const Eina_List *l;
 
-   Elm_Controlbar_Item * item;
+   Elm_Controlbar_Item *item;
 
    int sel = 1;
 
@@ -2014,13 +1795,6 @@ elm_controlbar_item_del(Elm_Controlbar_Item * it)
    _sizing_eval(obj);
 }
 
-/**
- * Select item in controlbar
- *
- * @param      it The item of controlbar
-
- * @ingroup Controlbar
- */
 EAPI void
 elm_controlbar_item_select(Elm_Controlbar_Item * it)
 {
@@ -2032,17 +1806,8 @@ elm_controlbar_item_select(Elm_Controlbar_Item * it)
    _select_box(it);
 }
 
-/**
- * Set the icon of item
- *
- * @param      it The item of controlbar
- * @param      icon_path The icon path of the item
- * @return     The icon object
- *
- * @ingroup Controlbar
- */
 EAPI void
-elm_controlbar_item_icon_set(Elm_Controlbar_Item * it, const char *icon_path)
+elm_controlbar_item_icon_set(Elm_Controlbar_Item *it, const char *icon_path)
 {
    if (!it) return;
    if (it->style == OBJECT) return;
@@ -2067,31 +1832,15 @@ elm_controlbar_item_icon_set(Elm_Controlbar_Item * it, const char *icon_path)
      elm_widget_disabled_set(it->base_item, EINA_FALSE);
 }
 
-/**
- * Get the icon of item
- *
- * @param      it The item of controlbar
- * @return     The icon object
- *
- * @ingroup Controlbar
- */
 EAPI Evas_Object *
-elm_controlbar_item_icon_get(const Elm_Controlbar_Item * it)
+elm_controlbar_item_icon_get(const Elm_Controlbar_Item *it)
 {
    if (!it) return NULL;
    return it->icon;
 }
 
-/**
- * Set the label of item
- *
- * @param      it The item of controlbar
- * @param      label The label of item
- *
- * @ingroup Controlbar
- */
 EAPI void
-elm_controlbar_item_label_set(Elm_Controlbar_Item * it, const char *label)
+elm_controlbar_item_label_set(Elm_Controlbar_Item *it, const char *label)
 {
    if (!it) return;
    if (it->style == OBJECT) return;
@@ -2111,14 +1860,6 @@ elm_controlbar_item_label_set(Elm_Controlbar_Item * it, const char *label)
      elm_widget_disabled_set(it->base_item, EINA_FALSE);
 }
 
-/**
- * Get the label of item
- *
- * @param      it The item of controlbar
- * @return The label of item
- *
- * @ingroup Controlbar
- */
 EAPI const char *
 elm_controlbar_item_label_get(const Elm_Controlbar_Item * it)
 {
@@ -2126,16 +1867,8 @@ elm_controlbar_item_label_get(const Elm_Controlbar_Item * it)
    return it->text;
 }
 
-/**
- * Get the selected item
- *
- * @param      obj The controlbar object
- * @return             The item of controlbar
- *
- * @ingroup Controlbar
- */
-EAPI Elm_Controlbar_Item * elm_controlbar_selected_item_get(const Evas_Object *
-                                                            obj)
+EAPI Elm_Controlbar_Item *
+elm_controlbar_selected_item_get(const Evas_Object *obj)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    const Eina_List *l;
@@ -2151,15 +1884,8 @@ EAPI Elm_Controlbar_Item * elm_controlbar_selected_item_get(const Evas_Object *
    return NULL;
 }
 
-/**
- * Get the first item
- *
- * @param      obj The controlbar object
- * @return             The item of controlbar
- *
- * @ingroup Controlbar
- */
-EAPI Elm_Controlbar_Item * elm_controlbar_first_item_get(const Evas_Object * obj)
+EAPI Elm_Controlbar_Item *
+elm_controlbar_first_item_get(const Evas_Object *obj)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data * wd = elm_widget_data_get(obj);
@@ -2167,15 +1893,8 @@ EAPI Elm_Controlbar_Item * elm_controlbar_first_item_get(const Evas_Object * obj
    return eina_list_data_get(wd->items);
 }
 
-/**
- * Get the last item
- *
- * @param      obj The controlbar object
- * @return             The item of controlbar
- *
- * @ingroup Controlbar
- */
-EAPI Elm_Controlbar_Item * elm_controlbar_last_item_get(const Evas_Object * obj)
+EAPI Elm_Controlbar_Item *
+elm_controlbar_last_item_get(const Evas_Object *obj)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data * wd = elm_widget_data_get(obj);
@@ -2183,15 +1902,8 @@ EAPI Elm_Controlbar_Item * elm_controlbar_last_item_get(const Evas_Object * obj)
    return eina_list_data_get(eina_list_last(wd->items));
 }
 
-/**
- * Get the items
- *
- * @param      obj The controlbar object
- * @return     The list of the items
- *
- * @ingroup Controlbar
- */
-EAPI const Eina_List * elm_controlbar_items_get(const Evas_Object * obj)
+EAPI const Eina_List *
+elm_controlbar_items_get(const Evas_Object *obj)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data * wd = elm_widget_data_get(obj);
@@ -2199,16 +1911,8 @@ EAPI const Eina_List * elm_controlbar_items_get(const Evas_Object * obj)
    return wd->items;
 }
 
-/**
- * Get the previous item
- *
- * @param      it The item of controlbar
- * @return     The previous item of the parameter item
- *
- * @ingroup Controlbar
- */
-EAPI Elm_Controlbar_Item * elm_controlbar_item_prev(Elm_Controlbar_Item *
-                                                    it)
+EAPI Elm_Controlbar_Item *
+elm_controlbar_item_prev(Elm_Controlbar_Item *it)
 {
    if (!it) return NULL;
    const Eina_List *l;
@@ -2229,16 +1933,8 @@ EAPI Elm_Controlbar_Item * elm_controlbar_item_prev(Elm_Controlbar_Item *
    return NULL;
 }
 
-/**
- * Get the next item
- *
- * @param      obj The controlbar object
- * @return     The next item of the parameter item
- *
- * @ingroup Controlbar
- */
-EAPI Elm_Controlbar_Item * elm_controlbar_item_next(Elm_Controlbar_Item *
-                                                    it)
+EAPI Elm_Controlbar_Item *
+elm_controlbar_item_next(Elm_Controlbar_Item *it)
 {
    if (!it) return NULL;
    const Eina_List *l;
@@ -2259,16 +1955,8 @@ EAPI Elm_Controlbar_Item * elm_controlbar_item_next(Elm_Controlbar_Item *
    return NULL;
 }
 
-/**
- * Set the visible status of item in bar
- *
- * @param      it The item of controlbar
- * @param      bar EINA_TRUE or EINA_FALSE
- *
- * @ingroup Controlbar
- */
 EAPI void
-elm_controlbar_item_visible_set(Elm_Controlbar_Item * it, Eina_Bool visible)
+elm_controlbar_item_visible_set(Elm_Controlbar_Item *it, Eina_Bool visible)
 {
    if (!it) return;
    if (it->obj == NULL) return;
@@ -2279,16 +1967,8 @@ elm_controlbar_item_visible_set(Elm_Controlbar_Item * it, Eina_Bool visible)
      _set_item_visible(it, visible);
 }
 
-/**
- * Get the result which or not item is visible in bar
- *
- * @param      it The item of controlbar
- * @return     EINA_TRUE or EINA_FALSE
- *
- * @ingroup Controlbar
- */
 EAPI Eina_Bool
-elm_controlbar_item_visible_get(const Elm_Controlbar_Item * it)
+elm_controlbar_item_visible_get(const Elm_Controlbar_Item *it)
 {
    if (!it) return EINA_FALSE;
    if (it->obj == NULL) return EINA_FALSE;
@@ -2299,16 +1979,8 @@ elm_controlbar_item_visible_get(const Elm_Controlbar_Item * it)
    return EINA_TRUE;
 }
 
-/**
- * Set item disable
- *
- * @param      it The item of controlbar
- * @param      bar EINA_TRUE or EINA_FALSE
- *
- * @ingroup Controlbar
- */
 EAPI void
-elm_controlbar_item_disabled_set(Elm_Controlbar_Item * it, Eina_Bool disabled)
+elm_controlbar_item_disabled_set(Elm_Controlbar_Item *it, Eina_Bool disabled)
 {
    if (!it) return;
 
@@ -2321,30 +1993,14 @@ elm_controlbar_item_disabled_set(Elm_Controlbar_Item * it, Eina_Bool disabled)
    if (it->base_item) elm_widget_disabled_set(it->base_item, disabled);
 }
 
-/**
- * Get item disable
- *
- * @param      it The item of controlbar
- * @return     EINA_TRUE or EINA_FALSE
- *
- * @ingroup Controlbar
- */
 EAPI Eina_Bool
-elm_controlbar_item_disabled_get(const Elm_Controlbar_Item * it)
+elm_controlbar_item_disabled_get(const Elm_Controlbar_Item *it)
 {
    if (!it) return EINA_FALSE;
 
    return it->disabled;
 }
 
-/**
- * Set the view of the item
- *
- * @param      it The item of controlbar
- * @param      view The view for the item
- *
- * @ingroup Controlbar
- */
 EAPI void
 elm_controlbar_item_view_set(Elm_Controlbar_Item *it, Evas_Object * view)
 {
@@ -2355,14 +2011,6 @@ elm_controlbar_item_view_set(Elm_Controlbar_Item *it, Evas_Object * view)
    it->view = view;
 }
 
-/**
- * Get the view of the item
- *
- * @param      it The item of controlbar
- * @return     The view for the item
- *
- * @ingroup Controlbar
- */
 EAPI Evas_Object *
 elm_controlbar_item_view_get(const Elm_Controlbar_Item *it)
 {
@@ -2371,14 +2019,6 @@ elm_controlbar_item_view_get(const Elm_Controlbar_Item *it)
    return it->view;
 }
 
-/**
- * Unset the view of the item
- *
- * @param      it The item of controlbar
- * @return     The view for the item
- *
- * @ingroup Controlbar
- */
 EAPI Evas_Object *
 elm_controlbar_item_view_unset(Elm_Controlbar_Item *it)
 {
@@ -2388,9 +2028,9 @@ elm_controlbar_item_view_unset(Elm_Controlbar_Item *it)
    if (!wd) return NULL;
    Evas_Object *content;
 
-   if (it->view == elm_object_content_part_get(wd->edje, "elm.swallow.view"))
+   if (it->view == elm_object_part_content_get(wd->edje, "elm.swallow.view"))
      {
-        content = elm_object_content_part_unset(wd->edje, "elm.swallow.view");
+        content = elm_object_part_content_unset(wd->edje, "elm.swallow.view");
         if (content) evas_object_hide(content);
      }
    else
@@ -2401,14 +2041,6 @@ elm_controlbar_item_view_unset(Elm_Controlbar_Item *it)
    return content;
 }
 
-/**
- * Set the mode of the controlbar
- *
- * @param      obj The object of the controlbar
- * @param      mode The mode of the controlbar
- *
- * @ingroup Controlbar
- */
 EAPI void
 elm_controlbar_mode_set(Evas_Object *obj, int mode)
 {
@@ -2441,7 +2073,7 @@ elm_controlbar_mode_set(Evas_Object *obj, int mode)
          edje_object_signal_emit(_EDJ(wd->edje), "elm,state,small", "elm");
          break;
       case ELM_CONTROLBAR_MODE_LEFT:
-         selected_box = elm_object_content_part_get(wd->edje, "elm.dragable.box");
+         selected_box = elm_object_part_content_get(wd->edje, "elm.dragable.box");
          if (selected_box) edje_object_signal_emit(_EDJ(selected_box), "elm,state,left", "elm");
          wd->selected_signal = eina_stringshare_add("elm,state,selected_left");
          wd->pressed_signal = eina_stringshare_add("elm,state,pressed_left");
@@ -2450,7 +2082,7 @@ elm_controlbar_mode_set(Evas_Object *obj, int mode)
          _sizing_eval(obj);
          return;
       case ELM_CONTROLBAR_MODE_RIGHT:
-         selected_box = elm_object_content_part_get(wd->edje, "elm.dragable.box");
+         selected_box = elm_object_part_content_get(wd->edje, "elm.dragable.box");
          if (selected_box) edje_object_signal_emit(_EDJ(selected_box), "elm,state,right", "elm");
          wd->selected_signal = eina_stringshare_add("elm,state,selected_right");
          wd->pressed_signal = eina_stringshare_add("elm,state,pressed_right");
@@ -2461,7 +2093,7 @@ elm_controlbar_mode_set(Evas_Object *obj, int mode)
       default:
          break;
      }
-   selected_box = elm_object_content_part_get(wd->edje, "elm.dragable.box");
+   selected_box = elm_object_part_content_get(wd->edje, "elm.dragable.box");
    if (selected_box) edje_object_signal_emit(_EDJ(selected_box), "elm,state,default", "elm");
    wd->selected_signal = eina_stringshare_add("elm,state,selected");
    wd->pressed_signal = eina_stringshare_add("elm,state,pressed");
@@ -2469,14 +2101,6 @@ elm_controlbar_mode_set(Evas_Object *obj, int mode)
    _sizing_eval(obj);
 }
 
-/**
- * Set the alpha of the controlbar
- *
- * @param      obj The object of the controlbar
- * @param      alpha The alpha value of the controlbar (0-100)
- *
- * @ingroup Controlbar
- */
 EAPI void
 elm_controlbar_alpha_set(Evas_Object *obj, int alpha)
 {
@@ -2497,17 +2121,6 @@ elm_controlbar_alpha_set(Evas_Object *obj, int alpha)
    evas_object_color_set(wd->bg, r, g, b, (int)(255 * wd->alpha / 100));
 }
 
-
-/**
- * Set auto-align mode of the controlbar(It's not prepared yet)
- * If you set the auto-align and add items more than 5,
- * the "more" item will be made and the items more than 5 will be unvisible.
- *
- * @param      obj The object of the controlbar
- * @param      auto_align The dicision that the controlbar use the auto-align
- *
- * @ingroup Controlbar
- */
 EAPI void
 elm_controlbar_item_auto_align_set(Evas_Object *obj, Eina_Bool auto_align)
 {
@@ -2576,14 +2189,6 @@ elm_controlbar_item_auto_align_set(Evas_Object *obj, Eina_Bool auto_align)
    _sizing_eval(obj);
 }
 
-/**
- * Set the vertical mode of the controlbar
- *
- * @param      obj The object of the controlbar
- * @param      vertical The vertical mode of the controlbar (TRUE = vertical, FALSE = horizontal)
- *
- * @ingroup Controlbar
- */
 EAPI void
 elm_controlbar_vertical_set(Evas_Object *obj, Eina_Bool vertical)
 {
@@ -2605,14 +2210,6 @@ elm_controlbar_vertical_set(Evas_Object *obj, Eina_Bool vertical)
    _check_toolbar_line(wd);
 }
 
-/**
- * Get the button object of the item
- *
- * @param      it The item of controlbar
- * @return  button object of the item
- *
- * @ingroup Controlbar
- */
 EAPI Evas_Object *
 elm_controlbar_item_button_get(const Elm_Controlbar_Item *it)
 {
index dd00c7e..66960c8 100644 (file)
@@ -176,7 +176,7 @@ _change_item_bg(Dialogue_Item *item, const char *location)
 
    eina_stringshare_replace(&item->location, location);
    _set_item_theme(item, location);
-   elm_object_content_part_set(item->bg_layout, "swallow", item->content);
+   elm_object_part_content_set(item->bg_layout, "swallow", item->content);
    if ((item->press == EINA_TRUE) && (item->disabled == EINA_FALSE))
      edje_object_signal_emit(elm_layout_edje_get(item->bg_layout), "elm,state,press,on", "elm");
    else
@@ -217,7 +217,7 @@ _create_item(Evas_Object *obj, Evas_Object *subobj, Elm_Dialoguegroup_Item_Style
    evas_object_size_hint_align_set(item->bg_layout, EVAS_HINT_FILL, 0.0);
    evas_object_show(item->bg_layout);
 
-   elm_object_content_part_set(item->bg_layout, "swallow", item->content);
+   elm_object_part_content_set(item->bg_layout, "swallow", item->content);
 
    return item;
 }
index 453732d..cba3012 100644 (file)
@@ -181,15 +181,6 @@ _theme_data_get(Widget_Data *wd)
 }
 
 static void
-_default_display_item_num_set(Widget_Data *wd)
-{
-   const char* str;
-   str = edje_object_data_get(wd->right_blank, "display_item_num");
-   if (str) wd->display_item_num = MAX(DISPLAY_ITEM_NUM_MIN, atoi(str));
-   else wd->display_item_num = DISPLAY_ITEM_NUM_MIN;
-}
-
-static void
 _del_hook(Evas_Object * obj)
 {
    Widget_Data *wd = elm_widget_data_get(obj);
@@ -1382,3 +1373,12 @@ elm_diskselector_display_item_num_set(Evas_Object *obj, int num)
    wd->display_item_num = num;
    wd->display_item_num_by_api = EINA_TRUE;
 }
+
+EAPI int
+elm_diskselector_display_item_num_get(const Evas_Object *item)
+{
+   ELM_CHECK_WIDTYPE(item, widtype) (-1);
+   Widget_Data *wd = elm_widget_data_get(item);
+   if (!wd) return -1;
+   return wd->display_item_num;
+}
index 4a31e63..5ff10b7 100644 (file)
@@ -82,7 +82,6 @@ struct _Widget_Data
    Eina_Bool bgcolor : 1;
    Eina_Bool can_write : 1;
    Eina_Bool autosave : 1;
-   Eina_Bool textonly : 1;
    Eina_Bool usedown : 1;
    Eina_Bool scroll : 1;
    Eina_Bool input_panel_enable : 1;
@@ -90,6 +89,7 @@ struct _Widget_Data
    Eina_Bool autoperiod : 1;
    Eina_Bool matchlist_list_clicked : 1;
    Eina_Bool matchlist_case_sensitive : 1;
+   Elm_CNP_Mode cnp_mode : 2;
 };
 
 struct _Elm_Entry_Context_Menu_Item
@@ -613,7 +613,6 @@ _recalc_cursor_geometry(Evas_Object *obj)
    Widget_Data *wd = elm_widget_data_get(obj);
    if (!wd) return;
    evas_object_smart_callback_call(obj, SIG_CURSOR_CHANGED, NULL);
-   if (!elm_object_focus_get(obj)) return;
    if (!wd->deferred_recalc_job)
      {
         Evas_Coord cx, cy, cw, ch;
@@ -638,8 +637,12 @@ _elm_win_recalc_job(void *data)
    wd->deferred_recalc_job = NULL;
 
    evas_object_geometry_get(wd->ent, NULL, NULL, &resw, NULL);
-   edje_object_size_min_restricted_calc(wd->ent, &minw, &minh, resw, 0);
+   /* This is a hack to workaround to avoid the cursor geometry bug
+    * in a char-wrap or a mixed-mode textblock in a scroller.
+    * The order of calling next 2 functions affects to the size of the textblock cursor.
+    * when the textblock core issue is fixed these comments will be removed. */
    edje_object_size_min_restricted_calc(wd->ent, &fw, &fh, 0, 0);
+   edje_object_size_min_restricted_calc(wd->ent, &minw, &minh, resw, 0);
    elm_coords_finger_size_adjust(1, &fw, 1, &minh);
    wd->entmw = fw;
    wd->entmh = minh;
@@ -686,7 +689,7 @@ _elm_win_recalc_job(void *data)
           }
      }
 
-   if ((wd->deferred_cur) && (elm_object_focus_get(data)))
+   if (wd->deferred_cur)
      {
         Evas_Coord cx, cy, cw, ch;
         edje_object_part_text_cursor_geometry_get(wd->ent, "elm.text",
@@ -1073,7 +1076,6 @@ static void
 _move(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
 {
    Widget_Data *wd = elm_widget_data_get(data);
-   Evas_Coord_Rectangle ret_rect;
 
    if (wd->hoversel) _hoversel_position(data);
 
@@ -1179,10 +1181,11 @@ _paste(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
    if (wd->sel_notify_handler)
      {
 #ifdef HAVE_ELEMENTARY_X
-        Elm_Sel_Format formats;
+        Elm_Sel_Format formats = ELM_SEL_FORMAT_MARKUP;
         wd->selection_asked = EINA_TRUE;
-        formats = ELM_SEL_FORMAT_MARKUP;
-        if (!wd->textonly)
+        if (wd->cnp_mode == ELM_CNP_MODE_PLAINTEXT)
+          formats = ELM_SEL_FORMAT_TEXT;
+        else if (wd->cnp_mode != ELM_CNP_MODE_NO_IMAGE)
           formats |= ELM_SEL_FORMAT_IMAGE;
         elm_selection_get(ELM_SEL_CLIPBOARD, formats, data, NULL, NULL);
 #endif
@@ -1194,46 +1197,57 @@ _store_selection(Elm_Sel_Type seltype, Evas_Object *obj)
 {
    Widget_Data *wd = elm_widget_data_get(obj);
    const char *sel;
-   char *sel_str;
+   char *sel_str = NULL;
+   Elm_Sel_Format formats = ELM_SEL_FORMAT_MARKUP;
 
    if (!wd) return;
    sel = edje_object_part_text_selection_get(wd->ent, "elm.text");
-   sel_str = strdup(sel);
-   if (!sel_str)
-     return;
-   if (wd->textonly)
+   if (wd->cnp_mode == ELM_CNP_MODE_PLAINTEXT)
      {
-        while (EINA_TRUE)
+        sel_str = elm_entry_markup_to_utf8(sel);
+        if (!sel_str)
+          return;
+        formats = ELM_SEL_FORMAT_TEXT;
+     }
+   else
+     {
+        sel_str = strdup(sel);
+        if (!sel_str)
+          return;
+        if (wd->cnp_mode == ELM_CNP_MODE_NO_IMAGE)
           {
-             char *startTag = NULL;
-             char *endTag = NULL;
-
-             startTag = strstr(sel_str, "<item");
-             if (!startTag)
-               startTag = strstr(sel_str, "</item");
-             if (startTag)
-               endTag = strstr(startTag, ">");
-             else
-               break;
-             if (!endTag || startTag > endTag)
-               break;
-
-             size_t sindex = startTag - sel_str;
-             size_t eindex = endTag - sel_str + 1;
-
-             Eina_Strbuf *buf = eina_strbuf_new();
-             if (buf)
+             while (EINA_TRUE)
                {
-                  eina_strbuf_append(buf, sel_str);
-                  eina_strbuf_remove(buf, sindex, eindex);
-                  sel_str = eina_strbuf_string_steal(buf);
-                  eina_strbuf_free(buf);
+                  char *startTag = NULL;
+                  char *endTag = NULL;
+
+                  startTag = strstr(sel_str, "<item");
+                  if (!startTag)
+                    startTag = strstr(sel_str, "</item");
+                  if (startTag)
+                    endTag = strstr(startTag, ">");
+                  else
+                    break;
+                  if (!endTag || startTag > endTag)
+                    break;
+
+                  size_t sindex = startTag - sel_str;
+                  size_t eindex = endTag - sel_str + 1;
+
+                  Eina_Strbuf *buf = eina_strbuf_new();
+                  if (buf)
+                    {
+                       eina_strbuf_append(buf, sel_str);
+                       eina_strbuf_remove(buf, sindex, eindex);
+                       sel_str = eina_strbuf_string_steal(buf);
+                       eina_strbuf_free(buf);
+                    }
                }
           }
      }
-   elm_selection_set(seltype, obj, ELM_SEL_FORMAT_MARKUP, sel_str);
+   elm_selection_set(seltype, obj, formats, sel_str);
    if (seltype == ELM_SEL_CLIPBOARD)
-     eina_stringshare_replace(&wd->cut_sel, sel_str);
+     eina_stringshare_replace(&wd->cut_sel, sel);
    free(sel_str);
 }
 
@@ -1294,7 +1308,7 @@ _clipboard_menu(void *data, Evas_Object *obj, void *event_info __UNUSED__)
 #endif
    cnpwidgetdata = data;
    elm_cbhm_helper_init(obj);
-   if (elm_entry_cnp_textonly_get(obj))
+   if (elm_entry_cnp_mode_get(obj) != ELM_CNP_MODE_MARKUP)
      elm_cbhm_send_raw_data("show0");
    else
      elm_cbhm_send_raw_data("show1");
@@ -2447,8 +2461,14 @@ _event_selection_clear(void *data __UNUSED__, int type __UNUSED__, void *event _
 
    if (cnpwidgetdata == data)
      {
+        Widget_Data *wd = elm_widget_data_get(data);
+        Elm_Sel_Format formats = ELM_SEL_FORMAT_MARKUP;
         evas_object_smart_callback_call(data, SIG_SELECTION_PASTE, NULL);
-        elm_selection_get(ELM_SEL_SECONDARY,ELM_SEL_FORMAT_MARKUP,data,NULL,NULL);
+        if (wd->cnp_mode == ELM_CNP_MODE_PLAINTEXT)
+          formats = ELM_SEL_FORMAT_TEXT;
+        else if (wd->cnp_mode != ELM_CNP_MODE_NO_IMAGE)
+          formats |= ELM_SEL_FORMAT_IMAGE;
+        elm_selection_get(ELM_SEL_SECONDARY, formats ,data, NULL, NULL);
      }
 
    // end for cbhm
@@ -2938,7 +2958,7 @@ elm_entry_add(Evas_Object *parent)
    wd->disabled     = EINA_FALSE;
    wd->context_menu = EINA_TRUE;
    wd->autosave     = EINA_TRUE;
-   wd->textonly     = EINA_FALSE;
+   wd->cnp_mode     = ELM_CNP_MODE_MARKUP;
    wd->autoperiod   = EINA_TRUE;
 
    wd->ent = edje_object_add(e);
@@ -3071,7 +3091,7 @@ EAPI void elm_entry_extension_module_data_get(Evas_Object *obj,Elm_Entry_Extensi
    ext_mod->selmode = wd->selmode;
    ext_mod->cnpinit = _cnpinit;
    ext_mod->context_menu = wd->context_menu;
-   ext_mod->textonly = wd->textonly;
+   ext_mod->cnp_mode = wd->cnp_mode;
 }
 
 EAPI void
@@ -3083,7 +3103,7 @@ elm_entry_single_line_set(Evas_Object *obj, Eina_Bool single_line)
    if (wd->single_line == single_line) return;
    wd->single_line = single_line;
    wd->linewrap = ELM_WRAP_NONE;
-   elm_entry_cnp_textonly_set(obj, EINA_TRUE);
+   elm_entry_cnp_mode_set(obj, ELM_CNP_MODE_NO_IMAGE);
    _theme_hook(obj);
    if (wd->scroller)
      {
@@ -3197,7 +3217,7 @@ elm_entry_is_empty(const Evas_Object *obj)
    Eina_Bool ret;
    if (!wd) return EINA_TRUE;
 
-if (0) {
+   if (0) {
    /* It's a hack until we get the support suggested above.
     * We just create a cursor, point it to the begining, and then
     * try to advance it, if it can advance, the tb is not empty,
@@ -3211,7 +3231,7 @@ if (0) {
    evas_textblock_cursor_free(cur);
 
    return !ret;
-}
+   }
 
    char *str = elm_entry_markup_to_utf8(elm_entry_entry_get(obj));
    if (!str) return EINA_TRUE;
@@ -3222,6 +3242,27 @@ if (0) {
    return ret;
 }
 
+EAPI const Evas_Object *
+elm_entry_textblock_get(const Evas_Object *obj)
+{
+   ELM_CHECK_WIDTYPE(obj, widtype) NULL;
+   Widget_Data *wd = elm_widget_data_get(obj);
+   if (!wd) return NULL;
+
+   return edje_object_part_object_get(wd->ent, "elm.text");
+}
+
+EAPI void
+elm_entry_calc_force(const Evas_Object *obj)
+{
+   ELM_CHECK_WIDTYPE(obj, widtype);
+   Widget_Data *wd = elm_widget_data_get(obj);
+   if (!wd) return;
+
+   edje_object_calc_force(wd->ent);
+}
+
+
 EAPI const char *
 elm_entry_selection_get(const Evas_Object *obj)
 {
@@ -3857,26 +3898,41 @@ elm_entry_autosave_get(const Evas_Object *obj)
 EAPI void
 elm_entry_cnp_textonly_set(Evas_Object *obj, Eina_Bool textonly)
 {
+   ELM_CHECK_WIDTYPE(obj, widtype);
+   elm_entry_cnp_mode_set(obj, textonly ? ELM_CNP_MODE_NO_IMAGE : ELM_CNP_MODE_MARKUP);
+}
+
+EAPI Eina_Bool
+elm_entry_cnp_textonly_get(const Evas_Object *obj)
+{
+   ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
+   return elm_entry_cnp_mode_get(obj) != ELM_CNP_MODE_MARKUP;
+}
+
+EAPI void
+elm_entry_cnp_mode_set(Evas_Object *obj, Elm_CNP_Mode cnp_mode)
+{
    Elm_Sel_Format format = ELM_SEL_FORMAT_MARKUP;
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
    if (!wd) return;
-   textonly = !!textonly;
-   if (wd->textonly == textonly) return;
-   wd->textonly = !!textonly;
-   if (!textonly) format |= ELM_SEL_FORMAT_IMAGE;
+   if (wd->cnp_mode == cnp_mode) return;
+   wd->cnp_mode = cnp_mode;
+   if (wd->cnp_mode == ELM_CNP_MODE_PLAINTEXT)
+     format = ELM_SEL_FORMAT_TEXT;
+   else if (cnp_mode == ELM_CNP_MODE_MARKUP) format |= ELM_SEL_FORMAT_IMAGE;
 #ifdef HAVE_ELEMENTARY_X
    elm_drop_target_add(obj, format, _drag_drop_cb, NULL);
 #endif
 }
 
-EAPI Eina_Bool
-elm_entry_cnp_textonly_get(const Evas_Object *obj)
+EAPI Elm_CNP_Mode
+elm_entry_cnp_mode_get(const Evas_Object *obj)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
    Widget_Data *wd = elm_widget_data_get(obj);
    if (!wd) return EINA_FALSE;
-   return wd->textonly;
+   return wd->cnp_mode;
 }
 
 EAPI void
index ffbbc63..fa327b4 100644 (file)
@@ -34,6 +34,7 @@ struct _Elm_Flipselector_Item
 };
 
 typedef struct _Widget_Data Widget_Data;
+typedef struct _Elm_Flipselector_Item Elm_Flipselector_Item;
 
 struct _Widget_Data
 {
@@ -67,13 +68,70 @@ static const Evas_Smart_Cb_Description _signals[] = {
   {NULL, NULL}
 };
 
-#define ELM_FLIPSELECTOR_ITEM_CHECK_DELETED_RETURN(it, ...)             \
-   ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(it, __VA_ARGS__);            \
-  if (it->deleted)                                                      \
-    {                                                                   \
-       ERR(""#it" has been DELETED.\n");                                \
-       return __VA_ARGS__;                                              \
-    }                                                                   \
+static void
+_item_text_set_hook(Elm_Object_Item *it,
+                    const char *part,
+                    const char *label)
+{
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
+
+   Widget_Data *wd;
+   Eina_List *l;
+   Elm_Flipselector_Item *item;
+
+   if (!label) return;
+
+   if (part && strcmp(part ,"default")) return;
+
+   item = (Elm_Flipselector_Item *) it;
+   wd = elm_widget_data_get(WIDGET(item));
+   if ((!wd) || (!wd->items)) return;
+
+   l = eina_list_data_find_list(wd->items, item);
+   if (!l) return;
+
+   eina_stringshare_del(item->label);
+   item->label = eina_stringshare_add_length(label, wd->max_len);
+
+   if (strlen(label) > strlen(elm_object_item_text_get(DATA_GET(wd->sentinel))))
+     wd->sentinel = l;
+
+   if (wd->current == l)
+     {
+        _update_view(WIDGET(item));
+        _sizing_eval(wd->self);
+     }
+}
+
+static const char *
+_item_text_get_hook(const Elm_Object_Item *it, const char *part)
+{
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
+
+   Elm_Flipselector_Item *item, *_item;
+   Widget_Data *wd;
+   Eina_List *l;
+
+   if (part && strcmp(part ,"default")) return NULL;
+
+   item = (Elm_Flipselector_Item *) it;
+   wd = elm_widget_data_get(WIDGET(item));
+   if ((!wd) || (!wd->items)) return NULL;
+
+   EINA_LIST_FOREACH(wd->items, l, _item)
+     if (_item == item) return item->label;
+   return NULL;
+}
+
+static void
+_item_signal_emit_hook(Elm_Object_Item *it,
+                       const char *emission,
+                       const char *source)
+{
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
+   Elm_Flipselector_Item *item = (Elm_Flipselector_Item *) it;
+   edje_object_signal_emit(VIEW(item), emission, source);
+}
 
 static Elm_Flipselector_Item *
 _item_new(Evas_Object *obj, const char *label, Evas_Smart_Cb func, const void *data)
@@ -83,8 +141,11 @@ _item_new(Evas_Object *obj, const char *label, Evas_Smart_Cb func, const void *d
    Widget_Data *wd = elm_widget_data_get(obj);
 
    it = elm_widget_item_new(obj, Elm_Flipselector_Item);
-   if (!it)
-     return NULL;
+   if (!it) return NULL;
+
+   elm_widget_item_text_set_hook_set(it, _item_text_set_hook);
+   elm_widget_item_text_get_hook_set(it, _item_text_get_hook);
+   elm_widget_item_signal_emit_hook_set(it, _item_signal_emit_hook);
 
    len = strlen(label);
    if (len > wd->max_len)
@@ -112,14 +173,12 @@ _del_hook(Evas_Object *obj)
    Elm_Flipselector_Item *item;
 
    Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd)
-     return;
+   if (!wd) return;
 
-   if (wd->walking)
-     ERR("flipselector deleted while walking.\n");
+   if (wd->walking) ERR("flipselector deleted while walking.\n");
 
    EINA_LIST_FREE(wd->items, item)
-      _item_free(item);
+     _item_free(item);
 
    if (wd->spin) ecore_timer_del(wd->spin);
    free(wd);
@@ -132,8 +191,7 @@ _theme_hook(Evas_Object *obj)
    const char *max_len;
 
    wd = elm_widget_data_get(obj);
-   if (!wd)
-     return;
+   if (!wd) return;
 
    _elm_theme_object_set(obj, wd->base, "flipselector", "base",
                          elm_widget_style_get(obj));
@@ -170,8 +228,8 @@ _sentinel_eval(Widget_Data *wd)
 
    EINA_LIST_FOREACH(wd->items, l, it)
      {
-        if (strlen(elm_flipselector_item_label_get(it)) >
-            strlen(elm_flipselector_item_label_get(DATA_GET(wd->sentinel))))
+        if (strlen(elm_object_item_text_get((Elm_Object_Item *) it)) >
+            strlen(elm_object_item_text_get(DATA_GET(wd->sentinel))))
           wd->sentinel = l;
      }
 }
@@ -189,14 +247,12 @@ _flipselector_process_deletions(Widget_Data *wd)
 
    EINA_LIST_FOREACH(wd->items, l, it)
      {
-        if (!it->deleted)
-          continue;
+        if (!it->deleted) continue;
 
         if (wd->current == l)
           {
              if (wd->current == wd->sentinel)
                sentinel_eval = EINA_TRUE;
-
              wd->current = eina_list_prev(wd->current);
           }
         wd->items = eina_list_remove(wd->items, it);
@@ -242,9 +298,7 @@ _flipselector_unwalk(Widget_Data *wd)
         ERR("walking became negative. fixed!\n");
         wd->walking = 0;
      }
-
-   if (wd->walking)
-     return;
+   if (wd->walking) return;
 
    _flipselector_process_deletions(wd);
 }
@@ -256,19 +310,15 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
    Widget_Data *wd;
    Eina_Bool is_up = EINA_TRUE;
 
-   if (type != EVAS_CALLBACK_KEY_DOWN)
-     return EINA_FALSE;
+   if (type != EVAS_CALLBACK_KEY_DOWN) return EINA_FALSE;
 
    wd = elm_widget_data_get(obj);
-   if (!wd)
-     return EINA_FALSE;
+   if (!wd) return EINA_FALSE;
 
    ev = event_info;
-   if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
-     return EINA_FALSE;
+   if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return EINA_FALSE;
 
-   if (elm_widget_disabled_get(obj))
-     return EINA_FALSE;
+   if (elm_widget_disabled_get(obj)) return EINA_FALSE;
 
    if ((!strcmp(ev->keyname, "Down")) || (!strcmp(ev->keyname, "KP_Down")))
      is_up = EINA_FALSE;
@@ -280,10 +330,8 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
    /* TODO: if direction setting via API is not coming in, replace
       these calls by flip_{next,prev} */
    _flipselector_walk(wd);
-   if (is_up)
-     _flip_up(wd);
-   else
-     _flip_down(wd);
+   if (is_up) _flip_up(wd);
+   else _flip_down(wd);
    _flipselector_unwalk(wd);
 
    ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
@@ -294,8 +342,7 @@ static void
 _on_focus_hook(void *data __UNUSED__, Evas_Object *obj)
 {
    Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd)
-     return;
+   if (!wd) return;
 
    /* FIXME: no treatment of this signal so far */
    if (elm_widget_focus_get(obj))
@@ -318,16 +365,13 @@ _sizing_eval(Evas_Object *obj)
    Evas_Coord minw = -1, minh = -1, w, h;
 
    wd = elm_widget_data_get(obj);
-   if (!wd)
-     return;
+   if (!wd) return;
 
    elm_coords_finger_size_adjust(1, &minw, 2, &minh);
 
    if (wd->sentinel)
      {
-        const char *label = \
-                            elm_flipselector_item_label_get(DATA_GET(wd->sentinel));
-
+        const char *label = elm_object_item_text_get(DATA_GET(wd->sentinel));
         tmp = edje_object_part_text_get(wd->base, "top");
         edje_object_part_text_set(wd->base, "top", label);
      }
@@ -336,8 +380,7 @@ _sizing_eval(Evas_Object *obj)
    elm_coords_finger_size_adjust(1, &minw, 2, &minh);
    evas_object_size_hint_min_get(obj, &w, &h);
 
-   if (wd->sentinel)
-     edje_object_part_text_set(wd->base, "top", tmp);
+   if (wd->sentinel) edje_object_part_text_set(wd->base, "top", tmp);
 
    if (w > minw) minw = w;
    if (h > minh) minh = h;
@@ -353,17 +396,14 @@ _update_view(Evas_Object *obj)
    Elm_Flipselector_Item *item;
 
    wd = elm_widget_data_get(obj);
-   if (!wd)
-     return;
+   if (!wd) return;
 
    label = NULL;
    item = DATA_GET(wd->current);
-   if (item)
-     label = item->label;
+   if (item) label = item->label;
 
    edje_object_part_text_set(wd->base, "top", label ? label : "");
    edje_object_part_text_set(wd->base, "bottom", label ? label : "");
-
    edje_object_message_signal_process(wd->base);
 }
 
@@ -373,8 +413,7 @@ _changed(Widget_Data *wd)
    Elm_Flipselector_Item *item;
 
    item = DATA_GET(wd->current);
-   if (!item)
-     return;
+   if (!item) return;
 
    if (item->func)
      item->func((void *)item->base.data, WIDGET(item), item);
@@ -399,8 +438,7 @@ _flip_up(Widget_Data *wd)
 {
    Elm_Flipselector_Item *item;
 
-   if (!wd->current)
-     return;
+   if (!wd->current) return;
 
    if (wd->current == wd->items)
      {
@@ -411,8 +449,7 @@ _flip_up(Widget_Data *wd)
      wd->current = eina_list_prev(wd->current);
 
    item = DATA_GET(wd->current);
-   if (!item)
-     return;
+   if (!item) return;
 
    _send_msg(wd, MSG_FLIP_UP, (char *)item->label);
 }
@@ -422,8 +459,7 @@ _signal_val_up(void *data)
 {
    Widget_Data *wd = elm_widget_data_get(data);
 
-   if (!wd)
-     goto val_up_exit_on_error;
+   if (!wd) goto val_up_exit_on_error;
 
    _flipselector_walk(wd);
 
@@ -446,13 +482,11 @@ static void
 _signal_val_up_start(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__)
 {
    Widget_Data *wd = elm_widget_data_get(data);
-   if (!wd)
-     return;
+   if (!wd) return;
 
    wd->interval = wd->first_interval;
 
-   if (wd->spin)
-     ecore_timer_del(wd->spin);
+   if (wd->spin) ecore_timer_del(wd->spin);
    wd->spin = ecore_timer_add(wd->interval, _signal_val_up, data);
 
    _signal_val_up(data);
@@ -463,8 +497,7 @@ _flip_down(Widget_Data *wd)
 {
    Elm_Flipselector_Item *item;
 
-   if (!wd->current)
-     return;
+   if (!wd->current) return;
 
    wd->current = eina_list_next(wd->current);
    if (!wd->current)
@@ -474,8 +507,7 @@ _flip_down(Widget_Data *wd)
      }
 
    item = DATA_GET(wd->current);
-   if (!item)
-     return;
+   if (!item) return;
 
    _send_msg(wd, MSG_FLIP_DOWN, (char *)item->label);
 }
@@ -485,8 +517,7 @@ _signal_val_down(void *data)
 {
    Widget_Data *wd = elm_widget_data_get(data);
 
-   if (!wd)
-     goto val_down_exit_on_error;
+   if (!wd) goto val_down_exit_on_error;
 
    _flipselector_walk(wd);
 
@@ -508,13 +539,11 @@ static void
 _signal_val_down_start(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__)
 {
    Widget_Data *wd = elm_widget_data_get(data);
-   if (!wd)
-     return;
+   if (!wd) return;
 
    wd->interval = wd->first_interval;
 
-   if (wd->spin)
-     ecore_timer_del(wd->spin);
+   if (wd->spin) ecore_timer_del(wd->spin);
    wd->spin = ecore_timer_add(wd->interval, _signal_val_down, data);
 
    _signal_val_down(data);
@@ -524,11 +553,9 @@ static void
 _signal_val_change_stop(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__)
 {
    Widget_Data *wd = elm_widget_data_get(data);
-   if (!wd)
-     return;
+   if (!wd) return;
 
-   if (wd->spin)
-     ecore_timer_del(wd->spin);
+   if (wd->spin) ecore_timer_del(wd->spin);
    wd->spin = NULL;
 }
 
@@ -589,8 +616,7 @@ elm_flipselector_flip_next(Evas_Object *obj)
    ELM_CHECK_WIDTYPE(obj, widtype);
 
    Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd)
-     return;
+   if (!wd) return;
 
    if (wd->spin) ecore_timer_del(wd->spin);
 
@@ -605,8 +631,7 @@ elm_flipselector_flip_prev(Evas_Object *obj)
    ELM_CHECK_WIDTYPE(obj, widtype);
 
    Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd)
-     return;
+   if (!wd) return;
 
    if (wd->spin) ecore_timer_del(wd->spin);
 
@@ -615,7 +640,7 @@ elm_flipselector_flip_prev(Evas_Object *obj)
    _flipselector_unwalk(wd);
 }
 
-EAPI Elm_Flipselector_Item *
+EAPI Elm_Object_Item *
 elm_flipselector_item_append(Evas_Object *obj, const char *label, void (*func)(void *data, Evas_Object *obj, void *event_info), void *data)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
@@ -624,22 +649,21 @@ elm_flipselector_item_append(Evas_Object *obj, const char *label, void (*func)(v
    Widget_Data *wd;
 
    wd = elm_widget_data_get(obj);
-   if (!wd)
-     return NULL;
+   if (!wd) return NULL;
 
    item = _item_new(obj, label, func, data);
-   if (!item)
-     return NULL;
+   if (!item) return NULL;
 
    wd->items = eina_list_append(wd->items, item);
-   if (!wd->current) {
+   if (!wd->current)
+     {
         wd->current = wd->items;
         _update_view(obj);
-   }
+     }
 
    if (!wd->sentinel ||
-       (strlen(elm_flipselector_item_label_get(item)) >
-        strlen(elm_flipselector_item_label_get(DATA_GET(wd->sentinel)))))
+       (strlen(elm_object_item_text_get((Elm_Object_Item *) item)) >
+        strlen(elm_object_item_text_get(DATA_GET(wd->sentinel)))))
      {
         wd->sentinel = eina_list_last(wd->items);
         _sizing_eval(obj);
@@ -648,10 +672,10 @@ elm_flipselector_item_append(Evas_Object *obj, const char *label, void (*func)(v
    if (eina_list_count(wd->items) >= 2)
      edje_object_signal_emit(wd->base, "elm,state,button,visible", "elm");
 
-   return item;
+   return (Elm_Object_Item *) item;
 }
 
-EAPI Elm_Flipselector_Item *
+EAPI Elm_Object_Item *
 elm_flipselector_item_prepend(Evas_Object *obj, const char *label, void (*func)(void *data, Evas_Object *obj, void *event_info), void *data)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
@@ -660,22 +684,21 @@ elm_flipselector_item_prepend(Evas_Object *obj, const char *label, void (*func)(
    Widget_Data *wd;
 
    wd = elm_widget_data_get(obj);
-   if (!wd)
-     return NULL;
+   if (!wd) return NULL;
 
    item = _item_new(obj, label, func, data);
-   if (!item)
-     return NULL;
+   if (!item) return NULL;
 
    wd->items = eina_list_prepend(wd->items, item);
-   if (!wd->current) {
+   if (!wd->current)
+     {
         wd->current = wd->items;
         _update_view(obj);
-   }
+     }
 
    if (!wd->sentinel ||
-       (strlen(elm_flipselector_item_label_get(item)) >
-        strlen(elm_flipselector_item_label_get(DATA_GET(wd->sentinel)))))
+       (strlen(elm_object_item_text_get((Elm_Object_Item *) item)) >
+        strlen(elm_object_item_text_get(DATA_GET(wd->sentinel)))))
      {
         wd->sentinel = wd->items;
         _sizing_eval(obj);
@@ -684,7 +707,7 @@ elm_flipselector_item_prepend(Evas_Object *obj, const char *label, void (*func)(
    if (eina_list_count(wd->items) >= 2)
      edje_object_signal_emit(wd->base, "elm,state,button,visible", "elm");
 
-   return item;
+   return (Elm_Object_Item *) item;
 }
 
 /* TODO: account for deleted items?  */
@@ -694,13 +717,11 @@ elm_flipselector_items_get(const Evas_Object *obj)
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
 
    Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd)
-     return NULL;
-
+   if (!wd) return NULL;
    return wd->items;
 }
 
-EAPI Elm_Flipselector_Item *
+EAPI Elm_Object_Item *
 elm_flipselector_first_item_get(const Evas_Object *obj)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
@@ -710,21 +731,17 @@ elm_flipselector_first_item_get(const Evas_Object *obj)
    Eina_List *l;
 
    wd = elm_widget_data_get(obj);
-   if (!wd || !wd->items)
-     return NULL;
+   if (!wd || !wd->items) return NULL;
 
    EINA_LIST_FOREACH(wd->items, l, it)
      {
-        if (it->deleted)
-          continue;
-
-        return it;
+        if (it->deleted) continue;
+        return (Elm_Object_Item *) it;
      }
-
    return NULL;
 }
 
-EAPI Elm_Flipselector_Item *
+EAPI Elm_Object_Item *
 elm_flipselector_last_item_get(const Evas_Object *obj)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
@@ -734,49 +751,42 @@ elm_flipselector_last_item_get(const Evas_Object *obj)
    Eina_List *l;
 
    wd = elm_widget_data_get(obj);
-   if (!wd || !wd->items)
-     return NULL;
+   if (!wd || !wd->items) return NULL;
 
    EINA_LIST_REVERSE_FOREACH(wd->items, l, it)
      {
-        if (it->deleted)
-          continue;
-
-        return it;
+        if (it->deleted) continue;
+        return (Elm_Object_Item *) it;
      }
-
    return NULL;
 }
 
-EAPI Elm_Flipselector_Item *
+EAPI Elm_Object_Item *
 elm_flipselector_selected_item_get(const Evas_Object *obj)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
 
    Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd || !wd->current)
-     return NULL;
-
+   if (!wd || !wd->current) return NULL;
    return DATA_GET(wd->current);
 }
 
 EAPI void
-elm_flipselector_item_selected_set(Elm_Flipselector_Item *item, Eina_Bool selected)
+elm_flipselector_item_selected_set(Elm_Object_Item *it, Eina_Bool selected)
 {
-   ELM_FLIPSELECTOR_ITEM_CHECK_DELETED_RETURN(item);
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
 
-   Elm_Flipselector_Item *_item, *cur;
+   Elm_Flipselector_Item *item, *_item, *cur;
    int flipside = MSG_FLIP_UP;
    Widget_Data *wd;
    Eina_List *l;
 
+   item = (Elm_Flipselector_Item *) it;
    wd = elm_widget_data_get(WIDGET(item));
-   if (!wd)
-     return;
+   if (!wd) return;
 
    cur = DATA_GET(wd->current);
-   if ((selected) && (cur == item))
-     return;
+   if ((selected) && (cur == item)) return;
 
    _flipselector_walk(wd);
 
@@ -797,8 +807,7 @@ elm_flipselector_item_selected_set(Elm_Flipselector_Item *item, Eina_Bool select
 
    EINA_LIST_FOREACH(wd->items, l, _item)
      {
-        if (_item == cur)
-          flipside = MSG_FLIP_DOWN;
+        if (_item == cur) flipside = MSG_FLIP_DOWN;
 
         if (_item == item)
           {
@@ -812,26 +821,29 @@ elm_flipselector_item_selected_set(Elm_Flipselector_Item *item, Eina_Bool select
 }
 
 EAPI Eina_Bool
-elm_flipselector_item_selected_get(const Elm_Flipselector_Item *item)
+elm_flipselector_item_selected_get(const Elm_Object_Item *it)
 {
-   ELM_FLIPSELECTOR_ITEM_CHECK_DELETED_RETURN(item, EINA_FALSE);
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it, EINA_FALSE);
    Widget_Data *wd;
+   Elm_Flipselector_Item *item;
 
+   item = (Elm_Flipselector_Item *) it;
    wd = elm_widget_data_get(WIDGET(item));
    if (!wd) return EINA_FALSE;
    return (eina_list_data_get(wd->current) == item);
 }
 
 EAPI void
-elm_flipselector_item_del(Elm_Flipselector_Item *item)
+elm_flipselector_item_del(Elm_Object_Item *it)
 {
-   ELM_FLIPSELECTOR_ITEM_CHECK_DELETED_RETURN(item);
-
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
    Widget_Data *wd;
+   Elm_Flipselector_Item *item, *item2;
+   Eina_List *l;
 
+   item = (Elm_Flipselector_Item *) it;
    wd = elm_widget_data_get(WIDGET(item));
-   if (!wd)
-     return;
+   if (!wd) return;
 
    if (wd->walking > 0)
      {
@@ -844,112 +856,64 @@ elm_flipselector_item_del(Elm_Flipselector_Item *item)
    wd->items = eina_list_remove(wd->items, item);
    _item_free(item);
    _sentinel_eval(wd);
-
    _flipselector_unwalk(wd);
 }
 
 EAPI const char *
-elm_flipselector_item_label_get(const Elm_Flipselector_Item *item)
+elm_flipselector_item_label_get(const Elm_Object_Item *it)
 {
-   ELM_FLIPSELECTOR_ITEM_CHECK_DELETED_RETURN(item, NULL);
-
-   Elm_Flipselector_Item *_item;
-   Widget_Data *wd;
-   Eina_List *l;
-
-   wd = elm_widget_data_get(WIDGET(item));
-   if ((!wd) || (!wd->items))
-     return NULL;
-
-   EINA_LIST_FOREACH(wd->items, l, _item)
-      if (_item == item)
-        return item->label;
-
-   return NULL;
+   return _item_text_get_hook(it, NULL);
 }
 
 EAPI void
-elm_flipselector_item_label_set(Elm_Flipselector_Item *item, const char *label)
+elm_flipselector_item_label_set(Elm_Object_Item *it, const char *label)
 {
-   ELM_FLIPSELECTOR_ITEM_CHECK_DELETED_RETURN(item);
-
-   Widget_Data *wd;
-   Eina_List *l;
-
-   if ((!item) || (!label))
-     return;
-
-   wd = elm_widget_data_get(WIDGET(item));
-   if ((!wd) || (!wd->items))
-     return;
-
-   l = eina_list_data_find_list(wd->items, item);
-   if (!l)
-     return;
-
-   eina_stringshare_del(item->label);
-   item->label = eina_stringshare_add_length(label, wd->max_len);
-
-   if (strlen(label) >
-       strlen(elm_flipselector_item_label_get(DATA_GET(wd->sentinel))))
-     wd->sentinel = l;
-
-   if (wd->current == l)
-     {
-        _update_view(WIDGET(item));
-        _sizing_eval(wd->self);
-     }
-
-   return;
+   _item_text_set_hook(it, NULL, label);
 }
 
-EAPI Elm_Flipselector_Item *
-elm_flipselector_item_prev_get(Elm_Flipselector_Item *item)
+EAPI Elm_Object_Item *
+elm_flipselector_item_prev_get(Elm_Object_Item *it)
 {
-   ELM_FLIPSELECTOR_ITEM_CHECK_DELETED_RETURN(item, NULL);
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
 
-   Elm_Flipselector_Item *_item;
+   Elm_Flipselector_Item *item, *_item;
    Widget_Data *wd;
    Eina_List *l;
 
+   item = (Elm_Flipselector_Item *) it;
    wd = elm_widget_data_get(WIDGET(item));
-   if ((!wd) || (!wd->items))
-     return NULL;
+   if ((!wd) || (!wd->items)) return NULL;
 
    EINA_LIST_FOREACH(wd->items, l, _item)
-      if (_item == item)
-        {
-           l = eina_list_prev(l);
-           if (!l)
-             return NULL;
-           return DATA_GET(l);
-        }
-
+     if (_item == item)
+       {
+          l = eina_list_prev(l);
+          if (!l) return NULL;
+          return DATA_GET(l);
+       }
    return NULL;
 }
 
-EAPI Elm_Flipselector_Item *
-elm_flipselector_item_next_get(Elm_Flipselector_Item *item)
+EAPI Elm_Object_Item *
+elm_flipselector_item_next_get(Elm_Object_Item *it)
 {
-   ELM_FLIPSELECTOR_ITEM_CHECK_DELETED_RETURN(item, NULL);
+   ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
 
-   Elm_Flipselector_Item *_item;
+   Elm_Flipselector_Item *item, *_item;
    Widget_Data *wd;
    Eina_List *l;
 
+   item = (Elm_Flipselector_Item *) it;
    wd = elm_widget_data_get(WIDGET(item));
-   if ((!wd) || (!wd->items))
-     return NULL;
+   if ((!wd) || (!wd->items)) return NULL;
 
    EINA_LIST_FOREACH(wd->items, l, _item)
-      if (_item == item)
-        {
-           l = eina_list_next(l);
-           if (!l)
-             return NULL;
-           return DATA_GET(l);
-        }
-
+     if (_item == item)
+       {
+          l = eina_list_next(l);
+          if (!l) return NULL;
+          return DATA_GET(l);
+       }
    return NULL;
 }
 
@@ -959,9 +923,7 @@ elm_flipselector_interval_set(Evas_Object *obj, double interval)
    ELM_CHECK_WIDTYPE(obj, widtype);
 
    Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd)
-     return;
-
+   if (!wd) return;
    wd->first_interval = interval;
 }
 
@@ -971,8 +933,6 @@ elm_flipselector_interval_get(const Evas_Object *obj)
    ELM_CHECK_WIDTYPE(obj, widtype) 0.0;
 
    Widget_Data *wd = elm_widget_data_get(obj);
-
-   if (!wd)
-     return 0.0;
+   if (!wd) return 0;
    return wd->first_interval;
 }
index 6aea4ef..af2f4be 100644 (file)
@@ -137,6 +137,10 @@ static const char SIG_SCROLL_ANIM_START[] = "scroll,anim,start";
 static const char SIG_SCROLL_ANIM_STOP[] = "scroll,anim,stop";
 static const char SIG_SCROLL_DRAG_START[] = "scroll,drag,start";
 static const char SIG_SCROLL_DRAG_STOP[] = "scroll,drag,stop";
+static const char SIG_EDGE_TOP[] = "edge,top";
+static const char SIG_EDGE_BOTTOM[] = "edge,bottom";
+static const char SIG_EDGE_LEFT[] = "edge,left";
+static const char SIG_EDGE_RIGHT[] = "edge,right";
 static const char SIG_MOVED[] = "moved";
 
 static const Evas_Smart_Cb_Description _signals[] = {
@@ -157,6 +161,10 @@ static const Evas_Smart_Cb_Description _signals[] = {
        {SIG_SCROLL_ANIM_STOP, ""},
        {SIG_SCROLL_DRAG_START, ""},
        {SIG_SCROLL_DRAG_STOP, ""},
+       {SIG_EDGE_TOP, ""},
+       {SIG_EDGE_BOTTOM, ""},
+       {SIG_EDGE_LEFT, ""},
+       {SIG_EDGE_RIGHT, ""},
        {SIG_MOVED, ""},
        {NULL, NULL}
 };
@@ -1612,6 +1620,39 @@ _scr_drag_stop(void            *data,
 }
 
 static void
+_edge_left(void        *data,
+           Evas_Object *scr __UNUSED__,
+           void        *event_info __UNUSED__)
+{
+   evas_object_smart_callback_call(data, SIG_EDGE_LEFT, NULL);
+}
+
+static void
+_edge_right(void        *data,
+            Evas_Object *scr __UNUSED__,
+            void        *event_info __UNUSED__)
+{
+   evas_object_smart_callback_call(data, SIG_EDGE_RIGHT, NULL);
+}
+
+static void
+_edge_top(void        *data,
+          Evas_Object *scr __UNUSED__,
+          void        *event_info __UNUSED__)
+{
+   evas_object_smart_callback_call(data, SIG_EDGE_TOP, NULL);
+}
+
+static void
+_edge_bottom(void        *data,
+             Evas_Object *scr __UNUSED__,
+             void        *event_info __UNUSED__)
+{
+   evas_object_smart_callback_call(data, SIG_EDGE_BOTTOM, NULL);
+}
+
+
+static void
 _scr_scroll(void            *data,
             Evas_Object *obj __UNUSED__,
             void *event_info __UNUSED__)
@@ -1670,6 +1711,10 @@ elm_gengrid_add(Evas_Object *parent)
    evas_object_smart_callback_add(wd->scr, "animate,stop", _scr_anim_stop, obj);
    evas_object_smart_callback_add(wd->scr, "drag,start", _scr_drag_start, obj);
    evas_object_smart_callback_add(wd->scr, "drag,stop", _scr_drag_stop, obj);
+   evas_object_smart_callback_add(wd->scr, "edge,left", _edge_left, obj);
+   evas_object_smart_callback_add(wd->scr, "edge,right", _edge_right, obj);
+   evas_object_smart_callback_add(wd->scr, "edge,top", _edge_top, obj);
+   evas_object_smart_callback_add(wd->scr, "edge,bottom", _edge_bottom, obj);
    evas_object_smart_callback_add(wd->scr, "scroll", _scr_scroll, obj);
 
    elm_smart_scroller_bounce_allow_set(wd->scr, bounce, bounce);
index 7bbf256..50b2342 100644 (file)
@@ -4336,41 +4336,52 @@ elm_genlist_item_subitems_clear(Elm_Genlist_Item *it)
    ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(it);
    Widget_Data *wd = elm_widget_data_get(WIDGET(it));
    if (!wd) return;
-   Elm_Genlist_Item *it2;
+   Elm_Genlist_Item *it2, *it3;
    Evas_Coord y, h;
 
-   if (!it->wd->effect_mode || !it->wd->move_effect_mode)
+   if (!wd->effect_mode || !wd->move_effect_mode)
       _item_subitems_clear(it);
    else
      {
-        if ((!it->wd->item_moving_effect_timer) && (it->flags != ELM_GENLIST_ITEM_GROUP) &&
-             it->wd->move_effect_mode != ELM_GENLIST_ITEM_MOVE_EFFECT_DELETE   )
+        if ((!wd->item_moving_effect_timer) && (it->flags != ELM_GENLIST_ITEM_GROUP) &&
+             wd->move_effect_mode != ELM_GENLIST_ITEM_MOVE_EFFECT_DELETE)
           {
-             it->wd->expand_item = it;
+             wd->expand_item = it;
              _item_flip_effect_show(it);
              evas_object_geometry_get(VIEW(it), NULL, &y, NULL, &h);
-             it->wd->expand_item_end = y + h;
+             wd->expand_item_end = y + h;
 
-              it2= it;
+             it2= it;
              do {
                   it2 = elm_genlist_item_next_get(it2);
                   if (!it2) break;
              } while (it2->expanded_depth > it->expanded_depth);
              if (it2)
                {
+                  int diff;
                   Evas_Coord vy, vh;
                   evas_output_viewport_get(evas_object_evas_get(wd->pan_smart), NULL, &vy, NULL, &vh);
-                  it2->old_scrl_y = ((it2->old_scrl_y > vy + vh) ? vy + vh : it2->old_scrl_y);
-                  it->wd->expand_item_gap = it->wd->expand_item_end - it2->old_scrl_y;
+                  diff = it2->old_scrl_y - (vy + vh);
+                  if (diff > 0)
+                    {
+                       it3 = it2;
+                       while (it3)
+                         {
+                            it3->old_scrl_y = it3->old_scrl_y - diff;
+                            it3 = elm_genlist_item_next_get(it3);
+                         }
+                    }
+
+                  wd->expand_item_gap = wd->expand_item_end - it2->old_scrl_y;
                }
              else
-                it->wd->expand_item_gap = 0;
+                wd->expand_item_gap = 0;
 
-             evas_object_raise(it->wd->alpha_bg);
-             evas_object_show(it->wd->alpha_bg);
+             evas_object_raise(wd->alpha_bg);
+             evas_object_show(wd->alpha_bg);
 
-             it->wd->start_time = current_time_get();
-             it->wd->item_moving_effect_timer = ecore_animator_add(_item_moving_effect_timer_cb, it->wd);
+             wd->start_time = current_time_get();
+             wd->item_moving_effect_timer = ecore_animator_add(_item_moving_effect_timer_cb, wd);
           }
         else
            _item_subitems_clear(it);
@@ -5517,7 +5528,6 @@ _emit_contract(Elm_Genlist_Item *it)
    Elm_Genlist_Item *it2;
    Eina_List *l;
 
-   //   printf("%p is emited contract\n", it);
    edje_object_signal_emit(VIEW(it), "elm,state,contract_flip", "");
    it->effect_done = EINA_FALSE;
 
@@ -5533,14 +5543,7 @@ _item_flip_effect_show(Elm_Genlist_Item *it)
    Elm_Genlist_Item *it2;
    Eina_List *l;
    Widget_Data *wd = it->wd;
-   Eina_Bool check = EINA_FALSE;
 
-   it2 = elm_genlist_item_next_get(it);
-   while (it2)
-     {
-        if (it2->expanded_depth <= it->expanded_depth) check = EINA_TRUE;
-        it2 = elm_genlist_item_next_get(it2);
-     }
    EINA_LIST_FOREACH(it->items, l, it2)
      {
         if (it2->parent && it == it2->parent)
index 4104bb5..3f22bc2 100644 (file)
@@ -1,20 +1,8 @@
-/*
-*
-* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
-*/
 #include <stdio.h>
 #include <math.h>
 #include <Elementary.h>
 #include "elm_priv.h"
 
-/**
-* @defgroup Imageslider Imageslider
-* @ingroup Elementary
-*
-* By flicking images on the screen,
-* you can see the images in specific path.
-*/
-
 typedef struct _Widget_Data Widget_Data;
 
 #define ANI_STEP (14 * elm_scale_get())
@@ -140,7 +128,6 @@ _del_hook(Evas_Object *obj)
      }
 
    if (wd) free(wd);
-
 }
 
 // Whenever require processing theme, Call this function
@@ -178,7 +165,6 @@ _sizing_eval(Evas_Object *obj)
 
    _imageslider_move(obj, e, obj, NULL);
    _imageslider_resize(obj, e, obj, NULL);
-
 }
 
 // Whenever MOVE event occurs, Call this function.
@@ -201,7 +187,6 @@ _imageslider_move(void *data, Evas * e __UNUSED__, Evas_Object *obj, void *event
    wd->y = y;
 
    _imageslider_update_pos(wd, wd->x, wd->y, wd->w);
-
 }
 
 // Whenever RESIZE event occurs, Call this fucntion.
@@ -285,7 +270,7 @@ _imageslider_obj_shift(Widget_Data * wd, Eina_Bool left)
         wd->ly[BLOCK_LEFT] = wd->ly[BLOCK_CENTER];
         wd->ly[BLOCK_CENTER] = wd->ly[BLOCK_RIGHT];
         wd->ly[BLOCK_RIGHT] = ly_temp;
-        elm_object_content_part_set(wd->ly[BLOCK_RIGHT], "swl.photo", NULL);
+        elm_object_part_content_set(wd->ly[BLOCK_RIGHT], "swl.photo", NULL);
      }
    else
      {
@@ -294,7 +279,7 @@ _imageslider_obj_shift(Widget_Data * wd, Eina_Bool left)
         wd->ly[BLOCK_RIGHT] = wd->ly[BLOCK_CENTER];
         wd->ly[BLOCK_CENTER] = wd->ly[BLOCK_LEFT];
         wd->ly[BLOCK_LEFT] = ly_temp;
-        elm_object_content_part_set(wd->ly[BLOCK_LEFT], "swl.photo", NULL);
+        elm_object_part_content_set(wd->ly[BLOCK_LEFT], "swl.photo", NULL);
      }
 }
 
@@ -504,14 +489,14 @@ _check_drag(int state, void *data)
 
    it = eina_list_data_get(l[state]);
 
-   eo = (Evas_Object*)elm_object_content_part_get(wd->ly[state], "swl.photo");
+   eo = elm_object_part_content_get(wd->ly[state], "swl.photo");
    if (eo)
      evas_object_geometry_get(eo, &ix, &iy, &iw, &ih);
    edje_object_part_drag_value_get(elm_layout_edje_get(wd->ly[state]), "swl.photo", &dx, &dy);
 
    if ((iw != wd->w) || ((dx != 0) || (dy != 0)))
      {
-        elm_object_content_part_set(wd->ly[state], "swl.photo", NULL);
+        elm_object_part_content_set(wd->ly[state], "swl.photo", NULL);
      }
    else
      return 1;
@@ -630,10 +615,10 @@ _imageslider_update(Widget_Data * wd)
 
    for (i = 0; i < BLOCK_MAX; i++)
      {
-        eo = (Evas_Object*)elm_object_content_part_get((const Evas_Object*)wd->ly[i], "swl.photo");
+        eo = elm_object_part_content_get((const Evas_Object*)wd->ly[i], "swl.photo");
         if (!l[i])
           {
-             elm_object_content_part_set(wd->ly[i], "swl.photo", NULL);
+             elm_object_part_content_set(wd->ly[i], "swl.photo", NULL);
           }
         else
           {
@@ -646,21 +631,13 @@ _imageslider_update(Widget_Data * wd)
                   eo = elm_image_add(wd->obj);
                   //elm_image_prescale_set(eo, wd->w);
                   elm_image_file_set(eo, it->photo_file, NULL);
-                  elm_object_content_part_set(wd->ly[i], "swl.photo", eo);
+                  elm_object_part_content_set(wd->ly[i], "swl.photo", eo);
                }
           }
      }
    _anim(wd);
 }
 
-/**
-* Add an Image Slider widget
-*
-* @param        parent  The parent object
-* @return       The new Image slider object or NULL if it cannot be created
-*
-* @ingroup Imageslider
-*/
 EAPI Evas_Object *
 elm_imageslider_add(Evas_Object *parent)
 {
@@ -707,17 +684,6 @@ elm_imageslider_add(Evas_Object *parent)
    return obj;
 }
 
-/**
-* Append an Image Slider item
-*
-* @param        obj          The Image Slider object
-* @param        photo_file   photo file path
-* @param        func         callback function
-* @param        data         callback data
-* @return       The Image Slider item handle or NULL
-*
-* @ingroup Imageslider
-*/
 EAPI Elm_Imageslider_Item *
 elm_imageslider_item_append(Evas_Object *obj, const char *photo_file, Elm_Imageslider_Cb func, void *data)
 {
@@ -744,18 +710,6 @@ elm_imageslider_item_append(Evas_Object *obj, const char *photo_file, Elm_Images
    return it;
 }
 
-/**
-* Insert an Image Slider item into the Image Slider Widget by using the given index.
-*
-* @param        obj                     The Image Slider object
-* @param        photo_file      photo file path
-* @param        func            callback function
-* @param        index           required position
-* @param        data            callback data
-* @return       The Image Slider item handle or NULL
-*
-* @ingroup      Imageslider
-*/
 EAPI Elm_Imageslider_Item *
 elm_imageslider_item_append_relative(Evas_Object *obj, const char *photo_file, Elm_Imageslider_Cb func, unsigned int index, void *data)
 {
@@ -787,17 +741,6 @@ elm_imageslider_item_append_relative(Evas_Object *obj, const char *photo_file, E
    return it;
 }
 
-/**
-* Prepend Image Slider item
-*
-* @param        obj          The Image Slider object
-* @param        photo_file   photo file path
-* @param        func         callback function
-* @param        data         callback data
-* @return       The imageslider item handle or NULL
-*
-* @ingroup Imageslider
-*/
 EAPI Elm_Imageslider_Item *
 elm_imageslider_item_prepend(Evas_Object *obj, const char *photo_file, Elm_Imageslider_Cb func, void *data)
 {
@@ -821,13 +764,6 @@ elm_imageslider_item_prepend(Evas_Object *obj, const char *photo_file, Elm_Image
    return it;
 }
 
-/**
-* Delete the selected Image Slider item
-*
-* @param it             The selected Image Slider item handle
-*
-* @ingroup Imageslider
-*/
 EAPI void
 elm_imageslider_item_del(Elm_Imageslider_Item * it)
 {
@@ -855,14 +791,6 @@ elm_imageslider_item_del(Elm_Imageslider_Item * it)
    _imageslider_update(wd);
 }
 
-/**
-* Get the selected Image Slider item
-*
-* @param obj            The Image Slider object
-* @return The selected Image Slider item or NULL
-*
-* @ingroup Imageslider
-*/
 EAPI Elm_Imageslider_Item *
 elm_imageslider_selected_item_get(Evas_Object *obj)
 {
@@ -878,14 +806,6 @@ elm_imageslider_selected_item_get(Evas_Object *obj)
    return eina_list_data_get(wd->cur);
 }
 
-/**
-* Get whether an Image Slider item is selected or not
-*
-* @param it              the selected Image Slider item
-* @return EINA_TRUE or EINA_FALSE
-*
-* @ingroup Imageslider
-*/
 EAPI Eina_Bool
 elm_imageslider_item_selected_get(Elm_Imageslider_Item * it)
 {
@@ -903,13 +823,6 @@ elm_imageslider_item_selected_get(Elm_Imageslider_Item * it)
       return EINA_FALSE;
 }
 
-/**
-* Set the selected Image Slider item
-*
-* @param it             The Imaga Slider item
-*
-* @ingroup Imageslider
-*/
 EAPI void
 elm_imageslider_item_selected_set(Elm_Imageslider_Item * it)
 {
@@ -934,21 +847,13 @@ elm_imageslider_item_selected_set(Elm_Imageslider_Item * it)
 
    for (i = 0; i < BLOCK_MAX; i++)
      {
-       eo = (Evas_Object*)elm_object_content_part_get(wd->ly[i], "swl.photo");
+       eo = elm_object_part_content_get(wd->ly[i], "swl.photo");
        if (eo)
-         elm_object_content_part_set(wd->ly[i], "swl.photo", NULL);
+         elm_object_part_content_set(wd->ly[i], "swl.photo", NULL);
      }
    _imageslider_update(wd);
 }
 
-/**
-* Get the photo file path of given Image Slider item
-*
-* @param it             The Image Slider item
-* @return The photo file path or NULL;
-*
-* @ingroup Imageslider
-*/
 EAPI const char *
 elm_imageslider_item_photo_file_get(Elm_Imageslider_Item * it)
 {
@@ -957,14 +862,6 @@ elm_imageslider_item_photo_file_get(Elm_Imageslider_Item * it)
    return it->photo_file;
 }
 
-/**
-* Sets the photo file path of given Image Slider item
-*
-* @param it         The Image Slider item
-* @param photo_file The photo file path or NULL;
-*
-* @ingroup Imageslider
-*/
 EAPI void
 elm_imageslider_item_photo_file_set(Elm_Imageslider_Item *it, const char *photo_file)
 {
@@ -978,14 +875,6 @@ elm_imageslider_item_photo_file_set(Elm_Imageslider_Item *it, const char *photo_
      }
 }
 
-/**
-* Get the previous Image Slider item
-*
-* @param it             The Image Slider item
-* @return The previous Image Slider item or NULL
-*
-* @ingroup Imageslider
-*/
 EAPI Elm_Imageslider_Item *
 elm_imageslider_item_prev(Elm_Imageslider_Item * it)
 {
@@ -1011,14 +900,6 @@ elm_imageslider_item_prev(Elm_Imageslider_Item * it)
    return NULL;
 }
 
-/**
-* Get the next Image Slider item
-*
-* @param it             The Image Slider item
-* @return The next Image Slider item or NULL
-*
-* @ingroup Imageslider
-*/
 EAPI Elm_Imageslider_Item *
 elm_imageslider_item_next(Elm_Imageslider_Item * it)
 {
@@ -1044,13 +925,6 @@ elm_imageslider_item_next(Elm_Imageslider_Item * it)
    return NULL;
 }
 
-/**
-* Move to the previous Image Slider item
-*
-* @param obj    The Image Slider object
-*
-* @ingroup Imageslider
-*/
 EAPI void
 elm_imageslider_prev(Evas_Object *obj)
 {
@@ -1064,13 +938,6 @@ elm_imageslider_prev(Evas_Object *obj)
    _imageslider_obj_move(wd, -1);
 }
 
-/**
-* Move to the next Image Slider item
-*
-* @param obj The Image Slider object
-*
-* @ingroup Imageslider
-*/
 EAPI void
 elm_imageslider_next(Evas_Object * obj)
 {
@@ -1084,13 +951,6 @@ elm_imageslider_next(Evas_Object * obj)
    _imageslider_obj_move(wd, 1);
 }
 
-/**
-* Updates an Image Slider item
-*
-* @param it The Image Slider item
-*
-* @ingroup Imageslider
-*/
 EAPI void
 elm_imageslider_item_update(Elm_Imageslider_Item *it)
 {
@@ -1101,10 +961,10 @@ elm_imageslider_item_update(Elm_Imageslider_Item *it)
 
    if (wd->ani_lock) return;
    if (it == eina_list_data_get(eina_list_prev(wd->cur)))
-     elm_object_content_part_set(wd->ly[BLOCK_LEFT], "swl.photo", NULL);
+     elm_object_part_content_set(wd->ly[BLOCK_LEFT], "swl.photo", NULL);
    else if (it == eina_list_data_get(wd->cur))
-     elm_object_content_part_set(wd->ly[BLOCK_CENTER], "swl.photo", NULL);
+     elm_object_part_content_set(wd->ly[BLOCK_CENTER], "swl.photo", NULL);
    else if (it == eina_list_data_get(eina_list_next(wd->cur)))
-     elm_object_content_part_set(wd->ly[BLOCK_RIGHT], "swl.photo", NULL);
+     elm_object_part_content_set(wd->ly[BLOCK_RIGHT], "swl.photo", NULL);
    _imageslider_update(wd);
 }
index d7acc84..4cc2453 100644 (file)
@@ -918,6 +918,10 @@ elm_object_mirrored_automatic_set(Evas_Object *obj, Eina_Bool automatic)
    elm_widget_mirrored_automatic_set(obj, automatic);
 }
 
+/**
+ * @}
+ */
+
 EAPI void
 elm_object_scale_set(Evas_Object *obj,
                      double       scale)
@@ -2121,7 +2125,7 @@ elm_object_signal_emit(Evas_Object *obj,
 }
 
 EAPI void
-elm_object_signal_callback_add(Evas_Object *obj, const char *emission, const char *source, void (*func) (void *data, Evas_Object *o, const char *emission, const char *source), void *data)
+elm_object_signal_callback_add(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data)
 {
     EINA_SAFETY_ON_NULL_RETURN(obj);
     EINA_SAFETY_ON_NULL_RETURN(func);
@@ -2129,7 +2133,7 @@ elm_object_signal_callback_add(Evas_Object *obj, const char *emission, const cha
 }
 
 EAPI void *
-elm_object_signal_callback_del(Evas_Object *obj, const char *emission, const char *source, void (*func) (void *data, Evas_Object *o, const char *emission, const char *source))
+elm_object_signal_callback_del(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func)
 {
     EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
     EINA_SAFETY_ON_NULL_RETURN_VAL(func, NULL);
@@ -2201,20 +2205,41 @@ elm_object_item_content_part_set(Elm_Object_Item *it,
                                  const char *part,
                                  Evas_Object *content)
 {
-   elm_widget_item_content_part_set(it, part, content);
+   _elm_widget_item_content_part_set((Elm_Widget_Item *) it, part, content);
+}
+
+EAPI void
+elm_object_item_part_content_set(Elm_Object_Item *it,
+                                 const char *part,
+                                 Evas_Object *content)
+{
+   _elm_widget_item_content_part_set((Elm_Widget_Item *) it, part, content);
 }
 
 EAPI Evas_Object *
 elm_object_item_content_part_get(const Elm_Object_Item *it,
                                  const char *part)
 {
-   return elm_widget_item_content_part_get(it, part);
+   return _elm_widget_item_content_part_get((Elm_Widget_Item *) it, part);
+}
+
+EAPI Evas_Object *
+elm_object_item_part_content_get(const Elm_Object_Item *it,
+                                 const char *part)
+{
+   return _elm_widget_item_content_part_get((Elm_Widget_Item *) it, part);
 }
 
 EAPI Evas_Object *
 elm_object_item_content_part_unset(Elm_Object_Item *it, const char *part)
 {
-   return elm_widget_item_content_part_unset(it, part);
+   return _elm_widget_item_content_part_unset((Elm_Widget_Item *) it, part);
+}
+
+EAPI Evas_Object *
+elm_object_item_part_content_unset(Elm_Object_Item *it, const char *part)
+{
+   return _elm_widget_item_content_part_unset((Elm_Widget_Item *) it, part);
 }
 
 EAPI void
@@ -2222,13 +2247,39 @@ elm_object_item_text_part_set(Elm_Object_Item *it,
                               const char *part,
                               const char *label)
 {
-   elm_widget_item_text_part_set(it, part, label);
+   _elm_widget_item_text_part_set((Elm_Widget_Item *) it, part, label);
+}
+
+EAPI void
+elm_object_item_part_text_set(Elm_Object_Item *it,
+                              const char *part,
+                              const char *label)
+{
+   _elm_widget_item_text_part_set((Elm_Widget_Item *) it, part, label);
 }
 
 EAPI const char *
 elm_object_item_text_part_get(const Elm_Object_Item *it, const char *part)
 {
-   return elm_widget_item_text_part_get(it, part);
+   return _elm_widget_item_text_part_get((Elm_Widget_Item *) it, part);
+}
+
+EAPI const char *
+elm_object_item_part_text_get(const Elm_Object_Item *it, const char *part)
+{
+   return _elm_widget_item_text_part_get((Elm_Widget_Item *) it, part);
+}
+
+EAPI void
+elm_object_access_info_set(Evas_Object *obj, const char *txt)
+{
+   elm_widget_access_info_set(obj, txt);
+}
+
+EAPI void
+elm_object_item_access_info_set(Elm_Object_Item *it, const char *txt)
+{
+   _elm_widget_item_access_info_set((Elm_Widget_Item *) it, txt);
 }
 
 EAPI void *
@@ -2246,18 +2297,16 @@ elm_object_item_data_set(Elm_Object_Item *it, void *data)
 EAPI void
 elm_object_item_signal_emit(Elm_Object_Item *it, const char *emission, const char *source)
 {
-   elm_widget_item_signal_emit(it, emission, source);
+   _elm_widget_item_signal_emit((Elm_Widget_Item *) it, emission, source);
 }
 
-EAPI void
-elm_object_access_info_set(Evas_Object *obj, const char *txt)
+EAPI void elm_object_item_disabled_set(Elm_Object_Item *it, Eina_Bool disabled)
 {
-   elm_widget_access_info_set(obj, txt);
+   _elm_widget_item_disabled_set((Elm_Widget_Item *) it, disabled);
 }
 
-EAPI void
-elm_object_item_access_info_set(Elm_Object_Item *it, const char *txt)
+EAPI Eina_Bool elm_object_item_disabled_get(const Elm_Object_Item *it)
 {
-   _elm_widget_item_access_info_set((Elm_Widget_Item *)it, txt);
+   return _elm_widget_item_disabled_get((Elm_Widget_Item *) it);
 }
 
index 9d7acd5..01b24b3 100644 (file)
@@ -6,6 +6,8 @@
 #include "elm_priv.h"
 #include "els_scroller.h"
 
+#ifdef HAVE_ELEMENTARY_ECORE_CON
+
 typedef struct _Widget_Data Widget_Data;
 typedef struct _Pan Pan;
 typedef struct _Grid Grid;
@@ -1240,7 +1242,7 @@ _process_download_list(Evas_Object *obj)
 {
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
-   Eina_List *l;
+   Eina_List *l, *ll;
    Evas_Coord ox, oy, ow, oh, cvx, cvy, cvw, cvh, tx, ty, gw, gh, xx, yy, ww, hh;
    Grid_Item *gi;
 
@@ -1250,7 +1252,7 @@ _process_download_list(Evas_Object *obj)
    gw = wd->size.w;
    gh = wd->size.h;
 
-   EINA_LIST_FOREACH(wd->download_list, l, gi)
+   EINA_LIST_FOREACH_SAFE(wd->download_list, l, ll, gi)
      {
         xx = gi->out.x;
         yy = gi->out.y;
@@ -1279,7 +1281,7 @@ _process_download_list(Evas_Object *obj)
           }
      }
 
-   EINA_LIST_REVERSE_FOREACH(wd->download_list, l, gi)
+   EINA_LIST_REVERSE_FOREACH_SAFE(wd->download_list, l, ll, gi)
      {
         if (gi->wd->download_num >= MAX_CONCURRENT_DOWNLOAD)
           break;
@@ -1318,22 +1320,13 @@ grid_create(Evas_Object *obj)
 
    if ((!wd) || (!wd->src)) return NULL;
    g = calloc(1, sizeof(Grid));
-   if (!g) return NULL;
 
    g->zoom = wd->zoom;
    g->tsize = wd->tsize;
    g->wd = wd;
 
-   if (g->zoom > wd->src->zoom_max)
-     {
-        free(g);
-        return NULL;
-     }
-   if (g->zoom < wd->src->zoom_min)
-     {
-        free(g);
-        return NULL;
-     }
+   if (g->zoom > wd->src->zoom_max) return NULL;
+   if (g->zoom < wd->src->zoom_min) return NULL;
 
    int size =  pow(2.0, wd->zoom);
    g->gw = size;
@@ -2933,15 +2926,14 @@ _parse_kml(void *data)
              char *buf;
 
              fseek(f, 0, SEEK_SET);
-             buf = malloc(sz + 1);
+             buf = malloc(sz);
              if (buf)
                {
-                  memset(buf, 0, sz + 1);
                   if (fread(buf, 1, sz, f))
                     {
                        eina_simple_xml_parse(buf, sz, EINA_TRUE, cb_route_dump, &dump);
+                       free(buf);
                     }
-                  free(buf);
                }
           }
         fclose(f);
@@ -3026,15 +3018,14 @@ _parse_name(void *data)
              char *buf;
 
              fseek(f, 0, SEEK_SET);
-             buf = malloc(sz + 1);
+             buf = malloc(sz);
              if (buf)
                {
-                  memset(buf, 0, sz + 1);
                   if (fread(buf, 1, sz, f))
                     {
                        eina_simple_xml_parse(buf, sz, EINA_TRUE, cb_name_dump, &dump);
+                       free(buf);
                     }
-                  free(buf);
                }
           }
         fclose(f);
@@ -3158,9 +3149,12 @@ _utils_convert_name(const Evas_Object *obj, int method, char *address, double lo
 
 static int idnum = 1;
 
+#endif
+
 EAPI Evas_Object *
 elm_map_add(Evas_Object *parent)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    Evas *e;
    Widget_Data *wd;
    Evas_Coord minw, minh;
@@ -3291,11 +3285,16 @@ elm_map_add(Evas_Object *parent)
      }
 
    return obj;
+#else
+   (void) parent;
+   return NULL;
+#endif
 }
 
 EAPI void
 elm_map_zoom_set(Evas_Object *obj, int zoom)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
    Eina_List *l;
@@ -3437,21 +3436,31 @@ elm_map_zoom_set(Evas_Object *obj, int zoom)
      }
 
    if (zoom_changed) evas_object_smart_callback_call(obj, SIG_ZOOM_CHANGE, NULL);
+#else
+   (void) obj;
+   (void) zoom;
+#endif
 }
 
 EAPI int
 elm_map_zoom_get(const Evas_Object *obj)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype) 0;
    Widget_Data *wd = elm_widget_data_get(obj);
 
    if (!wd) return 0;
    return wd->zoom;
+#else
+   (void) obj;
+   return 0;
+#endif
 }
 
 EAPI void
 elm_map_zoom_mode_set(Evas_Object *obj, Elm_Map_Zoom_Mode mode)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
 
@@ -3465,21 +3474,31 @@ elm_map_zoom_mode_set(Evas_Object *obj, Elm_Map_Zoom_Mode mode)
         wd->zoom = 0;
         elm_map_zoom_set(wd->obj, tz);
      }
+#else
+   (void) obj;
+   (void) mode;
+#endif
 }
 
 EAPI Elm_Map_Zoom_Mode
 elm_map_zoom_mode_get(const Evas_Object *obj)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype) ELM_MAP_ZOOM_MODE_MANUAL;
    Widget_Data *wd = elm_widget_data_get(obj);
 
    if (!wd) return ELM_MAP_ZOOM_MODE_MANUAL;
    return wd->mode;
+#else
+   (void) obj;
+   return ELM_MAP_ZOOM_MODE_MANUAL;
+#endif
 }
 
 EAPI void
 elm_map_geo_region_bring_in(Evas_Object *obj, double lon, double lat)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
    int rx, ry, rw, rh;
@@ -3505,11 +3524,17 @@ elm_map_geo_region_bring_in(Evas_Object *obj, double lon, double lat)
    wd->center_on.enabled = EINA_TRUE;
    wd->center_on.lon = lon;
    wd->center_on.lat = lat;
+#else
+   (void) obj;
+   (void) lon;
+   (void) lat;
+#endif
 }
 
 EAPI void
 elm_map_geo_region_show(Evas_Object *obj, double lon, double lat)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
    int rx, ry, rw, rh;
@@ -3534,11 +3559,17 @@ elm_map_geo_region_show(Evas_Object *obj, double lon, double lat)
    wd->center_on.enabled = EINA_TRUE;
    wd->center_on.lon = lon;
    wd->center_on.lat = lat;
+#else
+   (void) obj;
+   (void) lon;
+   (void) lat;
+#endif
 }
 
 EAPI void
 elm_map_geo_region_get(const Evas_Object *obj, double *lon, double *lat)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
    Evas_Coord sx, sy, sw, sh;
@@ -3550,11 +3581,17 @@ elm_map_geo_region_get(const Evas_Object *obj, double *lon, double *lat)
    sy += sh / 2;
 
    elm_map_utils_convert_coord_into_geo(obj, sx, sy, wd->size.w, lon, lat);
+#else
+   (void) obj;
+   (void) lon;
+   (void) lat;
+#endif
 }
 
 EAPI void
 elm_map_paused_set(Evas_Object *obj, Eina_Bool paused)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
 
@@ -3571,42 +3608,62 @@ elm_map_paused_set(Evas_Object *obj, Eina_Bool paused)
              evas_object_smart_callback_call(obj, SIG_ZOOM_STOP, NULL);
           }
      }
+#else
+   (void) obj;
+   (void) paused;
+#endif
 }
 
 EAPI void
 elm_map_paused_markers_set(Evas_Object *obj, Eina_Bool paused)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
 
    if (!wd) return;
    if (wd->paused_markers == !!paused) return;
    wd->paused_markers = paused;
+#else
+   (void) obj;
+   (void) paused;
+#endif
 }
 
 EAPI Eina_Bool
 elm_map_paused_get(const Evas_Object *obj)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
    Widget_Data *wd = elm_widget_data_get(obj);
 
    if (!wd) return EINA_FALSE;
    return wd->paused;
+#else
+   (void) obj;
+   return EINA_FALSE;
+#endif
 }
 
 EAPI Eina_Bool
 elm_map_paused_markers_get(const Evas_Object *obj)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
    Widget_Data *wd = elm_widget_data_get(obj);
 
    if (!wd) return EINA_FALSE;
    return wd->paused_markers;
+#else
+   (void) obj;
+   return EINA_FALSE;
+#endif
 }
 
 EAPI void
 elm_map_utils_downloading_status_get(const Evas_Object *obj, int *try_num, int *finish_num)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
 
@@ -3620,11 +3677,17 @@ elm_map_utils_downloading_status_get(const Evas_Object *obj, int *try_num, int *
      {
         *finish_num = wd->finish_num;
      }
+#else
+   (void) obj;
+   (void) try_num;
+   (void) finish_num;
+#endif
 }
 
 EAPI void
 elm_map_utils_convert_coord_into_geo(const Evas_Object *obj, int x, int y, int size, double *lon, double *lat)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
 
@@ -3644,11 +3707,20 @@ elm_map_utils_convert_coord_into_geo(const Evas_Object *obj, int x, int y, int s
         double n = ELM_PI - 2.0 * ELM_PI * y / size;
         *lat = 180.0 / ELM_PI * atan(0.5 * (exp(n) - exp(-n)));
      }
+#else
+   (void) obj;
+   (void) x;
+   (void) y;
+   (void) size;
+   (void) lon;
+   (void) lat;
+#endif
 }
 
 EAPI void
 elm_map_utils_convert_geo_into_coord(const Evas_Object *obj, double lon, double lat, int size, int *x, int *y)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
 
@@ -3663,26 +3735,48 @@ elm_map_utils_convert_geo_into_coord(const Evas_Object *obj, double lon, double
      *x = floor((lon + 180.0) / 360.0 * size);
    if (y)
      *y = floor((1.0 - log( tan(lat * ELM_PI / 180.0) + 1.0 / cos(lat * ELM_PI / 180.0)) / ELM_PI) / 2.0 * size);
+#else
+   (void) obj;
+   (void) lon;
+   (void) lat;
+   (void) size;
+   (void) x;
+   (void) y;
+#endif
 }
 
 EAPI Elm_Map_Name *
 elm_map_utils_convert_coord_into_name(const Evas_Object *obj, double lon, double lat)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    return _utils_convert_name(obj, ELM_MAP_NAME_METHOD_REVERSE, NULL, lon, lat);
+#else
+   (void) obj;
+   (void) lon;
+   (void) lat;
+   return NULL;
+#endif
 }
 
 EAPI Elm_Map_Name *
 elm_map_utils_convert_name_into_coord(const Evas_Object *obj, char *address)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    if (!address) return NULL;
    return _utils_convert_name(obj, ELM_MAP_NAME_METHOD_SEARCH, address, 0.0, 0.0);
+#else
+   (void) obj;
+   (void) address;
+   return NULL;
+#endif
 }
 
 EAPI void
 elm_map_utils_rotate_coord(const Evas_Object *obj __UNUSED__, const Evas_Coord x, const Evas_Coord y, const Evas_Coord cx, const Evas_Coord cy, const double degree, Evas_Coord *xx, Evas_Coord *yy)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    if ((!xx) || (!yy)) return;
 
    double r = (degree * M_PI) / 180.0;
@@ -3698,11 +3792,21 @@ elm_map_utils_rotate_coord(const Evas_Object *obj __UNUSED__, const Evas_Coord x
 
    *xx = tx + cx;
    *yy = ty + cy;
+#else
+   (void) x;
+   (void) y;
+   (void) cx;
+   (void) cy;
+   (void) degree;
+   (void) xx;
+   (void) yy;
+#endif
 }
 
 EAPI Elm_Map_Marker *
 elm_map_marker_add(Evas_Object *obj, double lon, double lat, Elm_Map_Marker_Class *clas, Elm_Map_Group_Class *clas_group, void *data)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd = elm_widget_data_get(obj);
    int i, j;
@@ -3882,11 +3986,21 @@ elm_map_marker_add(Evas_Object *obj, double lon, double lat, Elm_Map_Marker_Clas
      }
 
    return marker;
+#else
+   (void) obj;
+   (void) lon;
+   (void) lat;
+   (void) clas;
+   (void) clas_group;
+   (void) data;
+   return NULL;
+#endif
 }
 
 EAPI void
 elm_map_marker_remove(Elm_Map_Marker *marker)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    int i;
    Eina_List *groups;
    Widget_Data *wd;
@@ -3949,33 +4063,51 @@ elm_map_marker_remove(Elm_Map_Marker *marker)
         evas_object_geometry_get(wd->obj, &ox, &oy, &ow, &oh);
         marker_place(wd->obj, eina_list_data_get(wd->grids), wd->pan_x, wd->pan_y, ox, oy, ow, oh);
      }
+#else
+   (void) marker;
+#endif
 }
 
 EAPI void
 elm_map_marker_region_get(const Elm_Map_Marker *marker, double *lon, double *lat)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    EINA_SAFETY_ON_NULL_RETURN(marker);
    if (lon) *lon = marker->longitude;
    if (lat) *lat = marker->latitude;
+#else
+   (void) marker;
+   (void) lon;
+   (void) lat;
+#endif
 }
 
 EAPI void
 elm_map_marker_bring_in(Elm_Map_Marker *marker)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    EINA_SAFETY_ON_NULL_RETURN(marker);
    elm_map_geo_region_bring_in(marker->wd->obj, marker->longitude, marker->latitude);
+#else
+   (void) marker;
+#endif
 }
 
 EAPI void
 elm_map_marker_show(Elm_Map_Marker *marker)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    EINA_SAFETY_ON_NULL_RETURN(marker);
    elm_map_geo_region_show(marker->wd->obj, marker->longitude, marker->latitude);
+#else
+   (void) marker;
+#endif
 }
 
 EAPI void
 elm_map_markers_list_show(Eina_List *markers)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    int zoom;
    double lon, lat;
    Eina_List *l;
@@ -4019,28 +4151,42 @@ elm_map_markers_list_show(Eina_List *markers)
 
    elm_map_geo_region_show(wd->obj, lon, lat);
    elm_map_zoom_set(wd->obj, zoom);
+#else
+   (void) markers;
+#endif
 }
 
 EAPI void
 elm_map_max_marker_per_group_set(Evas_Object *obj, int max)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
 
    if (!wd) return;
    wd->markers_max_num = max;
+#else
+   (void) obj;
+   (void) max;
+#endif
 }
 
 EAPI Evas_Object *
 elm_map_marker_object_get(const Elm_Map_Marker *marker)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    EINA_SAFETY_ON_NULL_RETURN_VAL(marker, NULL);
    return marker->content;
+#else
+   (void) marker;
+   return NULL;
+#endif
 }
 
 EAPI void
 elm_map_marker_update(Elm_Map_Marker *marker)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    EINA_SAFETY_ON_NULL_RETURN(marker);
    if (marker->content)
      {
@@ -4051,11 +4197,15 @@ elm_map_marker_update(Elm_Map_Marker *marker)
         marker->content = NULL;
         _group_bubble_content_update(marker->groups[marker->wd->zoom]);
      }
+#else
+   (void) marker;
+#endif
 }
 
 EAPI void
 elm_map_bubbles_close(Evas_Object *obj)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
    Marker_Group *group;
@@ -4064,11 +4214,15 @@ elm_map_bubbles_close(Evas_Object *obj)
    if (!wd) return;
    EINA_LIST_FOREACH_SAFE(wd->opened_bubbles, l, l_next, group)
       _group_bubble_free(group);
+#else
+   (void) obj;
+#endif
 }
 
 EAPI Elm_Map_Group_Class *
 elm_map_group_class_new(Evas_Object *obj)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd = elm_widget_data_get(obj);
 
@@ -4077,46 +4231,76 @@ elm_map_group_class_new(Evas_Object *obj)
    clas->zoom_grouped = wd->zoom_max;
    wd->groups_clas = eina_list_append(wd->groups_clas, clas);
    return clas;
+#else
+   (void) obj;
+   return NULL;
+#endif
 }
 
 EAPI void
 elm_map_group_class_style_set(Elm_Map_Group_Class *clas, const char *style)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    EINA_SAFETY_ON_NULL_RETURN(clas);
    eina_stringshare_replace(&clas->style, style);
+#else
+   (void) clas;
+   (void) style;
+#endif
 }
 
 EAPI void
 elm_map_group_class_icon_cb_set(Elm_Map_Group_Class *clas, ElmMapGroupIconGetFunc icon_get)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    EINA_SAFETY_ON_NULL_RETURN(clas);
    clas->func.icon_get = icon_get;
+#else
+   (void) clas;
+   (void) icon_get;
+#endif
 }
 
 EAPI void
 elm_map_group_class_data_set(Elm_Map_Group_Class *clas, void *data)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    EINA_SAFETY_ON_NULL_RETURN(clas);
    clas->data = data;
+#else
+   (void) clas;
+   (void) data;
+#endif
 }
 
 EAPI void
 elm_map_group_class_zoom_displayed_set(Elm_Map_Group_Class *clas, int zoom)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    EINA_SAFETY_ON_NULL_RETURN(clas);
    clas->zoom_displayed = zoom;
+#else
+   (void) clas;
+   (void) zoom;
+#endif
 }
 
 EAPI void
 elm_map_group_class_zoom_grouped_set(Elm_Map_Group_Class *clas, int zoom)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    EINA_SAFETY_ON_NULL_RETURN(clas);
    clas->zoom_grouped = zoom;
+#else
+   (void) clas;
+   (void) zoom;
+#endif
 }
 
 EAPI void
 elm_map_group_class_hide_set(Evas_Object *obj, Elm_Map_Group_Class *clas, Eina_Bool hide)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
 
@@ -4130,11 +4314,17 @@ elm_map_group_class_hide_set(Evas_Object *obj, Elm_Map_Group_Class *clas, Eina_B
         evas_object_geometry_get(obj, &ox, &oy, &ow, &oh);
         marker_place(obj, eina_list_data_get(wd->grids), wd->pan_x, wd->pan_y, ox, oy, ow, oh);
      }
+#else
+   (void) obj;
+   (void) clas;
+   (void) hide;
+#endif
 }
 
 EAPI Elm_Map_Marker_Class *
 elm_map_marker_class_new(Evas_Object *obj)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd = elm_widget_data_get(obj);
 
@@ -4142,49 +4332,79 @@ elm_map_marker_class_new(Evas_Object *obj)
    Elm_Map_Marker_Class *clas = calloc(1, sizeof(Elm_Map_Marker_Class));
    wd->markers_clas = eina_list_append(wd->markers_clas, clas);
    return clas;
+#else
+   (void) obj;
+   return NULL;
+#endif
 }
 
 EAPI void
 elm_map_marker_class_style_set(Elm_Map_Marker_Class *clas, const char *style)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    EINA_SAFETY_ON_NULL_RETURN(clas);
    eina_stringshare_replace(&clas->style, style);
+#else
+   (void) clas;
+   (void) style;
+#endif
 }
 
 EAPI void
 elm_map_marker_class_icon_cb_set(Elm_Map_Marker_Class *clas, ElmMapMarkerIconGetFunc icon_get)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    EINA_SAFETY_ON_NULL_RETURN(clas);
    clas->func.icon_get = icon_get;
+#else
+   (void) clas;
+   (void) icon_get;
+#endif
 }
 
 EAPI void
 elm_map_marker_class_get_cb_set(Elm_Map_Marker_Class *clas, ElmMapMarkerGetFunc get)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    EINA_SAFETY_ON_NULL_RETURN(clas);
    clas->func.get = get;
+#else
+   (void) clas;
+   (void) get;
+#endif
 }
 
 EAPI void
 elm_map_marker_class_del_cb_set(Elm_Map_Marker_Class *clas, ElmMapMarkerDelFunc del)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    EINA_SAFETY_ON_NULL_RETURN(clas);
    clas->func.del = del;
+#else
+   (void) clas;
+   (void) del;
+#endif
 }
 
 EAPI const char **
 elm_map_source_names_get(const Evas_Object *obj)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd = elm_widget_data_get(obj);
 
    if (!wd) return NULL;
    return wd->source_names;
+#else
+   (void) obj;
+   return NULL;
+#endif
 }
 
 EAPI void
 elm_map_source_name_set(Evas_Object *obj, const char *source_name)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
    Map_Sources_Tab *s;
@@ -4219,83 +4439,123 @@ elm_map_source_name_set(Evas_Object *obj, const char *source_name)
           zoom = wd->src->zoom_min;
      }
    elm_map_zoom_set(obj, zoom);
+#else
+   (void) obj;
+   (void) source_name;
+#endif
 }
 
 EAPI const char *
 elm_map_source_name_get(const Evas_Object *obj)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd = elm_widget_data_get(obj);
 
    if ((!wd) || (!wd->src)) return NULL;
    return wd->src->name;
+#else
+   (void) obj;
+   return NULL;
+#endif
 }
 
 EAPI void
 elm_map_route_source_set(Evas_Object *obj, Elm_Map_Route_Sources source)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
 
    if (!wd) return;
    wd->route_source = source;
+#else
+   (void) obj;
+   (void) source;
+#endif
 }
 
 EAPI Elm_Map_Route_Sources
 elm_map_route_source_get(const Evas_Object *obj)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype) ELM_MAP_ROUTE_SOURCE_YOURS;
    Widget_Data *wd = elm_widget_data_get(obj);
 
    if (!wd) return ELM_MAP_ROUTE_SOURCE_YOURS;
    return wd->route_source;
+#else
+   (void) obj;
+   return ELM_MAP_ROUTE_SOURCE_YOURS;
+#endif
 }
 
 EAPI void
 elm_map_source_zoom_max_set(Evas_Object *obj, int zoom)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
 
    if ((!wd) || (!wd->src)) return;
    if ((zoom > wd->zoom_max) || (zoom < wd->zoom_min)) return;
    wd->src->zoom_max = zoom;
+#else
+   (void) obj;
+   (void) zoom;
+#endif
 }
 
 EAPI int
 elm_map_source_zoom_max_get(const Evas_Object *obj)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype) 18;
    Widget_Data *wd = elm_widget_data_get(obj);
 
    if ((!wd) || (!wd->src)) return 18;
    return wd->src->zoom_max;
+#else
+   (void) obj;
+   return 18;
+#endif
 }
 
 EAPI void
 elm_map_source_zoom_min_set(Evas_Object *obj, int zoom)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
 
    if ((!wd) || (!wd->src)) return;
    if ((zoom > wd->zoom_max) || (zoom < wd->zoom_min)) return;
    wd->src->zoom_min = zoom;
+#else
+   (void) obj;
+   (void) zoom;
+#endif
 }
 
 EAPI int
 elm_map_source_zoom_min_get(const Evas_Object *obj)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype) 0;
    Widget_Data *wd = elm_widget_data_get(obj);
 
    if ((!wd) || (!wd->src)) return 0;
    return wd->src->zoom_min;
+#else
+   (void) obj;
+   return 0;
+#endif
 }
 
 EAPI void
 elm_map_user_agent_set(Evas_Object *obj, const char *user_agent)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
 
@@ -4305,16 +4565,25 @@ elm_map_user_agent_set(Evas_Object *obj, const char *user_agent)
 
    if (!wd->ua) wd->ua = eina_hash_string_small_new(NULL);
    eina_hash_set(wd->ua, "User-Agent", wd->user_agent);
+#else
+   (void) obj;
+   (void) user_agent;
+#endif
 }
 
 EAPI const char *
 elm_map_user_agent_get(const Evas_Object *obj)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd = elm_widget_data_get(obj);
 
    if (!wd) return NULL;
    return wd->user_agent;
+#else
+   (void) obj;
+   return NULL;
+#endif
 }
 
 EAPI Elm_Map_Route *
@@ -4326,6 +4595,7 @@ elm_map_route_add(Evas_Object *obj,
                   double tlon,
                   double tlat)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd = elm_widget_data_get(obj);
    char buf[PATH_MAX];
@@ -4406,11 +4676,22 @@ elm_map_route_add(Evas_Object *obj,
                            "elm,state,busy,start", "elm");
    evas_object_smart_callback_call(wd->obj, SIG_ROUTE_LOAD, NULL);
    return route;
+#else
+   (void) obj;
+   (void) type;
+   (void) method;
+   (void) flon;
+   (void) flat;
+   (void) tlon;
+   (void) tlat;
+   return NULL;
+#endif
 }
 
 EAPI void
 elm_map_route_remove(Elm_Map_Route *route)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    EINA_SAFETY_ON_NULL_RETURN(route);
 
    Path_Waypoint *w;
@@ -4446,67 +4727,113 @@ elm_map_route_remove(Elm_Map_Route *route)
         free(route->ud.fname);
         route->ud.fname = NULL;
      }
+#else
+   (void) route;
+#endif
 }
 
 EAPI void
 elm_map_route_color_set(Elm_Map_Route *route, int r, int g , int b, int a)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    EINA_SAFETY_ON_NULL_RETURN(route);
    route->color.r = r;
    route->color.g = g;
    route->color.b = b;
    route->color.a = a;
+#else
+   (void) route;
+   (void) r;
+   (void) g;
+   (void) b;
+   (void) a;
+#endif
 }
 
 EAPI void
 elm_map_route_color_get(const Elm_Map_Route *route, int *r, int *g , int *b, int *a)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    EINA_SAFETY_ON_NULL_RETURN(route);
    if (r) *r = route->color.r;
    if (g) *g = route->color.g;
    if (b) *b = route->color.b;
    if (a) *a = route->color.a;
+#else
+   (void) route;
+   (void) r;
+   (void) g;
+   (void) b;
+   (void) a;
+#endif
 }
 
 EAPI double
 elm_map_route_distance_get(const Elm_Map_Route *route)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    EINA_SAFETY_ON_NULL_RETURN_VAL(route, 0.0);
    return route->info.distance;
+#else
+   (void) route;
+   return 0.0;
+#endif
 }
 
 EAPI const char*
 elm_map_route_node_get(const Elm_Map_Route *route)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    EINA_SAFETY_ON_NULL_RETURN_VAL(route, NULL);
    return route->info.nodes;
+#else
+   (void) route;
+   return NULL;
+#endif
 }
 
 EAPI const char*
 elm_map_route_waypoint_get(const Elm_Map_Route *route)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    EINA_SAFETY_ON_NULL_RETURN_VAL(route, NULL);
    return route->info.waypoints;
+#else
+   (void) route;
+   return NULL;
+#endif
 }
 
 EAPI const char *
 elm_map_name_address_get(const Elm_Map_Name *name)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    EINA_SAFETY_ON_NULL_RETURN_VAL(name, NULL);
    return name->address;
+#else
+   (void) name;
+   return NULL;
+#endif
 }
 
 EAPI void
 elm_map_name_region_get(const Elm_Map_Name *name, double *lon, double *lat)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    EINA_SAFETY_ON_NULL_RETURN(name);
    if (lon) *lon = name->lon;
    if (lat) *lat = name->lat;
+#else
+   (void) name;
+   (void) lon;
+   (void) lat;
+#endif
 }
 
 EAPI void
 elm_map_name_remove(Elm_Map_Name *name)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    EINA_SAFETY_ON_NULL_RETURN(name);
    if (name->address)
      {
@@ -4524,11 +4851,15 @@ elm_map_name_remove(Elm_Map_Name *name)
         free(name->ud.fname);
         name->ud.fname = NULL;
      }
+#else
+   (void) name;
+#endif
 }
 
 EAPI void
 elm_map_rotate_set(Evas_Object *obj, double degree, Evas_Coord cx, Evas_Coord cy)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
 
@@ -4537,11 +4868,18 @@ elm_map_rotate_set(Evas_Object *obj, double degree, Evas_Coord cx, Evas_Coord cy
    wd->rotate.cx = cx;
    wd->rotate.cy = cy;
    wd->calc_job = ecore_job_add(_calc_job, wd);
+#else
+   (void) obj;
+   (void) degree;
+   (void) cx;
+   (void) cy;
+#endif
 }
 
 EAPI void
 elm_map_rotate_get(const Evas_Object *obj, double *degree, Evas_Coord *cx, Evas_Coord *cy)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
 
@@ -4549,11 +4887,18 @@ elm_map_rotate_get(const Evas_Object *obj, double *degree, Evas_Coord *cx, Evas_
    if (degree) *degree = wd->rotate.d;
    if (cx) *cx = wd->rotate.cx;
    if (cy) *cy = wd->rotate.cy;
+#else
+   (void) obj;
+   (void) degree;
+   (void) cx;
+   (void) cy;
+#endif
 }
 
 EAPI void
 elm_map_wheel_disabled_set(Evas_Object *obj, Eina_Bool disabled)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
 
@@ -4563,22 +4908,32 @@ elm_map_wheel_disabled_set(Evas_Object *obj, Eina_Bool disabled)
    else if ((wd->wheel_disabled) && (!disabled))
      evas_object_event_callback_add(wd->rect, EVAS_CALLBACK_MOUSE_WHEEL, _mouse_wheel_cb, obj);
    wd->wheel_disabled = !!disabled;
+#else
+   (void) obj;
+   (void) disabled;
+#endif
 }
 
 EAPI Eina_Bool
 elm_map_wheel_disabled_get(const Evas_Object *obj)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
    Widget_Data *wd = elm_widget_data_get(obj);
 
    if (!wd) return EINA_FALSE;
    return wd->wheel_disabled;
+#else
+   (void) obj;
+   return EINA_FALSE;
+#endif
 }
 
 #ifdef ELM_EMAP
 EAPI Evas_Object *
 elm_map_track_add(Evas_Object *obj, EMap_Route *emap)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd = elm_widget_data_get(obj);
 
@@ -4589,12 +4944,18 @@ elm_map_track_add(Evas_Object *obj, EMap_Route *emap)
    wd->track = eina_list_append(wd->track, route);
 
    return route;
+#else
+   (void) obj;
+   (void) emap;
+   return NULL;
+#endif
 }
 #endif
 
 EAPI void
 elm_map_track_remove(Evas_Object *obj, Evas_Object *route)
 {
+#ifdef HAVE_ELEMENTARY_ECORE_CON
    ELM_CHECK_WIDTYPE(obj, widtype) ;
    Widget_Data *wd = elm_widget_data_get(obj);
 
@@ -4602,8 +4963,14 @@ elm_map_track_remove(Evas_Object *obj, Evas_Object *route)
 
    wd->track = eina_list_remove(wd->track, route);
    evas_object_del(route);
+#else
+   (void) obj;
+   (void) route;
+#endif
 }
 
+#ifdef HAVE_ELEMENTARY_ECORE_CON
+
 static char *
 _mapnik_url_cb(Evas_Object *obj __UNUSED__, int x, int y, int zoom)
 {
@@ -4684,7 +5051,7 @@ _nominatim_url_cb(Evas_Object *obj, int method, char *name, double lon, double l
 {
    ELM_CHECK_WIDTYPE(obj, widtype) strdup("");
    Widget_Data *wd = elm_widget_data_get(obj);
-   char **str = NULL;
+   char **str;
    unsigned int ele, idx;
    char search_url[PATH_MAX];
    char buf[PATH_MAX];
@@ -4704,10 +5071,7 @@ _nominatim_url_cb(Evas_Object *obj, int method, char *name, double lon, double l
    else if (method == ELM_MAP_NAME_METHOD_REVERSE) snprintf(buf, sizeof(buf), "%s/reverse?format=xml&lat=%lf&lon=%lf&zoom=%d&addressdetails=0", NAME_NOMINATIM_URL, lat, lon, wd->zoom);
    else strcpy(buf, "");
 
-   if (str && str[0])
-     {
-       free(str[0]);
-       free(str);
-     }
    return strdup(buf);
 }
+
+#endif
index 03abcdd..0af8b74 100644 (file)
@@ -22,7 +22,7 @@ struct _Elm_Entry_Extension_data
        Eina_Bool have_selection: 1;
        Eina_Bool selmode :1;
        Eina_Bool context_menu : 1;
-       Eina_Bool textonly : 1;
+       Elm_CNP_Mode cnp_mode : 2;
 };
 
 EAPI void elm_entry_extension_module_data_get(Evas_Object *obj,Elm_Entry_Extension_data *ext_mod);
index abc43c6..219ed30 100644 (file)
@@ -103,9 +103,9 @@ _theme_hook(Evas_Object *obj)
              elm_object_style_set(action_data->btn, buf);
              ++index;
              snprintf(buf, sizeof(buf), "actionbtn%d", index);
-             elm_object_content_part_set(wd->action_area, buf, action_data->btn);
+             elm_object_part_content_set(wd->action_area, buf, action_data->btn);
           }
-        elm_object_content_part_set(wd->layout, "elm.swallow.buttonArea", wd->action_area);
+        elm_object_part_content_set(wd->layout, "elm.swallow.buttonArea", wd->action_area);
      }
    if (wd->content_area)
      {
@@ -114,13 +114,13 @@ _theme_hook(Evas_Object *obj)
           {
              snprintf(buf, sizeof(buf), "popup_description/%s", elm_widget_style_get(obj));
              elm_object_style_set(wd->desc_label, buf);
-             elm_object_content_part_set(wd->content_area, "elm.swallow.content", wd->desc_label);
+             elm_object_part_content_set(wd->content_area, "elm.swallow.content", wd->desc_label);
           }
         else if (wd->content)
           {
-             elm_object_content_part_set(wd->content_area, "elm.swallow.content", wd->content);
+             elm_object_part_content_set(wd->content_area, "elm.swallow.content", wd->content);
           }
-        elm_object_content_part_set(wd->layout, "elm.swallow.content", wd->content_area);
+        elm_object_part_content_set(wd->layout, "elm.swallow.content", wd->content_area);
      }
    if (wd->title_area)
      {
@@ -231,7 +231,7 @@ _elm_popup_buttons_add_valist(Evas_Object *obj, const char *first_button_text, v
         btn = _elm_popup_add_button(obj, text, response);
         ++index;
         snprintf(buf, sizeof(buf), "actionbtn%d", index);
-        elm_object_content_part_set(wd->action_area, buf, btn);
+        elm_object_part_content_set(wd->action_area, buf, btn);
         evas_object_event_callback_add(wd->action_area, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
                                        _changed_size_hints, obj);
         text = va_arg(args, char*);
@@ -384,7 +384,7 @@ elm_popup_with_buttons_add(Evas_Object *parent, const char *title, const char *d
         va_list args;
         va_start(args, first_button_text);
         wd->action_area = elm_layout_add(popup);
-        elm_object_content_part_set(wd->layout, "elm.swallow.buttonArea", wd->action_area);
+        elm_object_part_content_set(wd->layout, "elm.swallow.buttonArea", wd->action_area);
         snprintf(buf,sizeof(buf), "buttons%d", no_of_buttons);
                                 wd->no_of_buttons = no_of_buttons;
         elm_layout_theme_set(wd->action_area, "popup", buf, elm_widget_style_get(popup));
@@ -433,8 +433,8 @@ elm_popup_desc_set(Evas_Object *obj, const char *text)
    evas_object_size_hint_weight_set(wd->desc_label, EVAS_HINT_EXPAND, 0.0);
    evas_object_size_hint_align_set(wd->desc_label, EVAS_HINT_FILL, EVAS_HINT_FILL);
    evas_object_show(wd->desc_label);
-   elm_object_content_part_set(wd->content_area, "elm.swallow.content", wd->desc_label);
-   elm_object_content_part_set(wd->layout, "elm.swallow.content", wd->content_area);
+   elm_object_part_content_set(wd->content_area, "elm.swallow.content", wd->desc_label);
+   elm_object_part_content_set(wd->layout, "elm.swallow.content", wd->content_area);
    evas_object_event_callback_add(wd->content_area, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
                                   _changed_size_hints, obj);
    _sizing_eval(obj);
@@ -523,7 +523,7 @@ elm_popup_title_icon_set(Evas_Object *obj, Evas_Object *icon)
         wd->title_icon = NULL;
      }
    wd->title_icon = icon;
-   elm_object_content_part_set(wd->layout, "elm.swallow.title.icon", wd->title_icon);
+   elm_object_part_content_set(wd->layout, "elm.swallow.title.icon", wd->title_icon);
    edje_object_signal_emit(elm_layout_edje_get(wd->layout), "elm,state,title,icon,visible", "elm");
    edje_object_message_signal_process(wd->layout);
    _sizing_eval(obj);
@@ -573,8 +573,8 @@ elm_popup_content_set(Evas_Object *obj, Evas_Object *content)
      {
         wd->content_area = elm_layout_add(obj);
         elm_layout_theme_set(wd->content_area, "popup","content", elm_widget_style_get(obj));
-        elm_object_content_part_set(wd->content_area, "elm.swallow.content", content);
-        elm_object_content_part_set(wd->layout, "elm.swallow.content", wd->content_area);
+        elm_object_part_content_set(wd->content_area, "elm.swallow.content", content);
+        elm_object_part_content_set(wd->layout, "elm.swallow.content", wd->content_area);
         evas_object_event_callback_add(wd->content_area, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
                                        _changed_size_hints, obj);
      }
@@ -624,7 +624,7 @@ elm_popup_buttons_add(Evas_Object *obj,int no_of_buttons, const char *first_butt
         wd->action_area = NULL;
      }
    wd->action_area = elm_layout_add(obj);
-   elm_object_content_part_set(wd->layout, "elm.swallow.buttonArea", wd->action_area);
+   elm_object_part_content_set(wd->layout, "elm.swallow.buttonArea", wd->action_area);
    evas_object_size_hint_weight_set(wd->action_area, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    evas_object_size_hint_align_set(wd->action_area, EVAS_HINT_FILL, EVAS_HINT_FILL);
    snprintf(buf, sizeof(buf), "buttons%d", no_of_buttons);
index c1da756..6c70a69 100644 (file)
@@ -39,6 +39,7 @@ struct _Elm_Theme
    Eina_List  *themes;
    Eina_List  *extension;
    Eina_Hash  *cache;
+   Eina_Hash  *cache_data;
    Elm_Theme  *ref_theme;
    Eina_List  *referrers;
    const char *theme;
index 9ada9fb..205455b 100644 (file)
@@ -202,7 +202,7 @@ _content_set_hook(Evas_Object *obj, const char *part, Evas_Object *content)
 {
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd;
-   if (!part || strcmp(part, "icon")) return;
+   if (part && strcmp(part, "icon")) return;
    wd = elm_widget_data_get(obj);
    if (!wd) return;
    if (wd->icon == content) return;
@@ -226,7 +226,7 @@ _content_get_hook(const Evas_Object *obj, const char *part)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd;
-   if (!part || strcmp(part, "icon")) return NULL;
+   if (part && strcmp(part, "icon")) return NULL;
    wd = elm_widget_data_get(obj);
    if (!wd) return NULL;
    return wd->icon;
@@ -238,7 +238,7 @@ _content_unset_hook(Evas_Object *obj, const char *part)
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd;
    Evas_Object *icon;
-   if (!part || strcmp(part, "icon")) return NULL;
+   if (part && strcmp(part, "icon")) return NULL;
    wd = elm_widget_data_get(obj);
    if (!wd) return NULL;
    if (!wd->icon) return NULL;
index 032e072..c111130 100644 (file)
@@ -277,7 +277,7 @@ _content_set_hook(Evas_Object *obj, const char *part, Evas_Object *content)
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd;
 
-   if (!part || strcmp(part, "icon")) return;
+   if (part && strcmp(part, "icon")) return;
    wd = elm_widget_data_get(obj);
    if (!wd) return;
    if (wd->icon == content) return;
@@ -302,7 +302,7 @@ _content_get_hook(const Evas_Object *obj, const char *part)
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd;
 
-   if (!part || strcmp(part, "icon")) return NULL;
+   if (part && strcmp(part, "icon")) return NULL;
    wd = elm_widget_data_get(obj);
    if (!wd) return NULL;
    return wd->icon;
@@ -314,7 +314,7 @@ _content_unset_hook(Evas_Object *obj, const char *part)
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd;
    Evas_Object *icon;
-   if (!part || strcmp(part, "icon")) return NULL;
+   if (part && strcmp(part, "icon")) return NULL;
    wd = elm_widget_data_get(obj);
    if (!wd) return NULL;
    if (!wd->icon) return NULL;
diff --git a/src/lib/elm_scrolled_grid.c b/src/lib/elm_scrolled_grid.c
deleted file mode 100644 (file)
index 187478f..0000000
+++ /dev/null
@@ -1,1564 +0,0 @@
-/*
- * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
- */
-#include <Elementary.h>
-#include "elm_priv.h"
-
-/**
- * @defgroup Grid Scrolled Grid
- * @ingroup Elementary
- *
- * This widget aims to position objects in a grid layout while actually
- * building only the visible ones, using the same idea as genlist: the user
- * define a class for each cell, specifying functions that will be called at
- * object creation and deletion.
- *
- * Signals that you can add callbacks for are:
- *
- * clicked - The user has double-clicked a cell. The event_info parameter is
- * the grid cell that was double-clicked.
- *
- * selected - The user has made an item selected. The event_info parameter is
- * the grid cell that was selected.
- *
- * unselected - The user has made an item unselected. The event_info parameter
- * is the grid cell that was unselected.
- *
- * realized - This is called when the cell in the grid is created as a real
- * evas object. event_info is the grid cell that was created. The object may be
- * deleted at any time, so it is up to the caller to not use the object pointer
- * from elm_scrolled_grid_cell_object_get() in a way where it may point to
- * freed objects.
- *
- * drag,start,up - Called when the cell in the grid has been dragged (not
- * scrolled) up.
- *
- * drag,start,down - Called when the cell in the grid has been dragged (not
- * scrolled) down.
- *
- * drag,start,left - Called when the cell in the grid has been dragged (not
- * scrolled) left.
- *
- * drag,start,right - Called when the cell in the grid has been dragged (not
- * scrolled) right.
- *
- * drag,stop - Called when the cell in the grid has stopped being dragged.
- *
- * drag - Called when the cell in the grid is being dragged.
- *
- * scroll - called when the content has been scrolled (moved).
- *
- * scroll,drag,start - called when dragging the content has started.
- *
- * scroll,drag,stop - called when dragging the content has stopped.
- *
- *
- * A cell in the grid can have 0 or more text labels (they can be regular text
- * or textblock - that's up to the style to determine), 0 or more icons (which
- * are simply objects swallowed into the grid cell) and 0 or more boolean states
- * that can be used for check, radio or other indicators by the edje theme style.
- * A cell may be one of several styles (Elementary provides 1 by default -
- * "default", but this can be extended by system or application custom
- * themes/overlays/extensions).
- *
- * In order to implement the ability to add and delete cells on the fly, Grid
- * implements a class/callback system where the application provides a structure
- * with information about that type of cell (grid may contain multiple different
- * cells with different classes, states and styles). Grid will call the functions
- * in this struct (methods) when a cell is "realized" (that is created
- * dynamically while scrolling). All objects will simply be deleted when no
- * longer needed with evas_object_del(). The Elm_Genlist_Item_Class structure
- * contains the following members:
- *
- * cell_style - This is a constant string and simply defines the name of the
- * cell style. It must be specified and the default should be "default".
- *
- * func.label_get - This function is called when an actual cell object is
- * created. The data parameter is the one passed to elm_scrolled_grid_cell_add()
- * and related cell creation functions. The obj parameter is the grid object and
- * the part parameter is the string name of the text part in the edje design that
- * is listed as one of the possible labels that can be set. This function must
- * return a strdup'()ed string as the caller will free() it when done.
- *
- * func.icon_get - This function is called when an actual item object is
- * created. The data parameter is the one passed to elm_scrolled_grid_cell_add()
- * and related cell creation functions. The obj parameter is the grid object and
- * the part parameter is the string name of the icon part in the edje design that
- * is listed as one of the possible icons that can be set. This must return NULL
- * for no object or a valid object. The object will be deleted by grid on
- * shutdown or when the cell is unrealized.
- *
- * func.state_get - This function is called when an actual cell object is
- * created. The data parameter is the one passed to elm_scrolled_grid_cell_add()
- * and related cell creation functions. The obj parameter is the grid object and
- * the part parameter is the string name of th state part in the edje design that
- * is listed as one of the possible states that can be set. Return 0 for false
- * and 1 for true. Grid will emit a signal to the edje object with
- * "elm,state,XXX,active" "elm" when true (the default is false), where XXX is
- * the name of the part.
- *
- * func.del - This is called when elm_scrolled_grid_cell_del() is called on a
- * cell or elm_scrolled_grid_clear() is called on the grid. This is intended for
- * use when actual grid cells are deleted, so any backing data attached to the
- * cell (e.g. its data parameter on creation) can be deleted.
- *
- * If the application wants multiple cells to be able to be selected,
- * elm_scrolled_grid_multi_select_set() can enable this. If the grid is
- * single-selection only (the default), then elm_scrolled_grid_select_cell_get()
- * will return the selected cell, if any, or NULL if none is selected. If the
- * grid is multi-select then elm_scrolled_grid_selected_cells_get() will return a
- * list (that is only valid as long as no cells are modified (added, deleted,
- * selected or unselected).
- *
- * If a cell changes (state of boolean changes, label or icons change), then use
- * elm_scrolled_grid_cell_update() to have grid update the cell with the new
- * state. Grid will re-realize the cell thus call the functions in the
- * _Elm_Grid_Cell_Class for that cell.
- *
- * To programmatically (un)select a cell use elm_scrolled_grid_cell_selected_set().
- * To get its selected state use elm_scrolled_grid_cell_selected_get(). To make a
- * cell disabled (unable to be selected and appear differently) use
- * elm_scrolled_grid_cell_disable_set() to set this and
- * elm_scrolled_grid_cell_disable_get() to get the disabled state.
- *
- * Cells will only call their selection func and callback when first becoming
- * selected. Any further clicks will do nothing, unless you enable always
- * select with elm_scrolled_grid_always_select_mode_set(). This means event if
- * selected, every click will make the selected callbacks be called.
- * elm_scrolled_grid_no_select_mode_set() will turn off the ability to select
- * items entirely and they will neither appear selected nor call selected
- * callback function.
- *
- * Remember that you can create new styles and add your own theme augmentation
- * per application with elm_theme_extension_add(). If you absolutely must have a
- * specific style that overrides any theme the user or system sets up you can use
- * elm_theme_overlay_add() to add such a file.
- *
- * --
- * TODO:
- *  * Handle non-homogeneous objects too.
- */
-
-typedef struct _Widget_Data Widget_Data;
-typedef struct _Pan Pan;
-
-#define PRELOAD 1
-
-struct _Elm_Grid_Cell
-{
-   Evas_Object *base, *spacer;
-   const Elm_Grid_Cell_Class *gcc;
-   Ecore_Timer *long_timer;
-   Widget_Data *wd;
-   Eina_List *labels, *icons, *states, *icon_objs;
-   const void *data;
-   struct
-     {
-       Evas_Smart_Cb func;
-       const void *data;
-     } func;
-
-   Evas_Coord x, y, dx, dy;
-   int relcount;
-
-   Eina_Bool want_unrealize : 1;
-   Eina_Bool realized : 1;
-   Eina_Bool dragging : 1;
-   Eina_Bool down : 1;
-   Eina_Bool delete_me : 1;
-   Eina_Bool display_only : 1;
-   Eina_Bool disabled : 1;
-   Eina_Bool selected : 1;
-   Eina_Bool hilighted : 1;
-   Eina_Bool walking : 1;
-};
-
-struct _Widget_Data
-{
-   Evas_Object *self, *scr;
-   Evas_Object *pan_smart;
-   Pan *pan;
-   Eina_List *cells;
-   Ecore_Job *calc_job;
-   Eina_List *selected;
-   double align_x, align_y;
-
-   Evas_Coord pan_x, pan_y;
-   Evas_Coord cell_width, cell_height; /* Each cell size */
-   Evas_Coord minw, minh;              /* Total obj size */
-   unsigned int nmax;
-
-   Eina_Bool horizontal : 1;
-   Eina_Bool on_hold : 1;
-   Eina_Bool longpressed : 1;
-   Eina_Bool multi : 1;
-   Eina_Bool no_select : 1;
-   Eina_Bool wasselected : 1;
-   Eina_Bool always_select : 1;
-};
-
-struct _Pan
-{
-   Evas_Object_Smart_Clipped_Data __clipped_data;
-   Widget_Data *wd;
-};
-
-static const char *widtype = NULL;
-static void _sizing_eval(Evas_Object *obj);
-static void _cell_hilight(Elm_Grid_Cell *cell);
-static void _cell_unrealize(Elm_Grid_Cell *cell);
-static void _cell_select(Elm_Grid_Cell *cell);
-static void _cell_unselect(Elm_Grid_Cell *cell);
-
-static Evas_Smart_Class _pan_sc = EVAS_SMART_CLASS_INIT_VERSION;
-
-static void
-_theme_hook(Evas_Object *obj)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_smart_scroller_object_theme_set(obj, wd->scr, "grid", "base",
-                                       elm_widget_style_get(obj));
-   _sizing_eval(obj);
-}
-
-static void
-_sizing_eval(Evas_Object *obj)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   Evas_Coord minw = -1, minh = -1, maxw = -1, maxh = -1;
-   if (!wd) return;
-   evas_object_size_hint_max_get(wd->scr, &maxw, &maxh);
-   evas_object_size_hint_min_set(obj, minw, minh);
-   evas_object_size_hint_max_set(obj, maxw, maxh);
-}
-
-static void
-_del_hook(Evas_Object *obj)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   if (wd->calc_job) ecore_job_del(wd->calc_job);
-   evas_object_del(wd->pan_smart);
-   wd->pan_smart = NULL;
-   elm_scrolled_grid_clear(obj);
-   free(wd);
-}
-
-static void
-_mouse_move(void *data, Evas *evas __UNUSED__, Evas_Object *obj, void *event_info)
-{
-   Elm_Grid_Cell *cell = data;
-   Evas_Event_Mouse_Move *ev = event_info;
-   Evas_Coord minw = 0, minh = 0, x, y, dx, dy, adx, ady;
-
-   if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
-     {
-       if (!cell->wd->on_hold) {
-            cell->wd->on_hold = EINA_TRUE;
-            _cell_unselect(cell);
-       }
-     }
-   if ((cell->dragging) && (cell->down))
-     {
-       if (cell->long_timer)
-         {
-            ecore_timer_del(cell->long_timer);
-            cell->long_timer = NULL;
-         }
-       evas_object_smart_callback_call(cell->wd->self, "drag", cell);
-       return;
-     }
-   if ((!cell->down) || (cell->wd->longpressed))
-     {
-       if (cell->long_timer)
-         {
-            ecore_timer_del(cell->long_timer);
-            cell->long_timer = NULL;
-         }
-       return;
-     }
-   if (!cell->display_only)
-     elm_coords_finger_size_adjust(1, &minw, 1, &minh);
-   evas_object_geometry_get(obj, &x, &y, NULL, NULL);
-   x = ev->cur.canvas.x - x;
-   y = ev->cur.canvas.y - y;
-   dx = x - cell->dx;
-   adx = dx;
-   if (adx < 0) adx = -dx;
-   dy = y - cell->dy;
-   ady = dy;
-   if (ady < 0) ady = -dy;
-   minw /= 2;
-   minh /= 2;
-   if ((adx > minw) || (ady > minh))
-     {
-       cell->dragging = 1;
-       if (cell->long_timer)
-         {
-            ecore_timer_del(cell->long_timer);
-            cell->long_timer = NULL;
-         }
-       if (cell->wd->wasselected)
-         _cell_unselect(cell);
-       cell->wd->wasselected = 0;
-       if (dy < 0)
-         {
-            if (ady > adx)
-              evas_object_smart_callback_call(cell->wd->self, "drag,start,up",
-                                              cell);
-            else
-              {
-                 if (dx < 0)
-                   evas_object_smart_callback_call(cell->wd->self,
-                                                   "drag,start,left", cell);
-              }
-         }
-       else
-         {
-            if (ady > adx)
-              evas_object_smart_callback_call(cell->wd->self,
-                                              "drag,start,down", cell);
-            else
-              {
-                 if (dx < 0)
-                   evas_object_smart_callback_call(cell->wd->self,
-                                                   "drag,start,left", cell);
-                 else
-                   evas_object_smart_callback_call(cell->wd->self,
-                                                   "drag,start,right", cell);
-              }
-         }
-     }
-}
-
-static int
-_long_press(void *data)
-{
-   Elm_Grid_Cell *cell = data;
-
-   cell->long_timer = NULL;
-   if ((cell->disabled) || (cell->dragging)) return 0;
-   cell->wd->longpressed = EINA_TRUE;
-   evas_object_smart_callback_call(cell->wd->self, "longpressed", cell);
-   return 0;
-}
-
-static void
-_mouse_down(void *data, Evas *evas __UNUSED__, Evas_Object *obj, void *event_info)
-{
-   Elm_Grid_Cell *cell = data;
-   Evas_Event_Mouse_Down *ev = event_info;
-   Evas_Coord x, y;
-
-   if (ev->button != 1) return;
-   cell->down = 1;
-   cell->dragging = 0;
-   evas_object_geometry_get(obj, &x, &y, NULL, NULL);
-   cell->dx = ev->canvas.x - x;
-   cell->dy = ev->canvas.y - y;
-   cell->wd->longpressed = EINA_FALSE;
-   if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) cell->wd->on_hold = EINA_TRUE;
-   else cell->wd->on_hold = EINA_FALSE;
-   cell->wd->wasselected = cell->selected;
-   _cell_hilight(cell);
-   if (ev->flags & EVAS_BUTTON_DOUBLE_CLICK)
-     evas_object_smart_callback_call(cell->wd->self, "clicked", cell);
-   if (cell->long_timer) ecore_timer_del(cell->long_timer);
-   if (cell->realized)
-     cell->long_timer = ecore_timer_add(1.0, _long_press, cell);
-   else
-     cell->long_timer = NULL;
-}
-
-static void
-_mouse_up(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
-{
-   Elm_Grid_Cell *cell = data;
-   Evas_Event_Mouse_Up *ev = event_info;
-   Eina_Bool dragged = EINA_FALSE;
-
-   if (ev->button != 1) return;
-   cell->down = EINA_FALSE;
-   if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) cell->wd->on_hold = EINA_TRUE;
-   else cell->wd->on_hold = EINA_FALSE;
-   if (cell->long_timer)
-     {
-       ecore_timer_del(cell->long_timer);
-       cell->long_timer = NULL;
-     }
-   if (cell->dragging)
-     {
-       cell->dragging = EINA_FALSE;
-       evas_object_smart_callback_call(cell->wd->self, "drag,stop", cell);
-       dragged = EINA_TRUE;
-     }
-   if (cell->wd->on_hold)
-     {
-       cell->wd->longpressed = EINA_FALSE;
-       cell->wd->on_hold = EINA_FALSE;
-       return;
-     }
-   if (cell->wd->longpressed)
-     {
-       cell->wd->longpressed = EINA_FALSE;
-       if (!cell->wd->wasselected)
-         _cell_unselect(cell);
-       cell->wd->wasselected = EINA_FALSE;
-       return;
-     }
-   if (dragged)
-     {
-       if (cell->want_unrealize)
-            _cell_unrealize(cell);
-     }
-   if ((cell->disabled) || dragged) return;
-   if (cell->wd->multi)
-     {
-       if (!cell->selected)
-         {
-            _cell_hilight(cell);
-            _cell_select(cell);
-         }
-       else _cell_unselect(cell);
-     }
-   else
-     {
-       if (!cell->selected)
-         {
-            while (cell->wd->selected) _cell_unselect(cell->wd->selected->data);
-         }
-       else
-         {
-            const Eina_List *l, *l_next;
-            Elm_Grid_Cell *cell2;
-
-            EINA_LIST_FOREACH_SAFE(cell->wd->selected, l, l_next, cell2)
-               if (cell2 != cell) _cell_unselect(cell2);
-         }
-       _cell_hilight(cell);
-       _cell_select(cell);
-     }
-}
-
-static void
-_cell_hilight(Elm_Grid_Cell *cell)
-{
-   if ((cell->wd->no_select) || (cell->delete_me) || (cell->hilighted)) return;
-   edje_object_signal_emit(cell->base, "elm,state,selected", "elm");
-   cell->hilighted = EINA_TRUE;
-}
-
-static void
-_cell_realize(Elm_Grid_Cell *cell)
-{
-   char buf[1024];
-
-   if ((cell->realized) || (cell->delete_me)) return;
-   cell->base = edje_object_add(evas_object_evas_get(cell->wd->self));
-   edje_object_scale_set(cell->base, elm_widget_scale_get(cell->wd->self) *
-                        _elm_config->scale);
-   evas_object_smart_member_add(cell->base, cell->wd->pan_smart);
-   elm_widget_sub_object_add(cell->wd->self, cell->base);
-   _elm_theme_object_set(cell->wd->self, cell->base, "grid", "cell/default",
-                         elm_widget_style_get(cell->wd->self));
-   cell->spacer = evas_object_rectangle_add(evas_object_evas_get(cell->wd->self));
-   evas_object_color_set(cell->spacer, 0, 0, 0, 0);
-   elm_widget_sub_object_add(cell->wd->self, cell->spacer);
-   evas_object_size_hint_min_set(cell->spacer, 2 * _elm_config->scale, 1);
-   edje_object_part_swallow(cell->base, "elm.swallow.pad", cell->spacer);
-
-   if (cell->gcc->func.label_get)
-     {
-       const Eina_List *l;
-       const char *key;
-
-       cell->labels = _elm_stringlist_get(edje_object_data_get(cell->base,
-                                                               "labels"));
-       EINA_LIST_FOREACH(cell->labels, l, key)
-         {
-            char *s = cell->gcc->func.label_get(cell->data, cell->wd->self,
-                                                l->data);
-            if (s)
-              {
-                 edje_object_part_text_set(cell->base, l->data, s);
-                 free(s);
-              }
-         }
-     }
-
-   if (cell->gcc->func.icon_get)
-     {
-       const Eina_List *l;
-       const char *key;
-
-       cell->icons = _elm_stringlist_get(edje_object_data_get(cell->base,
-                                                              "icons"));
-       EINA_LIST_FOREACH(cell->icons, l, key)
-         {
-            Evas_Object *ic = cell->gcc->func.icon_get(cell->data,
-                                                       cell->wd->self,
-                                                       l->data);
-            if (ic)
-              {
-                 cell->icon_objs = eina_list_append(cell->icon_objs, ic);
-                 edje_object_part_swallow(cell->base, key, ic);
-                 evas_object_show(ic);
-                 elm_widget_sub_object_add(cell->wd->self, ic);
-              }
-         }
-     }
-
-   if (cell->gcc->func.state_get)
-     {
-       const Eina_List *l;
-       const char *key;
-
-       cell->states = _elm_stringlist_get(edje_object_data_get(cell->base,
-                                                               "states"));
-       EINA_LIST_FOREACH(cell->states, l, key)
-         {
-            Eina_Bool on = cell->gcc->func.state_get(cell->data,
-                  cell->wd->self, l->data);
-            if (on)
-              {
-                 snprintf(buf, sizeof(buf), "elm,state,%s,active", key);
-                 edje_object_signal_emit(cell->base, buf, "elm");
-              }
-         }
-     }
-
-   if (!cell->wd->cell_width && !cell->wd->cell_height)
-     {
-       edje_object_size_min_restricted_calc(cell->base,
-             &cell->wd->cell_width, &cell->wd->cell_height,
-             cell->wd->cell_width, cell->wd->cell_height);
-       elm_coords_finger_size_adjust(1, &cell->wd->cell_width,
-                                     1, &cell->wd->cell_height);
-     }
-
-   evas_object_event_callback_add(cell->base, EVAS_CALLBACK_MOUSE_DOWN,
-                                 _mouse_down, cell);
-   evas_object_event_callback_add(cell->base, EVAS_CALLBACK_MOUSE_UP,
-                                 _mouse_up, cell);
-   evas_object_event_callback_add(cell->base, EVAS_CALLBACK_MOUSE_MOVE,
-                                 _mouse_move, cell);
-
-   if (cell->selected)
-     edje_object_signal_emit(cell->base, "elm,state,selected", "elm");
-   if (cell->disabled)
-     edje_object_signal_emit(cell->base, "elm,state,disabled", "elm");
-
-   evas_object_show(cell->base);
-   cell->realized = EINA_TRUE;
-   cell->want_unrealize = EINA_FALSE;
-}
-
-static void
-_cell_unrealize(Elm_Grid_Cell *cell)
-{
-   Evas_Object *icon;
-
-   if (!cell->realized) return;
-   if (cell->long_timer)
-     {
-       ecore_timer_del(cell->long_timer);
-       cell->long_timer = NULL;
-     }
-   evas_object_del(cell->base);
-   cell->base = NULL;
-   evas_object_del(cell->spacer);
-   cell->spacer = NULL;
-   _elm_stringlist_free(cell->labels);
-   cell->labels = NULL;
-   _elm_stringlist_free(cell->icons);
-   cell->icons = NULL;
-   _elm_stringlist_free(cell->states);
-
-   EINA_LIST_FREE(cell->icon_objs, icon)
-      evas_object_del(icon);
-
-   cell->states = NULL;
-   cell->realized = EINA_FALSE;
-   cell->want_unrealize = EINA_FALSE;
-}
-
-static void
-_cell_place(Elm_Grid_Cell *cell, Evas_Coord cx, Evas_Coord cy)
-{
-   Evas_Coord x, y, ox, oy, cvx, cvy, cvw, cvh;
-   Evas_Coord tch, tcw, alignw = 0, alignh = 0, vw, vh;
-
-   cell->x = cx;
-   cell->y = cy;
-   evas_object_geometry_get(cell->wd->self, &ox, &oy, &vw, &vh);
-   evas_output_viewport_get(evas_object_evas_get(cell->wd->self),
-                           &cvx, &cvy, &cvw, &cvh);
-
-   /* Preload rows/columns at each side of the Grid */
-   cvx -= PRELOAD * cell->wd->cell_width;
-   cvy -= PRELOAD * cell->wd->cell_height;
-   cvw += 2 * PRELOAD * cell->wd->cell_width;
-   cvh += 2 * PRELOAD * cell->wd->cell_height;
-
-   tch = ((vh/cell->wd->cell_height)*cell->wd->cell_height);
-   alignh = (vh - tch)*cell->wd->align_y;
-
-   tcw = ((vw/cell->wd->cell_width)*cell->wd->cell_width);
-   alignw = (vw - tcw)*cell->wd->align_x;
-
-   if (cell->wd->horizontal && cell->wd->minw < vw)
-     {
-        int columns;
-
-        columns = eina_list_count(cell->wd->cells)/(vh/cell->wd->cell_height);
-        if (eina_list_count(cell->wd->cells) % (vh/cell->wd->cell_height))
-             columns++;
-
-        tcw = cell->wd->cell_width * columns;
-       alignw = (vw - tcw)*cell->wd->align_x;
-     }
-   else if (cell->wd->horizontal && cell->wd->minw > vw)
-        alignw = 0;
-   if (!cell->wd->horizontal && cell->wd->minh < vh)
-     {
-        int rows;
-
-        rows = eina_list_count(cell->wd->cells)/(vw/cell->wd->cell_width);
-        if (eina_list_count(cell->wd->cells) % (vw/cell->wd->cell_width))
-             rows++;
-
-        tch = cell->wd->cell_height * rows;
-        alignh = (vh - tch)*cell->wd->align_y;
-     }
-   else if (!cell->wd->horizontal && cell->wd->minh > vh)
-        alignh = 0;
-   x = cx * cell->wd->cell_width - cell->wd->pan_x + ox + alignw;
-   y = cy * cell->wd->cell_height - cell->wd->pan_y + oy + alignh;
-
-   if (ELM_RECTS_INTERSECT(x, y, cell->wd->cell_width, cell->wd->cell_height,
-                          cvx, cvy, cvw, cvh))
-     {
-       Eina_Bool was_realized = cell->realized;
-       _cell_realize(cell);
-       if (!was_realized)
-         evas_object_smart_callback_call(cell->wd->self, "realized", cell);
-       evas_object_move(cell->base, x, y);
-       evas_object_resize(cell->base, cell->wd->cell_width,
-                          cell->wd->cell_height);
-     }
-   else
-     _cell_unrealize(cell);
-}
-
-static Elm_Grid_Cell *
-_cell_create(Widget_Data *wd, const Elm_Grid_Cell_Class *gcc,
-      const void *data, Evas_Smart_Cb func, const void *func_data)
-{
-   Elm_Grid_Cell *cell;
-
-   cell = calloc(1, sizeof(*cell));
-   if (!cell) return NULL;
-   cell->wd = wd;
-   cell->gcc = gcc;
-   cell->data = data;
-   cell->func.func = func;
-   cell->func.data = func_data;
-   return cell;
-}
-
-static void
-_cell_del(Elm_Grid_Cell *cell)
-{
-   if (cell->selected)
-     cell->wd->selected = eina_list_remove(cell->wd->selected, cell);
-   if (cell->realized) _cell_unrealize(cell);
-   if ((!cell->delete_me) && (cell->gcc->func.del))
-     cell->gcc->func.del(cell->data, cell->wd->self);
-   cell->delete_me = EINA_TRUE;
-   cell->wd->cells = eina_list_remove(cell->wd->cells, cell);
-   if (cell->long_timer) ecore_timer_del(cell->long_timer);
-   free(cell);
-}
-
-static void
-_cell_select(Elm_Grid_Cell *cell)
-{
-   if ((cell->wd->no_select) || (cell->delete_me)) return;
-   if (cell->selected)
-     {
-       if (cell->wd->always_select) goto call;
-       return;
-     }
-   cell->selected = EINA_TRUE;
-   cell->wd->selected = eina_list_append(cell->wd->selected, cell);
-call:
-   cell->walking++;
-   if (cell->func.func) cell->func.func((void *)cell->func.data, cell->wd->self,
-                                       cell);
-   if (!cell->delete_me)
-     evas_object_smart_callback_call(cell->wd->self, "selected", cell);
-   cell->walking--;
-   if ((cell->walking == 0) && (cell->delete_me))
-     if (cell->relcount == 0) _cell_del(cell);
-}
-
-static void
-_cell_unselect(Elm_Grid_Cell *cell)
-{
-   if ((cell->delete_me) || (!cell->hilighted)) return;
-   edje_object_signal_emit(cell->base, "elm,state,unselected", "elm");
-   cell->hilighted = EINA_FALSE;
-   if (cell->selected)
-     {
-       cell->selected = EINA_FALSE;
-       cell->wd->selected = eina_list_remove(cell->wd->selected, cell);
-       evas_object_smart_callback_call(cell->wd->self, "unselected", cell);
-     }
-}
-
-static void
-_calc_job(void *data)
-{
-   Widget_Data *wd = data;
-   Evas_Coord minw = 0, minh = 0, nmax = 0, cvw, cvh;
-   int count;
-
-   evas_output_viewport_get(evas_object_evas_get(wd->self), NULL, NULL,
-                           &cvw, &cvh);
-   if (wd->horizontal && wd->cell_height)
-     nmax = cvh / wd->cell_height;
-   else if (wd->cell_width)
-     nmax = cvw / wd->cell_width;
-
-   if (nmax)
-     {
-       count = eina_list_count(wd->cells);
-       if (wd->horizontal)
-         {
-            minw = ceil(count  / (float)nmax) * wd->cell_width;
-            minh = nmax * wd->cell_height;
-         }
-       else
-         {
-            minw = nmax * wd->cell_width;
-            minh = ceil(count / (float)nmax) * wd->cell_height;
-         }
-     }
-
-   if ((minw != wd->minw) || (minh != wd->minh))
-     {
-       wd->minh = minh;
-       wd->minw = minw;
-       evas_object_smart_callback_call(wd->pan_smart, "changed", NULL);
-       _sizing_eval(wd->self);
-     }
-
-   wd->nmax = nmax;
-   wd->calc_job = NULL;
-   evas_object_smart_changed(wd->pan_smart);
-}
-
-static void
-_pan_add(Evas_Object *obj)
-{
-   Pan *sd;
-   Evas_Object_Smart_Clipped_Data *cd;
-
-   _pan_sc.add(obj);
-   cd = evas_object_smart_data_get(obj);
-   sd = ELM_NEW(Pan);
-   if (!sd) return;
-   sd->__clipped_data = *cd;
-   free(cd);
-   evas_object_smart_data_set(obj, sd);
-}
-
-static void
-_pan_del(Evas_Object *obj)
-{
-   Pan *sd = evas_object_smart_data_get(obj);
-
-   if (!sd) return;
-   _pan_sc.del(obj);
-}
-
-static void
-_pan_set(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
-{
-   Pan *sd = evas_object_smart_data_get(obj);
-   if ((x == sd->wd->pan_x) && (y == sd->wd->pan_y)) return;
-   sd->wd->pan_x = x;
-   sd->wd->pan_y = y;
-   evas_object_smart_changed(obj);
-}
-
-static void
-_pan_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y)
-{
-   Pan *sd = evas_object_smart_data_get(obj);
-   if (x) *x = sd->wd->pan_x;
-   if (y) *y = sd->wd->pan_y;
-}
-
-static void
-_pan_child_size_get(Evas_Object *obj, Evas_Coord *w, Evas_Coord *h)
-{
-   Pan *sd = evas_object_smart_data_get(obj);
-   if (w) *w = sd->wd->minw;
-   if (h) *h = sd->wd->minh;
-}
-
-static void
-_pan_max_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y)
-{
-   Pan *sd = evas_object_smart_data_get(obj);
-   Evas_Coord ow, oh;
-
-   if (!sd) return;
-   evas_object_geometry_get(obj, NULL, NULL, &ow, &oh);
-   if (x)
-     *x = (ow < sd->wd->minw) ? sd->wd->minw - ow : 0;
-   if (y)
-     *y = (oh < sd->wd->minh) ? sd->wd->minh - oh : 0;
-}
-
-static void
-_pan_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
-{
-   Pan *sd = evas_object_smart_data_get(obj);
-   Evas_Coord ow, oh;
-
-   evas_object_geometry_get(obj, NULL, NULL, &ow, &oh);
-   if ((ow == w) && (oh == h)) return;
-   if (sd->wd->calc_job) ecore_job_del(sd->wd->calc_job);
-   sd->wd->calc_job = ecore_job_add(_calc_job, sd->wd);
-}
-
-static void
-_pan_calculate(Evas_Object *obj)
-{
-   Pan *sd = evas_object_smart_data_get(obj);
-   Evas_Coord cx = 0, cy = 0;
-   Eina_List *l;
-   Elm_Grid_Cell *cell;
-
-   if (!sd) return;
-   if (!sd->wd->nmax) return;
-
-   EINA_LIST_FOREACH(sd->wd->cells, l, cell)
-     {
-       _cell_place(cell, cx, cy);
-       if (sd->wd->horizontal)
-         {
-            cy = (cy + 1) % sd->wd->nmax;
-            if (!cy) cx++;
-         }
-       else
-         {
-            cx = (cx + 1) % sd->wd->nmax;
-            if (!cx) cy++;
-         }
-     }
-}
-
-static void
-_pan_move(Evas_Object *obj, Evas_Coord x __UNUSED__, Evas_Coord y __UNUSED__)
-{
-   Pan *sd = evas_object_smart_data_get(obj);
-   if (!sd) return;
-   if (sd->wd->calc_job) ecore_job_del(sd->wd->calc_job);
-   sd->wd->calc_job = ecore_job_add(_calc_job, sd->wd);
-}
-
-static void
-_hold_on(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_smart_scroller_hold_set(wd->scr, 1);
-}
-
-static void
-_hold_off(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_smart_scroller_hold_set(wd->scr, 0);
-}
-
-static void
-_freeze_on(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_smart_scroller_freeze_set(wd->scr, 1);
-}
-
-static void
-_freeze_off(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_smart_scroller_freeze_set(wd->scr, 0);
-}
-
-static void
-_scr_drag_start(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
-{
-   evas_object_smart_callback_call(data, "scroll,drag,start", NULL);
-}
-
-static void
-_scr_drag_stop(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
-{
-   evas_object_smart_callback_call(data, "scroll,drag,stop", NULL);
-}
-
-static void
-_scr_scroll(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
-{
-   evas_object_smart_callback_call(data, "scroll", NULL);
-}
-
-/**
- * Add a new Scrolled Grid object.
- *
- * @param parent The parent object.
- * @return  The new object or NULL if it cannot be created.
- *
- * @see elm_scrolled_grid_cell_size_set()
- * @see elm_scrolled_grid_horizontal_set()
- * @see elm_scrolled_grid_cell_add()
- * @see elm_scrolled_grid_cell_del()
- * @see elm_scrolled_grid_clear()
- *
- * @ingroup Grid
- */
-EAPI Evas_Object *
-elm_scrolled_grid_add(Evas_Object *parent)
-{
-   Evas_Object *obj;
-   Evas *e;
-   Evas_Coord minw, minh;
-   Widget_Data *wd;
-   static Evas_Smart *smart = NULL;
-
-   wd = ELM_NEW(Widget_Data);
-   e = evas_object_evas_get(parent);
-   obj = elm_widget_add(e);
-   ELM_SET_WIDTYPE(widtype, "grid");
-   elm_widget_type_set(obj, "grid");
-   elm_widget_sub_object_add(parent, obj);
-   elm_widget_data_set(obj, wd);
-   elm_widget_del_hook_set(obj, _del_hook);
-   elm_widget_theme_hook_set(obj, _theme_hook);
-
-   wd->scr = elm_smart_scroller_add(e);
-   elm_smart_scroller_widget_set(wd->scr, obj);
-   elm_smart_scroller_object_theme_set(obj, wd->scr, "grid", "base", "default");
-   elm_widget_resize_object_set(obj, wd->scr);
-
-   evas_object_smart_callback_add(wd->scr, "drag,start", _scr_drag_start, obj);
-   evas_object_smart_callback_add(wd->scr, "drag,stop", _scr_drag_stop, obj);
-   evas_object_smart_callback_add(wd->scr, "scroll", _scr_scroll, obj);
-
-   elm_smart_scroller_bounce_allow_set(wd->scr, 1, 1);
-
-   wd->self = obj;
-   wd->align_x = 0.5;
-   wd->align_y = 0.5;
-
-   evas_object_smart_callback_add(obj, "scroll-hold-on", _hold_on, obj);
-   evas_object_smart_callback_add(obj, "scroll-hold-off", _hold_off, obj);
-   evas_object_smart_callback_add(obj, "scroll-freeze-on", _freeze_on, obj);
-   evas_object_smart_callback_add(obj, "scroll-freeze-off", _freeze_off, obj);
-
-   if (!smart)
-     {
-       static Evas_Smart_Class sc;
-
-       evas_object_smart_clipped_smart_set(&_pan_sc);
-       sc = _pan_sc;
-       sc.name = "elm_scrolled_grid_pan";
-       sc.version = EVAS_SMART_CLASS_VERSION;
-       sc.add = _pan_add;
-       sc.del = _pan_del;
-       sc.resize = _pan_resize;
-       sc.move = _pan_move;
-       sc.calculate = _pan_calculate;
-       smart = evas_smart_class_new(&sc);
-     }
-   if (smart)
-     {
-       wd->pan_smart = evas_object_smart_add(e, smart);
-       wd->pan = evas_object_smart_data_get(wd->pan_smart);
-       wd->pan->wd = wd;
-     }
-
-   elm_smart_scroller_extern_pan_set(wd->scr, wd->pan_smart,
-                                    _pan_set, _pan_get,
-                                    _pan_max_get, _pan_child_size_get);
-
-   _sizing_eval(obj);
-
-   return obj;
-}
-
-/**
- * Set the size for the cell of the Grid.
- *
- * @param obj The Grid object.
- * @param w The cell's width.
- * @param h The cell's height;
- *
- * @see elm_scrolled_grid_cell_size_get()
- *
- * @ingroup Grid
- */
-EAPI void
-elm_scrolled_grid_cell_size_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   if (wd->cell_width == w && wd->cell_height == h) return;
-   wd->cell_width = w;
-   wd->cell_height = h;
-   if (wd->calc_job) ecore_job_del(wd->calc_job);
-   wd->calc_job = ecore_job_add(_calc_job, wd);
-}
-
-/**
- * Get the size of the cell of the Grid.
- *
- * @param obj The Grid object.
- * @param w Pointer to the cell's width.
- * @param h Pointer to the cell's height.
- *
- * @see elm_scrolled_grid_cell_size_get()
- *
- * @ingroup Grid
- */
-EAPI void
-elm_scrolled_grid_cell_size_get(const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   if (w) *w = wd->cell_width;
-   if (h) *h = wd->cell_height;
-}
-
-/**
- * Set cell's alignment within the scroller.
- *
- * @param obj The grid object.
- * @param align_x The x alignment (0 <= x <= 1).
- * @param align_y The y alignment (0 <= y <= 1).
- *
- * @see elm_scrolled_grid_align_get()
- *
- * @ingroup Grid
- */
-EAPI void
-elm_scrolled_grid_align_set(Evas_Object *obj, double align_x, double align_y)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-
-   if (align_x > 1.0)
-     align_x = 1.0;
-   else if (align_x < 0.0)
-     align_x = 0.0;
-   wd->align_x = align_x;
-
-   if (align_y > 1.0)
-     align_y = 1.0;
-   else if (align_y < 0.0)
-     align_y = 0.0;
-   wd->align_y = align_y;
-}
-
-/**
- * Get the alignenment set for the grid object.
- *
- * @param obj The grid object.
- * @param align_x Pointer to x alignenment.
- * @param align_y Pointer to y alignenment.
- *
- * @see elm_scrolled_grid_align_set()
- *
- * @ingroup Grid
- */
-EAPI void
-elm_scrolled_grid_align_get(const Evas_Object *obj, double *align_x, double *align_y)
-{
-    ELM_CHECK_WIDTYPE(obj, widtype);
-    Widget_Data *wd = elm_widget_data_get(obj);
-    if (align_x) *align_x = wd->align_x;
-    if (align_y) *align_y = wd->align_y;
-}
-
-/**
- * Add cell to the end of the Grid.
- *
- * @param obj The Grid object.
- * @param gcc The cell class for the cell.
- * @param data The cell data.
- * @param func Convenience function called when cell is selected.
- * @param func_data Data passed to @p func above.
- * @return A handle to the cell added or NULL if not possible.
- *
- * @see elm_scrolled_grid_cell_del()
- *
- * @ingroup Grid
- */
-EAPI Elm_Grid_Cell *
-elm_scrolled_grid_cell_add(Evas_Object *obj, const Elm_Grid_Cell_Class *gcc,
-                          const void *data, Evas_Smart_Cb func,
-                          const void *func_data)
-{
-   Elm_Grid_Cell *cell;
-   ELM_CHECK_WIDTYPE(obj, widtype) NULL;
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return NULL;
-
-   cell = _cell_create(wd, gcc, data, func, func_data);
-   if (!cell) return NULL;
-
-   wd->cells = eina_list_append(wd->cells, cell);
-   wd->no_select = EINA_FALSE;
-
-   if (wd->calc_job) ecore_job_del(wd->calc_job);
-   wd->calc_job = ecore_job_add(_calc_job, wd);
-
-   return cell;
-}
-
-/**
- * Remove a cell from the Grid.
- *
- * @param cell The cell to be removed.
- * @return @c EINA_TRUE on success or @c EINA_FALSE otherwise.
- *
- * @see elm_scrolled_grid_clear() to remove all cells of the grid.
- *
- * @ingroup Grid
- */
-EAPI void
-elm_scrolled_grid_cell_del(Elm_Grid_Cell *cell)
-{
-   if (!cell) return;
-   if ((cell->relcount > 0) || (cell->walking > 0))
-     {
-       cell->delete_me = EINA_TRUE;
-       if (cell->selected)
-         cell->wd->selected = eina_list_remove(cell->wd->selected, cell);
-       if (cell->gcc->func.del) cell->gcc->func.del(cell->data, cell->wd->self);
-       return;
-     }
-
-   _cell_del(cell);
-
-   if (cell->wd->calc_job) ecore_job_del(cell->wd->calc_job);
-   cell->wd->calc_job = ecore_job_add(_calc_job, cell->wd);
-}
-
-/**
- * Set for what direction the grid will expand.
- *
- * @param obj The Grid object.
- * @param setting If @c EINA_TRUE the grid will expand horizontally or
- * vertically if @c EINA_FALSE.
- *
- * @ingroup Grid
- */
-EAPI void
-elm_scrolled_grid_horizontal_set(Evas_Object *obj, Eina_Bool setting)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   if (setting == wd->horizontal) return;
-   wd->horizontal = setting;
-
-   /* Update the cells to conform to the new layout */
-   if (wd->calc_job) ecore_job_del(wd->calc_job);
-   wd->calc_job = ecore_job_add(_calc_job, wd);
-}
-
-/**
- * Clear the Grid
- *
- * This clears all cells in the grid, leaving it empty.
- *
- * @param obj The Grid object.
- *
- * @see elm_scrolled_grid_cell_del() to remove just one cell.
- *
- * @ingroup Grid
- */
-EAPI void
-elm_scrolled_grid_clear(Evas_Object *obj)
-{
-   Eina_List *l, *l_next;
-   Elm_Grid_Cell *cell;
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-
-   if (wd->calc_job)
-     {
-       ecore_job_del(wd->calc_job);
-       wd->calc_job = NULL;
-     }
-
-   EINA_LIST_FOREACH_SAFE(wd->cells, l, l_next, cell)
-     {
-       if (cell->realized) _cell_unrealize(cell);
-       if (cell->gcc->func.del) cell->gcc->func.del(cell->data, wd->self);
-       if (cell->long_timer) ecore_timer_del(cell->long_timer);
-       free(cell);
-       wd->cells = eina_list_remove_list(wd->cells, l);
-     }
-
-   if (wd->selected)
-     {
-       eina_list_free(wd->selected);
-       wd->selected = NULL;
-     }
-
-   wd->pan_x = 0;
-   wd->pan_y = 0;
-   wd->minw = 0;
-   wd->minh = 0;
-   evas_object_size_hint_min_set(wd->pan_smart, wd->minw, wd->minh);
-   evas_object_smart_callback_call(wd->pan_smart, "changed", NULL);
-   _sizing_eval(obj);
-}
-
-/**
- * Get the real evas object of the grid cell
- *
- * This returns the actual evas object used for the specified grid cell.
- * This may be NULL as it may not be created, and may be deleted at any time
- * by grid. Do not modify this object (move, resize, show, hide etc.) as grid
- * is controlling it. This function is for querying, emitting custom signals
- * or hooking lower level callbacks for events. Do not delete this object
- * under any circumstances.
- *
- * @param cell The Grid cell.
- * @return the evas object associated to this cell.
- *
- * @see elm_scrolled_grid_cell_data_get()
- *
- * @ingroup Grid
- */
-EAPI const Evas_Object *
-elm_scrolled_grid_cell_object_get(Elm_Grid_Cell *cell)
-{
-   if (!cell) return NULL;
-   return cell->base;
-}
-
-/**
- * Returns the data associated to a cell
- *
- * This returns the data value passed on the elm_scrolled_grid_cell_add() and
- * related cell addition calls.
- *
- * @param cell The Grid cell.
- * @return the data associated to this cell.
- *
- * @see elm_scrolled_grid_cell_add()
- * @see elm_scrolled_grid_cell_object_get()
- *
- * @ingroup Grid
- */
-EAPI void *
-elm_scrolled_grid_cell_data_get(Elm_Grid_Cell *cell)
-{
-   if (!cell) return NULL;
-   return (void *)cell->data;
-}
-
-/**
- * Get the cell's coordinates.
- *
- * This returns the logical position of the cell whithin the Grid.
- *
- * @param cell The Grid cell.
- * @param x The x-axis coordinate pointer.
- * @param y The y-axis coordinate pointer.
- *
- * @ingroup Grid
- */
-EAPI void
-elm_scrolled_grid_cell_pos_get(const Elm_Grid_Cell *cell, unsigned int *x, unsigned int *y)
-{
-   if (!cell) return;
-   if (x) *x = cell->x;
-   if (y) *y = cell->y;
-}
-
-/**
- * Enable or disable multi-select in the grid.
- *
- * This enables (EINA_TRUE) or disables (EINA_FALSE) multi-select in the grid.
- * This allows more than 1 cell to be selected.
- *
- * @param obj The grid object.
- * @param multi Multi-select enabled/disabled
- *
- * @ingroup Grid
- */
-EAPI void
-elm_scrolled_grid_multi_select_set(Evas_Object *obj, Eina_Bool multi)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   wd->multi = multi;
-}
-
-/**
- * Get if multi-select in grid is enabled or disabled
- *
- * @param obj The grid object
- * @return Multi-select enable/disable
- * (EINA_TRUE = enabled / EINA_FALSE = disabled)
- *
- * @ingroup Grid
- */
-EAPI Eina_Bool
-elm_scrolled_grid_multi_select_get(const Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return EINA_FALSE;
-   return wd->multi;
-}
-
-/**
- * Get the selected cell in the grid
- *
- * This gets the selected cell in the grid (if multi-select is enabled only
- * the first cell in the list is selected - which is not very useful, so see
- * elm_scrolled_grid_selected_cells_get() for when multi-select is used).
- *
- * If no cell is selected, NULL is returned.
- *
- * @param obj The grid object.
- * @return The selected cell, or NULL if none.
- *
- * @ingroup Grid
- */
-EAPI Elm_Grid_Cell *
-elm_scrolled_grid_selected_cell_get(const Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype) NULL;
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return NULL;
-   if (wd->selected) return wd->selected->data;
-   return NULL;
-}
-
-/**
- * Get a list of selected cells in the grid.
- *
- * This returns a list of the selected cells. This list pointer is only valid
- * so long as no cells are selected or unselected (or unselected implictly by
- * deletion). The list contains Elm_Grid_Cell pointers.
- *
- * @param obj The grid object.
- * @return The list of selected cells, or NULL if none are selected.
- *
- * @ingroup Grid
- */
-EAPI const Eina_List *
-elm_scrolled_grid_selected_cells_get(const Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype) NULL;
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return NULL;
-   return wd->selected;
-}
-
-/**
- * Get the selected state of a cell.
- *
- * This gets the selected state of a cell (1 selected, 0 not selected).
- *
- * @param cell The cell
- * @return The selected state
- *
- * @ingroup Grid
- */
-EAPI Eina_Bool
-elm_scrolled_grid_cell_selected_get(const Elm_Grid_Cell *cell)
-{
-   if (!cell) return EINA_FALSE;
-   return cell->selected;
-}
-
-/**
- * Sets the disabled state of a cell.
- *
- * A disabled cell cannot be selected or unselected. It will also change
- * appearance to disabled. This sets the disabled state (1 disabled, 0 not
- * disabled).
- *
- * @param cell The cell
- * @param disabled The disabled state
- *
- * @ingroup Grid
- */
-EAPI void
-elm_scrolled_grid_cell_disabled_set(Elm_Grid_Cell *cell, Eina_Bool disabled)
-{
-   if (!cell) return;
-   if (cell->disabled == disabled) return;
-   if (cell->delete_me) return;
-   cell->disabled = disabled;
-   if (cell->realized)
-     {
-       if (cell->disabled)
-         edje_object_signal_emit(cell->base, "elm,state,disabled", "elm");
-       else
-         edje_object_signal_emit(cell->base, "elm,state,enabled", "elm");
-     }
-}
-
-/**
- * Get the disabled state of a cell.
- *
- * This gets the disabled state of the given cell.
- *
- * @param cell The cell
- * @return The disabled state
- *
- * @ingroup Grid
- */
-EAPI Eina_Bool
-elm_scrolled_grid_cell_disabled_get(const Elm_Grid_Cell *cell)
-{
-   if (!cell) return EINA_FALSE;
-   if (cell->delete_me) return EINA_FALSE;
-   return cell->disabled;
-}
-
-/**
- * Set the always select mode.
- *
- * Cells will only call their selection func and callback when first becoming
- * selected. Any further clicks will do nothing, unless you enable always select
- * with elm_scrolled_grid_always_select_mode_set(). This means even if selected,
- * every click will make the selected callbacks be called.
- *
- * @param obj The grid object
- * @param always_select The always select mode (EINA_TRUE = on, EINA_FALSE = off)
- *
- * @ingroup Grid
- */
-EAPI void
-elm_scrolled_grid_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   wd->always_select = always_select;
-}
-
-/**
- * Get the always select mode.
- *
- * @param obj The grid object.
- * @return The always select mode (EINA_TRUE = on, EINA_FALSE = off)
- *
- * @ingroup Grid
- */
-EAPI Eina_Bool
-elm_scrolled_grid_always_select_mode_get(const Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return EINA_FALSE;
-   return wd->always_select;
-}
-
-/**
- * Set no select mode.
- *
- * This will turn off the ability to select items entirely and they will
- * neither appear selected nor call selected callback functions.
- *
- * @param obj The grid object
- * @param no_select The no select mode (EINA_TRUE = on, EINA_FALSE = off)
- *
- * @ingroup Grid
- */
-EAPI void
-elm_scrolled_grid_no_select_mode_set(Evas_Object *obj, Eina_Bool no_select)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   wd->no_select = no_select;
-}
-
-/**
- * Gets no select mode.
- *
- * @param obj The grid object
- * @return The no select mode (EINA_TRUE = on, EINA_FALSE = off)
- *
- * @ingroup Grid
- */
-EAPI Eina_Bool
-elm_scrolled_grid_no_select_mode_get(const Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return EINA_FALSE;
-   return wd->no_select;
-}
-
-/**
- * Set bounce mode.
- *
- * This will enable or disable the scroller bounce mode for the grid. See
- * elm_scroller_bounce_set() for details.
- *
- * @param obj The grid object
- * @param h_bounce Allow bounce horizontally
- * @param v_bounce Allow bounce vertically
- *
- * @ingroup Grid
- */
-EAPI void
-elm_scrolled_grid_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_smart_scroller_bounce_allow_set(wd->scr, h_bounce, v_bounce);
-}
-
-/**
- * Get the bounce mode
- *
- * @param obj The grid object
- * @param h_bounce Allow bounce horizontally
- * @param v_bounce Allow bounce vertically
- *
- * @ingroup Grid
- */
-EAPI void
-elm_scrolled_grid_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_smart_scroller_bounce_allow_get(wd->scr, h_bounce, v_bounce);
-}
index d26c6d9..722931b 100644 (file)
@@ -4,14 +4,6 @@
 #include <Elementary.h>
 #include "elm_priv.h"
 
-/**
- * @defgroup Searchbar Searchbar
- * @ingroup Elementary
- *
- * This is Searchbar.
- * It can contain a simple entry and button object.
- */
-
 typedef struct _Widget_Data Widget_Data;
 
 struct _Widget_Data
@@ -175,13 +167,6 @@ _elm_searchbar_text_get(const Evas_Object *obj, const char *item)
 }
 
 
-/**
- * Add a new searchbar to the parent
- * @param parent The parent object
- * @return The new object or NULL if it cannot be created
- *
- * @ingroup Searchbar
- */
 EAPI Evas_Object *elm_searchbar_add(Evas_Object *parent)
 {
    Evas_Object *obj;
@@ -235,40 +220,16 @@ EAPI Evas_Object *elm_searchbar_add(Evas_Object *parent)
    return obj;
 }
 
-/**
- * set the text of entry
- *
- * @param obj The searchbar object
- * @return void
- *
- * @ingroup Searchbar
- */
 EAPI void elm_searchbar_text_set(Evas_Object *obj, const char *entry)
 {
    _elm_searchbar_text_set(obj, NULL, entry);
 }
 
-/**
- * get the text of entry
- *
- * @param obj The searchbar object
- * @return string pointer of entry
- *
- * @ingroup Searchbar
- */
 EAPI const char* elm_searchbar_text_get(Evas_Object *obj)
 {
    return _elm_searchbar_text_get(obj, NULL);
 }
 
-/**
- * get the pointer of entry
- *
- * @param obj The searchbar object
- * @return the entry object
- *
- * @ingroup Searchbar
- */
 EAPI Evas_Object *elm_searchbar_entry_get(Evas_Object *obj)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
@@ -278,14 +239,6 @@ EAPI Evas_Object *elm_searchbar_entry_get(Evas_Object *obj)
    return elm_editfield_entry_get(wd->ef);
 }
 
-/**
- * get the pointer of editfield
- *
- * @param obj The searchbar object
- * @return the editfield object
- *
- * @ingroup Searchbar
- */
 EAPI Evas_Object *elm_searchbar_editfield_get(Evas_Object *obj)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
@@ -295,15 +248,6 @@ EAPI Evas_Object *elm_searchbar_editfield_get(Evas_Object *obj)
    return wd->ef;
 }
 
-/**
- * set the cancel button animation flag
- *
- * @param obj The searchbar object
- * @param cancel_btn_ani_flag The flag of animating cancen button or not
- * @return void
- *
- * @ingroup Searchbar
- */
 EAPI void elm_searchbar_cancel_button_animation_set(Evas_Object *obj, Eina_Bool cancel_btn_ani_flag)
 {
    ELM_CHECK_WIDTYPE(obj, widtype);
@@ -314,15 +258,6 @@ EAPI void elm_searchbar_cancel_button_animation_set(Evas_Object *obj, Eina_Bool
    else wd->cancel_btn_ani_flag = cancel_btn_ani_flag;
 }
 
-/**
- * set the cancel button show mode
- *
- * @param obj The searchbar object
- * @param visible The flag of cancen button show or not
- * @return void
- *
- * @ingroup Searchbar
- */
 EAPI void elm_searchbar_cancel_button_set(Evas_Object *obj, Eina_Bool visible)
 {
    ELM_CHECK_WIDTYPE(obj, widtype);
@@ -342,14 +277,6 @@ EAPI void elm_searchbar_cancel_button_set(Evas_Object *obj, Eina_Bool visible)
    _sizing_eval(obj);
 }
 
-/**
- * clear searchbar status
- *
- * @param obj The searchbar object
- * @return void
- *
- * @ingroup Searchbar
- */
 EAPI void elm_searchbar_clear(Evas_Object *obj)
 {
    ELM_CHECK_WIDTYPE(obj, widtype);
@@ -366,15 +293,6 @@ EAPI void elm_searchbar_clear(Evas_Object *obj)
 //   elm_entry_entry_set(elm_editfield_entry_get(wd->ef), NULL);
 }
 
-/**
- * set the searchbar boundary rect mode(with bg rect) set
- *
- * @param obj The searchbar object
- * @param boundary The present flag of boundary rect or not
- * @return void
- *
- * @ingroup Searchbar
- */
 EAPI void elm_searchbar_boundary_rect_set(Evas_Object *obj, Eina_Bool boundary)
 {
    ELM_CHECK_WIDTYPE(obj, widtype);
index 2407392..bd6ca90 100644 (file)
@@ -602,8 +602,7 @@ static void
 _content_set_hook(Evas_Object *obj, const char *part, Evas_Object *content)
 {
    ELM_CHECK_WIDTYPE(obj, widtype);
-   if (!part) return;
-   if (!strcmp(part, "icon"))
+   if (!part || !strcmp(part, "icon"))
      _icon_set(obj, content);
    else if (!strcmp(part, "end"))
      _end_set(obj, content);
@@ -614,10 +613,9 @@ _content_get_hook(const Evas_Object *obj, const char *part)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd;
-   if (!part) return NULL;
    wd = elm_widget_data_get(obj);
    if (!wd) return NULL;
-   if (!strcmp(part, "icon"))
+   if (!part || !strcmp(part, "icon"))
      return wd->icon;
    else if (!strcmp(part, "end"))
      return wd->end;
@@ -628,8 +626,7 @@ static Evas_Object *
 _content_unset_hook(Evas_Object *obj, const char *part)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
-   if (!part) return NULL;
-   if (!strcmp(part, "icon"))
+   if (!part || !strcmp(part, "icon"))
      return _icon_unset(obj);
    else if (!strcmp(part, "end"))
      return _end_unset(obj);
diff --git a/src/lib/elm_slidingdrawer.c b/src/lib/elm_slidingdrawer.c
deleted file mode 100644 (file)
index dd71d0d..0000000
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- * @defgroup SlidingDrawer SlidingDrawer
- * @ingroup Elementary
- *
- * This is a slidingdrawer.
- */
-
-#include <Elementary.h>
-#include "elm_priv.h"
-
-typedef struct _Widget_Data Widget_Data;
-
-struct _Widget_Data
-{
-   Evas_Object *parent;
-   Evas_Object *base;
-   Evas_Object *handler;
-   Evas_Object *dragable_rect;
-   Elm_SlidingDrawer_Pos pos;
-   double max_drag_w;
-   double max_drag_h;
-   Elm_SlidingDrawer_Drag_Value value;
-};
-
-static const char *widtype = NULL;
-
-static void _del_hook(Evas_Object *obj);
-
-static void _theme_hook(Evas_Object *obj);
-
-static void _sizing_eval(Evas_Object *obj);
-
-static void _parent_resize(void *data, Evas * e, Evas_Object *obj, void *event_info);
-static void _drag_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
-static void _up_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
-static void _down_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
-
-static void
-_del_hook(Evas_Object *obj)
-{
-   Widget_Data *wd = (Widget_Data *) elm_widget_data_get(obj);
-
-   evas_object_event_callback_del(wd->parent, EVAS_CALLBACK_RESIZE, _parent_resize);
-   free(wd);
-}
-
-static void \r
-_theme_hook(Evas_Object *obj)
-{
-   Widget_Data *wd = (Widget_Data *) elm_widget_data_get(obj);
-
-   elm_slidingdrawer_pos_set(obj, wd->pos);
-}
-
-static void
-_parent_resize(void *data, Evas * e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
-{
-   _sizing_eval(data);
-}
-
-static void
-_drag_cb(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__)
-{
-   Widget_Data *wd = elm_widget_data_get(data);
-
-   edje_object_part_drag_value_get(wd->base, "elm.dragable.handler", &wd->value.x, &wd->value.y);
-   evas_object_smart_callback_call(data, "mouse,move", (void *)&wd->value);
-}
-
-static void
-_up_cb(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__)
-{
-   Widget_Data *wd = elm_widget_data_get(data);
-
-   edje_object_part_drag_value_get(wd->base, "elm.dragable.handler", &wd->value.x, &wd->value.y);
-   evas_object_smart_callback_call(data, "mouse,up", (void *)&wd->value);
-}
-
-static void
-_down_cb(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__)
-{
-   Widget_Data *wd = elm_widget_data_get(data);
-
-   edje_object_part_drag_value_get(wd->base, "elm.dragable.handler", &wd->value.x, &wd->value.y);
-   evas_object_smart_callback_call(data, "mouse,down", (void *)&wd->value);
-}
-
-static void
-_sizing_eval(Evas_Object *obj)
-{
-   Widget_Data *wd;
-
-   Evas_Coord x, y, w, h;
-
-   const Evas_Object *part;
-
-   wd = elm_widget_data_get(obj);
-
-   evas_object_geometry_get(wd->parent, &x, &y, &w, &h);
-   evas_object_move(obj, x, y);
-   evas_object_resize(obj, w, h);
-
-   evas_object_size_hint_max_set(wd->dragable_rect, ((double)w) * wd->max_drag_w, ((double)h) * wd->max_drag_h);
-
-   part = edje_object_part_object_get(wd->base, "elm.dragable.handler");
-
-   if ((wd->pos == ELM_SLIDINGDRAWER_TOP)
-       || (wd->pos == ELM_SLIDINGDRAWER_BOTTOM))
-     edje_object_size_min_get(part, NULL, &h);
-   else
-     edje_object_size_min_get(part, &w, NULL);
-
-   evas_object_size_hint_min_set(wd->handler, w, h);
-}
-
-/**
- * Unswallow the user content
- *
- * @param[in] obj              SlidingDrawer object
- * @return             The unswallowed contents
- *
- * @ingroup SlidingDrawer
- */
-EAPI Evas_Object *
-elm_slidingdrawer_content_unset(Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype) NULL;
-   Widget_Data *wd;
-   Evas_Object *content;
-   wd = elm_widget_data_get(obj);
-   content = edje_object_part_swallow_get(wd->base, "elm.swallow.content");
-   if (!content)
-      return NULL;
-   edje_object_part_unswallow(wd->base, content);
-   elm_widget_sub_object_del(obj, content);
-   return content;
-}
-
-/**
- * Swallow the user contents
- *
- * @param[in] obj               SlidingDrawer object
- * @param[in] content           Content to be swallowed.
- *
- * @ingroup SlidingDrawer
- */
-EAPI void
-elm_slidingdrawer_content_set(Evas_Object *obj, Evas_Object *content){
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd;
-   Evas_Object *prev_content;
-   if (!content) return;
-   wd = elm_widget_data_get(obj);
-   elm_widget_sub_object_add(obj, content);
-   prev_content = edje_object_part_swallow_get(wd->base, "elm.swallow.content");
-   if (prev_content)
-     {
-        edje_object_part_unswallow(wd->base, prev_content);
-        elm_widget_sub_object_del(obj, prev_content);
-        evas_object_del(prev_content);
-     }
-   edje_object_part_swallow(wd->base, "elm.swallow.content", content);
-}
-
-/**
- * Set the position of SlidingDrawer
- *
- * @param[in] obj               SlidingDrawer object
- * @param[in] pos               Position of drawer's handle
- *
- * @ingroup SlidingDrawer
- */
-EAPI void
-elm_slidingdrawer_pos_set(Evas_Object *obj, Elm_SlidingDrawer_Pos pos)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-
-   Widget_Data *wd = elm_widget_data_get(obj);
-
-   switch (pos)
-     {
-      case ELM_SLIDINGDRAWER_BOTTOM:
-         _elm_theme_object_set(obj, wd->base, "slidingdrawer", "bottom", elm_widget_style_get(obj));
-         break;
-      case ELM_SLIDINGDRAWER_LEFT:
-         _elm_theme_object_set(obj, wd->base, "slidingdrawer", "left", elm_widget_style_get(obj));
-         break;
-      case ELM_SLIDINGDRAWER_RIGHT:
-         _elm_theme_object_set(obj, wd->base, "slidingdrawer", "right", elm_widget_style_get(obj));
-         break;
-      case ELM_SLIDINGDRAWER_TOP:
-         _elm_theme_object_set(obj, wd->base, "slidingdrawer", "top", elm_widget_style_get(obj));
-         break;
-     }
-
-   edje_object_part_drag_value_set(wd->base, "elm.dragable.handler", 0, 0);
-   wd->pos = pos;
-   _sizing_eval(obj);
-}
-
-/**
- * Set the current dragable value.
- *
- * @param[in] obj              SlidingDrawer object
- * @param[in] dx               The x value (range: 0 ~ 1)
- * @param[in] dy            The y value (range: 0 ~ 1)
- *
- * @ingroup SlidingDrawer
- */
-EAPI void
-elm_slidingdrawer_drag_value_set(Evas_Object *obj, double dx, double dy)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd;
-
-   wd = elm_widget_data_get(obj);
-   edje_object_part_drag_value_set(wd->base, "elm.dragable.handler", dx, dy);
-}
-
-/**
- * Set the dragable max value.
- *
- * @param[in] obj              SlidingDrawer object
- * @param[in] dw               The maximum width value (range: 0 ~ 1)
- * @param[in] dh                The maximum height value (range: 0 ~ 1)
- *
- * @ingroup SlidingDrawer
- */
-EAPI void
-elm_slidingdrawer_max_drag_value_set(Evas_Object *obj, double dw, double dh)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd;
-
-   wd = elm_widget_data_get(obj);
-   wd->max_drag_w = dw;
-   wd->max_drag_h = dh;
-   _sizing_eval(obj);
-
-}
-
-/**
- * Add a new slidingdrawer object to the parent.
- *
- * @param[in] parent   Parent object
- * @return             New object or NULL if it cannot be created
- *
- * @ingroup SlidingDrawer
- */
-EAPI Evas_Object *
-elm_slidingdrawer_add(Evas_Object *parent)
-{
-   Evas_Object *obj;
-   Evas *e;
-   Widget_Data *wd;
-
-   ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL);
-
-   wd->parent = parent;
-   ELM_SET_WIDTYPE(widtype, "slidingdrawer");
-   elm_widget_type_set(obj, "slidingdrawer");
-   elm_widget_can_focus_set(obj, EINA_FALSE);
-   elm_widget_sub_object_add(parent, obj);
-   elm_widget_data_set(obj, wd);
-   elm_widget_del_hook_set(obj, _del_hook);
-   elm_widget_theme_hook_set(obj, _theme_hook);
-
-   //base
-   wd->base = edje_object_add(e);
-   _elm_theme_object_set(obj, wd->base, "slidingdrawer", "bottom", "default");
-   edje_object_signal_callback_add(wd->base, "drag", "*", _drag_cb, obj);
-   edje_object_signal_callback_add(wd->base, "mouse,up,*", "*", _up_cb, obj);
-   edje_object_signal_callback_add(wd->base, "mouse,down,*", "*", _down_cb, obj);
-   elm_widget_sub_object_add(obj, wd->base);
-   elm_widget_resize_object_set(obj, wd->base);
-
-   //dragable_rect
-   wd->dragable_rect = evas_object_rectangle_add(e);
-   elm_widget_sub_object_add(obj, wd->dragable_rect);
-   edje_object_part_swallow(wd->base, "elm.swallow.dragable_rect", wd->dragable_rect);
-   wd->max_drag_w = 1;
-   wd->max_drag_h = 1;
-
-   //handler
-   wd->handler = evas_object_rectangle_add(e);
-   elm_widget_sub_object_add(obj, wd->handler);
-   evas_object_color_set(wd->handler, 0, 0, 0, 0);
-   edje_object_part_swallow(wd->base, "elm.dragable.handler", wd->handler);
-
-   evas_object_event_callback_add(parent, EVAS_CALLBACK_RESIZE, _parent_resize, obj);
-
-   _sizing_eval(obj);
-
-   return obj;
-}
index 1e54310..bd8adb9 100644 (file)
@@ -2,13 +2,6 @@
 #include "elm_priv.h"
 
 
-/**
- * @defgroup Stackedicon Stackedicon
- * @ingroup Elementary
- *
- * This is a Stackedicon.
- */
-
 
 #define MAX_ITEM_NUM      (9)
 #define MAX_MOVE_INTERVAL   (0.2)
@@ -693,14 +686,6 @@ _event_init(Evas_Object *obj)
    evas_object_event_callback_add(obj, EVAS_CALLBACK_HIDE, _hide_cb, obj);
 }
 
-/**
- * Add a new stackedicon to the parent
- *
- * @param parent The parent object
- * @return The new object or NULL if it cannot be created
- *
- * @ingroup Stackedicon
- */
 EAPI Evas_Object *
 elm_stackedicon_add(Evas_Object *parent)
 {
@@ -732,15 +717,6 @@ elm_stackedicon_add(Evas_Object *parent)
    return obj;
 }
 
-/**
- * This appends a path to the stackedicon
- *
- * @param    obj   The stackedicon object
- * @param    path   The image full path
- * @return   The new item or NULL if it cannot be created
- *
- * @ingroup Stackedicon
- */
 EAPI Elm_Stackedicon_Item *elm_stackedicon_item_append(Evas_Object *obj, const char *path)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
@@ -768,15 +744,6 @@ EAPI Elm_Stackedicon_Item *elm_stackedicon_item_append(Evas_Object *obj, const c
    return it;
 }
 
-/**
- * This prepends a path to the stackedicon
- *
- * @param    obj   The stackedicon object
- * @param    path   The image full path
- * @return   The new item or NULL if it cannot be created
- *
- * @ingroup Stackedicon
- */
 EAPI Elm_Stackedicon_Item *elm_stackedicon_item_prepend(Evas_Object *obj, const char *path)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
@@ -804,16 +771,9 @@ EAPI Elm_Stackedicon_Item *elm_stackedicon_item_prepend(Evas_Object *obj, const
    return it;
 }
 
-/**
- * This delete a path at the stackedicon
- *
- * @param    Elm_Stackedicon_Item   The delete item
- *
- * @ingroup Stackedicon
- */
 EAPI void elm_stackedicon_item_del(Elm_Stackedicon_Item *it)
 {
-   if (!it)return;
+   if (!it) return;
    ELM_CHECK_WIDTYPE(it->parent, widtype);
    Evas_Object *obj = it->parent;
    Widget_Data *wd = elm_widget_data_get(obj);
@@ -834,14 +794,6 @@ EAPI void elm_stackedicon_item_del(Elm_Stackedicon_Item *it)
    _update_stackedicon(obj);
 }
 
-/**
- * Get item list from the stackedicon
- *
- * @param    obj   The stackedicon object
- * @return   The item list or NULL if it cannot be created
- *
- * @ingroup Stackedicon
- */
 EAPI Eina_List *elm_stackedicon_item_list_get(Evas_Object *obj)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
@@ -849,4 +801,3 @@ EAPI Eina_List *elm_stackedicon_item_list_get(Evas_Object *obj)
    if (!wd) return NULL;
    return wd->list;
 }
-
index 46915e0..4265bda 100644 (file)
@@ -1686,13 +1686,6 @@ _store_free(Elm_Store *st)
    if(std->p_db) eina_stringshare_del(std->p_db);
 }
 
-/**
- * Add a new dbsystem Store object
- *
- * @return The new object or NULL if it cannot be created
- *
- * @ingroup Store
- */
 EAPI Elm_Store *
 elm_store_dbsystem_new(void)
 {
@@ -1705,14 +1698,6 @@ elm_store_dbsystem_new(void)
    return &std->base;
 }
 
-/**
- * Sets the item count of a store
- *
- * @param st The store object
- * @param count The item count of an store
- *
- * @ingroup Store
- */
 EAPI void
 elm_store_item_count_set(Elm_Store *st, int count)
 {
@@ -1721,15 +1706,6 @@ elm_store_item_count_set(Elm_Store *st, int count)
 }
 
 
-/**
- * Set the select func that select the state of a list item whether true or false
- *
- * @param st The store object
- * @param func The select cb function of an store
- * @param data The new data pointer to set
- *
- * @ingroup Store
- */
 EAPI void
 elm_store_item_select_func_set(Elm_Store *st, Elm_Store_Item_Select_Cb func, const void *data)
 {
@@ -1738,15 +1714,6 @@ elm_store_item_select_func_set(Elm_Store *st, Elm_Store_Item_Select_Cb func, con
    st->cb.item_select.data = (void *)data;
 }
 
-/**
- * Sets the sort func that sort the item with a next in the list
- *
- * @param st The store object
- * @param func The sort cb function of an store
- * @param data The new data pointer to set
- *
- * @ingroup Store
- */
 EAPI void
 elm_store_item_sort_func_set(Elm_Store *st, Elm_Store_Item_Sort_Cb func, const void *data)
 {
@@ -1755,15 +1722,6 @@ elm_store_item_sort_func_set(Elm_Store *st, Elm_Store_Item_Sort_Cb func, const v
    st->cb.item_sort.data = (void *)data;
 }
 
-/**
- * Set the store item free func
- *
- * @param st The store object
- * @param func The free cb function of an store
- * @param data The new data pointer to set
- *
- * @ingroup Store
- */
 EAPI void
 elm_store_item_free_func_set(Elm_Store *st, Elm_Store_Item_Free_Cb func, const void *data)
 {
@@ -1772,14 +1730,6 @@ elm_store_item_free_func_set(Elm_Store *st, Elm_Store_Item_Free_Cb func, const v
    st->cb.item_free.data = (void *)data;
 }
 
-/**
- * Get the item index that included header items
- *
- * @param sti The store item object
- * @return The item index in genlist
- *
- * @ingroup Store
- */
 EAPI int
 elm_store_item_index_get(const Elm_Store_Item *sti)
 {
@@ -1804,14 +1754,6 @@ elm_store_item_index_get(const Elm_Store_Item *sti)
    return -1;
 }
 
-/**
- * Get the item index of real data that don't included header items
- *
- * @param sti The store item object
- * @return The real item index
- *
- * @ingroup Store
- */
 EAPI int
 elm_store_item_data_index_get(const Elm_Store_Item *sti)
 {
@@ -1836,14 +1778,6 @@ elm_store_item_data_index_get(const Elm_Store_Item *sti)
    return -1;
 }
 
-/**
- * Get the DB pointer of an item
- *
- * @param sti The store item object
- * @return The DB pointer of item
- *
- * @ingroup Store
- */
 EAPI void *
 elm_store_dbsystem_db_get(const Elm_Store_Item *sti)
 {
@@ -1855,14 +1789,6 @@ elm_store_dbsystem_db_get(const Elm_Store_Item *sti)
    return std->p_db;
 }
 
-/**
- * Set the DB pointer of an item
- *
- * @param sti The store item object
- * @parm p_db The DB pointer of item
- *
- * @ingroup Store
- */
 EAPI void
 elm_store_dbsystem_db_set(Elm_Store *store, void *p_db)
 {
@@ -1882,15 +1808,6 @@ elm_store_dbsystem_db_set(Elm_Store *store, void *p_db)
                                               store, EINA_TRUE);
 }
 
-/**
- * Append the item to the genlist
- *
- * @param st The store object
- * @param info The store item info dbsystem object
- * @return The item of store
- *
- * @ingroup Store
- */
 EAPI Elm_Store_Item *
 elm_store_item_add(Elm_Store *st, Elm_Store_Item_Info *info)
 {
@@ -1930,13 +1847,6 @@ elm_store_item_add(Elm_Store *st, Elm_Store_Item_Info *info)
      }
 }
 
-/**
- * Realize the visible items to the screen
- *
- * @param st The store object
- *
- * @ingroup Store
- */
 EAPI void
 elm_store_visible_items_update(Elm_Store *st)
 {
@@ -1953,13 +1863,6 @@ elm_store_visible_items_update(Elm_Store *st)
      }
 }
 
-/**
- * Realize the item to the screen
- *
- * @param sti The store item object
- *
- * @ingroup Store
- */
 EAPI void
 elm_store_item_update(Elm_Store_Item *sti)
 {
@@ -1980,13 +1883,6 @@ elm_store_item_update(Elm_Store_Item *sti)
      }
 }
 
-/**
- * Delete the item of genlist
- *
- * @param sti The store item object
- *
- * @ingroup Store
- */
 EAPI void
 elm_store_item_del(Elm_Store_Item *sti)
 {
@@ -2041,6 +1937,3 @@ elm_store_item_del(Elm_Store_Item *sti)
         if(!deleted) printf(" Not deleted because it does not existed in the genlist \n");
      }
 }
-
-// TODO: END -DBsystem store
-
index b8ccfed..3382b67 100644 (file)
@@ -4,7 +4,7 @@
 
 static Elm_Theme theme_default =
 {
-   NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1
+   NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1
 };
 
 static Eina_List *themes = NULL;
@@ -24,6 +24,11 @@ _elm_theme_clear(Elm_Theme *th)
         eina_hash_free(th->cache);
         th->cache = NULL;
      }
+   if (th->cache_data)
+     {
+        eina_hash_free(th->cache_data);
+        th->cache_data = NULL;
+     }
    if (th->theme)
      {
         eina_stringshare_del(th->theme);
@@ -111,6 +116,79 @@ _elm_theme_group_file_find(Elm_Theme *th, const char *group)
    return NULL;
 }
 
+static const char *
+_elm_theme_find_data_try(Elm_Theme *th, const char *f, const char *key)
+{
+   char *data;
+   const char *t;
+
+   data = edje_file_data_get(f, key);
+   t = eina_stringshare_add(data);
+   free(data);
+   if (t)
+     {
+        eina_hash_add(th->cache, key, t);
+        return t;
+     }
+   return NULL;
+}
+
+static const char *
+_elm_theme_theme_data_try(Elm_Theme *th, const char *home, const char *f, const char *key)
+{
+   char buf[PATH_MAX];
+   const char *data = NULL;
+
+   if ((f[0] == '/') || ((f[0] == '.') && (f[1] == '/')) ||
+       ((f[0] == '.') && (f[1] == '.') && (f[2] == '/')) ||
+       ((isalpha(f[0])) && (f[1] == ':')))
+     return _elm_theme_find_data_try(th, f, key);
+   else if (((f[0] == '~') && (f[1] == '/')))
+     {
+        snprintf(buf, sizeof(buf), "%s/%s", home, f + 2);
+        return _elm_theme_find_try(th, buf, key);
+     }
+   snprintf(buf, sizeof(buf), "%s/.elementary/themes/%s.edj", home, f);
+   data = _elm_theme_find_data_try(th, buf, key);
+   if (data) return data;
+   snprintf(buf, sizeof(buf), "%s/themes/%s.edj", _elm_data_dir, f);
+   data = _elm_theme_find_data_try(th, buf, key);
+   return data;
+}
+
+static const char *
+_elm_theme_data_find(Elm_Theme *th, const char *key)
+{
+   const Eina_List *l;
+   const char *f;
+   static const char *home = NULL;
+   const char *data = eina_hash_find(th->cache_data, key);
+
+   if (data) return data;
+   if (!home)
+     {
+        home = getenv("HOME");
+        if (!home) home = "";
+     }
+   EINA_LIST_FOREACH(th->overlay, l, f)
+     {
+        data = _elm_theme_theme_data_try(th, home, f, key);
+        if (data) return data;
+     }
+   EINA_LIST_FOREACH(th->themes, l, f)
+     {
+        data = _elm_theme_theme_data_try(th, home, f, key);
+        if (data) return data;
+     }
+   EINA_LIST_FOREACH(th->extension, l, f)
+     {
+        data = _elm_theme_theme_data_try(th, home, f, key);
+        if (data) return data;
+     }
+   if (th->ref_theme) return _elm_theme_data_find(th->ref_theme, key);
+   return NULL;
+}
+
 Eina_Bool
 _elm_theme_object_set(Evas_Object *parent, Evas_Object *o, const char *clas, const char *group, const char *style)
 {
@@ -224,6 +302,8 @@ _elm_theme_parse(Elm_Theme *th, const char *theme)
      }
    if (th->cache) eina_hash_free(th->cache);
    th->cache = eina_hash_string_superfast_new(EINA_FREE_CB(eina_stringshare_del));
+   if (th->cache_data) eina_hash_free(th->cache_data);
+   th->cache_data = eina_hash_string_superfast_new(EINA_FREE_CB(eina_stringshare_del));
 
    EINA_LIST_FREE(th->themes, p) eina_stringshare_del(p);
 
@@ -433,6 +513,8 @@ elm_theme_flush(Elm_Theme *th)
    if (!th) th = &(theme_default);
    if (th->cache) eina_hash_free(th->cache);
    th->cache = eina_hash_string_superfast_new(EINA_FREE_CB(eina_stringshare_del));
+   if (th->cache_data) eina_hash_free(th->cache_data);
+   th->cache_data = eina_hash_string_superfast_new(EINA_FREE_CB(eina_stringshare_del));
    _elm_win_rescale(th, EINA_TRUE);
    if (th->referrers)
      {
@@ -556,3 +638,10 @@ elm_object_theme_get(const Evas_Object *obj)
    EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
    return elm_widget_theme_get(obj);
 }
+
+EAPI const char *
+elm_theme_data_get(Elm_Theme *th, const char *key)
+{
+   if (!th) th = &(theme_default);
+   return _elm_theme_data_find(th, key);
+}
index 188d20b..4da82fb 100644 (file)
@@ -1,13 +1,6 @@
 #include <Elementary.h>
 #include "elm_priv.h"
 
-/**
- * @defgroup TickerNoti TickerNoti
- * @ingroup Elementary
- *
- * This is a notification widget which can be used to display some short information.
- */
-
 typedef struct _Widget_Data Widget_Data;
 
 struct _Widget_Data
@@ -513,15 +506,6 @@ _elm_tickernoti_content_part_unset_hook(Evas_Object *obj, const char *part)
    return NULL;
 }
 
-/**
- * Add a tickernoti object to @p parent
- *
- * @param parent The parent object
- *
- * @return The tickernoti object, or NULL upon failure
- *
- * @ingroup TickerNoti
- */
 EAPI Evas_Object *
 elm_tickernoti_add(Evas_Object *parent)
 {
@@ -559,13 +543,6 @@ elm_tickernoti_add(Evas_Object *parent)
    return obj;
 }
 
-/**
- * Get the rotation of tickernoti object
- *
- * @param obj The tickernotil object
- * @return The rotation angle
- * @ingroup TickerNoti
- */
 EAPI int
 elm_tickernoti_rotation_get(const Evas_Object *obj)
 {
@@ -575,13 +552,6 @@ elm_tickernoti_rotation_get(const Evas_Object *obj)
    return wd->angle;
 }
 
-/**
- * Set the rotation angle for the tickernoti object
- *
- * @param obj The tickernoti object
- * @param angle The rotation angle(in degree) will be used on the tickernoti object
- * @ingroup TickerNoti
- */
 EAPI void
 elm_tickernoti_rotation_set(Evas_Object *obj, int angle)
 {
@@ -596,13 +566,6 @@ elm_tickernoti_rotation_set(Evas_Object *obj, int angle)
    elm_win_rotation_with_resize_set (wd->win, angle);
 }
 
-/**
- * Set the orientation of the tickernoti object
- *
- * @param obj The tickernoti object
- * @param orient The orientation of tickernoti object
- * @ingroup TickerNoti
- */
 EAPI void
 elm_tickernoti_orient_set(Evas_Object *obj, Elm_Tickernoti_Orient orient)
 {
@@ -640,14 +603,6 @@ elm_tickernoti_orient_set(Evas_Object *obj, Elm_Tickernoti_Orient orient)
 #endif
 }
 
-/**
- * Get the orientation of the tickernoti object
- *
- * @param obj The tickernotil object
- * @return The orientation of tickernotil object
- *
- * @ingroup TickerNoti
- */
 EAPI Elm_Tickernoti_Orient
 elm_tickernoti_orient_get(const Evas_Object *obj)
 {
@@ -658,14 +613,6 @@ elm_tickernoti_orient_get(const Evas_Object *obj)
    return wd->orient;
 }
 
-/**
- * Get the view window(elm_win) on the tickernoti object
- *
- * @param obj The tickernotil object
- * @return internal view window(elm_win) object
- *
- * @ingroup TickerNoti
- */
 EAPI Evas_Object *
 elm_tickernoti_win_get(const Evas_Object *obj)
 {
@@ -675,107 +622,42 @@ elm_tickernoti_win_get(const Evas_Object *obj)
    return wd->win;
 }
 
-// ################### Below APIs are going to be removed. ###########################
-/**
- * Set the detail label on the tickernoti object
- *
- * @param obj The tickernoti object
- * @param label The label will be used on the tickernoti object
- * @deprecated use elm_object_text_set() instead
- *
- * @ingroup TickerNoti
- */
 EAPI void
 elm_tickernoti_detailview_label_set(Evas_Object *obj, const char *label)
 {
    _elm_tickernoti_label_set(obj, NULL, label);
 }
 
-/**
- * Get the detail label used on the tickernoti object
- *
- * @param obj The tickernotil object
- * @return The string inside the label
- * @deprecated use elm_object_text_get() instead
- *
- * @ingroup TickerNoti
- */
 EAPI const char *
 elm_tickernoti_detailview_label_get(const Evas_Object *obj)
 {
    return _elm_tickernoti_label_get(obj, NULL);
 }
 
-/**
- * Set the button object used on the tickernoti object
- *
- * @param obj The tickernotil object
- * @param button The button object will be used on the tickernoti object
- * @deprecated use elm_object_content_part_set() instead with "icon" as part name
- *
- * @ingroup TickerNoti
- */
 EAPI void
 elm_tickernoti_detailview_button_set(Evas_Object *obj, Evas_Object *button)
 {
    _elm_tickernoti_button_set(obj, button);
 }
 
-
-/**
- * Get the button object used on the tickernoti object
- *
- * @param obj The tickernotil object
- * @return The button object inside the tickernoti
- * @deprecated use elm_object_content_part_get() instead with "button" as part name
- *
- * @ingroup TickerNoti
- */
 EAPI Evas_Object *
 elm_tickernoti_detailview_button_get(const Evas_Object *obj)
 {
    return _elm_tickernoti_button_get(obj);
 }
 
-/**
- * Set the detail icon object used on the tickernoti object
- *
- * @param obj The tickernotil object
- * @param icon The icon object will be used on the tickernoti object
- * @deprecated use elm_object_content_part_set() instead with "icon" as part name
- *
- * @ingroup TickerNoti
- */
 EAPI void
 elm_tickernoti_detailview_icon_set(Evas_Object *obj, Evas_Object *icon)
 {
    _elm_tickernoti_icon_set(obj, icon);
 }
 
-/**
- * Get the detail icon object used on the tickernoti object
- *
- * @param obj The tickernotil object
- * @return The icon object inside the tickernoti
- * @deprecated use elm_object_content_part_get() instead with "icon" as part name
- *
- * @ingroup TickerNoti
- */
 EAPI Evas_Object *
 elm_tickernoti_detailview_icon_get(const Evas_Object *obj)
 {
    return _elm_tickernoti_icon_get(obj);
 }
 
-/**
- * Get the view mode on the tickernoti object
- *
- * @param obj The tickernotil object
- * @return The view mode
- * @deprecated removed as now styles are used instead
- *
- * @ingroup TickerNoti
- */
 EAPI Elm_Tickernoti_Mode
 elm_tickernoti_mode_get(const Evas_Object *obj)
 {
@@ -785,15 +667,6 @@ elm_tickernoti_mode_get(const Evas_Object *obj)
    return wd->mode;
 }
 
-/**
- * Set the view mode used on the tickernoti object
- *
- * @param obj The tickernotil object
- * @param mode The view mode will be used on the tickernoti object
- * @deprecated removed as now styles are used instead
- *
- * @ingroup TickerNoti
- */
 EAPI void
 elm_tickernoti_mode_set(Evas_Object *obj, Elm_Tickernoti_Mode mode)
 {
@@ -811,133 +684,54 @@ elm_tickernoti_mode_set(Evas_Object *obj, Elm_Tickernoti_Mode mode)
    }
 }
 
-/**
- * Get the detail view window(elm_win) on the tickernoti object
- *
- * @param obj The tickernotil object
- * @return detail view window(elm_win) object
- * @ingroup TickerNoti
- */
 EAPI Evas_Object *
 elm_tickernoti_detailview_get(const Evas_Object *obj)
 {
    return elm_tickernoti_win_get(obj);
 }
 
-/**
- * Set the orientation of the tickernoti object
- *
- * @param obj The tickernoti object
- * @param orient The orientation of tickernoti object
- * @deprecated use elm_tickernoti_orient_set() instead
- *
- * @ingroup TickerNoti
- */
 EAPI void
 elm_tickernoti_orientation_set(Evas_Object *obj, Elm_Tickernoti_Orient orient)
 {
    elm_tickernoti_orient_set(obj, orient);
 }
 
-/**
- * Get the orientation of the tickernoti object
- *
- * @param obj The tickernotil object
- * @return The orientation of tickernotil object
- * @deprecated use elm_tickernoti_orient_get() instead
- *
- * @ingroup TickerNoti
- */
 EAPI Elm_Tickernoti_Orient
 elm_tickernoti_orientation_get(const Evas_Object *obj)
 {
    return elm_tickernoti_orient_get(obj);
 }
 
-/**
- * Set the label on the tickernoti object
- *
- * @param obj The tickernoti object
- * @param label The label will be used on the tickernoti object
- * @deprecated use elm_object_text_get()
- *
- * @ingroup TickerNoti
- */
 EAPI void
 elm_tickernoti_label_set(Evas_Object *obj, const char *label)
 {
    _elm_tickernoti_label_set(obj, NULL, label);
 }
 
-/**
- * Get the label used on the tickernoti object
- *
- * @param obj The tickernotil object
- * @return The string inside the label
- * @deprecated use elm_object_text_get() instead
- *
- * @ingroup TickerNoti
- */
 EAPI const char *
 elm_tickernoti_label_get(const Evas_Object *obj)
 {
    return _elm_tickernoti_label_get(obj, NULL);
 }
 
-/**
- * Set the action button object used on the tickernoti object
- *
- * @param obj The tickernotil object
- * @param button The button object will be used on the tickernoti object
- * @deprecated use elm_object_content_part_set() instead with "button" as part name
- *
- * @ingroup TickerNoti
- */
 EAPI void
 elm_tickernoti_button_set(Evas_Object *obj, Evas_Object *button)
 {
    _elm_tickernoti_button_set(obj, button);
 }
 
-/**
- * Get the action button object used on the tickernoti object
- *
- * @param obj The tickernotil object
- * @return The button object inside the tickernoti
- * @deprecated use elm_object_content_part_get() instead with "button" as part name
- *
- * @ingroup TickerNoti
- */
 EAPI Evas_Object *
 elm_tickernoti_button_get(const Evas_Object *obj)
 {
    return _elm_tickernoti_button_get(obj);
 }
 
-/**
- * Set the icon object of the tickernoti object
- *
- * @param obj The tickernotil object
- * @param icon The icon object will be used on the tickernoti object
- * @deprecated use elm_object_content_part_set() instead with "icon" as part name
- *
- * @ingroup TickerNoti
- */
 EAPI void
 elm_tickernoti_icon_set(Evas_Object *obj, Evas_Object *icon)
 {
    _elm_tickernoti_icon_set(obj, icon);
 }
 
-/**
- * Get the icon object of the tickernoti object
- *
- * @param obj The tickernotil object
- * @return The icon object inside the tickernoti
- * @deprecated use elm_object_content_part_get() instead with "icon" as part name
- *
- * @ingroup TickerNoti
- */
 EAPI Evas_Object *
 elm_tickernoti_icon_get(const Evas_Object *obj)
 {
index 5cdd33c..2d02c80 100644 (file)
@@ -50,7 +50,6 @@ elm_toggle_states_labels_set(Evas_Object *obj, const char *onlabel, const char *
    elm_object_part_text_set(obj, "off", offlabel);
 }
 
-
 EAPI void
 elm_toggle_states_labels_get(const Evas_Object *obj, const char **onlabel, const char **offlabel)
 {
index 216a28d..5557e0a 100644 (file)
@@ -2212,7 +2212,7 @@ _transit_effect_image_animation_op(Elm_Transit_Effect *effect, Elm_Transit *tran
 
    EINA_LIST_FOREACH(transit->objs, elist, obj)
      {
-        if (elm_widget_type_check(obj, type))
+        if (elm_widget_type_check(obj, type, __func__))
           elm_icon_file_set(obj,
                             eina_list_nth(image_animation->images, count), NULL);
      }
index d893fef..cb90a85 100644 (file)
@@ -279,14 +279,13 @@ elm_video_add(Evas_Object *parent)
    wd->layout = edje_object_add(e);
    _elm_theme_object_set(obj, wd->layout, "video", "base", "default");
    elm_widget_resize_object_set(obj, wd->layout);
-   elm_widget_sub_object_add(obj, wd->layout);
    evas_object_show(wd->layout);
    evas_object_size_hint_weight_set(wd->layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
 
    wd->emotion = emotion_object_add(e);
    emotion_object_init(wd->emotion, NULL);
-   edje_object_part_swallow(wd->layout, "elm.swallow.video", wd->emotion);
    elm_widget_sub_object_add(obj, wd->emotion);
+   edje_object_part_swallow(wd->layout, "elm.swallow.video", wd->emotion);
 
    evas_object_smart_callback_add(wd->emotion, "open_done", _open_done, obj);
    evas_object_smart_callback_add(wd->emotion, "playback_started", _playback_started, obj);
index 4f1198d..6e8b044 100644 (file)
@@ -26,6 +26,7 @@ struct _Smart_Data
    Evas_Object *obj;
    const char  *type;
    Evas_Object *parent_obj;
+   Evas_Object *parent2;
    Evas_Coord   x, y, w, h;
    Eina_List   *subobjs;
    Evas_Object *resize_obj;
@@ -1219,6 +1220,47 @@ elm_widget_tree_unfocusable_get(const Evas_Object *obj)
    return sd->tree_unfocusable;
 }
 
+/**
+ * @internal
+ *
+ * Get the list of focusable child objects.
+ *
+ * This function retruns list of child objects which can get focus.
+ *
+ * @param obj The parent widget
+ * @retrun list of focusable child objects.
+ *
+ * @ingroup Widget
+ */
+EAPI Eina_List *
+elm_widget_can_focus_child_list_get(const Evas_Object *obj)
+{
+   API_ENTRY return NULL;
+
+   const Eina_List *l;
+   Eina_List *child_list = NULL;
+   Evas_Object *child;
+
+   if (sd->subobjs)
+     {
+        EINA_LIST_FOREACH(sd->subobjs, l, child)
+          {
+             if ((elm_widget_can_focus_get(child)) &&
+                 (evas_object_visible_get(child)) &&
+                 (!elm_widget_disabled_get(child)))
+               child_list = eina_list_append(child_list, child);
+             else if (elm_widget_is(child))
+               {
+                  Eina_List *can_focus_list;
+                  can_focus_list = elm_widget_can_focus_child_list_get(child);
+                  if (can_focus_list)
+                    child_list = eina_list_merge(child_list, can_focus_list);
+               }
+          }
+     }
+   return child_list;
+}
+
 EAPI void
 elm_widget_highlight_ignore_set(Evas_Object *obj,
                                 Eina_Bool    ignore)
@@ -1315,6 +1357,24 @@ elm_widget_parent_widget_get(const Evas_Object *obj)
    return parent;
 }
 
+EAPI Evas_Object *
+elm_widget_parent2_get(const Evas_Object *obj)
+{
+   if (_elm_widget_is(obj))
+     {
+        Smart_Data *sd = evas_object_smart_data_get(obj);
+        if (sd) return sd->parent2;
+     }
+   return NULL;
+}
+
+EAPI void
+elm_widget_parent2_set(Evas_Object *obj, Evas_Object *parent)
+{
+   API_ENTRY return;
+   sd->parent2 = parent;
+}
+
 EAPI void
 elm_widget_event_callback_add(Evas_Object *obj,
                               Elm_Event_Cb func,
@@ -1906,7 +1966,7 @@ elm_widget_focused_object_clear(Evas_Object *obj)
 EAPI void
 elm_widget_focus_steal(Evas_Object *obj)
 {
-   Evas_Object *parent, *o;
+   Evas_Object *parent, *parent2, *o;
    API_ENTRY return;
 
    if (sd->focused) return;
@@ -1923,24 +1983,30 @@ elm_widget_focus_steal(Evas_Object *obj)
         if (sd->focused) break;
         parent = o;
      }
-   if (!elm_widget_parent_get(parent))
-     elm_widget_focused_object_clear(parent);
+   if ((!elm_widget_parent_get(parent)) &&
+       (!elm_widget_parent2_get(parent)))
+      elm_widget_focused_object_clear(parent);
    else
      {
-        parent = elm_widget_parent_get(parent);
+        parent2 = elm_widget_parent_get(parent);
+        if (!parent2) parent2 = elm_widget_parent2_get(parent);
+        parent = parent2;
         sd = evas_object_smart_data_get(parent);
-        if ((sd->resize_obj) && (elm_widget_focus_get(sd->resize_obj)))
-          elm_widget_focused_object_clear(sd->resize_obj);
-        else
+        if (sd)
           {
-             const Eina_List *l;
-             Evas_Object *child;
-             EINA_LIST_FOREACH(sd->subobjs, l, child)
+             if ((sd->resize_obj) && (elm_widget_focus_get(sd->resize_obj)))
+                elm_widget_focused_object_clear(sd->resize_obj);
+             else
                {
-                  if (elm_widget_focus_get(child))
+                  const Eina_List *l;
+                  Evas_Object *child;
+                  EINA_LIST_FOREACH(sd->subobjs, l, child)
                     {
-                       elm_widget_focused_object_clear(child);
-                       break;
+                       if (elm_widget_focus_get(child))
+                         {
+                            elm_widget_focused_object_clear(child);
+                            break;
+                         }
                     }
                }
           }
@@ -2547,7 +2613,8 @@ elm_widget_is_check(const Evas_Object *obj)
 
 EAPI Eina_Bool
 elm_widget_type_check(const Evas_Object *obj,
-                      const char        *type)
+                      const char        *type,
+                      const char        *func)
 {
    const char *provided, *expected = "(unknown)";
    static int abort_on_warn = -1;
@@ -2560,7 +2627,7 @@ elm_widget_type_check(const Evas_Object *obj,
         if ((!provided) || (!provided[0]))
           provided = "(unknown)";
      }
-   ERR("Passing Object: %p, of type: '%s' when expecting type: '%s'", obj, provided, expected);
+   ERR("Passing Object: %p in function: %s, of type: '%s' when expecting type: '%s'", obj, func, provided, expected);
    if (abort_on_warn == -1)
      {
         if (getenv("ELM_ERROR_ABORT")) abort_on_warn = 1;
@@ -2830,6 +2897,31 @@ _elm_widget_item_data_get(const Elm_Widget_Item *item)
    return (void *)item->data;
 }
 
+EAPI void
+_elm_widget_item_disabled_set(Elm_Widget_Item *item, Eina_Bool disabled)
+{
+   ELM_WIDGET_ITEM_CHECK_OR_RETURN(item);
+
+   if (item->disabled == disabled) return;
+   item->disabled = !!disabled;
+   if (item->disable_func) item->disable_func(item);
+}
+
+EAPI Eina_Bool
+_elm_widget_item_disabled_get(const Elm_Widget_Item *item)
+{
+   ELM_WIDGET_ITEM_CHECK_OR_RETURN(item, EINA_FALSE);
+   return item->disabled;
+}
+
+EAPI void
+_elm_widget_item_disable_set_hook_set(Elm_Widget_Item *item,
+                                      Elm_Widget_On_Disable_Set_Cb func)
+{
+   ELM_WIDGET_ITEM_CHECK_OR_RETURN(item);
+   item->disable_func = func;
+}
+
 typedef struct _Elm_Widget_Item_Tooltip Elm_Widget_Item_Tooltip;
 
 struct _Elm_Widget_Item_Tooltip
index 964d061..329333d 100644 (file)
@@ -201,6 +201,8 @@ typedef const char *(*Elm_Widget_On_Text_Get_Cb)(const void *data, const char *p
 typedef Evas_Object *(*Elm_Widget_On_Content_Get_Cb)(const void *data, const char *part);
 typedef Evas_Object *(*Elm_Widget_On_Content_Unset_Cb)(const void *data, const char *part);
 typedef void (*Elm_Widget_On_Signal_Emit_Cb)(void *data, const char *emission, const char *source);
+typedef void (*Elm_Widget_On_Disable_Set_Cb)(void *data);
+
 
 #define ELM_ACCESS_TYPE     0 // when reading out widget or item this is read first
 #define ELM_ACCESS_INFO     1 // next read is info - this is normally label
@@ -260,8 +262,10 @@ struct _Elm_Widget_Item
    Elm_Widget_On_Text_Set_Cb on_text_set_func;
    Elm_Widget_On_Text_Get_Cb on_text_get_func;
    Elm_Widget_On_Signal_Emit_Cb on_signal_emit_func;
+   Elm_Widget_On_Disable_Set_Cb disable_func;
    Elm_Access_Info *access;
    const char *access_info;
+   Eina_Bool disabled: 1;
    /* widget variations should have data from here and on */
    /* @todo: TODO check if this is enough for 1.0 release, maybe add padding! */
 };
@@ -317,11 +321,12 @@ EAPI void             elm_widget_sub_object_del(Evas_Object *obj, Evas_Object *s
 EAPI void             elm_widget_resize_object_set(Evas_Object *obj, Evas_Object *sobj);
 EAPI void             elm_widget_hover_object_set(Evas_Object *obj, Evas_Object *sobj);
 EAPI void             elm_widget_signal_emit(Evas_Object *obj, const char *emission, const char *source);
-EAPI void             elm_widget_signal_callback_add(Evas_Object *obj, const char *emission, const char *source, void (*func) (void *data, Evas_Object *o, const char *emission, const char *source), void *data);
-EAPI void            *elm_widget_signal_callback_del(Evas_Object *obj, const char *emission, const char *source, void (*func) (void *data, Evas_Object *o, const char *emission, const char *source));
+EAPI void             elm_widget_signal_callback_add(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data);
+EAPI void            *elm_widget_signal_callback_del(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func);
 EAPI void             elm_widget_can_focus_set(Evas_Object *obj, Eina_Bool can_focus);
 EAPI Eina_Bool        elm_widget_can_focus_get(const Evas_Object *obj);
 EAPI Eina_Bool        elm_widget_child_can_focus_get(const Evas_Object *obj);
+EAPI Eina_List       *elm_widget_can_focus_child_list_get(const Evas_Object *obj);
 EAPI void             elm_widget_tree_unfocusable_set(Evas_Object *obj, Eina_Bool tree_unfocusable);
 EAPI Eina_Bool        elm_widget_tree_unfocusable_get(const Evas_Object *obj);
 EAPI void             elm_widget_highlight_ignore_set(Evas_Object *obj, Eina_Bool ignore);
@@ -348,6 +353,8 @@ EAPI Eina_Bool        elm_widget_focus_list_next_get(const Evas_Object *obj, con
 EAPI void             elm_widget_focus_set(Evas_Object *obj, int first);
 EAPI void             elm_widget_focused_object_clear(Evas_Object *obj);
 EAPI Evas_Object     *elm_widget_parent_get(const Evas_Object *obj);
+EAPI Evas_Object     *elm_widget_parent2_get(const Evas_Object *obj);
+EAPI void             elm_widget_parent2_set(Evas_Object *obj, Evas_Object *parent);
 EAPI void             elm_widget_focus_steal(Evas_Object *obj);
 
 /**
@@ -404,7 +411,7 @@ EAPI Eina_Bool        elm_widget_theme_object_set(Evas_Object *obj, Evas_Object
 EAPI void             elm_widget_type_register(const char **ptr);
 EAPI void             elm_widget_type_unregister(const char **ptr);
 EAPI Eina_Bool        elm_widget_is_check(const Evas_Object *obj);
-EAPI Eina_Bool        elm_widget_type_check(const Evas_Object *obj, const char *type);
+EAPI Eina_Bool        elm_widget_type_check(const Evas_Object *obj, const char *type, const char *func);
 EAPI Eina_List       *elm_widget_stringlist_get(const char *str);
 EAPI void             elm_widget_stringlist_free(Eina_List *list);
 EAPI void             elm_widget_focus_hide_handle(Evas_Object *obj);
@@ -454,7 +461,9 @@ EAPI void             _elm_widget_item_text_set_hook_set(Elm_Widget_Item *item,
 EAPI void             _elm_widget_item_text_get_hook_set(Elm_Widget_Item *item, Elm_Widget_On_Text_Get_Cb func);
 EAPI void             _elm_widget_item_signal_emit_hook_set(Elm_Widget_Item *it, Elm_Widget_On_Signal_Emit_Cb func);
 EAPI void             _elm_widget_item_access_info_set(Elm_Widget_Item *item, const char *txt);
-
+EAPI void             _elm_widget_item_disabled_set(Elm_Widget_Item *item, Eina_Bool disabled);
+EAPI Eina_Bool        _elm_widget_item_disabled_get(const Elm_Widget_Item *item);
+EAPI void             _elm_widget_item_disable_set_hook_set(Elm_Widget_Item *item, Elm_Widget_On_Disable_Set_Cb func);
 
 /* debug function. don't use it unless you are tracking parenting issues */
 EAPI void             elm_widget_tree_dump(const Evas_Object *top);
@@ -587,42 +596,6 @@ EAPI void             elm_widget_tree_dot_dump(const Evas_Object *top, FILE *out
 #define elm_widget_item_cursor_engine_only_get(item) \
   _elm_widget_item_cursor_engine_only_get((const Elm_Widget_Item *)item)
 /**
- * Convenience function to query item's content part set.
- * @see _elm_widget_item_content_part_set()
- */
-#define elm_widget_item_content_part_set(item, part, content) \
-  _elm_widget_item_content_part_set((Elm_Widget_Item *)item, part, content)
-/**
- * Convenience function to query item's content part get.
- * @see _elm_widget_item_content_part_get()
- */
-#define elm_widget_item_content_part_get(item, part) \
-  _elm_widget_item_content_part_get((const Elm_Widget_Item *)item, part)
-/**
- * Convenience function to query item's content part unset.
- * @see _elm_widget_item_content_part_unset()
- */
-#define elm_widget_item_content_part_unset(item, part) \
-  _elm_widget_item_content_part_unset((Elm_Widget_Item *)item, part)
-/**
- * Convenience function to query item's text part set.
- * @see _elm_widget_item_text_part_set()
- */
-#define elm_widget_item_text_part_set(item, part, label) \
-  _elm_widget_item_text_part_set((Elm_Widget_Item *)item, part, label)
-/**
- * Convenience function to query item's text part get.
- * @see _elm_widget_item_text_part_get()
- */
-#define elm_widget_item_text_part_get(item, part) \
-  _elm_widget_item_text_part_get((const Elm_Widget_Item *)item, part)
-/**
- * Convenience function to query item's signal emit.
- * @see _elm_widget_item_signal_emit()
- */
-#define elm_widget_item_signal_emit(item, emission, source) \
-  _elm_widget_item_signal_emit((Elm_Widget_Item *)item, emission, source)
-/**
  * Convenience function to query item's content set hook.
  * @see _elm_widget_item_content_set_hook_set()
  */
@@ -658,7 +631,21 @@ EAPI void             elm_widget_tree_dot_dump(const Evas_Object *top, FILE *out
  */
 #define elm_widget_item_signal_emit_hook_set(item, func) \
   _elm_widget_item_signal_emit_hook_set((Elm_Widget_Item *)item, (Elm_Widget_On_Signal_Emit_Cb)func)
+/**
+ * Convenience function to query disable get hook.
+ * @see _elm_widget_item_disabled_get()
+ */
+#define elm_widget_item_disabled_get(item) \
+  _elm_widget_item_disabled_get((Elm_Widget_Item *)item)
+
+EAPI Eina_Bool        _elm_widget_item_disabled_get(const Elm_Widget_Item *item);
 
+/**
+ * Convenience function to query disable set hook.
+ * @see _elm_widget_item_disable_set_hook_set()
+ */
+#define elm_widget_item_disable_set_hook_set(item, func) \
+  _elm_widget_item_disable_set_hook_set((Elm_Widget_Item *) item, (Elm_Widget_On_Disable_Set_Cb)func)
 
 #define ELM_WIDGET_ITEM_CHECK_OR_RETURN(item, ...) \
    do { \
@@ -696,7 +683,7 @@ EAPI void             elm_widget_tree_dot_dump(const Evas_Object *top, FILE *out
    if (!elm_widget_is_check(obj)) return
 
 #define ELM_CHECK_WIDTYPE(obj, widtype) \
-   if (!elm_widget_type_check((obj), (widtype))) return
+   if (!obj || !elm_widget_type_check((obj), (widtype), __func__)) return
 
 #define ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(it, ...)                \
    ELM_WIDGET_ITEM_CHECK_OR_RETURN((Elm_Widget_Item *)it, __VA_ARGS__); \
@@ -704,7 +691,7 @@ EAPI void             elm_widget_tree_dot_dump(const Evas_Object *top, FILE *out
 
 #define ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_GOTO(it, label)                \
    ELM_WIDGET_ITEM_CHECK_OR_GOTO((Elm_Widget_Item *)it, label);         \
-   if (!elm_widget_type_check((it->base.widget), (widtype))) goto label;
+   if (!elm_widget_type_check((it->base.widget), (widtype), __func__)) goto label;
 
 #define ELM_WIDGET_STANDARD_SETUP(wdat, wdtype, par, evas, ob, ret) \
    do { \
@@ -745,7 +732,7 @@ typedef enum _Elm_Sel_Format
    /** Edje textblock markup, including inline images */
    ELM_SEL_FORMAT_MARKUP = 0x02,
    /** Images */
-   ELM_SEL_FORMAT_IMAGE         = 0x04,
+   ELM_SEL_FORMAT_IMAGE = 0x04,
    /** Vcards */
    ELM_SEL_FORMAT_VCARD =  0x08,
    /** Raw HTMLish things for widgets that want that stuff (hello webkit!) */
@@ -763,6 +750,7 @@ struct _Elm_Selection_Data
 Eina_Bool            elm_selection_set(Elm_Sel_Type selection, Evas_Object *widget, Elm_Sel_Format format, const char *buf);
 Eina_Bool            elm_selection_clear(Elm_Sel_Type selection, Evas_Object *widget);
 Eina_Bool            elm_selection_get(Elm_Sel_Type selection, Elm_Sel_Format format, Evas_Object *widget, Elm_Drop_Cb datacb, void *udata);
+Eina_Bool            elm_selection_selection_has_owner(void);
 Eina_Bool            elm_drop_target_add(Evas_Object *widget, Elm_Sel_Type, Elm_Drop_Cb, void *);
 Eina_Bool            elm_drop_target_del(Evas_Object *widget);
 Eina_Bool            elm_drag_start(Evas_Object *, Elm_Sel_Format, const char *, void (*)(void *,Evas_Object*),void*);
index fae74b7..1a3cd34 100644 (file)
@@ -311,7 +311,7 @@ _elm_win_focus_in(Ecore_Evas *ee)
    _elm_widget_top_win_focused_set(win->win_obj, EINA_TRUE);
    if (win->show_count == 1)
      {
-        elm_object_focus(win->win_obj);
+        elm_object_focus_set(win->win_obj, EINA_TRUE);
         win->show_count++;
      }
    else
@@ -409,6 +409,26 @@ _elm_win_event_cb(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_T
              ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
              return EINA_TRUE;
           }
+        else if ((!strcmp(ev->keyname, "Left")) ||
+                 (!strcmp(ev->keyname, "KP_Left")))
+          {
+             //TODO : woohyun jung
+          }
+        else if ((!strcmp(ev->keyname, "Right")) ||
+                 (!strcmp(ev->keyname, "KP_Right")))
+          {
+             //TODO : woohyun jung
+          }
+        else if ((!strcmp(ev->keyname, "Up")) ||
+                 (!strcmp(ev->keyname, "KP_Up")))
+          {
+             //TODO : woohyun jung
+          }
+        else if ((!strcmp(ev->keyname, "Down")) ||
+                 (!strcmp(ev->keyname, "KP_Down")))
+          {
+             //TODO : woohyun jung
+          }
      }
 
    return EINA_FALSE;
@@ -1342,43 +1362,35 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type)
 
 #define FALLBACK_TRY(engine)                                            \
    if (!win->ee)                                                        \
-   do {                                                               \
-        CRITICAL(engine " engine creation failed. Trying software X11."); \
-        win->ee = ecore_evas_software_x11_new(NULL, 0, 0, 0, 1, 1);      \
-        elm_engine_set(ELM_SOFTWARE_X11);      \
+      do {                                                              \
+         CRITICAL(engine " engine creation failed. Trying default.");   \
+         win->ee = ecore_evas_new(NULL, 0, 0, 1, 1, NULL);              \
+         if (win->ee)                                                   \
+            elm_engine_set(ecore_evas_engine_name_get(win->ee));        \
    } while (0)
 #define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name))
 
    switch (type)
      {
       case ELM_WIN_INLINED_IMAGE:
-          {
-             if (parent)
-               {
-                  Evas *e = evas_object_evas_get(parent);
-                  if (e)
-                    {
-                       Ecore_Evas *ee = ecore_evas_ecore_evas_get(e);
-                       if (ee)
-                         {
-                            win->img_obj = ecore_evas_object_image_new(ee);
-                            if (win->img_obj)
-                              {
-                                 win->ee = ecore_evas_object_ecore_evas_get(win->img_obj);
-                                 if (win->ee)
-                                   {
-                                      _win_inlined_image_set(win);
-                                   }
-                                 else
-                                   {
-                                      evas_object_del(win->img_obj);
-                                      win->img_obj = NULL;
-                                   }
-                              }
-                         }
-                    }
-               }
-          }
+        if (!parent) break;
+        {
+           Evas *e = evas_object_evas_get(parent);
+           Ecore_Evas *ee;
+           if (!e) break;
+           ee = ecore_evas_ecore_evas_get(e);
+           if (!ee) break;
+           win->img_obj = ecore_evas_object_image_new(ee);
+           if (!win->img_obj) break;
+           win->ee = ecore_evas_object_ecore_evas_get(win->img_obj);
+           if (win->ee)
+             {
+                _win_inlined_image_set(win);
+                break;
+             }
+           evas_object_del(win->img_obj);
+           win->img_obj = NULL;
+        }
         break;
       default:
         if (ENGINE_COMPARE(ELM_SOFTWARE_X11))
@@ -1388,6 +1400,7 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type)
              win->client_message_handler = ecore_event_handler_add
                 (ECORE_X_EVENT_CLIENT_MESSAGE, _elm_win_client_message, win);
 #endif
+             FALLBACK_TRY("Sofware X11");
           }
         else if (ENGINE_COMPARE(ELM_SOFTWARE_FB))
           {
@@ -1541,6 +1554,8 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type)
    evas_object_layer_set(win->win_obj, 50);
    evas_object_pass_events_set(win->win_obj, EINA_TRUE);
 
+   if (type == ELM_WIN_INLINED_IMAGE)
+      elm_widget_parent2_set(win->win_obj, parent);
    ecore_evas_object_associate(win->ee, win->win_obj,
                                ECORE_EVAS_OBJECT_ASSOCIATE_BASE |
                                ECORE_EVAS_OBJECT_ASSOCIATE_STACK |
@@ -2151,6 +2166,16 @@ elm_win_screen_position_get(const Evas_Object *obj, int *x, int *y)
    if (y) *y = win->screen.y;
 }
 
+EAPI Eina_Bool
+elm_win_focus_get(const Evas_Object *obj)
+{
+   Elm_Win *win;
+   ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
+   win = elm_widget_data_get(obj);
+   if (!win) return EINA_FALSE;
+   return ecore_evas_focus_get(win->ee);
+}
+
 EAPI void
 elm_win_screen_size_get(const Evas_Object *obj, int *x, int *y, int *w, int *h)
 {
index 12e7ef7..1c1daa2 100644 (file)
@@ -300,9 +300,8 @@ _elm_cursor_cur_set(Elm_Cursor *cur)
    if (cur->use_engine)
      {
 #ifdef HAVE_ELEMENTARY_X
-        struct _Cursor_Id cur_search, *cur_id;
+        struct _Cursor_Id *cur_id;
 
-        cur_search.name = cur->cursor_name;
         cur_id = bsearch(&(cur->cursor_name), _cursors, _cursors_count,
                          sizeof(struct _Cursor_Id), _elm_cursor_strcmp);
 
index 259fe8b..e4893ab 100755 (executable)
@@ -2,6 +2,12 @@
 #include "elm_priv.h"
 #include "els_icon.h"
 
+#ifdef _WIN32
+# define FMT_SIZE_T "%Iu"
+#else
+# define FMT_SIZE_T "%zu"
+#endif
+
 typedef struct _Smart_Data Smart_Data;
 
 struct _Smart_Data
@@ -76,23 +82,21 @@ _els_smart_icon_file_helper(Evas_Object *obj)
    /* smart code here */
    /* NOTE: Do not merge upstream for the if (sd->edje) { } statements
       But wonder whether the edje resource icons have no problem. */
-   if (sd->edje)
-     {
-        if (sd->prev) evas_object_del(sd->prev);
-        pclip = evas_object_clip_get(sd->obj);
-        if (sd->obj) sd->prev = sd->obj;
-        sd->obj = evas_object_image_add(evas_object_evas_get(obj));
-        evas_object_event_callback_add(sd->obj,
-                                       EVAS_CALLBACK_IMAGE_PRELOADED,
-                                       _preloaded, sd);
-        evas_object_smart_member_add(sd->obj, obj);
-        if (sd->prev) evas_object_smart_member_add(sd->prev, obj);
-        evas_object_image_scale_hint_set(sd->obj,
-                                         EVAS_IMAGE_SCALE_HINT_STATIC);
-        evas_object_clip_set(sd->obj, pclip);
+   if (!sd->edje) goto out;
 
-        sd->edje = EINA_FALSE;
-     }
+   if (sd->prev) evas_object_del(sd->prev);
+   pclip = evas_object_clip_get(sd->obj);
+   if (sd->obj) sd->prev = sd->obj;
+   sd->obj = evas_object_image_add(evas_object_evas_get(obj));
+   evas_object_event_callback_add(sd->obj, EVAS_CALLBACK_IMAGE_PRELOADED,
+                                  _preloaded, sd);
+   evas_object_smart_member_add(sd->obj, obj);
+   if (sd->prev) evas_object_smart_member_add(sd->prev, obj);
+   evas_object_image_scale_hint_set(sd->obj, EVAS_IMAGE_SCALE_HINT_STATIC);
+   evas_object_clip_set(sd->obj, pclip);
+
+   sd->edje = EINA_FALSE;
+out:
 
    if (!sd->size)
      evas_object_image_load_size_set(sd->obj, sd->size, sd->size);
@@ -114,7 +118,7 @@ _els_smart_icon_memfile_set(Evas_Object *obj, const void *img, size_t size, cons
    evas_object_image_preload(sd->obj, EINA_FALSE);
    if (evas_object_image_load_error_get(sd->obj) != EVAS_LOAD_ERROR_NONE)
      {
-        ERR("Things are going bad for some random %zu byte chunk of memory (%p)", size, sd->obj);
+        ERR("Things are going bad for some random " FMT_SIZE_T " byte chunk of memory (%p)", size, sd->obj);
         return EINA_FALSE;
      }
    _smart_reconfigure(sd);
index 832a8bc..99b6b07 100644 (file)
@@ -1,6 +1,14 @@
 #include <Elementary.h>
 #include "elm_priv.h"
 
+#ifdef ISCOMFITOR
+# define STR(X) #X
+# define STUPID(X) STR(X)
+# define TTDBG(x...) fprintf(stderr, STUPID(__LINE__)": " x)
+#else
+# define TTDBG(X...)
+#endif
+
 static const char _tooltip_key[] = "_elm_tooltip";
 
 #define ELM_TOOLTIP_GET_OR_RETURN(tt, obj, ...)         \
@@ -239,9 +247,6 @@ _elm_tooltip_reconfigure(Elm_Tooltip *tt)
    Evas_Coord eminw, eminh, ominw, ominh;
    double rel_x, rel_y;
    Eina_Bool inside_eventarea;
-#ifdef HAVE_ELEMENTARY_X
-   Ecore_X_Window xwin = 0;
-#endif
 
    _elm_tooltip_reconfigure_job_stop(tt);
 
@@ -337,7 +342,7 @@ _elm_tooltip_reconfigure(Elm_Tooltip *tt)
            _elm_tooltip_content_del_cb, tt);
 
      }
-
+   TTDBG("*******RECALC\n");
    evas_object_size_hint_min_get(tt->content, &ominw, &ominh);
    edje_object_size_min_get(tt->tooltip, &eminw, &eminh);
 
@@ -348,61 +353,75 @@ _elm_tooltip_reconfigure(Elm_Tooltip *tt)
    if (ominh < 1) ominh = 10; /* at least it is noticeable */
 
    edje_object_size_min_restricted_calc(tt->tooltip, &tw, &th, ominw, ominh);
+   TTDBG("TTSIZE:  tw=%d,th=%d,ominw=%d,ominh=%d\n", tw, th, ominw, ominh);
 
    if (tt->tt_win)
-     elm_win_screen_size_get(elm_object_top_widget_get(tt->owner), &cw, &ch, NULL, NULL);
+     elm_win_screen_size_get(elm_object_top_widget_get(tt->owner), NULL, NULL, &cw, &ch);
    if (!cw)
      evas_output_size_get(tt->tt_evas ?: tt->evas, &cw, &ch);
+   TTDBG("SCREEN:  cw=%d,ch=%d\n", cw, ch);
 
    evas_object_geometry_get(tt->eventarea, &ox, &oy, &ow, &oh);
+   TTDBG("EVENTAREA:  ox=%d,oy=%d,ow=%d,oh=%d\n", ox, oy, ow, oh);
 
    if (tt->tt_win)
      {
         int x, y;
+        Evas_Object *win = elm_object_top_widget_get(tt->owner);
 #ifdef HAVE_ELEMENTARY_X
+        Ecore_X_Window xwin = elm_win_xwindow_get(win);
         ecore_x_pointer_xy_get(xwin, &px, &py);
 #endif
-        elm_win_screen_position_get(elm_object_top_widget_get(tt->owner), &x, &y);
+        elm_win_screen_position_get(win, &x, &y);
         ox += x;
+        if (px) px += x;
         oy += y;
+        if (py) py += y;
      }
    else
      evas_pointer_canvas_xy_get(tt->evas, &px, &py);
-
+   TTDBG("POINTER:  px=%d,py=%d\n", px, py);
    inside_eventarea = ((px >= ox) && (py >= oy) &&
                        (px <= ox + ow) && (py <= oy + oh));
    if (inside_eventarea)
      {
+        /* try to position bottom right corner at pointer */
         tx = px - tw;
         ty = py - th;
+        TTDBG("INIT (EVENTAREA)\n");
      }
    else
      {
+        /* try centered on middle of eventarea */
         tx = ox + (ow / 2) - (tw / 2);
         if (0 > (th - oy - oh)) ty = oy + th;
         else ty = oy - oh;
+        TTDBG("INIT (INTERPRETED)\n");
      }
-
+   TTDBG("ADJUST (POINTER):  tx=%d,ty=%d\n", tx, ty);
    if (tx < 0)
      {
+        /* if we're offscreen, try to flip over the Y axis */
         if (abs((tx + 2 * tw) - cw) < abs(tx))
           tx += tw;
      }
-   else if ((tx > px) && (px > tx))
+   else if ((tx > px) && (px > tw))
      {
         if (tx + tw < cw)
           tx += tw;
      }
    if (ty < 0)
      {
+        /* if we're offscreen, try to flip over the X axis */
         if (abs((ty + 2 * th) - ch) < abs(ty))
           ty += th;
      }
-   else if ((ty > py) && (py > ty))
+   else if ((ty > py) && (py > th))
      {
         if (ty + th < ch)
           ty += th;
      }
+   TTDBG("ADJUST (FLIP):  tx=%d,ty=%d\n", tx, ty);
    if (inside_eventarea)
      {
         if ((tx == px) && ((tx + tw + tt->pad.x < cw) || (tx + tw > cw))) tx += tt->pad.x;
@@ -410,6 +429,7 @@ _elm_tooltip_reconfigure(Elm_Tooltip *tt)
         if ((ty == py) && ((ty + th + tt->pad.y < ch) || (ty + th > ch))) ty += tt->pad.y;
         else if ((ty - tt->pad.y > 0) || (ty < 0)) ty -= tt->pad.y;
      }
+   TTDBG("PAD:  tx=%d,ty=%d\n", tx, ty);
    if (tt->pad.bx * 2 + tw < cw)
      {
         if (tx < tt->pad.bx) tx = tt->pad.bx;
@@ -418,7 +438,6 @@ _elm_tooltip_reconfigure(Elm_Tooltip *tt)
      }
    else if (tx < 0) tx -= tt->pad.bx;
    else if (tx > cw) tx += tt->pad.bx;
-
    if (tt->pad.by * 2 + th < ch)
      {
         if (ty < tt->pad.by) ty = tt->pad.by;
@@ -427,7 +446,12 @@ _elm_tooltip_reconfigure(Elm_Tooltip *tt)
      }
    else if (ty < 0) ty -= tt->pad.by;
    else if (ty > ch) ty += tt->pad.by;
-
+   TTDBG("PAD (BORDER):  tx=%d,ty=%d\n", tx, ty);
+   if ((tx < 0) || (ty < 0))
+     {
+        TTDBG("POSITIONING FAILED! THIS IS A BUG SOMEWHERE!\n");
+        return;
+     }
    evas_object_move(tt->tt_win ? : tt->tooltip, tx, ty);
    evas_object_resize(tt->tt_win ? : tt->tooltip, tw, th);
    evas_object_show(tt->tooltip);
index 5dbe3a6..3956a40 100644 (file)
@@ -39,7 +39,7 @@ _exe_del(void *data __UNUSED__, int type __UNUSED__, void *event)
 EAPI int
 elm_modapi_init(void *m __UNUSED__)
 {
-   exe_exit_handler = 
+   exe_exit_handler =
       ecore_event_handler_add(ECORE_EXE_EVENT_DEL,
                               _exe_del, NULL);
    return 1; // succeed always
index 6713104..0831e37 100644 (file)
@@ -131,7 +131,7 @@ _clipboard_menu(void *data, Evas_Object *obj, void *event_info)
 #endif
    ext_mod->cnpinit(data,obj,event_info);
    elm_cbhm_helper_init(obj);
-   if (ext_mod->textonly)
+   if (ext_mod->cnp_mode != ELM_CNP_MODE_MARKUP)
      elm_cbhm_send_raw_data("show0");
    else
      elm_cbhm_send_raw_data("show1");
@@ -208,6 +208,7 @@ obj_longpress(Evas_Object *obj)
    const char *context_menu_orientation;
    char buf[255];
    Evas_Object* icon;
+   Elm_Object_Item *added_item = NULL;
 
    /*update*/
    elm_entry_extension_module_data_get(obj,ext_mod);
@@ -242,14 +243,19 @@ obj_longpress(Evas_Object *obj)
                {
                   if (!elm_entry_is_empty(obj))
                     {
-                       elm_ctxpopup_item_append(ext_mod->popup, "Select", NULL, _select, obj );
-                       elm_ctxpopup_item_append(ext_mod->popup, "Select All", NULL, _select_all, obj );
+                       added_item = elm_ctxpopup_item_append(ext_mod->popup, "Select", NULL, _select, obj );
+                       added_item = elm_ctxpopup_item_append(ext_mod->popup, "Select All", NULL, _select_all, obj );
                     }
                }
+
+#ifdef HAVE_ELEMENTARY_X
+             if (cbhm_count)
+#else
              if (1) // need way to detect if someone has a selection
+#endif
                {
                   if (ext_mod->editable)
-                    elm_ctxpopup_item_append(ext_mod->popup, "Paste", NULL, _paste, obj );
+                    added_item = elm_ctxpopup_item_append(ext_mod->popup, "Paste", NULL, _paste, obj );
                }
              //elm_ctxpopup_item_append(wd->ctxpopup, NULL, "Selectall",_select_all, obj );
              // start for cbhm
@@ -262,7 +268,7 @@ obj_longpress(Evas_Object *obj)
                   icon = elm_icon_add(ext_mod->popup);
                   snprintf(buf, sizeof(buf), "%s/images/copypaste_icon_clipboard.png", PACKAGE_DATA_DIR);
                   elm_icon_file_set(icon, buf, NULL);
-                  elm_ctxpopup_item_append(ext_mod->popup, NULL, icon, _clipboard_menu, obj);
+                  added_item = elm_ctxpopup_item_append(ext_mod->popup, NULL, icon, _clipboard_menu, obj);
                   //elm_ctxpopup_item_append(ext_mod->popup, "More", NULL, _clipboard_menu, obj );
                }
              // end for cbhm
@@ -273,24 +279,32 @@ obj_longpress(Evas_Object *obj)
                {
                   if (ext_mod->have_selection)
                     {
-                       elm_ctxpopup_item_append(ext_mod->popup, "Copy", NULL, _copy, obj );
+                       added_item = elm_ctxpopup_item_append(ext_mod->popup, "Copy", NULL, _copy, obj );
                        if (ext_mod->editable)
-                         elm_ctxpopup_item_append(ext_mod->popup, "Cut", NULL, _cut, obj );
+                         added_item = elm_ctxpopup_item_append(ext_mod->popup, "Cut", NULL, _cut, obj );
+#ifdef HAVE_ELEMENTARY_X
+                       if (ext_mod->editable && cbhm_count)
+#else
                        if (ext_mod->editable)
-                         elm_ctxpopup_item_append(ext_mod->popup, "Paste", NULL, _paste, obj );
+#endif
+                         added_item = elm_ctxpopup_item_append(ext_mod->popup, "Paste", NULL, _paste, obj );
                     }
                   else
                     {
                        _cancel(obj,ext_mod->popup,NULL);
                        if (!elm_entry_is_empty(obj))
                          {
-                            elm_ctxpopup_item_append(ext_mod->popup, "Select", NULL, _select, obj );
-                            elm_ctxpopup_item_append(ext_mod->popup, "Select All", NULL, _select_all, obj );
+                            added_item = elm_ctxpopup_item_append(ext_mod->popup, "Select", NULL, _select, obj );
+                            added_item = elm_ctxpopup_item_append(ext_mod->popup, "Select All", NULL, _select_all, obj );
                          }
+#ifdef HAVE_ELEMENTARY_X
+                       if (cbhm_count)
+#else
                        if (1) // need way to detect if someone has a selection
+#endif
                          {
                             if (ext_mod->editable)
-                              elm_ctxpopup_item_append(ext_mod->popup, "Paste", NULL, _paste, obj );
+                              added_item = elm_ctxpopup_item_append(ext_mod->popup, "Paste", NULL, _paste, obj );
                          }
                     }
                   // start for cbhm
@@ -303,7 +317,7 @@ obj_longpress(Evas_Object *obj)
                        icon = elm_icon_add(ext_mod->popup);
                        snprintf(buf, sizeof(buf), "%s/images/copypaste_icon_clipboard.png", PACKAGE_DATA_DIR);
                        elm_icon_file_set(icon, buf, NULL);
-                       elm_ctxpopup_item_append(ext_mod->popup, NULL, icon, _clipboard_menu, obj);
+                       added_item = elm_ctxpopup_item_append(ext_mod->popup, NULL, icon, _clipboard_menu, obj);
                        //elm_ctxpopup_item_append(ext_mod->popup, "More", NULL, _clipboard_menu, obj );
                     }
                   // end for cbhm
@@ -311,9 +325,9 @@ obj_longpress(Evas_Object *obj)
           }
         EINA_LIST_FOREACH(ext_mod->items, l, it)
           {
-             elm_ctxpopup_item_append(ext_mod->popup, it->label, NULL, _item_clicked, it );
+             added_item = elm_ctxpopup_item_append(ext_mod->popup, it->label, NULL, _item_clicked, it );
           }
-        if (ext_mod->popup)
+        if (ext_mod->popup && added_item)
           {
              elm_object_scroll_freeze_push(ext_mod->popup);
              _ctxpopup_position(obj);
index 83c28df..854857b 100644 (file)
@@ -117,7 +117,7 @@ _clipboard_menu(void *data, Evas_Object *obj, void *event_info)
 #endif
        ext_mod->cnpinit(data,obj,event_info);
        elm_cbhm_helper_init(obj);
-       if (ext_mod->textonly)
+       if (ext_mod->cnp_mode != ELM_CNP_MODE_MARKUP)
                elm_cbhm_send_raw_data("show0");
        else
                elm_cbhm_send_raw_data("show1");
index 2a6ef7d..381f711 100644 (file)
@@ -54,18 +54,18 @@ _cancel(void *data, Evas_Object *obj, void *event_info)
 static void
 _clipboard_menu(void *data, Evas_Object *obj, void *event_info)
 {
-       // start for cbhm
+   // start for cbhm
 #ifdef HAVE_ELEMENTARY_X
-       ecore_x_selection_secondary_set(elm_win_xwindow_get(obj), "",1);
+   ecore_x_selection_secondary_set(elm_win_xwindow_get(obj), "",1);
 #endif
-       ext_mod->cnpinit(data,obj,event_info);
-       elm_cbhm_helper_init(obj);
-        if (ext_mod->textonly)
-               elm_cbhm_send_raw_data("show0");
-       else
-               elm_cbhm_send_raw_data("show1");
-       evas_object_hide(ext_mod->popup);
-       // end for cbhm
+   ext_mod->cnpinit(data,obj,event_info);
+   elm_cbhm_helper_init(obj);
+   if (ext_mod->cnp_mode != ELM_CNP_MODE_MARKUP)
+     elm_cbhm_send_raw_data("show0");
+   else
+     elm_cbhm_send_raw_data("show1");
+   evas_object_hide(ext_mod->popup);
+   // end for cbhm
 }
 
 static void