diff --git a/.travis.yml b/.travis.yml index 7b84077161..e501011b24 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,8 +18,8 @@ jobs: include: - os: osx env: BUILDSYSTEM=ninja - - os: linux - env: DISTRO=Fedora29-mingw CI_BUILD_TYPE=mingw + #- os: linux + #env: DISTRO=Fedora29-mingw CI_BUILD_TYPE=mingw - os: linux env: DISTRO=Fedora29 CI_BUILD_TYPE=options-enabled - os: linux diff --git a/configure.ac b/configure.ac index 8cebe7c999..a80b2e084f 100644 --- a/configure.ac +++ b/configure.ac @@ -810,10 +810,14 @@ EFL_SELECT_WINDOWS_VERSION ### Checks for libraries -EFL_ADD_LIBS([EVIL], [-lpsapi -lole32 -lws2_32 -lsecur32 -luuid]) +EFL_ADD_LIBS([EVIL], [-lpsapi -lole32 -lws2_32 -lsecur32 -luuid -lregex]) ### Checks for header files +AC_CHECK_HEADERS([regex.h fnmatch.h], + [], + [AC_MSG_ERROR([regex.h or fnmatch.h can not be found])]) + ### Checks for types ### Checks for structures @@ -839,6 +843,14 @@ AC_SUBST([EVIL_CXXFLAGS]) ### Checks for library functions +AC_SEARCH_LIBS([regcomp], [regex], + [], + [AC_MSG_ERROR([regcomp() can not be found in libregex])]) + +AC_SEARCH_LIBS([fnmatch], [regex], + [], + [AC_MSG_ERROR([fnmatch() can not be found in libregex])]) + EFL_LIB_END_OPTIONAL([Evil]) AC_SUBST([USE_EVIL_CFLAGS]) @@ -4480,7 +4492,7 @@ if test "x${want_xim}" = "xyes" && test "x${want_ecore_imf_xim}" = "xyes" ; then [X11 XOpenIM], [ have_ecore_imf_xim=yes - AC_DEFINE([ENABLE_XIM], [1], [Enable X Input Method]) + AC_DEFINE([BUILD_ECORE_IMF_XIM], [1], [Enable X Input Method]) ]) fi diff --git a/doc/docfx/filterConfig.yml b/doc/docfx/filterConfig.yml index ed7f549ee7..d6ddf9d5b4 100644 --- a/doc/docfx/filterConfig.yml +++ b/doc/docfx/filterConfig.yml @@ -3,8 +3,6 @@ apiRules: uidRegex: ^.*NativeInherit$ - exclude: uidRegex: ^.*NativeStruct$ -- exclude: - uidRegex: ^.*Concrete$ - include: uidRegex: ^Efl - include: diff --git a/header_checks/meson.build b/header_checks/meson.build index 42d638fc6a..af5ef11149 100644 --- a/header_checks/meson.build +++ b/header_checks/meson.build @@ -189,12 +189,29 @@ if (cc.has_header('sys/mman.h')) config_h.set10('HAVE_MMAN_H', true) endif +regexp = [] +if sys_windows == true + regexp = cc.find_library('regex', + has_headers: ['regex.h', 'fnmatch.h'], + required: true) + if regexp.found() == false + error('regex can not be found') + endif +else + if cc.has_header_symbol('fnmatch.h', 'fnmatch') == false + error('fnmatch can not be found') + endif + if cc.has_header_symbol('regex.h', 'regcomp') == false + error('regcomp can not be found') + endif +endif + config_h.set('VMAJ', version_major) config_h.set('VMIN', version_minor) config_h.set('VMIC', version_micro) config_h.set('VREV', '0') -#jpeg detection ... life is a bit more complex there +#jpeg detection ... life is a bit more complex there jpeg = dependency('libjpeg', required: false) if jpeg.found() == false diff --git a/m4/efl.m4 b/m4/efl.m4 index d051155e56..a01c5b401c 100644 --- a/m4/efl.m4 +++ b/m4/efl.m4 @@ -424,7 +424,7 @@ m4_defn([UP])_LIBS=" ${m4_defn([UP])_LDFLAGS} ${EFLALL_COV_LIBS} ${EFLALL_LIBS} m4_defn([UP])_INTERNAL_LIBS="${m4_defn([UP])_INTERNAL_LIBS} ${requirements_internal_libs_[]m4_defn([DOWN])}" USE_[]m4_defn([UP])_LIBS="${m4_defn([UP])_LIBS} lib/${libdirname}/lib${libname}.la" USE_[]m4_defn([UP])_INTERNAL_LIBS="${m4_defn([UP])_INTERNAL_LIBS} lib/${libdirname}/lib${libname}.la" -m4_defn([UP])_CFLAGS="${EFL_WINDOWS_VERSION_CFLAGS} ${EFLALL_COV_CFLAGS} ${EFLALL_CFLAGS} ${m4_defn([UP])_CFLAGS} -I\$(top_srcdir)/src/lib/${libdirname} -I\$(top_builddir)/src/lib/${libdirname} -I\$(top_srcdir)/src/bindings/cxx/${libdirname} -I\$(top_builddir)/src/bindings/${libdirname} ${requirements_cflags_[]m4_defn([DOWN])} ${requirements_cflags_eflall} -DEFL_BUILD=1" +m4_defn([UP])_CFLAGS="${EFL_WINDOWS_VERSION_CFLAGS} ${EFLALL_COV_CFLAGS} ${EFLALL_CFLAGS} ${m4_defn([UP])_CFLAGS} -I\$(top_srcdir)/src/lib/${libdirname} -I\$(top_builddir)/src/lib/${libdirname} -I\$(top_srcdir)/src/bindings/cxx/${libdirname} -I\$(top_builddir)/src/bindings/${libdirname} ${requirements_cflags_[]m4_defn([DOWN])} ${requirements_cflags_eflall}" requirements_pc_[]m4_defn([DOWN])="${requirements_pc_[]m4_defn([DOWN])} ${requirements_pc_eflall}" requirements_pc_deps_[]m4_defn([DOWN])="${requirements_pc_deps_[]m4_defn([DOWN])} ${requirements_pc_deps_eflall}" diff --git a/pc/efl-net.pc.in b/pc/efl-net.pc.in index b68328c213..176d8cf470 100644 --- a/pc/efl-net.pc.in +++ b/pc/efl-net.pc.in @@ -2,6 +2,8 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ +datarootdir=@datarootdir@ +datadir=@datadir@ eoincludedir=@datadir@/eolian/include eolian_flags=-I${pc_sysrootdir}${eoincludedir}/ecore-con-@VMAJ@ -I${pc_sysrootdir}${eoincludedir}/ecore-@VMAJ@ -I${pc_sysrootdir}${eoincludedir}/efl-@VMAJ@ -I${pc_sysrootdir}${eoincludedir}/eo-@VMAJ@ -I${pc_sysrootdir}${eoincludedir}/eet-@VMAJ@ -I${pc_sysrootdir}${eoincludedir}/emile-@VMAJ@ -I${pc_sysrootdir}${eoincludedir}/eina-@VMAJ@ diff --git a/po/ca.po b/po/ca.po index ede2ab544a..d74907342f 100644 --- a/po/ca.po +++ b/po/ca.po @@ -4,12 +4,12 @@ # Marc Furtià i Puig , 2013. # Joan Coll , 2013. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: Elementary\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2015-02-10 09:34+0000\n" "Last-Translator: JoanColl \n" "Language-Team: Catalan\n" @@ -240,37 +240,37 @@ msgstr "Imatges" msgid "Videos" msgstr "Vídeos" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Amunt" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Carpeta personal" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "Cerca" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "Accepta" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Cancel·la" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Estat: desactivat" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -305,15 +305,15 @@ msgstr "Enrere" msgid "Next" msgstr "Següent" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Títol finestra emergent" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Text de la finestra emergent" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -374,21 +374,21 @@ msgstr "mes del calendari" msgid "calendar year" msgstr "any del calendari" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Estat: activat" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Estat: desactivat" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Estat" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Comprova" @@ -438,7 +438,7 @@ msgstr "paleta de selecció de color" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -450,23 +450,23 @@ msgstr "selector de dia" msgid "diskselector item" msgstr "selector de disc" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Retalla" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Copia" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Enganxa" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Selecciona" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Entrada" @@ -510,20 +510,20 @@ msgstr "barra de progrés" msgid "Radio" msgstr "Opció" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Estat: Seleccionat" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Estat: No seleccionat" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Element de control del segment" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "control lliscant" @@ -551,23 +551,23 @@ msgstr "botó de decrement del spinner" msgid "spinner text" msgstr "text rotatiu" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Seleccionat" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Separador" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Té menú" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "No seleccionat" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Element de barra d'eines" diff --git a/po/cs.po b/po/cs.po index fac0a1efb4..d84b91170d 100644 --- a/po/cs.po +++ b/po/cs.po @@ -5,12 +5,12 @@ # quaker66@gmail.com # Vít Pelčák , 2011. # Tomáš Čech , 2012. -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2014-05-22 22:44+0200\n" "Last-Translator: Tomáš Čech \n" "Language-Team: Czech \n" @@ -243,37 +243,37 @@ msgstr "Obrázky" msgid "Videos" msgstr "Videa" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Nahoru" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Domů" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "OK" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Zrušit" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Stav: Zakázáno" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -308,15 +308,15 @@ msgstr "Zpět" msgid "Next" msgstr "Další" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Titulek vyskakujícího okna" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Text vyskakovacího okna" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -377,21 +377,21 @@ msgstr "kalendářní měsíc" msgid "calendar year" msgstr "kalendářní rok" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Stav: Zapnuto" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Stav: Vypnuto" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Stav" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Ověřit" @@ -441,7 +441,7 @@ msgstr "položka výběru barvy z palety" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -453,23 +453,23 @@ msgstr "položka výběru dne" msgid "diskselector item" msgstr "položka výběru disků" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Vyjmout" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Kopírovat" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Vložit" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Vybrat" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Vstup" @@ -513,20 +513,20 @@ msgstr "ukazatel průběhu" msgid "Radio" msgstr "Přepínač" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Stav: Vybráno" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Stav: Nevybráno" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "položka ovládání segmentu" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "šoupátko" @@ -555,23 +555,23 @@ msgstr "odečítací tlačítko spinneru" msgid "spinner text" msgstr "spinner" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Vybrané" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Oddělovač" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Má nabídku" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Nevybrané" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Položka panelu nástrojů" diff --git a/po/da.po b/po/da.po index 8635367bd3..25bbc265b3 100644 --- a/po/da.po +++ b/po/da.po @@ -2,12 +2,12 @@ # Copyright (C) 2017 Enlightenment development team # This file is distributed under the same license as the efl package. # scootergrisen, 2017-2018. -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: efl 1.21\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2018-08-09 18:38+0200\n" "Last-Translator: scootergrisen\n" "Language-Team: Danish\n" @@ -237,37 +237,37 @@ msgstr "Billeder" msgid "Videos" msgstr "Videoer" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Op" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Hjem" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "Søg" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "OK" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Annuller" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Tilstand: Deaktiveret" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "Svævemarkering" @@ -301,15 +301,15 @@ msgstr "Tilbage" msgid "Next" msgstr "Næste" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Titel til pop op" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Brødtekst til pop op" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "Besked" @@ -370,21 +370,21 @@ msgstr "kalender måned" msgid "calendar year" msgstr "kalender år" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Tilstand: Til" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Tilstand: Fra" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Tilstand" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Tilvælg" @@ -434,7 +434,7 @@ msgstr "palet-element til farvevælger" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -446,23 +446,23 @@ msgstr "dagvælger-element" msgid "diskselector item" msgstr "diskvælger-element" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Klip" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Kopiér" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Indsæt" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Vælg" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Indtastning" @@ -506,20 +506,20 @@ msgstr "forløbslinje" msgid "Radio" msgstr "Radio" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Tilstand: Valgt" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Tilstand: Fravalgt" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Segmentkontrol-element" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "skyder" @@ -547,23 +547,23 @@ msgstr "formindsk-knap til ruller" msgid "spinner text" msgstr "rullertekst" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Valgt" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Separator" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Har menu" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Fravalgt" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Værktøjslinje-element" diff --git a/po/de.po b/po/de.po index d195ca8eba..9a21732685 100644 --- a/po/de.po +++ b/po/de.po @@ -4,12 +4,12 @@ # Chris Leick , 2009. # Fabian Nowak , 2010. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: elementary 0.7.0.57309\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2011-02-25 20:22+0100\n" "Last-Translator: Fabian Nowak \n" "Language-Team: German\n" @@ -241,37 +241,37 @@ msgstr "" msgid "Videos" msgstr "" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Aufwärts" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Persönlicher Ordner" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "OK" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Abbrechen" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -305,15 +305,15 @@ msgstr "" msgid "Next" msgstr "" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -374,21 +374,21 @@ msgstr "" msgid "calendar year" msgstr "" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "" @@ -438,7 +438,7 @@ msgstr "" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -450,23 +450,23 @@ msgstr "" msgid "diskselector item" msgstr "" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Ausschneiden" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Kopieren" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Einfügen" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Auswählen" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "" @@ -510,21 +510,21 @@ msgstr "" msgid "Radio" msgstr "" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 #, fuzzy msgid "State: Unselected" msgstr "Auswählen" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "" @@ -552,24 +552,24 @@ msgstr "" msgid "spinner text" msgstr "" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 #, fuzzy msgid "Selected" msgstr "Auswählen" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 #, fuzzy msgid "Unselected" msgstr "Auswählen" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "" diff --git a/po/el.po b/po/el.po index 315427a190..d70548b9d6 100644 --- a/po/el.po +++ b/po/el.po @@ -6,12 +6,12 @@ # Alex-P. Natsios 2012 # Efstathios Iosifidis , 2012. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: elementary\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2012-12-19 15:58+0200\n" "Last-Translator: Efstathios Iosifidis \n" "Language-Team: Ελληνικά, Σύγχρονα \n" @@ -244,37 +244,37 @@ msgstr "Εικόνες" msgid "Videos" msgstr "Βίντεο" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Πάνω" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Αρχική" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "Εντάξει" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Άκυρο" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Κατάσταση: Απενεργοποιημένο" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -308,15 +308,15 @@ msgstr "" msgid "Next" msgstr "" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -383,21 +383,21 @@ msgstr "Μηνας Ημερολογίου" msgid "calendar year" msgstr "αντικείμενο ημερολογίου" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Κατάσταση: Ενεργό" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Κατάσταση: Ανενεργό" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Κατάσταση" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Επιλογή" @@ -449,7 +449,7 @@ msgstr "παλέτα επιλογής χρώματος" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -462,23 +462,23 @@ msgstr "επιλογή δίσκου" msgid "diskselector item" msgstr "επιλογή δίσκου" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Αποκοπή" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Αντιγραφή" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Επικόλληση" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Επιλογή" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Καταχώριση" @@ -522,21 +522,21 @@ msgstr "Μπάρα Προόδου" msgid "Radio" msgstr "Επιλογή" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Κατάσταση: Επιλεγμένο" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 #, fuzzy msgid "State: Unselected" msgstr "Κατάσταση: Επιλεγμένο" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "μπάρα κύλισης" @@ -568,23 +568,23 @@ msgstr "κουμπί spinner προηγούμενο" msgid "spinner text" msgstr "spinner" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Επιλεγμένο" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Διαχωριστικό" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Έχει μενού" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Μη Επιλεγμένο" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Αντικείμενο μπάρας εργαλείων" diff --git a/po/eo.po b/po/eo.po index a04210d81d..6f19cab7bd 100644 --- a/po/eo.po +++ b/po/eo.po @@ -3,12 +3,12 @@ # This file is distributed under the same license as the enlightenment package. # FIRST AUTHOR , 2012. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: enlightenment\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2013-11-05 18:59+0000\n" "Last-Translator: Eliovir \n" "Language-Team: Esperanto \n" @@ -239,37 +239,37 @@ msgstr "Bildujo" msgid "Videos" msgstr "Videujo" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Supren" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Hejmo" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "Bone" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Nuligi" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Stato: malŝaltita" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -304,15 +304,15 @@ msgstr "Reen" msgid "Next" msgstr "Antaŭen" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Titolo de spruĉfenestro" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Enhava teksto de spruĉfenestro" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -373,21 +373,21 @@ msgstr "monato de kalendaro" msgid "calendar year" msgstr "jara kalendaro" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Stato: enŝaltita" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Stato: malŝaltita" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Stato" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Kontroli" @@ -437,7 +437,7 @@ msgstr "ero de elektilo de kolorpaletro" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -449,23 +449,23 @@ msgstr "" msgid "diskselector item" msgstr "ero de diskelektilo" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Eltondi" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Kopii" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Alglui" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Elekti" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Ero" @@ -509,20 +509,20 @@ msgstr "progresbreto" msgid "Radio" msgstr "Radiobutono" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Stato: elektita" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Stato: ne elektita" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "ŝovilo" @@ -551,23 +551,23 @@ msgstr "dekrementa sago-butono" msgid "spinner text" msgstr "sago-butono" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Elektita" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Disigilo" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Ĝi havas menuo" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Malelektita" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Ilobretero" diff --git a/po/es.po b/po/es.po index 652b0618b2..4c913ce6c4 100644 --- a/po/es.po +++ b/po/es.po @@ -4,12 +4,12 @@ # Aníbal Garrido , 2012. # Adrián Arévalo , 2015. # Roy W. Reese 2015. -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: elementary\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2015-05-03 18:19+0100\n" "Last-Translator: Adrián Arévalo \n" "Language-Team: Enlightenment Team\n" @@ -239,37 +239,37 @@ msgstr "Imágenes" msgid "Videos" msgstr "Vídeos" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Arriba" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Carpeta personal" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "Buscar" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "Aceptar" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Cancelar" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Estado: Desactivado" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -304,17 +304,17 @@ msgstr "Atrás" msgid "Next" msgstr "Siguiente" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 #, fuzzy msgid "Popup Title" msgstr "Nombre emergente" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 #, fuzzy msgid "Popup Body Text" msgstr "Texto emergente" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -377,21 +377,21 @@ msgid "calendar year" msgstr "año del calendario" # RR: Traducción italiana usa ativado/desactivado. No sé a que refiere la cadena. -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Estado: Conectado" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Estado: Desconectado" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Estado" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Comprobar" @@ -442,7 +442,7 @@ msgstr "Selector de color de paleta" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -454,23 +454,23 @@ msgstr "Selector de día" msgid "diskselector item" msgstr "Selector de disco" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Cortar" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Copiar" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Pegar" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Seleccionar" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Entrada" @@ -514,20 +514,20 @@ msgstr "barra de progreso" msgid "Radio" msgstr "Radio" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Estado: Seleccionado" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Estado: No seleccionado" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Elemento del control del segmento" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "deslizador" @@ -556,23 +556,23 @@ msgstr "botón de decremento del spinner" msgid "spinner text" msgstr "spinner" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Seleccionado" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Separador" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Tiene menú" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Sin seleccionar" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Elemento de la barra de herramientas" diff --git a/po/fi.po b/po/fi.po index e2f87954c8..950af55d7c 100644 --- a/po/fi.po +++ b/po/fi.po @@ -3,12 +3,12 @@ # This file is distributed under the same license as the enlightenment package. # FIRST AUTHOR , 2014. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: enlightenment\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2014-08-31 15:13+0000\n" "Last-Translator: Kai Huuhko \n" "Language-Team: Finnish \n" @@ -239,37 +239,37 @@ msgstr "Kuvat" msgid "Videos" msgstr "Videot" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Ylös" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Koti" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "OK" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Peruuta" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Tila: Pois käytöstä" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -304,15 +304,15 @@ msgstr "Takaisin" msgid "Next" msgstr "Seuraava" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Ponnahdusikkunan otsikko" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Ponnahdusikkunan leipäteksti" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -373,21 +373,21 @@ msgstr "kalenterikuukausi" msgid "calendar year" msgstr "kalenterivuosi" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Tila: päällä" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Tila: pois päältä" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Tila" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Valinta" @@ -437,7 +437,7 @@ msgstr "värivalitsimen palettikohta" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -449,23 +449,23 @@ msgstr "päivyrin kohta" msgid "diskselector item" msgstr "kiekkovalitsimen kohta" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Leikkaa" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Kopioi" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Liitä" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Valitse" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Syöttökenttä" @@ -509,20 +509,20 @@ msgstr "Tilanneilmaisin" msgid "Radio" msgstr "Vaihtoehto" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Tila: valittu" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Tila: valitsematon" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "liukusäädin" @@ -551,23 +551,23 @@ msgstr "Pyörövalitsimen vähennä-nappi" msgid "spinner text" msgstr "pyörövalitsin" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Valittu" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Erotin" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Valikollinen" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Valitsematon" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Työkalupalkin kohta" diff --git a/po/fr.po b/po/fr.po index a41c2f990b..2c9b3b7ade 100644 --- a/po/fr.po +++ b/po/fr.po @@ -6,12 +6,12 @@ # Jerome Pinot , 2012. # Chidambar Zinnoury , 2013. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: Elementary\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2014-05-25 20:18+0000\n" "Last-Translator: Eliovir \n" "Language-Team: French \n" @@ -245,37 +245,37 @@ msgstr "Images" msgid "Videos" msgstr "Vidéos" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Monter" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Home" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "OK" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Annuler" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "État : désactivé" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -310,15 +310,15 @@ msgstr "Retour" msgid "Next" msgstr "Suivant" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Titre du Popup" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Corps du texte du Popup" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -379,21 +379,21 @@ msgstr "Mois du calendrier" msgid "calendar year" msgstr "Année du calendrier" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "État : activé" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "État : désactivé" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "État" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "À cocher" @@ -443,7 +443,7 @@ msgstr "élément de palette de choix de couleur" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -455,23 +455,23 @@ msgstr "élement de choix de date" msgid "diskselector item" msgstr "élément de choix de disque" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Couper" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Copier" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Coller" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Sélectionner" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Entrée" @@ -515,20 +515,20 @@ msgstr "barre de progression" msgid "Radio" msgstr "Radio" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "État : sélectionné" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "État : désélectionné" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Élément de contrôle de segment" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "curseur" @@ -557,22 +557,22 @@ msgstr "bouton fléché de décrémentation" msgid "spinner text" msgstr "bouton fléché" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Sélectionné" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Séparateur" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Possède un menu" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Désélectionné" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Élément de barre d'outils" diff --git a/po/gl.po b/po/gl.po index 3ef2282a91..da1df63d5a 100644 --- a/po/gl.po +++ b/po/gl.po @@ -2,12 +2,12 @@ # This file is put in the public domain. # Aníbal Garrido , 2012. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: elementary\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2014-05-24 08:39+0000\n" "Last-Translator: Kaptan \n" "Language-Team: Galician \n" @@ -238,37 +238,37 @@ msgstr "Imaxes" msgid "Videos" msgstr "Vídeos" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Arriba" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Cartafol persoal" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "Aceptar" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Cancelar" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Estado: Desactivado" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -303,15 +303,15 @@ msgstr "Atrás" msgid "Next" msgstr "Seguinte" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Título da emerxente" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Corpo de texto emerxente" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -372,21 +372,21 @@ msgstr "mes do calendario" msgid "calendar year" msgstr "ano do calendario" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Estado: Conectado" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Estado: Desconectado" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Estado" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Comprobar" @@ -436,7 +436,7 @@ msgstr "Paleta de selección de cor" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -448,23 +448,23 @@ msgstr "selector de día" msgid "diskselector item" msgstr "Selector de disco" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Cortar" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Copiar" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Pegar" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Seleccionar" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Entrada" @@ -508,20 +508,20 @@ msgstr "barra de progreso" msgid "Radio" msgstr "Radio" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Estado: Seleccionado" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Estado: Sen seleccionar" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Segmento de control" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "Barra de desprazamento" @@ -550,23 +550,23 @@ msgstr "botón de disminución" msgid "spinner text" msgstr "botón de spinner" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Seleccionado" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Separador" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Ten menú" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Non seleccionado" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Elemento da barra de ferramentas" diff --git a/po/hu.po b/po/hu.po index bde809fc70..adcd4a1649 100644 --- a/po/hu.po +++ b/po/hu.po @@ -3,12 +3,12 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: elementary 1.8.2\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2014-01-29 15:27+0100\n" "Last-Translator: rezso \n" "Language-Team: General\n" @@ -240,37 +240,37 @@ msgstr "Képek" msgid "Videos" msgstr "Videók" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Fel" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Kezdőlap" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "OK" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Mégsem" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Állapot: letiltva" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -305,15 +305,15 @@ msgstr "Vissza" msgid "Next" msgstr "Következő" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Popup címsora" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Popup szövege" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -374,21 +374,21 @@ msgstr "naptár hónapja" msgid "calendar year" msgstr "naptár éve" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Állapot: be" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Állapot: ki" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Állapot" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Ellenőrzés" @@ -438,7 +438,7 @@ msgstr "" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -450,23 +450,23 @@ msgstr "" msgid "diskselector item" msgstr "" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Kivágás" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Másolás" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Beillesztés" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Kiválaszt" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Bejegyzés" @@ -510,20 +510,20 @@ msgstr "folyamatjelző" msgid "Radio" msgstr "Rádió" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Állapot: kijelölve" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Állapot: nincs kijelölve" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "csúszka" @@ -551,22 +551,22 @@ msgstr "" msgid "spinner text" msgstr "" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Kiválasztva" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Elválasztó" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Nincs kijelölve" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Eszköztár elem" diff --git a/po/it.po b/po/it.po index 207003c220..f861007734 100644 --- a/po/it.po +++ b/po/it.po @@ -3,12 +3,12 @@ # This file is put in the public domain. # Massimo Maiurana , 2013 # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: Elementary\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2018-04-01 19:01+0200\n" "Last-Translator: Massimo Maiurana \n" "Language-Team: General\n" @@ -238,37 +238,37 @@ msgstr "Immagini" msgid "Videos" msgstr "Video" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Su" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Home" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "Cerca" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "OK" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Annulla" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Stato: disabilitato" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "Lista per bottone (hoversel)" @@ -302,15 +302,15 @@ msgstr "Indietro" msgid "Next" msgstr "Avanti" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Titolo popup" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Testo corpo popup" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "Allarme" @@ -371,21 +371,21 @@ msgstr "mese del calendario" msgid "calendar year" msgstr "anno del calendario" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Stato: attivo" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Stato: inattivo" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Stato" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Controllo" @@ -435,7 +435,7 @@ msgstr "oggetto palette selezione colore" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -447,23 +447,23 @@ msgstr "oggetto selettore giorno" msgid "diskselector item" msgstr "selettore disco" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Taglia" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Copia" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Incolla" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Seleziona" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Voce" @@ -507,20 +507,20 @@ msgstr "barra avanzamento" msgid "Radio" msgstr "Opzione" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Stato: selezionato" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Stato: non selezionato" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Oggetto controllo segmento" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "cursore" @@ -548,23 +548,23 @@ msgstr "bottone diminuzione spinner" msgid "spinner text" msgstr "testo spinner" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Selezionato" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Separatore" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Include menù" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Non selezionato" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Oggetto della barra strumenti" diff --git a/po/ja.po b/po/ja.po index 2bc55ffc0d..87e3e040b3 100644 --- a/po/ja.po +++ b/po/ja.po @@ -2,12 +2,12 @@ # Copyright (C) 2012 Enlightenment development team # This file is put in the public domain. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: Efl\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2012-06-24 17:10+0900\n" "Last-Translator: Daichi Fukui\n" "Language-Team: Enlightenment Team\n" @@ -238,37 +238,37 @@ msgstr "Pictures" msgid "Videos" msgstr "Videos" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -302,15 +302,15 @@ msgstr "" msgid "Next" msgstr "" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -371,21 +371,21 @@ msgstr "" msgid "calendar year" msgstr "" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "" @@ -435,7 +435,7 @@ msgstr "" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 #, fuzzy msgid "default:LTR" msgstr "default:LTR" @@ -448,23 +448,23 @@ msgstr "" msgid "diskselector item" msgstr "" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "" @@ -508,20 +508,20 @@ msgstr "" msgid "Radio" msgstr "" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "" @@ -549,22 +549,22 @@ msgstr "" msgid "spinner text" msgstr "" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "" diff --git a/po/ko.po b/po/ko.po index 0146bac6a7..027a3c5665 100644 --- a/po/ko.po +++ b/po/ko.po @@ -5,12 +5,12 @@ # Daniel Juyung Seo , 2011-2013 # Seong-ho Cho , 2012-2013 # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: Efl\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2014-11-10 01:01+0900\n" "Last-Translator: Daniel Juyung Seo \n" "Language-Team: Enlightenment Team\n" @@ -242,37 +242,37 @@ msgstr "사진" msgid "Videos" msgstr "영상" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -306,15 +306,15 @@ msgstr "" msgid "Next" msgstr "" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -375,21 +375,21 @@ msgstr "" msgid "calendar year" msgstr "" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "" @@ -439,7 +439,7 @@ msgstr "" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 #, fuzzy msgid "default:LTR" msgstr "default:LTR" @@ -452,23 +452,23 @@ msgstr "" msgid "diskselector item" msgstr "" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "" @@ -512,20 +512,20 @@ msgstr "" msgid "Radio" msgstr "" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "" @@ -553,22 +553,22 @@ msgstr "" msgid "spinner text" msgstr "" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "" diff --git a/po/lt.po b/po/lt.po index 676baf9d97..7eb730f400 100644 --- a/po/lt.po +++ b/po/lt.po @@ -3,12 +3,12 @@ # This file is distributed under the same license as the enlightenment package. # FIRST AUTHOR , 2010. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: enlightenment\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2014-02-21 22:38+0000\n" "Last-Translator: Mantas Kriaučiūnas \n" "Language-Team: Lithuanian \n" @@ -239,37 +239,37 @@ msgstr "Paveikslėliai" msgid "Videos" msgstr "Video" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "Gerai" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Atsisakyti" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -303,15 +303,15 @@ msgstr "Atgal" msgid "Next" msgstr "" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -372,21 +372,21 @@ msgstr "" msgid "calendar year" msgstr "" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Būsena" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "" @@ -436,7 +436,7 @@ msgstr "" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -448,23 +448,23 @@ msgstr "" msgid "diskselector item" msgstr "" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Iškirpti" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Kopijuoti" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Įdėti" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Pasirinkti" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "" @@ -508,20 +508,20 @@ msgstr "" msgid "Radio" msgstr "" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "šliaužiklis" @@ -549,22 +549,22 @@ msgstr "" msgid "spinner text" msgstr "" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Skirtukas" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Turi meniu" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Nepasirinkta(s)" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "" diff --git a/po/nl.po b/po/nl.po index e0b283aaf4..75e00ad89f 100644 --- a/po/nl.po +++ b/po/nl.po @@ -3,12 +3,12 @@ # This file is put in the public domain. # Fabian Nowak , 2011. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: elementary 0.7.0.57309\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2011-06-19 16:41+0100\n" "Last-Translator: Heimen Stoffels \n" "Language-Team: Dutch \n" @@ -242,37 +242,37 @@ msgstr "" msgid "Videos" msgstr "" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Omhoog" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Persoonlijke map" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "OK" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Annuleren" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -306,15 +306,15 @@ msgstr "" msgid "Next" msgstr "" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -375,21 +375,21 @@ msgstr "" msgid "calendar year" msgstr "" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "" @@ -439,7 +439,7 @@ msgstr "" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -451,23 +451,23 @@ msgstr "" msgid "diskselector item" msgstr "" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Knippen" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Kopiëren" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Plakken" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Selecteren" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "" @@ -511,21 +511,21 @@ msgstr "" msgid "Radio" msgstr "" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 #, fuzzy msgid "State: Unselected" msgstr "Selecteren" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "" @@ -553,24 +553,24 @@ msgstr "" msgid "spinner text" msgstr "" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 #, fuzzy msgid "Selected" msgstr "Selecteren" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 #, fuzzy msgid "Unselected" msgstr "Selecteren" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "" diff --git a/po/pl.po b/po/pl.po index 3f8384899a..1cacce7e14 100644 --- a/po/pl.po +++ b/po/pl.po @@ -3,12 +3,12 @@ # This file is put in the public domain. # Konrad Makowski , 2013 # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: elementary\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2013-11-23 14:48+0100\n" "Last-Translator: Konrad Makowski \n" "Language-Team: General\n" @@ -241,37 +241,37 @@ msgstr "Obrazy" msgid "Videos" msgstr "Wideo" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Do góry" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Początek" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "OK" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Anuluj" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Statuj: wyłączony" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -306,15 +306,15 @@ msgstr "Cofnij" msgid "Next" msgstr "Następny" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Tytuł okienka" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Treść główna okienka" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -375,21 +375,21 @@ msgstr "kalendarz z miesiącami" msgid "calendar year" msgstr "kalendarz roczny" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Stan: włączony" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Stan: wyłączony" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Stan" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Sprawdzony" @@ -439,7 +439,7 @@ msgstr "paleta wyboru kolorów" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -451,23 +451,23 @@ msgstr "wybór dni" msgid "diskselector item" msgstr "wybór dysków" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Wytnij" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Kopiuj" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Wklej" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Wybór" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Pozycja" @@ -511,20 +511,20 @@ msgstr "pasek postępu" msgid "Radio" msgstr "" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Stan: wybrany" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Stan: nie wybrany" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Kontrola Segmentami" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "slajder" @@ -553,22 +553,22 @@ msgstr "przycisk zmniejszający typu spinner" msgid "spinner text" msgstr "spinner" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Wybrany" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Separator" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Posiada menu" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Nie wybrany" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Pasek narzędzi" diff --git a/po/pt.po b/po/pt.po index 3cacb45927..57711831a9 100644 --- a/po/pt.po +++ b/po/pt.po @@ -3,12 +3,12 @@ # This file is public domain. # Sérgio Marques , 2010-2014 # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: Elementary\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2013-11-05 14:11-0000\n" "Last-Translator: Sérgio Marques \n" "Language-Team: General\n" @@ -239,37 +239,37 @@ msgstr "Imagens" msgid "Videos" msgstr "Vídeos" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Para cima" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Pasta pessoal" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "Aceitar" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Cancelar" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Estado: inativo" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -304,15 +304,15 @@ msgstr "Recuar" msgid "Next" msgstr "Avançar" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Título do alerta" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Texto do alerta" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -373,21 +373,21 @@ msgstr "mês do calendário" msgid "calendar year" msgstr "ano do calendário" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Estado: ligado" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Estado: desligado" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Estado" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Seleção" @@ -437,7 +437,7 @@ msgstr "item do seletor de cor" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -449,23 +449,23 @@ msgstr "item do seletor de dia" msgid "diskselector item" msgstr "item do seletor de disco" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Cortar" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Copiar" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Colar" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Selecionar" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Entrada" @@ -509,20 +509,20 @@ msgstr "barra de progresso" msgid "Radio" msgstr "Opção" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Estado: selecionado" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Estado: não selecionado" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Item do controlo de segmento" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "barra deslizante" @@ -551,23 +551,23 @@ msgstr "botão de diminuição do spinner" msgid "spinner text" msgstr "spinner" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Selecionado" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Separador" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Tem menu" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Não selecionado" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Item da barra de ferramentas" diff --git a/po/ru.po b/po/ru.po index 2ffd124c7f..e2de39c7f1 100644 --- a/po/ru.po +++ b/po/ru.po @@ -4,12 +4,12 @@ # Danny Moshnakov , 2012. # Igor Murzov , 2015. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: elementary 1.11\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2015-02-07 15:16+0300\n" "Last-Translator: Игорь Мурзов \n" "Language-Team: ru \n" @@ -240,37 +240,37 @@ msgstr "Изображения" msgid "Videos" msgstr "Видео" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Вверх" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Дом" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "Поиск" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "ОК" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Отмена" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Состояние: Отключено" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -305,15 +305,15 @@ msgstr "Назад" msgid "Next" msgstr "Вперёд" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Заголовок всплывающего окна" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Текст всплывающего окна" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -374,21 +374,21 @@ msgstr "месяц календаря" msgid "calendar year" msgstr "год календаря" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Состояния: Включено" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Состояние: Выключено" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Состояние" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Флажок" @@ -438,7 +438,7 @@ msgstr "элемент выбора цвета палитры" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -450,23 +450,23 @@ msgstr "элемент выбора дня" msgid "diskselector item" msgstr "элемент диска выбора" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Вырезать" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Копировать" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Вставить" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Выбрать" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Запись" @@ -510,20 +510,20 @@ msgstr "индикатор выполнения" msgid "Radio" msgstr "Радио флажок" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Состояние: Выбрано" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Состояние: Невыбрано" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Элемент сегментного элемента управления" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "бегунок" @@ -552,23 +552,23 @@ msgstr "кнопка уменьшения счётчика" msgid "spinner text" msgstr "счётчик" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Выбрано" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Разделитель" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "С меню" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Невыбрано" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Элемент панели инструментов" diff --git a/po/sl.po b/po/sl.po index 997d0f3ab1..cd379dcaf0 100644 --- a/po/sl.po +++ b/po/sl.po @@ -3,12 +3,12 @@ # This file is put in the public domain. # r1to , 2011. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: Efl\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2016-09-21 17:00+0200\n" "Last-Translator: Renato Rener \n" "Language-Team: Enlightenment Team\n" @@ -238,37 +238,37 @@ msgstr "Slike" msgid "Videos" msgstr "Videi" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Gor" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Dom" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "Poišči" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "V redu" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Prekliči" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Stanje: onemogočeno" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -303,15 +303,15 @@ msgstr "Nazaj" msgid "Next" msgstr "Naslednje" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Naslov pojavnika" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Besedilo telesa pojavnika" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -372,21 +372,21 @@ msgstr "mesečni koledar" msgid "calendar year" msgstr "letni koledar" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Stanje: Vključeno" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Stanje: Izključeno" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Stanje" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Preveri" @@ -436,7 +436,7 @@ msgstr "izbirnik s paleto barve" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -448,23 +448,23 @@ msgstr "izbirnik dneva" msgid "diskselector item" msgstr "izbirnik diska" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Izreži" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Kopiraj" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Prilepi" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Izberi" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Vnos" @@ -508,20 +508,20 @@ msgstr "vrstica poteka" msgid "Radio" msgstr "Radio" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Stanje: Izbrano" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Stanje: Neizbrano" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Nadzornik segmenta" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "drsnik" @@ -549,23 +549,23 @@ msgstr "gumb za zniževanje vrtilnika" msgid "spinner text" msgstr "besedilo vrtilnika" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Izbrano" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Ločilnik" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Ima meni" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Neizbrano" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Predmet orodne vrstice" diff --git a/po/sr.po b/po/sr.po index 079ded283c..3f9e78f084 100644 --- a/po/sr.po +++ b/po/sr.po @@ -4,12 +4,12 @@ # FIRST AUTHOR , 2013. # Саша Петровић , 2013, 2015. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: а\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2015-01-31 14:06+0100\n" "Last-Translator: Саша Петровић \n" "Language-Team: српски \n" @@ -242,37 +242,37 @@ msgstr "Слике" msgid "Videos" msgstr "Видео снимци" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Горе" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Лична фасцикла" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "Тражи" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "У реду" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Откажи" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Стање: онемогућено" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -307,15 +307,15 @@ msgstr "Назад" msgid "Next" msgstr "Следеће" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Искачући наслов" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Тело искачућег текста" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -376,21 +376,21 @@ msgstr "месец календара" msgid "calendar year" msgstr "година календара" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Стање : укључен" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Стање: искључен" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Стање" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Провера" @@ -440,7 +440,7 @@ msgstr "ставка избирача палете боја" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -452,23 +452,23 @@ msgstr "ставка одабирач дана" msgid "diskselector item" msgstr "ставка одабира диска" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Исеци" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Умножи" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Прилепи" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Изаберите" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Улаз" @@ -512,20 +512,20 @@ msgstr "трака напретка" msgid "Radio" msgstr "Искључујуће дугме" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Стање: означено" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Стање: неозначено" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Ставка провере дела" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "клизач" @@ -554,23 +554,23 @@ msgstr "стрелица избирача смањења" msgid "spinner text" msgstr "избирач са стрелицама" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Изабрано" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Одвајач" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Има изборник" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Неозначено" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Ставка траке алата" diff --git a/po/tr.po b/po/tr.po index a0cc346027..362df2c208 100644 --- a/po/tr.po +++ b/po/tr.po @@ -3,12 +3,12 @@ # This file is distributed under the same license as the enlightenment package. # FIRST AUTHOR , 2010. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: enlightenment\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2014-04-18 13:35+0000\n" "Last-Translator: Ali E.İMREK \n" "Language-Team: Turkish \n" @@ -239,37 +239,37 @@ msgstr "Resimler" msgid "Videos" msgstr "Videolar" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Yukarı" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Ev" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "Tamam" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "İptal" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Durum: Kapalı" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -304,15 +304,15 @@ msgstr "Geri" msgid "Next" msgstr "Sonraki" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Pencere başlığı" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Pencere gövde metni" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -373,21 +373,21 @@ msgstr "takvim ayı" msgid "calendar year" msgstr "takvim yılı" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Durum: Açık" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Durum: Kapalı" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Durum" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Kontrol et" @@ -437,7 +437,7 @@ msgstr "renk seçici paleti öğesi" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -449,23 +449,23 @@ msgstr "gün seçici ögesi" msgid "diskselector item" msgstr "disk seçici öğesi" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Kes" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Kopyala" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Yapıştır" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Seç" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Girdi" @@ -509,20 +509,20 @@ msgstr "ilerleme çubuğu" msgid "Radio" msgstr "Radyo" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Durum: Seçili" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Bölge: Seçilmedi" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Bölüm Kontrol Öğesi" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "kaydırıcı" @@ -551,23 +551,23 @@ msgstr "değiştirici azaltma düğmesi" msgid "spinner text" msgstr "değiştirici" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Seçili" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Ayraç" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "menü" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Seçili değil" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Araç Çubuğu Öğesi" diff --git a/po/vi.po b/po/vi.po index a741f5d663..8660a5ac09 100644 --- a/po/vi.po +++ b/po/vi.po @@ -3,12 +3,12 @@ # This file is put in the public domain. # Thiep Ha , 2015. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: elementary\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2015-09-29 18:06+0900\n" "Last-Translator: Thiep Ha \n" "Language-Team: General\n" @@ -240,37 +240,37 @@ msgstr "Hình Ảnh" msgid "Videos" msgstr "Video" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Trên" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Trang Chủ" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "Tìm Kiếm" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "Đồng Ý" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Hủy" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Trạng Thái: Không Khả Dụng" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -305,15 +305,15 @@ msgstr "Quay Lại" msgid "Next" msgstr "Tiếp" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Tiêu Đề Hộp Thoại" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Văn Bản Thân Hộp Thoại" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -374,21 +374,21 @@ msgstr "Lịch Tháng" msgid "calendar year" msgstr "Lịch Năm" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Trạng Thái: Bật" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Trạng Thái: Tắt" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Trạng Thái" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Chọn" @@ -438,7 +438,7 @@ msgstr "Mục Của Bảng Chọn Màu" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -450,23 +450,23 @@ msgstr "Mục Của Bảng Chọn Ngày" msgid "diskselector item" msgstr "Mục Của Bộ Chọn Đĩa" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Cắt" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Sao Chép" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Dán" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Chọn" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Bộ Nhập" @@ -510,20 +510,20 @@ msgstr "Thanh Trạng Thái" msgid "Radio" msgstr "Đài" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Trạng Thái: Đã Chọn" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Trạng Thái: Chưa Chọn" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Mục Điều Khiển Đoạn" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "Thanh Trượt" @@ -551,23 +551,23 @@ msgstr "Nút Giảm Bộ Xoay" msgid "spinner text" msgstr "Văn Bản Bộ Xoay" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Đã Chọn" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Bộ Tách" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Có Bảng Chọn" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Không Chọn" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Mục Của Thanh Công Cụ" diff --git a/po/zh_CN.po b/po/zh_CN.po index f18f93f2c0..a7c568a692 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -4,12 +4,12 @@ # This file is distributed under the same license as the Efl package. # Aron Xu , 2012. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: elementary\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2012-12-22 03:55+0800\n" "Last-Translator: Aron Xu \n" "Language-Team: Chinese (simplified)\n" @@ -240,37 +240,37 @@ msgstr "图片" msgid "Videos" msgstr "视频" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "向上" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "主目录" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "确定" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "取消" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "状态:已禁用" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -304,15 +304,15 @@ msgstr "" msgid "Next" msgstr "" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -378,21 +378,21 @@ msgstr "日历月" msgid "calendar year" msgstr "日历条目" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "状态:开启" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "状态:关闭" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "状态" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "检查" @@ -443,7 +443,7 @@ msgstr "色彩选择器项目" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -456,23 +456,23 @@ msgstr "磁盘选择器项目" msgid "diskselector item" msgstr "磁盘选择器项目" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "粘贴" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "复制" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "粘贴" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "选择" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "条目" @@ -516,21 +516,21 @@ msgstr "进度条" msgid "Radio" msgstr "无线电" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "状态:已选择" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 #, fuzzy msgid "State: Unselected" msgstr "状态:已选择" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "滑块" @@ -558,23 +558,23 @@ msgstr "" msgid "spinner text" msgstr "" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "已选择" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "分隔符" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "有菜单" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "未选择" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "工具栏项目" diff --git a/src/Makefile_Cxx.am b/src/Makefile_Cxx.am index 7d38d643dc..a3cc88c1d8 100644 --- a/src/Makefile_Cxx.am +++ b/src/Makefile_Cxx.am @@ -103,7 +103,7 @@ nodist_installed_eocxxheaders_DATA = $(eo_eolian_cxx_hh) $(eo_eolian_cxx_impl_hh nodist_installed_eflcxxmainheaders_DATA = $(efl_eolian_cxx_hh) $(efl_eolian_cxx_impl_hh) lib/efl/Efl.eo.hh nodist_installed_elementarycxxmainheaders_DATA = $(elementary_eolian_cxx_hh) $(elementary_eolian_cxx_impl_hh) \ lib/elementary/Elementary.eo.hh -nodist_installed_eldbuscxxmainheaders_DATA = $(eldbus_eolian_cxx_hh) $(eldbus_eolian_cxx_impl_hh) lib/eldbus/Eldbus_Model.eo.hh +nodist_installed_eldbuscxxmainheaders_DATA = $(eldbus_eolian_cxx_hh) $(eldbus_eolian_cxx_impl_hh) lib/eldbus/Eldbus.eo.hh CLEANFILES += $(eo_eolian_cxx_hh) $(eo_eolian_cxx_impl_hh) @@ -144,12 +144,12 @@ CLEANFILES += $(evas_canvas_eolian_cxx_hh) $(evas_canvas_eolian_cxx_impl_hh) \ lib/evas/Evas.eo.hh -lib/eldbus/Eldbus_Model.eo.hh: $(eldbus_eolian_files) $(_EOLIAN_CXX_DEP) +lib/eldbus/Eldbus.eo.hh: $(eldbus_eolian_files) $(_EOLIAN_CXX_DEP) $(AM_V_EOLCXX) \ $(MKDIR_P) $(dir $@); \ $(EOLIAN_CXX) $(EOLIAN_FLAGS) -m -o $@ $(filter %.eo, $^) -CLEANFILES += $(eldbus_eolian_cxx_hh) $(eldbus_eolian_cxx_impl_hh) lib/eldbus/Eldbus_Model.eo.hh +CLEANFILES += $(eldbus_eolian_cxx_hh) $(eldbus_eolian_cxx_impl_hh) lib/eldbus/Eldbus.eo.hh ### Eet C++ diff --git a/src/Makefile_EPhysics.am b/src/Makefile_EPhysics.am index 708248a616..78d28d9f77 100644 --- a/src/Makefile_EPhysics.am +++ b/src/Makefile_EPhysics.am @@ -21,7 +21,7 @@ lib/ephysics/ephysics_quaternion.cpp \ lib/ephysics/ephysics_shape.cpp \ lib/ephysics/ephysics_world.cpp -lib_ephysics_libephysics_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @EPHYSICS_CFLAGS@ +lib_ephysics_libephysics_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @EPHYSICS_CFLAGS@ -DEFL_BUILD lib_ephysics_libephysics_la_LIBADD = @EPHYSICS_LIBS@ lib_ephysics_libephysics_la_DEPENDENCIES = @EPHYSICS_INTERNAL_LIBS@ lib_ephysics_libephysics_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Ecore.am b/src/Makefile_Ecore.am index 1b83d74fa5..649dbbec28 100644 --- a/src/Makefile_Ecore.am +++ b/src/Makefile_Ecore.am @@ -207,6 +207,7 @@ lib_ecore_libecore_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_DATA_DIR=\"$(datadir)/ecore\" \ -DPACKAGE_BUILD_DIR=\"$(abs_top_builddir)\" \ -DPACKAGE_SRC_DIR=\"$(abs_top_srcdir)\" \ +-DEFL_BUILD \ @ECORE_CFLAGS@ lib_ecore_libecore_la_LIBADD = @ECORE_LIBS@ @EVIL_LIBS@ lib_ecore_libecore_la_DEPENDENCIES = @ECORE_INTERNAL_LIBS@ diff --git a/src/Makefile_Ecore_Audio.am b/src/Makefile_Ecore_Audio.am index 330a5129e2..695879f170 100644 --- a/src/Makefile_Ecore_Audio.am +++ b/src/Makefile_Ecore_Audio.am @@ -53,7 +53,7 @@ lib/ecore_audio/ecore_audio_obj_out.c \ lib/ecore_audio/ecore_audio_obj_in_tone.c \ lib/ecore_audio/ecore_audio_private.h -lib_ecore_audio_libecore_audio_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_AUDIO_CFLAGS@ @ECORE_AUDIO_ALSA_CFLAGS@ @ECORE_AUDIO_PULSE_CFLAGS@ @ECORE_AUDIO_SNDFILE_CFLAGS@ +lib_ecore_audio_libecore_audio_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_AUDIO_CFLAGS@ @ECORE_AUDIO_ALSA_CFLAGS@ @ECORE_AUDIO_PULSE_CFLAGS@ @ECORE_AUDIO_SNDFILE_CFLAGS@ -DEFL_BUILD lib_ecore_audio_libecore_audio_la_LIBADD = @ECORE_AUDIO_LIBS@ @ECORE_AUDIO_ALSA_LIBS@ lib_ecore_audio_libecore_audio_la_DEPENDENCIES = @ECORE_AUDIO_INTERNAL_LIBS@ lib_ecore_audio_libecore_audio_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Ecore_Avahi.am b/src/Makefile_Ecore_Avahi.am index 3dba43e6ca..0390020c78 100644 --- a/src/Makefile_Ecore_Avahi.am +++ b/src/Makefile_Ecore_Avahi.am @@ -10,7 +10,7 @@ lib/ecore_avahi/Ecore_Avahi.h lib_ecore_avahi_libecore_avahi_la_SOURCES = \ lib/ecore_avahi/ecore_avahi.c -lib_ecore_avahi_libecore_avahi_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_AVAHI_CFLAGS@ +lib_ecore_avahi_libecore_avahi_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_AVAHI_CFLAGS@ -DEFL_BUILD lib_ecore_avahi_libecore_avahi_la_LIBADD = @ECORE_AVAHI_LIBS@ lib_ecore_avahi_libecore_avahi_la_DEPENDENCIES = @ECORE_AVAHI_INTERNAL_LIBS@ lib_ecore_avahi_libecore_avahi_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Ecore_Con.am b/src/Makefile_Ecore_Con.am index c51e38f2f4..594046b3c5 100644 --- a/src/Makefile_Ecore_Con.am +++ b/src/Makefile_Ecore_Con.am @@ -188,6 +188,7 @@ lib_ecore_con_libecore_con_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_DATA_DIR=\"$(datadir)/ecore\" \ -DPACKAGE_BUILD_DIR=\"$(abs_top_builddir)\" \ -DPACKAGE_SRC_DIR=\"$(abs_top_srcdir)\" \ +-DEFL_BUILD \ @ECORE_CON_CFLAGS@ lib_ecore_con_libecore_con_la_LIBADD = @ECORE_CON_LIBS@ @EVIL_LIBS@ lib_ecore_con_libecore_con_la_DEPENDENCIES = @ECORE_CON_INTERNAL_LIBS@ diff --git a/src/Makefile_Ecore_Evas.am b/src/Makefile_Ecore_Evas.am index 0c3c335679..8f74f95b0b 100644 --- a/src/Makefile_Ecore_Evas.am +++ b/src/Makefile_Ecore_Evas.am @@ -34,6 +34,7 @@ lib_ecore_evas_libecore_evas_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_DATA_DIR=\"$(datadir)/ecore_evas\" \ -DPACKAGE_BUILD_DIR=\"$(abs_top_builddir)\" \ -DPACKAGE_SRC_DIR=\"$(abs_top_srcdir)\" \ +-DEFL_BUILD \ @ECORE_EVAS_CFLAGS@ lib_ecore_evas_libecore_evas_la_LIBADD = @ECORE_EVAS_LIBS@ lib_ecore_evas_libecore_evas_la_DEPENDENCIES = @ECORE_EVAS_INTERNAL_LIBS@ @@ -83,6 +84,7 @@ $(install_ecoreevasenginexpkgLTLIBRARIES): install-libLTLIBRARIES modules_ecore_evas_engines_x_module_la_SOURCES = $(XSOURCES) modules_ecore_evas_engines_x_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ @ECORE_EVAS_CFLAGS@ \ @ECORE_X_CFLAGS@ \ -I$(top_srcdir)/src/modules/evas/engines/software_x11 \ @@ -193,6 +195,7 @@ $(install_ecoreevasenginesdlpkgLTLIBRARIES): install-libLTLIBRARIES modules_ecore_evas_engines_sdl_module_la_SOURCES = $(SDLSOURCES) modules_ecore_evas_engines_sdl_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ @ECORE_EVAS_CFLAGS@ \ @ECORE_SDL_CFLAGS@ \ -I$(top_srcdir)/src/modules/evas/engines/buffer \ @@ -220,6 +223,7 @@ $(install_ecoreevasengineswin32pkgLTLIBRARIES): install-libLTLIBRARIES modules_ecore_evas_engines_win32_module_la_SOURCES = $(WIN32SOURCES) modules_ecore_evas_engines_win32_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ @ECORE_EVAS_CFLAGS@ \ @ECORE_WIN32_CFLAGS@ \ -I$(top_srcdir)/src/modules/evas/engines/software_ddraw \ diff --git a/src/Makefile_Ecore_File.am b/src/Makefile_Ecore_File.am index a31431508e..8f5924504f 100644 --- a/src/Makefile_Ecore_File.am +++ b/src/Makefile_Ecore_File.am @@ -27,7 +27,7 @@ lib/ecore_file/ecore_file_monitor_poll.c endif endif -lib_ecore_file_libecore_file_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_FILE_CFLAGS@ +lib_ecore_file_libecore_file_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_FILE_CFLAGS@ -DEFL_BUILD lib_ecore_file_libecore_file_la_LIBADD = @ECORE_FILE_LIBS@ lib_ecore_file_libecore_file_la_DEPENDENCIES = @ECORE_FILE_INTERNAL_LIBS@ lib_ecore_file_libecore_file_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Ecore_IMF.am b/src/Makefile_Ecore_IMF.am index c43f2a82c1..ac099c38bb 100644 --- a/src/Makefile_Ecore_IMF.am +++ b/src/Makefile_Ecore_IMF.am @@ -22,6 +22,7 @@ lib_ecore_imf_libecore_imf_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_DATA_DIR=\"$(datadir)/ecore_imf\" \ -DPACKAGE_BUILD_DIR=\"$(abs_top_builddir)\" \ -DPACKAGE_SRC_DIR=\"$(abs_top_srcdir)\" \ +-DEFL_BUILD \ @ECORE_IMF_CFLAGS@ lib_ecore_imf_libecore_imf_la_LIBADD = @ECORE_IMF_LIBS@ lib_ecore_imf_libecore_imf_la_DEPENDENCIES = @ECORE_IMF_INTERNAL_LIBS@ diff --git a/src/Makefile_Ecore_IMF_Evas.am b/src/Makefile_Ecore_IMF_Evas.am index abb3d57ae6..b2fd780713 100644 --- a/src/Makefile_Ecore_IMF_Evas.am +++ b/src/Makefile_Ecore_IMF_Evas.am @@ -9,7 +9,7 @@ lib_LTLIBRARIES += \ lib/ecore_imf_evas/libecore_imf_evas.la lib_ecore_imf_evas_libecore_imf_evas_la_SOURCES = lib/ecore_imf_evas/ecore_imf_evas.c -lib_ecore_imf_evas_libecore_imf_evas_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_IMF_EVAS_CFLAGS@ +lib_ecore_imf_evas_libecore_imf_evas_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_IMF_EVAS_CFLAGS@ -DEFL_BUILD lib_ecore_imf_evas_libecore_imf_evas_la_LIBADD = @ECORE_IMF_EVAS_LIBS@ lib_ecore_imf_evas_libecore_imf_evas_la_DEPENDENCIES = @ECORE_IMF_EVAS_INTERNAL_LIBS@ lib_ecore_imf_evas_libecore_imf_evas_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Ecore_Input.am b/src/Makefile_Ecore_Input.am index a664cfba6d..0dc407bab5 100644 --- a/src/Makefile_Ecore_Input.am +++ b/src/Makefile_Ecore_Input.am @@ -15,7 +15,7 @@ lib/ecore_input/ecore_input_joystick.c \ lib/ecore_input/ecore_input_compose.h \ lib/ecore_input/ecore_input_private.h -lib_ecore_input_libecore_input_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_INPUT_CFLAGS@ +lib_ecore_input_libecore_input_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_INPUT_CFLAGS@ -DEFL_BUILD lib_ecore_input_libecore_input_la_LIBADD = @ECORE_INPUT_LIBS@ lib_ecore_input_libecore_input_la_DEPENDENCIES = @ECORE_INPUT_INTERNAL_LIBS@ lib_ecore_input_libecore_input_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Ecore_Input_Evas.am b/src/Makefile_Ecore_Input_Evas.am index b56efc3741..23bcb92cda 100644 --- a/src/Makefile_Ecore_Input_Evas.am +++ b/src/Makefile_Ecore_Input_Evas.am @@ -12,7 +12,7 @@ lib_ecore_input_evas_libecore_input_evas_la_SOURCES = \ lib/ecore_input_evas/ecore_input_evas.c \ lib/ecore_input_evas/ecore_input_evas_private.h -lib_ecore_input_evas_libecore_input_evas_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_INPUT_EVAS_CFLAGS@ +lib_ecore_input_evas_libecore_input_evas_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_INPUT_EVAS_CFLAGS@ -DEFL_BUILD lib_ecore_input_evas_libecore_input_evas_la_LIBADD = @ECORE_INPUT_EVAS_LIBS@ lib_ecore_input_evas_libecore_input_evas_la_DEPENDENCIES = @ECORE_INPUT_EVAS_INTERNAL_LIBS@ lib_ecore_input_evas_libecore_input_evas_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Ecore_Ipc.am b/src/Makefile_Ecore_Ipc.am index 4740b76253..0f09209f47 100644 --- a/src/Makefile_Ecore_Ipc.am +++ b/src/Makefile_Ecore_Ipc.am @@ -11,7 +11,7 @@ lib_ecore_ipc_libecore_ipc_la_SOURCES = \ lib/ecore_ipc/ecore_ipc.c \ lib/ecore_ipc/ecore_ipc_private.h -lib_ecore_ipc_libecore_ipc_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_IPC_CFLAGS@ +lib_ecore_ipc_libecore_ipc_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_IPC_CFLAGS@ -DEFL_BUILD lib_ecore_ipc_libecore_ipc_la_LIBADD = @ECORE_IPC_LIBS@ @EVIL_LIBS@ lib_ecore_ipc_libecore_ipc_la_DEPENDENCIES = @ECORE_IPC_INTERNAL_LIBS@ lib_ecore_ipc_libecore_ipc_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Ecore_SDL.am b/src/Makefile_Ecore_SDL.am index 7262c2b324..88eec1bd10 100644 --- a/src/Makefile_Ecore_SDL.am +++ b/src/Makefile_Ecore_SDL.am @@ -13,7 +13,7 @@ lib/ecore_sdl/ecore_sdl.c \ lib/ecore_sdl/Ecore_Sdl_Keys.h \ lib/ecore_sdl/ecore_sdl_private.h -lib_ecore_sdl_libecore_sdl_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_SDL_CFLAGS@ +lib_ecore_sdl_libecore_sdl_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_SDL_CFLAGS@ -DEFL_BUILD lib_ecore_sdl_libecore_sdl_la_LIBADD = @ECORE_SDL_LIBS@ lib_ecore_sdl_libecore_sdl_la_DEPENDENCIES = @ECORE_SDL_INTERNAL_LIBS@ lib_ecore_sdl_libecore_sdl_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Ecore_Win32.am b/src/Makefile_Ecore_Win32.am index c230a8b8f1..817eabe90b 100644 --- a/src/Makefile_Ecore_Win32.am +++ b/src/Makefile_Ecore_Win32.am @@ -28,7 +28,7 @@ lib/ecore_win32/ecore_win32_dnd_drop_source.h \ lib/ecore_win32/ecore_win32_dnd_drop_target.h \ lib/ecore_win32/ecore_win32_keysym_table.h -lib_ecore_win32_libecore_win32_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_WIN32_CFLAGS@ +lib_ecore_win32_libecore_win32_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_WIN32_CFLAGS@ -DEFL_BUILD lib_ecore_win32_libecore_win32_la_LIBADD = @ECORE_WIN32_LIBS@ lib_ecore_win32_libecore_win32_la_DEPENDENCIES = @ECORE_WIN32_INTERNAL_LIBS@ lib_ecore_win32_libecore_win32_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Ecore_X.am b/src/Makefile_Ecore_X.am index 3b0252290b..636f745d90 100644 --- a/src/Makefile_Ecore_X.am +++ b/src/Makefile_Ecore_X.am @@ -49,6 +49,7 @@ lib/ecore_x/ecore_x_private.h lib_ecore_x_libecore_x_la_CPPFLAGS = \ -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ @ECORE_X_CFLAGS@ @ECORE_CON_CFLAGS@ \ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ diff --git a/src/Makefile_Ector.am b/src/Makefile_Ector.am index 9288458fc3..52a6047067 100644 --- a/src/Makefile_Ector.am +++ b/src/Makefile_Ector.am @@ -161,6 +161,7 @@ lib_ector_libector_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/static_libs/freetype \ -I$(top_srcdir)/src/static_libs/draw \ -I$(top_srcdir)/src/static_libs/triangulator \ +-DEFL_BUILD \ @ECTOR_CFLAGS@ \ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ diff --git a/src/Makefile_Edje.am b/src/Makefile_Edje.am index 916ab65b98..827e7237f5 100644 --- a/src/Makefile_Edje.am +++ b/src/Makefile_Edje.am @@ -23,7 +23,6 @@ edje_eolian_priv_files = \ edje_eolian_c = $(edje_eolian_files:%.eo=%.eo.c) edje_eolian_h = $(edje_eolian_files:%.eo=%.eo.h) \ - $(edje_eolian_files:%.eo=%.eo.legacy.h) \ $(edje_eolian_type_files:%.eot=%.eot.h) edje_eolian_priv_c = $(edje_eolian_priv_files:%.eo=%.eo.c) @@ -127,7 +126,7 @@ static_libs/buildsystem/buildsystem.h \ static_libs/buildsystem/buildsystem_autotools.c -lib_edje_libedje_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl $(EDJE_COMMON_CPPFLAGS) +lib_edje_libedje_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl $(EDJE_COMMON_CPPFLAGS) -DEFL_BUILD lib_edje_libedje_la_LIBADD = @EDJE_LIBS@ @EDJE_LUA_LIBS@ lib_edje_libedje_la_DEPENDENCIES = @EDJE_INTERNAL_LIBS@ lib_edje_libedje_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Eet.am b/src/Makefile_Eet.am index 6724cdb4a5..3dc86a5c6e 100644 --- a/src/Makefile_Eet.am +++ b/src/Makefile_Eet.am @@ -27,6 +27,7 @@ lib_eet_libeet_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ -DPACKAGE_DATA_DIR=\"$(datadir)/eet\" \ +-DEFL_BUILD \ @EET_CFLAGS@ \ @NEON_CFLAGS@ lib_eet_libeet_la_LIBADD = @EET_LIBS@ @EVIL_LIBS@ diff --git a/src/Makefile_Eeze.am b/src/Makefile_Eeze.am index 2e650d8069..5f8eb02605 100644 --- a/src/Makefile_Eeze.am +++ b/src/Makefile_Eeze.am @@ -53,6 +53,7 @@ lib_eeze_libeeze_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_DATA_DIR=\"$(datadir)/eeze\" \ -DPACKAGE_BUILD_DIR=\"$(abs_top_builddir)\" \ -DPACKAGE_SRC_DIR=\"$(abs_top_srcdir)\" \ +-DEFL_BUILD \ @EEZE_CFLAGS@ lib_eeze_libeeze_la_LIBADD = @EEZE_LIBS@ lib_eeze_libeeze_la_DEPENDENCIES = @EEZE_INTERNAL_LIBS@ diff --git a/src/Makefile_Efl.am b/src/Makefile_Efl.am index c178a7d4dc..283c8b975c 100644 --- a/src/Makefile_Efl.am +++ b/src/Makefile_Efl.am @@ -139,7 +139,7 @@ lib/efl/interfaces/efl_text_markup_util.c \ lib/efl/interfaces/efl_ui_direction_readonly.c \ $(NULL) -lib_efl_libefl_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl -I$(top_srcdir)/src/lib/efl @EFL_CFLAGS@ -DEFL_GFX_FILTER_BETA +lib_efl_libefl_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl -I$(top_srcdir)/src/lib/efl @EFL_CFLAGS@ -DEFL_GFX_FILTER_BETA -DEFL_BUILD lib_efl_libefl_la_LIBADD = @EFL_LIBS@ lib_efl_libefl_la_DEPENDENCIES = @EFL_INTERNAL_LIBS@ lib_efl_libefl_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Efl_Mono.am b/src/Makefile_Efl_Mono.am index 43f2a1c6e2..5c6d57e626 100644 --- a/src/Makefile_Efl_Mono.am +++ b/src/Makefile_Efl_Mono.am @@ -244,6 +244,7 @@ lib_efl_mono_libeflcustomexportsmono_la_SOURCES = \ lib_efl_mono_libeflcustomexportsmono_la_CPPFLAGS = \ -DEFL_BETA_API_SUPPORT \ -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ @EFL_CUSTOM_EXPORTS_MONO_CFLAGS@ lib_efl_mono_libeflcustomexportsmono_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ lib_efl_mono_libeflcustomexportsmono_la_LIBADD = @EFL_CUSTOM_EXPORTS_MONO_LIBS@ diff --git a/src/Makefile_Efreet.am b/src/Makefile_Efreet.am index a8aa02ff2f..c0ad0d7b60 100644 --- a/src/Makefile_Efreet.am +++ b/src/Makefile_Efreet.am @@ -49,21 +49,21 @@ lib/efreet/efreet_cache_private.h \ static_libs/buildsystem/buildsystem.h \ static_libs/buildsystem/buildsystem_autotools.c -lib_efreet_libefreet_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl $(EFREET_COMMON_CPPFLAGS) +lib_efreet_libefreet_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl $(EFREET_COMMON_CPPFLAGS) -DEFL_BUILD lib_efreet_libefreet_la_LIBADD = @EFREET_LIBS@ @EVIL_LIBS@ lib_efreet_libefreet_la_DEPENDENCIES = @EFREET_INTERNAL_LIBS@ lib_efreet_libefreet_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ # libefreet_mime.la lib_efreet_libefreet_mime_la_SOURCES = lib/efreet/efreet_mime.c -lib_efreet_libefreet_mime_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl $(EFREET_COMMON_CPPFLAGS) +lib_efreet_libefreet_mime_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl $(EFREET_COMMON_CPPFLAGS) -DEFL_BUILD lib_efreet_libefreet_mime_la_LIBADD = @USE_EFREET_LIBS@ @EVIL_LIBS@ lib_efreet_libefreet_mime_la_DEPENDENCIES = @USE_EFREET_INTERNAL_LIBS@ lib_efreet_libefreet_mime_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ # libefreet_trash.la lib_efreet_libefreet_trash_la_SOURCES = lib/efreet/efreet_trash.c -lib_efreet_libefreet_trash_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl $(EFREET_COMMON_CPPFLAGS) +lib_efreet_libefreet_trash_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl $(EFREET_COMMON_CPPFLAGS) -DEFL_BUILD lib_efreet_libefreet_trash_la_LIBADD = @USE_EFREET_LIBS@ @EVIL_LIBS@ lib_efreet_libefreet_trash_la_DEPENDENCIES = @USE_EFREET_INTERNAL_LIBS@ lib_efreet_libefreet_trash_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Eina.am b/src/Makefile_Eina.am index c274887438..40ef392965 100644 --- a/src/Makefile_Eina.am +++ b/src/Makefile_Eina.am @@ -210,7 +210,7 @@ einampchainedpool_LTLIBRARIES = modules/eina/mp/chained_pool/chained_pool_module install_einampchainedpoolLTLIBRARIES = install-einampchainedpoolLTLIBRARIES $(install_einampchainedpoolLTLIBRARIES): install-libLTLIBRARIES -modules_eina_mp_chained_pool_chained_pool_module_la_CFLAGS = $(EINA_MODULE_COMMON_CFLAGS) +modules_eina_mp_chained_pool_chained_pool_module_la_CFLAGS = $(EINA_MODULE_COMMON_CFLAGS) -DEFL_BUILD modules_eina_mp_chained_pool_chained_pool_module_la_LIBADD = @USE_EINA_LIBS@ modules_eina_mp_chained_pool_chained_pool_module_la_DEPENDENCIES = @USE_EINA_INTERNAL_LIBS@ modules_eina_mp_chained_pool_chained_pool_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@ @@ -229,7 +229,7 @@ einamponebig_LTLIBRARIES = modules/eina/mp/one_big/one_big_module.la install_einamponebigLTLIBRARIES = install-einamponebigLTLIBRARIES $(install_einamponebigLTLIBRARIES): install-libLTLIBRARIES -modules_eina_mp_one_big_one_big_module_la_CFLAGS = $(EINA_MODULE_COMMON_CFLAGS) +modules_eina_mp_one_big_one_big_module_la_CFLAGS = $(EINA_MODULE_COMMON_CFLAGS) -DEFL_BUILD modules_eina_mp_one_big_one_big_module_la_LIBADD = @USE_EINA_LIBS@ modules_eina_mp_one_big_one_big_module_la_DEPENDENCIES = @USE_EINA_INTERNAL_LIBS@ modules_eina_mp_one_big_one_big_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@ @@ -248,7 +248,7 @@ einamppassthrough_LTLIBRARIES = modules/eina/mp/pass_through/pass_through_module install_einamppassthroughLTLIBRARIES = install-einamppassthroughLTLIBRARIES $(install_einamppassthroughLTLIBRARIES): install-libLTLIBRARIES -modules_eina_mp_pass_through_pass_through_module_la_CFLAGS = $(EINA_MODULE_COMMON_CFLAGS) +modules_eina_mp_pass_through_pass_through_module_la_CFLAGS = $(EINA_MODULE_COMMON_CFLAGS) -DEFL_BUILD modules_eina_mp_pass_through_pass_through_module_la_LIBADD = @USE_EINA_LIBS@ modules_eina_mp_pass_through_pass_through_module_la_DEPENDENCIES = @USE_EINA_INTERNAL_LIBS@ modules_eina_mp_pass_through_pass_through_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@ @@ -262,6 +262,7 @@ lib_eina_libeina_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ -DPACKAGE_DATA_DIR=\"$(datadir)/eina\" \ +-DEFL_BUILD \ @VALGRIND_CFLAGS@ lib_eina_libeina_la_LIBADD = @EINA_LIBS@ @UNWIND_LIBS@ diff --git a/src/Makefile_Eio.am b/src/Makefile_Eio.am index a92f13030b..aa75c5fbcf 100644 --- a/src/Makefile_Eio.am +++ b/src/Makefile_Eio.am @@ -61,7 +61,7 @@ endif endif endif -lib_eio_libeio_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @EIO_CFLAGS@ @EFL_CFLAGS@ +lib_eio_libeio_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @EIO_CFLAGS@ @EFL_CFLAGS@ -DEFL_BUILD lib_eio_libeio_la_LIBADD = @EIO_LIBS@ @EFL_LIBS@ lib_eio_libeio_la_DEPENDENCIES = @EIO_INTERNAL_LIBS@ @EFL_INTERNAL_LIBS@ lib_eio_libeio_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Eldbus.am b/src/Makefile_Eldbus.am index bb786104d5..dace370ec2 100644 --- a/src/Makefile_Eldbus.am +++ b/src/Makefile_Eldbus.am @@ -84,6 +84,7 @@ lib/eldbus/eldbus_introspection.c lib_eldbus_libeldbus_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -include $(top_builddir)/config.h \ +-DEFL_BUILD \ @ELDBUS_CFLAGS@ @EFL_CFLAGS@ lib_eldbus_libeldbus_la_LIBADD = @ELDBUS_LIBS@ @EFL_LIBS@ lib_eldbus_libeldbus_la_DEPENDENCIES = @ELDBUS_INTERNAL_LIBS@ @EFL_INTERNAL_LIBS@ diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am index 9a36cbe910..dd050162ae 100644 --- a/src/Makefile_Elementary.am +++ b/src/Makefile_Elementary.am @@ -199,7 +199,6 @@ elm_eolian_type_files = \ elm_public_eolian_c = $(elm_public_eolian_files:%.eo=%.eo.c) elm_public_eolian_h = $(elm_public_eolian_files:%.eo=%.eo.h) \ - $(elm_public_eolian_files:%.eo=%.eo.legacy.h) \ $(elm_eolian_type_files:%.eot=%.eot.h) elm_private_eolian_c = $(elm_private_eolian_files:%.eo=%.eo.c) @@ -207,7 +206,6 @@ elm_private_eolian_h = $(elm_private_eolian_files:%.eo=%.eo.h) elm_legacy_eolian_c = $(elm_legacy_eolian_files:%.eo=%.eo.c) elm_legacy_eolian_eo_h = $(elm_legacy_eolian_files:%.eo=%.eo.h) -elm_legacy_eolian_legacy_h = $(elm_legacy_eolian_files:%.eo=%.eo.legacy.h) BUILT_SOURCES += \ $(elm_public_eolian_c) \ @@ -215,8 +213,7 @@ BUILT_SOURCES += \ $(elm_private_eolian_c) \ $(elm_private_eolian_h) \ $(elm_legacy_eolian_c) \ - $(elm_legacy_eolian_eo_h) \ - $(elm_legacy_eolian_legacy_h) + $(elm_legacy_eolian_eo_h) if INSTALL_EO_FILES elementaryeolianfilesdir = $(datadir)/eolian/include/elementary-@VMAJ@ @@ -775,8 +772,7 @@ includesunstable_HEADERS = \ includesunstabledir = $(includedir)/elementary-@VMAJ@ nodist_includesunstable_HEADERS = \ - $(elm_public_eolian_h) \ - $(elm_legacy_eolian_legacy_h) + $(elm_public_eolian_h) includesub_HEADERS = \ lib/elementary/elc_ctxpopup.h \ @@ -1250,7 +1246,7 @@ lib_elementary_libelementary_la_CPPFLAGS = \ -DLOCALE_DIR=\"$(localedir)\" \ -DICON_DIR=\"$(datadir)/icons\" \ -DELM_TOP_BUILD_DIR=\"$(top_builddir)\" \ --DELEMENTARY_BUILD \ +-DEFL_BUILD \ @ELEMENTARY_CFLAGS@ if HAVE_WINDOWS @@ -1565,6 +1561,7 @@ modules_elementary_access_output_module_la_CPPFLAGS = \ -I$(top_builddir)/src/lib/elementary \ -DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ +-DEFL_BUILD \ @ELEMENTARY_CFLAGS@ modules_elementary_access_output_module_la_LIBADD = @USE_ELEMENTARY_LIBS@ modules_elementary_access_output_module_la_DEPENDENCIES = @USE_ELEMENTARY_INTERNAL_LIBS@ @@ -1592,6 +1589,7 @@ modules_elementary_clock_input_ctxpopup_module_la_CPPFLAGS = \ -I$(top_builddir)/src/lib/elementary \ -DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ +-DEFL_BUILD \ @ELEMENTARY_CFLAGS@ modules_elementary_clock_input_ctxpopup_module_la_LIBADD = @USE_ELEMENTARY_LIBS@ modules_elementary_clock_input_ctxpopup_module_la_DEPENDENCIES = @USE_ELEMENTARY_INTERNAL_LIBS@ @@ -1647,6 +1645,7 @@ modules_elementary_prefs_module_la_CPPFLAGS = \ -I$(top_builddir)/src/lib/elementary \ -DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ +-DEFL_BUILD \ @ELEMENTARY_CFLAGS@ if HAVE_WINDOWS @@ -1681,6 +1680,7 @@ modules_elementary_test_entry_module_la_CPPFLAGS = \ -I$(top_builddir)/src/lib/elementary \ -DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ +-DEFL_BUILD \ @ELEMENTARY_CFLAGS@ modules_elementary_test_entry_module_la_LIBADD = @USE_ELEMENTARY_LIBS@ modules_elementary_test_entry_module_la_DEPENDENCIES = @USE_ELEMENTARY_INTERNAL_LIBS@ @@ -1707,6 +1707,7 @@ modules_elementary_test_map_module_la_CPPFLAGS = \ -I$(top_builddir)/src/lib/elementary \ -DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ +-DEFL_BUILD \ @ELEMENTARY_CFLAGS@ modules_elementary_test_map_module_la_LIBADD = @USE_ELEMENTARY_LIBS@ modules_elementary_test_map_module_la_DEPENDENCIES = @USE_ELEMENTARY_INTERNAL_LIBS@ @@ -1742,6 +1743,7 @@ modules_elementary_web_none_module_la_CPPFLAGS = \ -I$(top_builddir)/src/modules/elementary/web/none \ -DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ +-DEFL_BUILD \ @ELEMENTARY_CFLAGS@ modules_elementary_web_none_module_la_LIBADD = @USE_ELEMENTARY_LIBS@ modules_elementary_web_none_module_la_DEPENDENCIES = @USE_ELEMENTARY_INTERNAL_LIBS@ @@ -1811,6 +1813,7 @@ edje_external_elementary_module_la_CPPFLAGS = \ -I$(top_builddir)/src/edje_externals \ -DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ +-DEFL_BUILD \ @ELEMENTARY_CFLAGS@ edje_external_elementary_module_la_LIBADD = @USE_ELEMENTARY_LIBS@ edje_external_elementary_module_la_DEPENDENCIES = @USE_ELEMENTARY_INTERNAL_LIBS@ diff --git a/src/Makefile_Elocation.am b/src/Makefile_Elocation.am index 292f4738be..d9c5a489a8 100644 --- a/src/Makefile_Elocation.am +++ b/src/Makefile_Elocation.am @@ -17,7 +17,7 @@ lib/elocation/gen/eldbus_geo_clue2_client.c \ lib/elocation/gen/eldbus_geo_clue2_location.c \ lib/elocation/gen/eldbus_geo_clue2_manager.c -lib_elocation_libelocation_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ELOCATION_CFLAGS@ @EFL_CFLAGS@ +lib_elocation_libelocation_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ELOCATION_CFLAGS@ @EFL_CFLAGS@ -DEFL_BUILD lib_elocation_libelocation_la_LIBADD = @ELOCATION_LIBS@ lib_elocation_libelocation_la_DEPENDENCIES = @ELOCATION_INTERNAL_LIBS@ lib_elocation_libelocation_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Elput.am b/src/Makefile_Elput.am index d2b97930ce..a3abb335b3 100644 --- a/src/Makefile_Elput.am +++ b/src/Makefile_Elput.am @@ -19,6 +19,7 @@ lib/elput/elput_private.h lib_elput_libelput_la_CPPFLAGS = \ -I$(top_builddir)/src/lib/efl \ + -DEFL_BUILD \ @ELPUT_CFLAGS@ @EFL_CFLAGS@ \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ -DMODULE_ARCH=\"$(MODULE_ARCH)\" diff --git a/src/Makefile_Elua.am b/src/Makefile_Elua.am index 5b1004b884..069a33c0ef 100644 --- a/src/Makefile_Elua.am +++ b/src/Makefile_Elua.am @@ -13,6 +13,7 @@ lib_elua_libelua_la_SOURCES = \ lib/elua/cache.c lib_elua_libelua_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ELUA_CFLAGS@ \ + -DEFL_BUILD \ -DLOCALE_DIR=\"@LOCALE_DIR@\" \ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ -DPACKAGE_DATA_DIR=\"$(datadir)/elua\" diff --git a/src/Makefile_Embryo.am b/src/Makefile_Embryo.am index f5e187c8f2..be764f4f92 100644 --- a/src/Makefile_Embryo.am +++ b/src/Makefile_Embryo.am @@ -20,6 +20,7 @@ lib_embryo_libembryo_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ -DPACKAGE_DATA_DIR=\"$(datadir)/embryo\" \ +-DEFL_BUILD \ @EMBRYO_CFLAGS@ lib_embryo_libembryo_la_LIBADD = @EMBRYO_LIBS@ lib_embryo_libembryo_la_DEPENDENCIES = @EMBRYO_INTERNAL_LIBS@ diff --git a/src/Makefile_Emile.am b/src/Makefile_Emile.am index 90834cfc3f..59ac7bb4e9 100644 --- a/src/Makefile_Emile.am +++ b/src/Makefile_Emile.am @@ -44,6 +44,7 @@ lib_emile_libemile_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ -DPACKAGE_DATA_DIR=\"$(datadir)/emile\" \ +-DEFL_BUILD \ @EMILE_CFLAGS@ \ @NEON_CFLAGS@ diff --git a/src/Makefile_Emotion.am b/src/Makefile_Emotion.am index 639557ea53..2de10651c2 100644 --- a/src/Makefile_Emotion.am +++ b/src/Makefile_Emotion.am @@ -47,6 +47,7 @@ lib_emotion_libemotion_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_DATA_DIR=\"$(datadir)/emotion\" \ -DPACKAGE_BUILD_DIR=\"$(abs_top_builddir)\" \ -DPACKAGE_SRC_DIR=\"$(abs_top_srcdir)\" \ +-DEFL_BUILD \ @EMOTION_CFLAGS@ lib_emotion_libemotion_la_LIBADD = @EMOTION_LIBS@ lib_emotion_libemotion_la_DEPENDENCIES = @EMOTION_INTERNAL_LIBS@ @@ -74,6 +75,7 @@ $(install_emotionmodulexineLTLIBRARIES): install-libLTLIBRARIES modules_emotion_xine_module_la_SOURCES = $(EMOTION_XINE_SOURCES) modules_emotion_xine_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ @EMOTION_CFLAGS@ \ @EMOTION_MODULE_XINE_CFLAGS@ modules_emotion_xine_module_la_LIBADD = \ @@ -108,6 +110,7 @@ $(install_emotionmodulegstreamerLTLIBRARIES): install-libLTLIBRARIES modules_emotion_gstreamer_module_la_SOURCES = $(EMOTION_GSTREAMER_SOURCES) modules_emotion_gstreamer_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ @EMOTION_CFLAGS@ \ @EMOTION_MODULE_GSTREAMER_CFLAGS@ modules_emotion_gstreamer_module_la_LIBADD = \ @@ -146,6 +149,7 @@ $(install_emotionmodulegstreamer1LTLIBRARIES): install-libLTLIBRARIES modules_emotion_gstreamer1_module_la_SOURCES = $(EMOTION_GSTREAMER1_SOURCES) modules_emotion_gstreamer1_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ @EMOTION_CFLAGS@ \ @EMOTION_MODULE_GSTREAMER1_CFLAGS@ modules_emotion_gstreamer1_module_la_LIBADD = \ @@ -175,6 +179,7 @@ $(install_emotionmodulelibvlcLTLIBRARIES): install-libLTLIBRARIES modules_emotion_libvlc_module_la_SOURCES = $(EMOTION_LIBVLC_SOURCES) modules_emotion_libvlc_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ @EMOTION_CFLAGS@ \ @EMOTION_MODULE_LIBVLC_CFLAGS@ modules_emotion_libvlc_module_la_LIBADD = \ @@ -205,6 +210,7 @@ $(install_emotionmodulegenericLTLIBRARIES): install-libLTLIBRARIES modules_emotion_generic_module_la_SOURCES = $(EMOTION_GENERIC_SOURCES) modules_emotion_generic_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ @EMOTION_CFLAGS@ \ @EMOTION_MODULE_GENERIC_CFLAGS@ \ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ @@ -237,6 +243,7 @@ $(install_emotionedjeexternalLTLIBRARIES): install-libLTLIBRARIES edje_external_emotion_module_la_SOURCES = \ edje_external/emotion/emotion.c edje_external_emotion_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ @EDJE_CFLAGS@ \ @EMOTION_CFLAGS@ \ -DPACKAGE_DATA_DIR=\"$(datadir)/emotion\" diff --git a/src/Makefile_Eo.am b/src/Makefile_Eo.am index 68a8c02f3e..19179a78c3 100644 --- a/src/Makefile_Eo.am +++ b/src/Makefile_Eo.am @@ -35,6 +35,7 @@ lib/eo/eo_private.h lib_eo_libeo_la_CPPFLAGS = \ -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ @EO_CFLAGS@ \ @VALGRIND_CFLAGS@ lib_eo_libeo_la_LIBADD = @EO_LIBS@ @@ -43,7 +44,7 @@ lib_eo_libeo_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ ### The Eo debug build lib_eo_libeo_dbg_la_SOURCES = $(lib_eo_libeo_la_SOURCES) -lib_eo_libeo_dbg_la_CPPFLAGS = $(lib_eo_libeo_la_CPPFLAGS) -DEO_DEBUG +lib_eo_libeo_dbg_la_CPPFLAGS = $(lib_eo_libeo_la_CPPFLAGS) -DEO_DEBUG -DEFL_BUILD lib_eo_libeo_dbg_la_LIBADD = $(lib_eo_libeo_la_LIBADD) lib_eo_libeo_dbg_la_DEPENDENCIES = $(lib_eo_libeo_la_DEPENDENCIES) lib_eo_libeo_dbg_la_LDFLAGS = $(lib_eo_libeo_la_LDFLAGS) diff --git a/src/Makefile_Eolian.am b/src/Makefile_Eolian.am index 06c7638c8e..c75394e03f 100644 --- a/src/Makefile_Eolian.am +++ b/src/Makefile_Eolian.am @@ -40,6 +40,7 @@ lib_eolian_libeolian_la_SOURCES = \ lib/eolian/eolian_aux.c lib_eolian_libeolian_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @EOLIAN_CFLAGS@ \ + -DEFL_BUILD \ -DPACKAGE_DATA_DIR=\"$(datadir)/eolian\" lib_eolian_libeolian_la_LIBADD = @EOLIAN_LIBS@ diff --git a/src/Makefile_Eolian_Files_Helper.am b/src/Makefile_Eolian_Files_Helper.am index 35bf1318cc..727e0ad229 100644 --- a/src/Makefile_Eolian_Files_Helper.am +++ b/src/Makefile_Eolian_Files_Helper.am @@ -3,14 +3,13 @@ AM_V_EOL = $(am__v_EOL_@AM_V@) am__v_EOL_ = $(am__v_EOL_@AM_DEFAULT_V@) am__v_EOL_0 = @echo " EOLIAN " $@; -SUFFIXES = .eo .eo.c .eo.h .eo.legacy.h .eot .eot.h +SUFFIXES = .eo .eo.c .eo.h .eot .eot.h #disable rules for subdir builds to avoid recursive dependencies ../%.eo.c: %.eo ${_EOLIAN_GEN_DEP} ../%.eo.h: %.eo ${_EOLIAN_GEN_DEP} ../%.eot.h: %.eot ${_EOLIAN_GEN_DEP} -../%.eo.legacy.h: %.eo ${_EOLIAN_GEN_DEP} %.eo.c: %.eo ${_EOLIAN_GEN_DEP} $(AM_V_EOL) \ @@ -26,8 +25,3 @@ SUFFIXES = .eo .eo.c .eo.h .eo.legacy.h .eot .eot.h $(AM_V_EOL) \ $(MKDIR_P) $(@D); \ $(EOLIAN_GEN) $(EOLIAN_FLAGS) $(EOLIAN_GEN_FLAGS) -gh -o h:$@ $< - -%.eo.legacy.h: %.eo ${_EOLIAN_GEN_DEP} - $(AM_V_EOL) \ - $(MKDIR_P) $(@D); \ - $(EOLIAN_GEN) $(EOLIAN_FLAGS) $(EOLIAN_GEN_FLAGS) -gl -o l:$@ $< diff --git a/src/Makefile_Ethumb.am b/src/Makefile_Ethumb.am index f359ef434b..6d9f0cb0ce 100644 --- a/src/Makefile_Ethumb.am +++ b/src/Makefile_Ethumb.am @@ -22,6 +22,7 @@ lib_ethumb_libethumb_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_DATA_DIR=\"$(datadir)/ethumb\" \ -DPACKAGE_BUILD_DIR=\"$(abs_top_builddir)\" \ -DPACKAGE_SRC_DIR=\"$(abs_top_srcdir)\" \ +-DEFL_BUILD \ @ETHUMB_CFLAGS@ lib_ethumb_libethumb_la_LIBADD = @ETHUMB_LIBS@ lib_ethumb_libethumb_la_DEPENDENCIES = @ETHUMB_INTERNAL_LIBS@ @@ -46,6 +47,7 @@ modules_ethumb_emotion_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ -DPACKAGE_DATA_DIR=\"$(datadir)/ethumb\" \ -DPACKAGE_BUILD_DIR=\"$(abs_top_builddir)\" \ +-DEFL_BUILD \ @EMOTION_CFLAGS@ \ @ETHUMB_CFLAGS@ modules_ethumb_emotion_module_la_LIBADD = \ diff --git a/src/Makefile_Ethumb_Client.am b/src/Makefile_Ethumb_Client.am index 6b37b34dbd..a319f5da02 100644 --- a/src/Makefile_Ethumb_Client.am +++ b/src/Makefile_Ethumb_Client.am @@ -9,7 +9,7 @@ lib/ethumb_client/Ethumb_Client.h # libethumb_client.la lib_ethumb_client_libethumb_client_la_SOURCES = lib/ethumb_client/ethumb_client.c -lib_ethumb_client_libethumb_client_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ETHUMB_CLIENT_CFLAGS@ +lib_ethumb_client_libethumb_client_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ETHUMB_CLIENT_CFLAGS@ -DEFL_BUILD lib_ethumb_client_libethumb_client_la_LIBADD = @ETHUMB_CLIENT_LIBS@ lib_ethumb_client_libethumb_client_la_DEPENDENCIES = @ETHUMB_CLIENT_INTERNAL_LIBS@ lib_ethumb_client_libethumb_client_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index 84138f338b..ea84cd2546 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -85,12 +85,10 @@ evas_gesture_eolian_priv_h = $(evas_gesture_eolian_priv_files:%.eo=%.eo.h) evas_canvas_eolian_pub_c = $(evas_canvas_eolian_pub_files:%.eo=%.eo.c) evas_canvas_eolian_pub_h = $(evas_canvas_eolian_pub_files:%.eo=%.eo.h) \ - $(evas_canvas_eolian_pub_files:%.eo=%.eo.legacy.h) \ $(evas_canvas_eolian_type_files:%.eot=%.eot.h) evas_gesture_eolian_pub_c = $(evas_gesture_eolian_pub_files:%.eo=%.eo.c) evas_gesture_eolian_pub_h = $(evas_gesture_eolian_pub_files:%.eo=%.eo.h) \ - $(evas_gesture_eolian_pub_files:%.eo=%.eo.legacy.h) \ $(evas_gesture_eolian_type_files:%.eot=%.eot.h) evas_eolian_files = $(evas_canvas_eolian_pub_files) \ @@ -526,6 +524,7 @@ lib_evas_libevas_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_DATA_DIR=\"$(datadir)/evas\" \ -DPACKAGE_BUILD_DIR=\"$(abs_top_builddir)\" \ -DPACKAGE_SRC_DIR=\"$(abs_top_srcdir)\" \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @VALGRIND_CFLAGS@ \ @NEON_CFLAGS@ \ @@ -540,6 +539,7 @@ lib/evas/common/evas_op_blend/op_blend_master_sse3.c \ static_libs/draw/draw_main_sse2.c lib_evas_common_libevas_op_blend_sse3_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ $(lib_evas_libevas_la_CPPFLAGS) \ @SSE3_CFLAGS@ @@ -553,6 +553,7 @@ lib_evas_common_libevas_convert_rgb_32_la_SOURCES = \ lib/evas/common/evas_convert_rgb_32.c lib_evas_common_libevas_convert_rgb_32_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ $(lib_evas_libevas_la_CPPFLAGS) \ @NEON_CFLAGS@ @@ -788,6 +789,7 @@ modules_evas_engines_software_generic_module_la_CPPFLAGS = -I$(top_builddir)/src -I$(top_srcdir)/src/lib/evas/filters \ -I$(top_builddir)/src/lib/evas/canvas \ -I$(top_builddir)/src/modules/evas/engines/software_generic \ +-DEFL_BUILD \ @EVAS_CFLAGS@ modules_evas_engines_software_generic_module_la_LIBADD = @USE_EVAS_LIBS@ modules_evas_engines_software_generic_module_la_DEPENDENCIES = @USE_EVAS_INTERNAL_LIBS@ @@ -815,6 +817,7 @@ $(install_enginebufferpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_engines_buffer_module_la_SOURCES = $(BUFFER_SOURCES) modules_evas_engines_buffer_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ modules_evas_engines_buffer_module_la_LIBADD = @USE_EVAS_LIBS@ modules_evas_engines_buffer_module_la_DEPENDENCIES = @USE_EVAS_INTERNAL_LIBS@ @@ -971,7 +974,6 @@ $(NULL) evas_gl_generic_eolian_c = $(evas_gl_generic_eolian_files:%.eo=%.eo.c) evas_gl_generic_eolian_h = $(evas_gl_generic_eolian_files:%.eo=%.eo.h) \ - $(evas_gl_generic_eolian_files:%.eo=%.eo.legacy.h) \ $(evas_gl_generic_eolian_type_files:%.eot=%.eot.h) BUILT_SOURCES += \ @@ -1026,6 +1028,7 @@ modules_evas_engines_gl_generic_module_la_CFLAGS = \ -I$(top_builddir)/src/modules/evas/engines/gl_generic \ -I$(top_builddir)/src/modules/evas/engines/software_generic \ @evas_engine_gl_common_cflags@ \ +-DEFL_BUILD \ @EVAS_CFLAGS@ modules_evas_engines_gl_generic_module_la_LIBADD = \ modules/evas/engines/gl_common/libevas_engine_gl_common.la \ @@ -1038,7 +1041,7 @@ modules_evas_engines_gl_generic_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@ modules_evas_engines_gl_generic_module_la_LIBTOOLFLAGS = --tag=disable-static if BUILD_ENGINE_GL_X11 -modules_evas_engines_gl_common_libevas_engine_gl_common_la_CPPFLAGS += @evas_engine_gl_xlib_cflags@ +modules_evas_engines_gl_common_libevas_engine_gl_common_la_CPPFLAGS += @evas_engine_gl_xlib_cflags@ -DEFL_BUILD endif if BUILD_ENGINE_WAYLAND_EGL modules_evas_engines_gl_common_libevas_engine_gl_common_la_CPPFLAGS += @evas_engine_wayland_egl_cflags@ @@ -1047,7 +1050,7 @@ if BUILD_ENGINE_GL_DRM modules_evas_engines_gl_common_libevas_engine_gl_common_la_CPPFLAGS += @evas_engine_gl_drm_cflags@ endif if BUILD_ENGINE_EGLFS -modules_evas_engines_gl_common_libevas_engine_gl_common_la_CPPFLAGS += @evas_engine_eglfs_cflags@ +modules_evas_engines_gl_common_libevas_engine_gl_common_la_CPPFLAGS += @evas_engine_eglfs_cflags@ -DEFL_BUILD endif if BUILD_ENGINE_GL_COCOA modules_evas_engines_gl_common_libevas_engine_gl_common_la_CPPFLAGS += @evas_engine_gl_cocoa_cflags@ @@ -1120,6 +1123,7 @@ modules_evas_engines_gl_sdl_module_la_SOURCES = $(GL_SDL_SOURCES) modules_evas_engines_gl_sdl_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ -I$(top_srcdir)/src/modules/evas/engines/gl_common \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_engine_gl_sdl_cflags@ modules_evas_engines_gl_sdl_module_la_LIBADD = \ @@ -1154,6 +1158,7 @@ $(install_engineglx11pkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_engines_gl_x11_module_la_SOURCES = $(GL_X11_SOURCES) modules_evas_engines_gl_x11_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_engine_gl_xlib_cflags@ modules_evas_engines_gl_x11_module_la_LIBADD = \ @@ -1199,6 +1204,7 @@ $(install_enginesoftwareddrawpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_engines_software_ddraw_module_la_SOURCES = $(SOFTWARE_DDRAW_SOURCES) modules_evas_engines_software_ddraw_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_engine_software_ddraw_cflags@ modules_evas_engines_software_ddraw_module_la_CXXFLAGS = -fno-rtti -fno-exceptions @@ -1235,6 +1241,7 @@ $(install_enginesoftwaregdipkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_engines_software_gdi_module_la_SOURCES = $(SOFTWARE_GDI_SOURCES) modules_evas_engines_software_gdi_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_engine_software_gdi_cflags@ modules_evas_engines_software_gdi_module_la_LIBADD = \ @@ -1292,7 +1299,7 @@ install_enginesoftwarex11pkgLTLIBRARIES = install-enginesoftwarex11pkgLTLIBRARIE $(install_enginesoftwarex11pkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_engines_software_x11_module_la_SOURCES = $(SOFTWARE_X11_SOURCES) -modules_evas_engines_software_x11_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl $(SOFTWARE_X11_CPPFLAGS) +modules_evas_engines_software_x11_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl $(SOFTWARE_X11_CPPFLAGS) -DEFL_BUILD modules_evas_engines_software_x11_module_la_LIBADD = @USE_ECORE_X_LIBS@ @USE_EVAS_LIBS@ $(SOFTWARE_X11_LIBADD) modules_evas_engines_software_x11_module_la_DEPENDENCIES = @USE_ECORE_X_INTERNAL_LIBS@ @USE_EVAS_INTERNAL_LIBS@ modules_evas_engines_software_x11_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@ @@ -1476,6 +1483,7 @@ modules_evas_engines_eglfs_module_la_SOURCES = $(EGLFS_SOURCES) modules_evas_engines_eglfs_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ -I$(top_srcdir)/src/modules/evas/engines/eglfs \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @ECORE_DRM_CFLAGS@ \ @evas_engine_eglfs_cflags@ @@ -1514,6 +1522,7 @@ static_libs/vg_common/vg_common.h modules_evas_vg_loaders_svg_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ -I$(top_srcdir)/src/static_libs/vg_common \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_vg_loader_svg_cflags@ modules_evas_vg_loaders_svg_module_la_LIBADD = \ @@ -1537,6 +1546,7 @@ static_libs/vg_common/vg_common.h modules_evas_vg_savers_svg_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ -I$(top_srcdir)/src/static_libs/vg_common \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_vg_saver_svg_cflags@ modules_evas_vg_savers_svg_module_la_LIBADD = \ @@ -1565,6 +1575,7 @@ $(install_vgloadereetpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_vg_loaders_eet_module_la_SOURCES = modules/evas/vg_loaders/eet/evas_vg_load_eet.c modules_evas_vg_loaders_eet_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_vg_loader_eet_cflags@ modules_evas_vg_loaders_eet_module_la_LIBADD = \ @@ -1585,6 +1596,7 @@ $(install_vgsavereetpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_vg_savers_eet_module_la_SOURCES = modules/evas/vg_savers/eet/evas_vg_save_eet.c modules_evas_vg_savers_eet_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_vg_saver_eet_cflags@ modules_evas_vg_savers_eet_module_la_LIBADD = \ @@ -1644,6 +1656,7 @@ $(install_loaderbmppkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_bmp_module_la_SOURCES = modules/evas/image_loaders/bmp/evas_image_load_bmp.c modules_evas_image_loaders_bmp_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_bmp_cflags@ modules_evas_image_loaders_bmp_module_la_LIBADD = \ @@ -1678,6 +1691,7 @@ modules/evas/image_loaders/dds/s3tc_decoder.c \ modules/evas/image_loaders/dds/s3tc.h modules_evas_image_loaders_dds_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_dds_cflags@ modules_evas_image_loaders_dds_module_la_LIBADD = \ @@ -1706,6 +1720,7 @@ $(install_loadereetpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_eet_module_la_SOURCES = modules/evas/image_loaders/eet/evas_image_load_eet.c modules_evas_image_loaders_eet_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_eet_cflags@ modules_evas_image_loaders_eet_module_la_LIBADD = \ @@ -1734,6 +1749,7 @@ $(install_loadergenericpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_generic_module_la_SOURCES = modules/evas/image_loaders/generic/evas_image_load_generic.c modules_evas_image_loaders_generic_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_generic_cflags@ modules_evas_image_loaders_generic_module_la_LIBADD = \ @@ -1762,6 +1778,7 @@ $(install_loadergifpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_gif_module_la_SOURCES = modules/evas/image_loaders/gif/evas_image_load_gif.c modules_evas_image_loaders_gif_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_gif_cflags@ modules_evas_image_loaders_gif_module_la_LIBADD = \ @@ -1790,6 +1807,7 @@ $(install_loadericopkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_ico_module_la_SOURCES = modules/evas/image_loaders/ico/evas_image_load_ico.c modules_evas_image_loaders_ico_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_ico_cflags@ modules_evas_image_loaders_ico_module_la_LIBADD = \ @@ -1819,6 +1837,7 @@ $(install_loaderjpegpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_jpeg_module_la_SOURCES = modules/evas/image_loaders/jpeg/evas_image_load_jpeg.c modules_evas_image_loaders_jpeg_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_jpeg_cflags@ modules_evas_image_loaders_jpeg_module_la_LIBADD = \ @@ -1838,6 +1857,7 @@ $(install_saverjpegpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_savers_jpeg_module_la_SOURCES = modules/evas/image_savers/jpeg/evas_image_save_jpeg.c modules_evas_image_savers_jpeg_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_jpeg_cflags@ modules_evas_image_savers_jpeg_module_la_LIBADD = \ @@ -1868,6 +1888,7 @@ modules_evas_image_loaders_jp2k_module_la_CPPFLAGS = \ @evas_image_loader_jp2k_cflags@ \ -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ modules_evas_image_loaders_jp2k_module_la_LIBADD = \ @USE_EVAS_LIBS@ \ @@ -1895,6 +1916,7 @@ $(install_loaderpmapspkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_pmaps_module_la_SOURCES = modules/evas/image_loaders/pmaps/evas_image_load_pmaps.c modules_evas_image_loaders_pmaps_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_pmaps_cflags@ modules_evas_image_loaders_pmaps_module_la_LIBADD = \ @@ -1923,6 +1945,7 @@ $(install_loaderpngpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_png_module_la_SOURCES = modules/evas/image_loaders/png/evas_image_load_png.c modules_evas_image_loaders_png_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_png_cflags@ modules_evas_image_loaders_png_module_la_LIBADD = \ @@ -1943,6 +1966,7 @@ $(install_saverpngpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_savers_png_module_la_SOURCES = modules/evas/image_savers/png/evas_image_save_png.c modules_evas_image_savers_png_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_png_cflags@ modules_evas_image_savers_png_module_la_LIBADD = \ @@ -1971,6 +1995,7 @@ $(install_loaderpsdpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_psd_module_la_SOURCES = modules/evas/image_loaders/psd/evas_image_load_psd.c modules_evas_image_loaders_psd_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_psd_cflags@ modules_evas_image_loaders_psd_module_la_LIBADD = \ @@ -1999,6 +2024,7 @@ $(install_loadertgapkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_tga_module_la_SOURCES = modules/evas/image_loaders/tga/evas_image_load_tga.c modules_evas_image_loaders_tga_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_tga_cflags@ modules_evas_image_loaders_tga_module_la_LIBADD = \ @@ -2027,6 +2053,7 @@ $(install_loadertiffpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_tiff_module_la_SOURCES = modules/evas/image_loaders/tiff/evas_image_load_tiff.c modules_evas_image_loaders_tiff_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_tiff_cflags@ modules_evas_image_loaders_tiff_module_la_LIBADD = \ @@ -2047,6 +2074,7 @@ $(install_savertiffpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_savers_tiff_module_la_SOURCES = modules/evas/image_savers/tiff/evas_image_save_tiff.c modules_evas_image_savers_tiff_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_tiff_cflags@ modules_evas_image_savers_tiff_module_la_LIBADD = \ @@ -2075,6 +2103,7 @@ $(install_loaderwbmppkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_wbmp_module_la_SOURCES = modules/evas/image_loaders/wbmp/evas_image_load_wbmp.c modules_evas_image_loaders_wbmp_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_wbmp_cflags@ modules_evas_image_loaders_wbmp_module_la_LIBADD = \ @@ -2103,6 +2132,7 @@ $(install_loaderwebppkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_webp_module_la_SOURCES = modules/evas/image_loaders/webp/evas_image_load_webp.c modules_evas_image_loaders_webp_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_webp_cflags@ modules_evas_image_loaders_webp_module_la_LIBADD = \ @@ -2123,6 +2153,7 @@ $(install_saverwebppkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_savers_webp_module_la_SOURCES = modules/evas/image_savers/webp/evas_image_save_webp.c modules_evas_image_savers_webp_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_webp_cflags@ modules_evas_image_savers_webp_module_la_LIBADD = \ @@ -2151,6 +2182,7 @@ $(install_loaderxpmpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_xpm_module_la_SOURCES = modules/evas/image_loaders/xpm/evas_image_load_xpm.c modules_evas_image_loaders_xpm_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_xpm_cflags@ modules_evas_image_loaders_xpm_module_la_LIBADD = \ @@ -2205,6 +2237,7 @@ modules_evas_image_loaders_tgv_module_la_CPPFLAGS = \ -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/static_libs/rg_etc \ -I$(top_srcdir)/src/lib/evas/ \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @NEON_CFLAGS@ if ! ENABLE_LIBLZ4 @@ -2241,15 +2274,15 @@ modules_evas_image_savers_tgv_module_la_CPPFLAGS = \ -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/static_libs/rg_etc \ -I$(top_srcdir)/src/lib/evas/ \ -@EVAS_CFLAGS@ \ -@evas_image_saver_tgv_cflags@ +-DEFL_BUILD \ +@EVAS_CFLAGS@ + if ! ENABLE_LIBLZ4 modules_evas_image_savers_tgv_module_la_CPPFLAGS += \ -I$(top_srcdir)/src/static_libs/lz4 endif modules_evas_image_savers_tgv_module_la_LIBADD = \ -@USE_EVAS_LIBS@ \ -@evas_image_saver_tgv_libs@ +@USE_EVAS_LIBS@ modules_evas_image_savers_tgv_module_la_DEPENDENCIES = @USE_EVAS_INTERNAL_LIBS@ modules_evas_image_savers_tgv_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@ modules_evas_image_savers_tgv_module_la_LIBTOOLFLAGS = --tag=disable-static diff --git a/src/Makefile_Evil.am b/src/Makefile_Evil.am index c18e0eab4b..f3ed4787e2 100644 --- a/src/Makefile_Evil.am +++ b/src/Makefile_Evil.am @@ -21,7 +21,6 @@ lib/evil/evil_string.h \ lib/evil/evil_time.h \ lib/evil/evil_unistd.h \ lib/evil/evil_util.h \ -lib/evil/fnmatch.h \ lib/evil/pwd.h evilmmanheadersdir = $(includedir)/evil-@VMAJ@/sys @@ -31,8 +30,6 @@ lib/evil/sys/mman.h lib_evil_libevil_la_SOURCES = \ lib/evil/evil_dlfcn.c \ lib/evil/evil_fcntl.c \ -lib/evil/evil_fnmatch.c \ -lib/evil/evil_fnmatch_list_of_states.c \ lib/evil/evil_langinfo.c \ lib/evil/evil_locale.c \ lib/evil/evil_main.c \ @@ -44,33 +41,14 @@ lib/evil/evil_string.c \ lib/evil/evil_time.c \ lib/evil/evil_unistd.c \ lib/evil/evil_util.c \ -lib/evil/evil_private.h \ -lib/evil/evil_fnmatch_private.h +lib/evil/evil_private.h -lib_evil_libevil_la_CPPFLAGS = @EVIL_CPPFLAGS@ +lib_evil_libevil_la_CPPFLAGS = @EVIL_CPPFLAGS@ -DEFL_BUILD lib_evil_libevil_la_CFLAGS = @EVIL_CFLAGS@ @EVIL_CFLAGS_WRN@ -D__USE_MINGW_ANSI_STDIO lib_evil_libevil_la_LIBADD = @EVIL_LIBS@ lib_evil_libevil_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ -# regex - -dist_install_evilheaders_DATA += \ -lib/evil/regex/regex.h - -lib_evil_libevil_la_SOURCES += \ -lib/evil/regex/regcomp.c \ -lib/evil/regex/regerror.c \ -lib/evil/regex/regexec.c \ -lib/evil/regex/regfree.c \ -lib/evil/regex/cclass.h \ -lib/evil/regex/cname.h \ -lib/evil/regex/regex2.h \ -lib/evil/regex/utils.h - -lib_evil_libevil_la_CPPFLAGS += \ --I$(top_srcdir)/src/lib/evil \ --I$(top_srcdir)/src/lib/evil/regex \ --DPOSIX_MISTAKE +lib_evil_libevil_la_CPPFLAGS += -I$(top_srcdir)/src/lib/evil ### Unit tests @@ -83,7 +61,6 @@ tests_evil_evil_suite_SOURCES = \ tests/evil/evil_suite.c \ tests/evil/evil_suite.h \ tests/evil/evil_test_dlfcn.c \ -tests/evil/evil_test_libgen.c \ tests/evil/evil_test_main.c \ tests/evil/evil_test_stdio.c \ tests/evil/evil_test_stdlib.c \ @@ -103,9 +80,3 @@ tests_evil_evil_suite_DEPENDENCIES = @USE_EVIL_INTERNAL_LIBS@ endif endif - -EXTRA_DIST2 += \ -lib/evil/regex/regerror.ih \ -lib/evil/regex/engine.ih \ -lib/evil/regex/regcomp.ih \ -lib/evil/regex/engine.c diff --git a/src/bin/elementary/test.c b/src/bin/elementary/test.c index f81af61ada..146d7ef902 100644 --- a/src/bin/elementary/test.c +++ b/src/bin/elementary/test.c @@ -212,6 +212,11 @@ void test_menu2(void *data, Evas_Object *obj, void *event_info); void test_panel(void *data, Evas_Object *obj, void *event_info); void test_panel2(void *data, Evas_Object *obj, void *event_info); void test_panes(void *data, Evas_Object *obj, void *event_info); +void test_panes_flush(void *data, Evas_Object *obj, void *event_info); +void test_panes_left_fold(void *data, Evas_Object *obj, void *event_info); +void test_panes_right_fold(void *data, Evas_Object *obj, void *event_info); +void test_panes_up_fold(void *data, Evas_Object *obj, void *event_info); +void test_panes_down_fold(void *data, Evas_Object *obj, void *event_info); void test_panes_minsize(void *data, Evas_Object *obj, void *event_info); void test_calendar(void *data, Evas_Object *obj, void *event_info); void test_calendar2(void *data, Evas_Object *obj, void *event_info); @@ -1172,6 +1177,11 @@ add_tests: ADD_TEST(NULL, "Dividers", "Panel", test_panel); ADD_TEST(NULL, "Dividers", "Panel Scrollable", test_panel2); ADD_TEST(NULL, "Dividers", "Panes", test_panes); + ADD_TEST(NULL, "Dividers", "Panes Flush", test_panes_flush); + ADD_TEST(NULL, "Dividers", "Panes Left Fold", test_panes_left_fold); + ADD_TEST(NULL, "Dividers", "Panes Right Fold", test_panes_right_fold); + ADD_TEST(NULL, "Dividers", "Panes Up Fold", test_panes_up_fold); + ADD_TEST(NULL, "Dividers", "Panes Down Fold", test_panes_down_fold); ADD_TEST_EO(NULL, "Dividers", "Efl.Ui.Panes", test_panes_minsize); ADD_TEST_EO(NULL, "Dividers", "Efl.Ui.Panel", test_ui_panel); ADD_TEST_EO(NULL, "Dividers", "Efl.Ui.Panel Scrollable", test_ui_panel2); diff --git a/src/bin/elementary/test_panes.c b/src/bin/elementary/test_panes.c index 21eb3dcf5b..8560daa504 100644 --- a/src/bin/elementary/test_panes.c +++ b/src/bin/elementary/test_panes.c @@ -38,8 +38,8 @@ _clicked_double(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) elm_panes_content_left_size_set(obj, *size); } -void -test_panes(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +static void +_test_panes(const char *style) { Evas_Object *win, *bg, *panes, *panes_h, *bt; static double vbar_size = 0.0; @@ -56,6 +56,7 @@ test_panes(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_inf evas_object_show(bg); panes = elm_panes_add(win); + elm_object_style_set(panes, style); evas_object_size_hint_weight_set(panes, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_panes_content_left_min_size_set(panes, 100); elm_panes_content_left_size_set(panes, 0.7); @@ -76,6 +77,7 @@ test_panes(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_inf // add panes panes_h = elm_panes_add(win); + elm_object_style_set(panes_h, style); elm_panes_horizontal_set(panes_h, EINA_TRUE); elm_panes_content_right_min_size_set(panes_h, 100); elm_panes_content_right_size_set(panes_h, 0.3); @@ -102,4 +104,43 @@ test_panes(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_inf evas_object_resize(win, 320, 400); evas_object_show(win); -} \ No newline at end of file +} + +void +test_panes(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + _test_panes("default"); +} + +void +test_panes_flush(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + _test_panes("flush"); +} + +void +test_panes_left_fold(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + _test_panes("left-fold"); +} + +void +test_panes_right_fold(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + _test_panes("right-fold"); +} + +void +test_panes_up_fold(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + _test_panes("up-fold"); +} + +void +test_panes_down_fold(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + _test_panes("down-fold"); +} + + + diff --git a/src/bin/elementary/test_ui_pager.c b/src/bin/elementary/test_ui_pager.c index 78fb1b598e..32bc1d775a 100644 --- a/src/bin/elementary/test_ui_pager.c +++ b/src/bin/elementary/test_ui_pager.c @@ -36,7 +36,8 @@ typedef enum _Pack_Type { PACK_BEFORE, PACK_AFTER, PACK_AT, - UNPACK_AT + UNPACK_AT, + CLEAR } Pack_Type; typedef struct _Params { @@ -218,7 +219,7 @@ static void pack_btn_cb(void *data, const Efl_Event *ev EINA_UNUSED) Eo *page = NULL, *curr_page; int index, cnt; - if (param->type != UNPACK_AT) { + if ((param->type != UNPACK_AT) && (param->type != CLEAR)) { index = efl_content_count(pager); switch (index % 3) { @@ -260,10 +261,12 @@ static void pack_btn_cb(void *data, const Efl_Event *ev EINA_UNUSED) break; case UNPACK_AT: index = efl_ui_range_value_get(param->unpack_sp); - page = efl_pack_content_get(pager, index); - efl_pack_unpack(pager, page); + page = efl_pack_unpack_at(pager, index); efl_del(page); break; + case CLEAR: + efl_pack_clear(pager); + break; } cnt = efl_content_count(pager); @@ -587,6 +590,25 @@ static void pack_cb(void *data, efl_pack_end(box, in_box2); efl_pack_end(in_box2, btn); efl_pack_end(in_box2, sp2); + + // Clear + pack_param = calloc(1, sizeof(Pack_Params)); + if (!pack_param) return; + + pack_param->pager = pager; + pack_param->pack_sp = sp1; + pack_param->unpack_sp = sp2; + pack_param->unpack_btn = btn; + pack_param->type = CLEAR; + + efl_add(EFL_UI_BUTTON_CLASS, box, + efl_text_set(efl_added, "Clear"), + efl_event_callback_add(efl_added, EFL_UI_EVENT_CLICKED, + pack_btn_cb, pack_param), + efl_event_callback_add(efl_added, EFL_EVENT_DEL, + pack_btn_del_cb, pack_param), + efl_pack_end(box, efl_added)); + } static void current_page_cb(void *data, diff --git a/src/bin/elementary/test_ui_pager_scroll.c b/src/bin/elementary/test_ui_pager_scroll.c index 30a4306f63..8df58c6570 100644 --- a/src/bin/elementary/test_ui_pager_scroll.c +++ b/src/bin/elementary/test_ui_pager_scroll.c @@ -36,7 +36,8 @@ typedef enum _Pack_Type { PACK_BEFORE, PACK_AFTER, PACK_AT, - UNPACK_AT + UNPACK_AT, + CLEAR } Pack_Type; typedef struct _Params { @@ -240,7 +241,7 @@ static void pack_btn_cb(void *data, const Efl_Event *ev EINA_UNUSED) Eo *page = NULL, *curr_page; int index, cnt; - if (param->type != UNPACK_AT) { + if ((param->type != UNPACK_AT) && (param->type != CLEAR)) { index = efl_content_count(pager); switch (index % 3) { @@ -282,10 +283,12 @@ static void pack_btn_cb(void *data, const Efl_Event *ev EINA_UNUSED) break; case UNPACK_AT: index = efl_ui_range_value_get(param->unpack_sp); - page = efl_pack_content_get(pager, index); - efl_pack_unpack(pager, page); + page = efl_pack_unpack_at(pager, index); efl_del(page); break; + case CLEAR: + efl_pack_clear(pager); + break; } cnt = efl_content_count(pager); @@ -353,13 +356,11 @@ static void next_block_check_cb(void *data, const Efl_Event *ev) efl_ui_pager_scroll_block_set(pager, prev, next); } -static void loop_check_cb(void *data, const Efl_Event *ev) +static void loop_radio_cb(void *data, const Efl_Event *ev) { Eo *pager = data; int state = efl_ui_nstate_value_get(ev->object); - //FIXME use other widget (i.e. radio) than check - // since loop might not be enabled according to the number of items efl_ui_pager_loop_mode_set(pager, state); } @@ -701,6 +702,24 @@ static void pack_cb(void *data, efl_pack_end(box, in_box2); efl_pack_end(in_box2, btn); efl_pack_end(in_box2, sp2); + + // Clear + pack_param = calloc(1, sizeof(Pack_Params)); + if (!pack_param) return; + + pack_param->pager = pager; + pack_param->pack_sp = sp1; + pack_param->unpack_sp = sp2; + pack_param->unpack_btn = btn; + pack_param->type = CLEAR; + + efl_add(EFL_UI_BUTTON_CLASS, box, + efl_text_set(efl_added, "Clear"), + efl_event_callback_add(efl_added, EFL_UI_EVENT_CLICKED, + pack_btn_cb, pack_param), + efl_event_callback_add(efl_added, EFL_EVENT_DEL, + pack_btn_del_cb, pack_param), + efl_pack_end(box, efl_added)); } static void current_page_cb(void *data, @@ -798,7 +817,8 @@ static void loop_cb(void *data EINA_UNUSED, Params *params = (Params *)data; Evas_Object *navi = params->navi; Eo *pager = params->pager; - Eo *btn, *box; + Eo *btn, *box, *rd; + Efl_Ui_Pager_Loop loop; btn = efl_add(EFL_UI_BUTTON_CLASS, navi, efl_text_set(efl_added, "Back"), @@ -810,13 +830,35 @@ static void loop_cb(void *data EINA_UNUSED, elm_naviframe_item_push(navi, "Loop", btn, NULL, efl_added, NULL)); - efl_add(EFL_UI_CHECK_CLASS, box, - efl_ui_widget_style_set(efl_added, "toggle"), - efl_text_set(efl_added, "Loop"), - efl_ui_nstate_value_set(efl_added, efl_ui_pager_loop_mode_get(pager)), - efl_event_callback_add(efl_added, EFL_UI_CHECK_EVENT_CHANGED, - loop_check_cb, pager), - efl_pack_end(box, efl_added)); + rd = efl_add(EFL_UI_RADIO_CLASS, box, + efl_ui_radio_state_value_set(efl_added, EFL_UI_PAGER_LOOP_DISABLED), + efl_text_set(efl_added, "Disabled"), + efl_gfx_hint_weight_set(efl_added, 1, 0), + efl_event_callback_add(efl_added, EFL_UI_RADIO_EVENT_CHANGED, + loop_radio_cb, pager), + efl_pack(box, efl_added)); + + rd = efl_add(EFL_UI_RADIO_CLASS, box, + efl_ui_radio_state_value_set(efl_added, EFL_UI_PAGER_LOOP_ENABLED), + efl_ui_radio_group_add(efl_added, rd), + efl_text_set(efl_added, "Enabled"), + efl_gfx_hint_weight_set(efl_added, 1, 0), + efl_event_callback_add(efl_added, EFL_UI_RADIO_EVENT_CHANGED, + loop_radio_cb, pager), + efl_pack(box, efl_added)); + + loop = efl_ui_pager_loop_mode_get(pager); + + efl_ui_nstate_value_set(rd, loop); + + if (loop == EFL_UI_PAGER_LOOP_DISABLED) + { + Eina_Bool ret = efl_ui_pager_loop_mode_set(pager, EFL_UI_PAGER_LOOP_ENABLED); + if (!ret) + elm_object_disabled_set(rd, EINA_TRUE); + else + efl_ui_pager_loop_mode_set(pager, EFL_UI_PAGER_LOOP_DISABLED); + } } static void indicator_cb(void *data EINA_UNUSED, diff --git a/src/bin/eolian/docs.c b/src/bin/eolian/docs.c index 39fa89a429..9893005b4d 100644 --- a/src/bin/eolian/docs.c +++ b/src/bin/eolian/docs.c @@ -19,8 +19,7 @@ _indent_line(Eina_Strbuf *buf, int ind) : DOC_LINE_LIMIT) static void -_generate_ref(const Eolian_State *state, const char *refn, Eina_Strbuf *wbuf, - Eina_Bool use_legacy) +_generate_ref(const Eolian_State *state, const char *refn, Eina_Strbuf *wbuf) { const Eolian_Object *decl = eolian_state_object_by_name_get(state, refn); if (decl) @@ -54,7 +53,7 @@ _generate_ref(const Eolian_State *state, const char *refn, Eina_Strbuf *wbuf, eina_stringshare_del(bname); goto noref; } - _generate_ref(state, bname, wbuf, use_legacy); + _generate_ref(state, bname, wbuf); eina_strbuf_append(wbuf, sfx); eina_stringshare_del(bname); return; @@ -122,7 +121,7 @@ noref: static int _append_section(const Eolian_State *state, const char *desc, int ind, int curl, - Eina_Strbuf *buf, Eina_Strbuf *wbuf, Eina_Bool use_legacy) + Eina_Strbuf *buf, Eina_Strbuf *wbuf) { Eina_Bool try_note = EINA_TRUE; while (*desc) @@ -173,7 +172,7 @@ _append_section(const Eolian_State *state, const char *desc, int ind, int curl, ++desc; if (*(desc - 1) == '.') --desc; Eina_Stringshare *refn = eina_stringshare_add_length(ref, desc - ref); - _generate_ref(state, refn, wbuf, use_legacy); + _generate_ref(state, refn, wbuf); eina_stringshare_del(refn); } else @@ -278,8 +277,7 @@ _append_group(Eina_Strbuf *buf, char *sgrp, int indent) static void _gen_doc_brief(const Eolian_State *state, const char *summary, const char *since, - const char *group, const char *el, int indent, Eina_Strbuf *buf, - Eina_Bool use_legacy) + const char *group, const char *el, int indent, Eina_Strbuf *buf) { int curl = 4 + indent; Eina_Strbuf *wbuf = eina_strbuf_new(); @@ -287,7 +285,7 @@ _gen_doc_brief(const Eolian_State *state, const char *summary, const char *since eina_strbuf_append(buf, "/**< "); else eina_strbuf_append(buf, "/** "); - curl = _append_section(state, summary, indent, curl, buf, wbuf, use_legacy); + curl = _append_section(state, summary, indent, curl, buf, wbuf); eina_strbuf_free(wbuf); curl = _append_extra(el, indent, curl, EINA_FALSE, buf); curl = _append_since(since, indent, curl, buf); @@ -310,8 +308,7 @@ _gen_doc_brief(const Eolian_State *state, const char *summary, const char *since static void _gen_doc_full(const Eolian_State *state, const char *summary, const char *description, const char *since, - const char *group, const char *el, int indent, Eina_Strbuf *buf, - Eina_Bool use_legacy) + const char *group, const char *el, int indent, Eina_Strbuf *buf) { int curl = 0; Eina_Strbuf *wbuf = eina_strbuf_new(); @@ -322,13 +319,13 @@ _gen_doc_full(const Eolian_State *state, const char *summary, curl += _indent_line(buf, indent); eina_strbuf_append(buf, " * @brief "); curl += sizeof(" * @brief ") - 1; - _append_section(state, summary, indent, curl, buf, wbuf, use_legacy); + _append_section(state, summary, indent, curl, buf, wbuf); eina_strbuf_append_char(buf, '\n'); _indent_line(buf, indent); eina_strbuf_append(buf, " *\n"); curl = _indent_line(buf, indent); eina_strbuf_append(buf, " * "); - _append_section(state, description, indent, curl + 3, buf, wbuf, use_legacy); + _append_section(state, description, indent, curl + 3, buf, wbuf); curl = _append_extra(el, indent, curl, EINA_TRUE, buf); curl = _append_since(since, indent, curl, buf); eina_strbuf_append_char(buf, '\n'); @@ -346,8 +343,7 @@ _gen_doc_full(const Eolian_State *state, const char *summary, static Eina_Strbuf * _gen_doc_buf(const Eolian_State *state, const Eolian_Documentation *doc, - const char *group, const char *el, int indent, - Eina_Bool use_legacy) + const char *group, const char *el, int indent) { if (!doc) return NULL; @@ -357,17 +353,17 @@ _gen_doc_buf(const Eolian_State *state, const Eolian_Documentation *doc, Eina_Strbuf *buf = eina_strbuf_new(); if (!desc) - _gen_doc_brief(state, sum, since, group, el, indent, buf, use_legacy); + _gen_doc_brief(state, sum, since, group, el, indent, buf); else - _gen_doc_full(state, sum, desc, since, group, el, indent, buf, use_legacy); + _gen_doc_full(state, sum, desc, since, group, el, indent, buf); return buf; } Eina_Strbuf * eo_gen_docs_full_gen(const Eolian_State *state, const Eolian_Documentation *doc, - const char *group, int indent, Eina_Bool use_legacy) + const char *group, int indent) { - return _gen_doc_buf(state, doc, group, NULL, indent, use_legacy); + return _gen_doc_buf(state, doc, group, NULL, indent); } Eina_Strbuf * @@ -403,7 +399,7 @@ eo_gen_docs_event_gen(const Eolian_State *state, const Eolian_Event *ev, return bufs; } - return _gen_doc_buf(state, doc, group, p, 0, EINA_FALSE); + return _gen_doc_buf(state, doc, group, p, 0); } Eina_Strbuf * @@ -517,7 +513,7 @@ eo_gen_docs_func_gen(const Eolian_State *state, const Eolian_Function *fid, if (!desc && !par && !vpar && !rdoc && (ftype == EOLIAN_METHOD || !pdoc)) { _gen_doc_brief(state, sum ? sum : "No description supplied.", since, group, - NULL, indent, buf, EINA_FALSE); + NULL, indent, buf); return buf; } @@ -528,7 +524,7 @@ eo_gen_docs_func_gen(const Eolian_State *state, const Eolian_Function *fid, eina_strbuf_append(buf, " * @brief "); curl += sizeof(" * @brief ") - 1; _append_section(state, sum ? sum : "No description supplied.", - indent, curl, buf, wbuf, EINA_FALSE); + indent, curl, buf, wbuf); eina_strbuf_append_char(buf, '\n'); if (desc || since || par || rdoc || pdoc) @@ -541,7 +537,7 @@ eo_gen_docs_func_gen(const Eolian_State *state, const Eolian_Function *fid, { curl = _indent_line(buf, indent); eina_strbuf_append(buf, " * "); - _append_section(state, desc, indent, curl + 3, buf, wbuf, EINA_FALSE); + _append_section(state, desc, indent, curl + 3, buf, wbuf); eina_strbuf_append_char(buf, '\n'); if (par || rdoc || pdoc || since) { @@ -556,7 +552,7 @@ eo_gen_docs_func_gen(const Eolian_State *state, const Eolian_Function *fid, curl = _indent_line(buf, indent); eina_strbuf_append(buf, " * "); _append_section(state, eolian_documentation_summary_get(pdoc), indent, - curl + 3, buf, wbuf, EINA_FALSE); + curl + 3, buf, wbuf); eina_strbuf_append_char(buf, '\n'); if (pdesc) { @@ -564,7 +560,7 @@ eo_gen_docs_func_gen(const Eolian_State *state, const Eolian_Function *fid, eina_strbuf_append(buf, " *\n"); curl = _indent_line(buf, indent); eina_strbuf_append(buf, " * "); - _append_section(state, pdesc, indent, curl + 3, buf, wbuf, EINA_FALSE); + _append_section(state, pdesc, indent, curl + 3, buf, wbuf); eina_strbuf_append_char(buf, '\n'); } if (par || rdoc || since) @@ -619,7 +615,7 @@ eo_gen_docs_func_gen(const Eolian_State *state, const Eolian_Function *fid, eina_strbuf_append_char(buf, ' '); curl += 1; _append_section(state, eolian_documentation_summary_get(adoc), - indent, curl, buf, wbuf, EINA_FALSE); + indent, curl, buf, wbuf); } eina_strbuf_append_char(buf, '\n'); @@ -652,7 +648,7 @@ eo_gen_docs_func_gen(const Eolian_State *state, const Eolian_Function *fid, eina_strbuf_append(buf, " * @return "); curl += sizeof(" * @return ") - 1; _append_section(state, eolian_documentation_summary_get(rdoc), indent, - curl, buf, wbuf, EINA_FALSE); + curl, buf, wbuf); eina_strbuf_append_char(buf, '\n'); if (since) { diff --git a/src/bin/eolian/docs.h b/src/bin/eolian/docs.h index 91866ec012..3438f5d293 100644 --- a/src/bin/eolian/docs.h +++ b/src/bin/eolian/docs.h @@ -9,12 +9,11 @@ * @param[in] doc the documentation * @param[in] group the group to use (can be NULL) * @param[in] indent by how many spaces to indent the comment from second line - * @param[in] use_legacy whether to use legacy names * * @return A documentation comment * */ -Eina_Strbuf *eo_gen_docs_full_gen(const Eolian_State *state, const Eolian_Documentation *doc, const char *group, int indent, Eina_Bool use_legacy); +Eina_Strbuf *eo_gen_docs_full_gen(const Eolian_State *state, const Eolian_Documentation *doc, const char *group, int indent); /* * @brief Generate function documentation diff --git a/src/bin/eolian/headers.c b/src/bin/eolian/headers.c index cc3b0ee293..d35c604577 100644 --- a/src/bin/eolian/headers.c +++ b/src/bin/eolian/headers.c @@ -176,9 +176,9 @@ _gen_func(const Eolian_State *state, const Eolian_Function *fid, void eo_gen_header_gen(const Eolian_State *state, const Eolian_Class *cl, - Eina_Strbuf *buf, Eina_Bool legacy) + Eina_Strbuf *buf) { - if (!cl || legacy) + if (!cl) return; Eina_Iterator *itr; @@ -196,7 +196,7 @@ eo_gen_header_gen(const Eolian_State *state, const Eolian_Class *cl, if (doc) { Eina_Strbuf *cdoc = eo_gen_docs_full_gen(state, doc, - eolian_class_name_get(cl), 0, EINA_FALSE); + eolian_class_name_get(cl), 0); if (cdoc) { eina_strbuf_append(buf, eina_strbuf_string_get(cdoc)); diff --git a/src/bin/eolian/headers.h b/src/bin/eolian/headers.h index 94fd89b908..9e45fb917e 100644 --- a/src/bin/eolian/headers.h +++ b/src/bin/eolian/headers.h @@ -4,6 +4,6 @@ #include "main.h" void eo_gen_params(Eina_Iterator *itr, Eina_Strbuf *buf, Eina_Strbuf **flagbuf, int *nidx, Eolian_Function_Type ftype); -void eo_gen_header_gen(const Eolian_State *state, const Eolian_Class *cl, Eina_Strbuf *buf, Eina_Bool legacy); +void eo_gen_header_gen(const Eolian_State *state, const Eolian_Class *cl, Eina_Strbuf *buf); #endif diff --git a/src/bin/eolian/main.c b/src/bin/eolian/main.c index 06f32fd418..691881f160 100644 --- a/src/bin/eolian/main.c +++ b/src/bin/eolian/main.c @@ -11,17 +11,16 @@ int _eolian_gen_log_dom = -1; enum { GEN_H = 1 << 0, - GEN_H_LEGACY = 1 << 1, - GEN_H_STUB = 1 << 2, - GEN_C = 1 << 3, - GEN_C_IMPL = 1 << 4, - GEN_D = 1 << 5, - GEN_D_FULL = 1 << 6 + GEN_H_STUB = 1 << 1, + GEN_C = 1 << 2, + GEN_C_IMPL = 1 << 3, + GEN_D = 1 << 4, + GEN_D_FULL = 1 << 5 }; -static const char *_dexts[7] = +static const char *_dexts[6] = { - ".h", ".legacy.h", ".stub.h", ".c", ".c", ".d", ".d" + ".h", ".stub.h", ".c", ".c", ".d", ".d" }; static int @@ -48,7 +47,6 @@ _print_usage(const char *progn, FILE *outf) "\n" "Available types:\n" " h: C header file (.eo.h/.eot.h)\n" - " l: Legacy C header file (.eo.legacy.h/.eot.legacy.h)\n" " s: Stub C header file (.eo.stub.h/.eot.stub.h)\n" " c: C source file (.eo.c)\n" " i: Implementation file (.c, merged with existing)\n" @@ -86,10 +84,6 @@ _try_set_out(char t, char **outs, const char *val, int *what) pos = _get_bit_pos(GEN_H); *what |= GEN_H; break; - case 'l': - pos = _get_bit_pos(GEN_H_LEGACY); - *what |= GEN_H_LEGACY; - break; case 's': pos = _get_bit_pos(GEN_H_STUB); *what |= GEN_H_STUB; @@ -331,13 +325,13 @@ void eo_gen_class_names_get(const Eolian_Class *cl, char **cname, static Eina_Bool _write_header(const Eolian_State *eos, const Eolian_State *state, const char *ofname, - const char *ifname, Eina_Bool legacy) + const char *ifname) { - INF("generating header: %s (legacy: %d)", ofname, legacy); + INF("generating header: %s", ofname); Eina_Strbuf *buf = eina_strbuf_new(); eo_gen_types_header_gen(state, eolian_state_objects_by_file_get(eos, ifname), - buf, EINA_TRUE, legacy); + buf, EINA_TRUE); buf = _include_guard(ifname, "TYPES", buf); Eina_Strbuf *cltd = eo_gen_class_typedef_gen(eos, ifname); @@ -349,16 +343,13 @@ _write_header(const Eolian_State *eos, const Eolian_State *state, const char *of eina_strbuf_free(cltd); } - const Eolian_Class *cl = eolian_state_class_by_file_get(eos, ifname); - eo_gen_header_gen(state, cl, buf, legacy); - if (cl || !legacy) + eo_gen_header_gen(state, eolian_state_class_by_file_get(eos, ifname), buf); + + buf = _include_guard(_get_filename(ofname), NULL, buf); + if (_write_file(ofname, buf)) { - buf = _include_guard(_get_filename(ofname), NULL, buf); - if (_write_file(ofname, buf)) - { - eina_strbuf_free(buf); - return EINA_TRUE; - } + eina_strbuf_free(buf); + return EINA_TRUE; } eina_strbuf_free(buf); @@ -373,7 +364,7 @@ _write_stub_header(const Eolian_State *eos, const Eolian_State *state, const cha Eina_Strbuf *buf = eina_strbuf_new(); eo_gen_types_header_gen(state, eolian_state_objects_by_file_get(eos, ifname), - buf, EINA_FALSE, EINA_FALSE); + buf, EINA_FALSE); Eina_Strbuf *cltd = eo_gen_class_typedef_gen(eos, ifname); if (cltd) @@ -476,7 +467,6 @@ _write_deps(const Eolian_State *eos, const char *ofname, const char *ifname, eina_strbuf_append_char(dbuf, '\n'); _append_dep_line(buf, dbuf, outs, gen_what, GEN_H); - _append_dep_line(buf, dbuf, outs, gen_what, GEN_H_LEGACY); _append_dep_line(buf, dbuf, outs, gen_what, GEN_H_STUB); if (gen_what & GEN_D_FULL) @@ -498,7 +488,7 @@ main(int argc, char **argv) int pret = 1; char *outs[sizeof(_dexts) / sizeof(void *)] = { - NULL, NULL, NULL, NULL, NULL, NULL, NULL + NULL, NULL, NULL, NULL, NULL, NULL }; char *basen = NULL; Eina_List *includes = NULL; @@ -540,9 +530,6 @@ main(int argc, char **argv) case 'h': gen_what |= GEN_H; break; - case 'l': - gen_what |= GEN_H_LEGACY; - break; case 's': gen_what |= GEN_H_STUB; break; @@ -646,9 +633,7 @@ main(int argc, char **argv) Eina_Bool succ = EINA_TRUE; if (gen_what & GEN_H) - succ = _write_header(eos, eos, outs[_get_bit_pos(GEN_H)], eobn, EINA_FALSE); - if (succ && (gen_what & GEN_H_LEGACY)) - succ = _write_header(eos, eos, outs[_get_bit_pos(GEN_H_LEGACY)], eobn, EINA_TRUE); + succ = _write_header(eos, eos, outs[_get_bit_pos(GEN_H)], eobn); if (succ && (gen_what & GEN_H_STUB)) succ = _write_stub_header(eos, eos, outs[_get_bit_pos(GEN_H_STUB)], eobn); if (succ && (gen_what & GEN_C)) diff --git a/src/bin/eolian/types.c b/src/bin/eolian/types.c index c2a2ea654f..85e443e6d8 100644 --- a/src/bin/eolian/types.c +++ b/src/bin/eolian/types.c @@ -4,13 +4,13 @@ static Eina_Strbuf * _type_generate(const Eolian_State *state, const Eolian_Typedecl *tp, - Eina_Bool full, Eina_Bool legacy) + Eina_Bool full) { char *grp = strdup(eolian_typedecl_name_get(tp)); char *p = strrchr(grp, '.'); if (p) *p = '\0'; Eina_Strbuf *buf = eo_gen_docs_full_gen(state, eolian_typedecl_documentation_get(tp), - grp, 0, legacy); + grp, 0); free(grp); if (!buf) buf = eina_strbuf_new(); else eina_strbuf_append_char(buf, '\n'); @@ -54,7 +54,7 @@ _type_generate(const Eolian_State *state, const Eolian_Typedecl *tp, if (nl) { Eina_Strbuf *fbuf = eo_gen_docs_full_gen(state, fdoc, NULL, - strlen(nl), legacy); + strlen(nl)); if (fbuf) eina_strbuf_append_printf(buf, " %s", eina_strbuf_string_get(fbuf)); @@ -108,7 +108,7 @@ _type_generate(const Eolian_State *state, const Eolian_Typedecl *tp, if (nl) { Eina_Strbuf *fbuf = eo_gen_docs_full_gen(state, fdoc, NULL, - strlen(nl), legacy); + strlen(nl)); if (fbuf) eina_strbuf_append_printf(buf, " %s", eina_strbuf_string_get(fbuf)); @@ -166,13 +166,13 @@ _type_generate(const Eolian_State *state, const Eolian_Typedecl *tp, } static Eina_Strbuf * -_var_generate(const Eolian_State *state, const Eolian_Variable *vr, Eina_Bool legacy) +_var_generate(const Eolian_State *state, const Eolian_Variable *vr) { char *fn = strdup(eolian_variable_name_get(vr)); char *p = strrchr(fn, '.'); if (p) *p = '\0'; Eina_Strbuf *buf = eo_gen_docs_full_gen(state, eolian_variable_documentation_get(vr), - fn, 0, legacy); + fn, 0); if (p) { *p = '_'; @@ -216,7 +216,7 @@ _var_generate(const Eolian_State *state, const Eolian_Variable *vr, Eina_Bool le void eo_gen_types_header_gen(const Eolian_State *state, Eina_Iterator *itr, Eina_Strbuf *buf, - Eina_Bool full, Eina_Bool legacy) + Eina_Bool full) { const Eolian_Object *decl; EINA_ITERATOR_FOREACH(itr, decl) @@ -229,7 +229,7 @@ void eo_gen_types_header_gen(const Eolian_State *state, if (!vr || eolian_variable_is_extern(vr)) continue; - Eina_Strbuf *vbuf = _var_generate(state, vr, legacy); + Eina_Strbuf *vbuf = _var_generate(state, vr); if (vbuf) { eina_strbuf_append(buf, eina_strbuf_string_get(vbuf)); @@ -259,7 +259,7 @@ void eo_gen_types_header_gen(const Eolian_State *state, continue; } - Eina_Strbuf *tbuf = _type_generate(state, tp, full, legacy); + Eina_Strbuf *tbuf = _type_generate(state, tp, full); if (tbuf) { eina_strbuf_append(buf, eina_strbuf_string_get(tbuf)); diff --git a/src/bin/eolian/types.h b/src/bin/eolian/types.h index 2659b59085..5abd030a27 100644 --- a/src/bin/eolian/types.h +++ b/src/bin/eolian/types.h @@ -1,7 +1,7 @@ #ifndef EOLIAN_GEN_TYPES_H #define EOLIAN_GEN_TYPES_H -void eo_gen_types_header_gen(const Eolian_State *state, Eina_Iterator *itr, Eina_Strbuf *buf, Eina_Bool full, Eina_Bool legacy); +void eo_gen_types_header_gen(const Eolian_State *state, Eina_Iterator *itr, Eina_Strbuf *buf, Eina_Bool full); void eo_gen_types_source_gen(Eina_Iterator *itr, Eina_Strbuf *buf); Eina_Strbuf *eo_gen_class_typedef_gen(const Eolian_State *eos, const char *eof); diff --git a/src/bin/eolian_mono/eolian/mono/documentation.hh b/src/bin/eolian_mono/eolian/mono/documentation.hh index 1cea16e9e8..9646fd314f 100644 --- a/src/bin/eolian_mono/eolian/mono/documentation.hh +++ b/src/bin/eolian_mono/eolian/mono/documentation.hh @@ -64,6 +64,10 @@ struct documentation_generator ::Eolian_Function_Type ftype = ::eolian_function_type_get(function); const char* eo_name = ::eolian_function_name_get(function); std::string name = object_ref_conversion(klass); + + // Klass is needed to check the property naming rulles + attributes::klass_def klass_d((const ::Eolian_Class *)klass, eolian_object_unit_get(klass)); + switch(ftype) { case ::EOLIAN_METHOD: @@ -75,17 +79,17 @@ struct documentation_generator break; case ::EOLIAN_PROP_SET: name += ".Set"; - name += name_helpers::property_managed_name(eo_name); + name += name_helpers::property_managed_name(klass_d, eo_name); break; case ::EOLIAN_PROP_GET: name += ".Get"; - name += name_helpers::property_managed_name(eo_name); + name += name_helpers::property_managed_name(klass_d, eo_name); break; case ::EOLIAN_PROPERTY: { int getter_params = property_num_parameters(function, ::EOLIAN_PROP_GET); int setter_params = property_num_parameters(function, ::EOLIAN_PROP_SET); - std::string short_name = name_helpers::property_managed_name(eo_name); + std::string short_name = name_helpers::property_managed_name(klass_d, eo_name); bool blacklisted = blacklist::is_property_blacklisted(name + "." + short_name); // EO properties with keys, with more than one value, or blacklisted, are not // converted into C# properties. diff --git a/src/bin/eolian_mono/eolian/mono/function_definition.hh b/src/bin/eolian_mono/eolian/mono/function_definition.hh index 3abf82fe11..23025480c0 100644 --- a/src/bin/eolian_mono/eolian/mono/function_definition.hh +++ b/src/bin/eolian_mono/eolian/mono/function_definition.hh @@ -267,12 +267,12 @@ struct property_wrapper_definition_generator return false; if (property.getter.is_engaged()) - if (!as_generator(scope_tab << scope_tab << "get " << (interface ? ";" : "{ return Get" + managed_name + "(); }") << "\n" + if (!as_generator(scope_tab << scope_tab << "get " << (interface ? ";" : "{ return " + name_helpers::managed_method_name(*property.getter) + "(); }") << "\n" ).generate(sink, attributes::unused, context)) return false; if (property.setter.is_engaged()) - if (!as_generator(scope_tab << scope_tab << "set " << (interface ? ";" : "{ Set" + managed_name + "(" + dir_mod + "value); }") << "\n" + if (!as_generator(scope_tab << scope_tab << "set " << (interface ? ";" : "{ " + name_helpers::managed_method_name(*property.setter) + "(" + dir_mod + "value); }") << "\n" ).generate(sink, attributes::unused, context)) return false; diff --git a/src/bin/eolian_mono/eolian/mono/function_pointer.hh b/src/bin/eolian_mono/eolian/mono/function_pointer.hh index e243ca744c..f724d8029e 100644 --- a/src/bin/eolian_mono/eolian/mono/function_pointer.hh +++ b/src/bin/eolian_mono/eolian/mono/function_pointer.hh @@ -84,7 +84,7 @@ struct function_pointer { << scope_tab << scope_tab << scope_tab << "}\n" << scope_tab << scope_tab << scope_tab << "else\n" << scope_tab << scope_tab << scope_tab << "{\n" - << scope_tab << scope_tab << scope_tab << scope_tab << "Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(this._cb_free_cb, this._cb_data);\n" + << scope_tab << scope_tab << scope_tab << scope_tab << "Efl.Eo.Globals.ThreadSafeFreeCbExec(this._cb_free_cb, this._cb_data);\n" << scope_tab << scope_tab << scope_tab << "}\n" << scope_tab << scope_tab << scope_tab << "this._cb_free_cb = null;\n" << scope_tab << scope_tab << scope_tab << "this._cb_data = IntPtr.Zero;\n" diff --git a/src/bin/eolian_mono/eolian/mono/klass.hh b/src/bin/eolian_mono/eolian/mono/klass.hh index 4664446dbf..fd4c629ffd 100644 --- a/src/bin/eolian_mono/eolian/mono/klass.hh +++ b/src/bin/eolian_mono/eolian/mono/klass.hh @@ -206,7 +206,7 @@ struct klass if(!as_generator ( documentation - << "sealed public class " << concrete_name << " : " << "\n" + << "sealed internal class " << concrete_name << " : " << "\n" << (klass_full_concrete_or_interface_name % ",") << "\n" << (inherit_classes.size() > 0 ? ", " : "" ) << interface_name << "\n" << scope_tab << *(", " << name_helpers::klass_full_concrete_or_interface_name) << "\n" @@ -362,6 +362,7 @@ struct klass context); auto native_inherit_name = name_helpers::klass_native_inherit_name(cls); auto inherit_name = name_helpers::klass_inherit_name(cls); + auto implementable_methods = helpers::get_all_implementable_methods(cls); std::string base_name; if(!root) { @@ -377,14 +378,25 @@ struct klass << scope_tab << "public override System.Collections.Generic.List GetEoOps(System.Type type)\n" << scope_tab << "{\n" << scope_tab << scope_tab << "var descs = new System.Collections.Generic.List();\n" - << scope_tab << scope_tab << "var methods = Efl.Eo.Globals.GetUserMethods(type);\n" ) .generate(sink, attributes::unused, inative_cxt)) return false; // Native wrapper registration + // We write them first to a temporary function as the implementable function list may contain + // only non-registrable methods like class functions, leading to unused `methods` variable. + std::string tmp_registration; if(!as_generator(*(function_registration(cls))) - .generate(sink, helpers::get_all_implementable_methods(cls), inative_cxt)) return false; + .generate(std::back_inserter(tmp_registration), implementable_methods, inative_cxt)) + return false; + + if (tmp_registration.find("methods") != std::string::npos) + if (!as_generator( + scope_tab << scope_tab << "var methods = Efl.Eo.Globals.GetUserMethods(type);\n" + << tmp_registration + ).generate(sink, attributes::unused, inative_cxt)) + return false; + if(!root) if(!as_generator(scope_tab << scope_tab << "descs.AddRange(base.GetEoOps(type));\n").generate(sink, attributes::unused, inative_cxt)) @@ -415,7 +427,7 @@ struct klass // Native method definitions if(!as_generator(*(native_function_definition(cls))) - .generate(sink, helpers::get_all_implementable_methods(cls), inative_cxt)) return false; + .generate(sink, implementable_methods, inative_cxt)) return false; if(!as_generator("}\n").generate(sink, attributes::unused, inative_cxt)) return false; } @@ -628,12 +640,12 @@ struct klass << scope_tab << scope_tab << scope_tab << "else\n" << scope_tab << scope_tab << scope_tab << "{\n" - << scope_tab << scope_tab << scope_tab << scope_tab << "Monitor.Enter(Efl.Eo.Config.InitLock);\n" - << scope_tab << scope_tab << scope_tab << scope_tab << "if (Efl.Eo.Config.Initialized)\n" + << scope_tab << scope_tab << scope_tab << scope_tab << "Monitor.Enter(Efl.All.InitLock);\n" + << scope_tab << scope_tab << scope_tab << scope_tab << "if (Efl.All.MainLoopInitialized)\n" << scope_tab << scope_tab << scope_tab << scope_tab << "{\n" << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);\n" << scope_tab << scope_tab << scope_tab << scope_tab << "}\n\n" - << scope_tab << scope_tab << scope_tab << scope_tab << "Monitor.Exit(Efl.Eo.Config.InitLock);\n" + << scope_tab << scope_tab << scope_tab << scope_tab << "Monitor.Exit(Efl.All.InitLock);\n" << scope_tab << scope_tab << scope_tab << "}\n" << scope_tab << scope_tab << "}\n" << scope_tab << "}\n\n" diff --git a/src/bin/eolian_mono/eolian/mono/marshall_annotation.hh b/src/bin/eolian_mono/eolian/mono/marshall_annotation.hh index 4159b6a952..296b59c04c 100644 --- a/src/bin/eolian_mono/eolian/mono/marshall_annotation.hh +++ b/src/bin/eolian_mono/eolian/mono/marshall_annotation.hh @@ -151,8 +151,8 @@ struct marshall_annotation_visitor_generate name = "Efl.Eo.MarshalEflClass"; else { - auto own = klass_name.base_qualifier & qualifier_info::is_own ? "OwnTag" : "NonOwnTag"; - name = "Efl.Eo.MarshalTest<" + name + ", Efl.Eo." + own + ">"; + std::string own = klass_name.base_qualifier & qualifier_info::is_own ? "OwnTag" : "NonOwnTag"; + name = "Efl.Eo.MarshalEo"; } return as_generator( diff --git a/src/bin/eolian_mono/eolian/mono/name_helpers.hh b/src/bin/eolian_mono/eolian/mono/name_helpers.hh index 2ff2b47e1d..6e913556a2 100644 --- a/src/bin/eolian_mono/eolian/mono/name_helpers.hh +++ b/src/bin/eolian_mono/eolian/mono/name_helpers.hh @@ -38,6 +38,10 @@ inline bool is_equal(std::string const& lhs, std::string const& rhs) } } +// Forward declarations +template +inline std::string klass_concrete_or_interface_name(T const& klass); + inline std::string identity(std::string const& str) { return str; @@ -184,6 +188,12 @@ inline std::string managed_method_name(std::string const& klass, std::string con if (candidate == klass) candidate = "Do" + candidate; + // Avoid clashing with System.Object.GetType + if (candidate == "GetType" || candidate == "SetType") + { + candidate.insert(3, klass); + } + return candidate; } @@ -252,17 +262,26 @@ inline std::string to_field_name(std::string const& in) return utils::capitalize(in); } -inline std::string property_managed_name(const std::string name) + + +template +inline std::string property_managed_name(T const& klass, std::string const& name) { auto names = utils::split(name, '_'); // No need to escape keyword here as it will be capitalized and already // namespaced inside the owner class. - return utils::to_pascal_case(names); + auto managed_name = utils::to_pascal_case(names); + auto managed_klass_name = klass_concrete_or_interface_name(klass); + + if (managed_name == "Type") + managed_name = managed_klass_name + managed_name; + + return managed_name; } inline std::string property_managed_name(attributes::property_def const& property) { - return property_managed_name(property.name); + return property_managed_name(property.klass, property.name); } inline std::string managed_part_name(attributes::part_def const& part) diff --git a/src/bindings/cxx/efl_cxx/meson.build b/src/bindings/cxx/efl_cxx/meson.build index 44113d324a..0dca3250c9 100644 --- a/src/bindings/cxx/efl_cxx/meson.build +++ b/src/bindings/cxx/efl_cxx/meson.build @@ -1,5 +1,5 @@ cxx_header_src += join_paths(file_location, 'Efl.hh') install_headers(join_paths('..', file_location, 'cxx', 'efl_part_impl.hh'), - subdir: join_paths(dir_package_include, 'cxx') + subdir: join_paths(package_version_name, 'cxx') ) diff --git a/src/bindings/cxx/eina_cxx/meson.build b/src/bindings/cxx/eina_cxx/meson.build index fbe6f55ede..a08c416c98 100644 --- a/src/bindings/cxx/eina_cxx/meson.build +++ b/src/bindings/cxx/eina_cxx/meson.build @@ -50,5 +50,5 @@ eina_cxx = declare_dependency( ) install_headers(eina_cxx_header_src, - subdir: dir_package_include + subdir: package_version_name ) diff --git a/src/bindings/cxx/eldbus_cxx/Eldbus_Model.hh b/src/bindings/cxx/eldbus_cxx/Eldbus_Model.hh index f2aa9e1a2c..7d8bb27892 100644 --- a/src/bindings/cxx/eldbus_cxx/Eldbus_Model.hh +++ b/src/bindings/cxx/eldbus_cxx/Eldbus_Model.hh @@ -5,7 +5,7 @@ #ifdef EFL_BETA_API_SUPPORT -#include +#include #endif #endif diff --git a/src/bindings/cxx/meson.build b/src/bindings/cxx/meson.build index 8697473f09..d5b6295731 100644 --- a/src/bindings/cxx/meson.build +++ b/src/bindings/cxx/meson.build @@ -30,7 +30,6 @@ foreach lib : cxx_sublibs '-DNEED_RUN_IN_TREE=1' ] - dir_package_include = package_version_name dir_package_modules = join_paths(dir_lib, package_name, 'modules') cxx_generator_target = [] cxx_header_src = [] @@ -50,7 +49,7 @@ foreach lib : cxx_sublibs input : join_paths(subdir_file_location, cxx_gen_file), output : [cxx_gen_file + '.hh', cxx_gen_file + '.impl.hh'], install : true, - install_dir : join_paths(dir_package_include, eo_file_subdir), + install_dir : join_paths(dir_include, package_version_name, eo_file_subdir), command : [eolian_cxx_gen, '-I', meson.current_source_dir(), eolian_include_directories, '-o', join_paths(meson.current_build_dir(), cxx_gen_file + '.hh'), '@INPUT@']) @@ -64,7 +63,7 @@ foreach lib : cxx_sublibs input : eo_file_list, output : [lib[0] + '.eo.hh'], install : true, - install_dir : join_paths(dir_package_include), + install_dir : join_paths(dir_include, package_version_name), command : [eolian_cxx_gen, '-I', meson.current_source_dir(), eolian_include_directories, '-m', '-o', '@OUTPUT@', '@INPUT@']) @@ -97,7 +96,7 @@ foreach lib : cxx_sublibs endforeach install_headers(cxx_header_src, - subdir: dir_package_include + subdir: package_version_name, ) pkgconfig.generate( diff --git a/src/bindings/mono/efl_mono/efl_all.cs b/src/bindings/mono/efl_mono/efl_all.cs index 70b9825b9d..9a49730093 100644 --- a/src/bindings/mono/efl_mono/efl_all.cs +++ b/src/bindings/mono/efl_mono/efl_all.cs @@ -43,6 +43,13 @@ public static class All { private static bool InitializedUi = false; + public static bool MainLoopInitialized { + get; + private set; + } + + public static readonly object InitLock = new object(); + public static void Init(Efl.Csharp.Components components = Efl.Csharp.Components.Basic) { Eina.Config.Init(); @@ -56,24 +63,38 @@ public static class All Efl.Ui.Config.Init(); InitializedUi = true; } + Monitor.Enter(InitLock); + MainLoopInitialized = true; + Monitor.Exit(InitLock); } /// Shutdowns all EFL subsystems. public static void Shutdown() { // Try to cleanup everything before actually shutting down. + Eina.Log.Debug("Calling GC before shutdown"); System.GC.Collect(); System.GC.WaitForPendingFinalizers(); + Monitor.Enter(InitLock); + MainLoopInitialized = false; + Monitor.Exit(InitLock); + if (InitializedUi) { + Eina.Log.Debug("Shutting down Elementary"); Efl.Ui.Config.Shutdown(); } + Eina.Log.Debug("Shutting down Eldbus"); eldbus.Config.Shutdown(); + Eina.Log.Debug("Shutting down Evas"); evas_shutdown(); + Eina.Log.Debug("Shutting down Ecore"); ecore_shutdown(); + Eina.Log.Debug("Shutting down Eo"); Efl.Eo.Config.Shutdown(); + Eina.Log.Debug("Shutting down Eina"); Eina.Config.Shutdown(); } } diff --git a/src/bindings/mono/eina_mono/eina_accessor.cs b/src/bindings/mono/eina_mono/eina_accessor.cs index d14a2039d5..bafbbd84fe 100644 --- a/src/bindings/mono/eina_mono/eina_accessor.cs +++ b/src/bindings/mono/eina_mono/eina_accessor.cs @@ -78,7 +78,7 @@ public class Accessor : IEnumerable, IDisposable } else { - Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(eina_accessor_free, Handle); + Efl.Eo.Globals.ThreadSafeFreeCbExec(eina_accessor_free, Handle); } Handle = IntPtr.Zero; } diff --git a/src/bindings/mono/eina_mono/eina_array.cs b/src/bindings/mono/eina_mono/eina_array.cs index afa73e9775..e3bd852e2b 100644 --- a/src/bindings/mono/eina_mono/eina_array.cs +++ b/src/bindings/mono/eina_mono/eina_array.cs @@ -155,7 +155,7 @@ public class Array : IEnumerable, IDisposable } else { - Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(eina_array_free, h); + Efl.Eo.Globals.ThreadSafeFreeCbExec(eina_array_free, h); } } } diff --git a/src/bindings/mono/eina_mono/eina_binbuf.cs b/src/bindings/mono/eina_mono/eina_binbuf.cs index 2ae04ec1bd..e5dc817085 100644 --- a/src/bindings/mono/eina_mono/eina_binbuf.cs +++ b/src/bindings/mono/eina_mono/eina_binbuf.cs @@ -109,7 +109,7 @@ public class Binbuf : IDisposable } else { - Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(eina_binbuf_free, Handle); + Efl.Eo.Globals.ThreadSafeFreeCbExec(eina_binbuf_free, Handle); } } } diff --git a/src/bindings/mono/eina_mono/eina_hash.cs b/src/bindings/mono/eina_mono/eina_hash.cs index d74c96970b..8b3c1e7db5 100644 --- a/src/bindings/mono/eina_mono/eina_hash.cs +++ b/src/bindings/mono/eina_mono/eina_hash.cs @@ -193,7 +193,7 @@ public class Hash : IEnumerable>, IDi } else { - Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(eina_hash_free, h); + Efl.Eo.Globals.ThreadSafeFreeCbExec(eina_hash_free, h); } } } diff --git a/src/bindings/mono/eina_mono/eina_inarray.cs b/src/bindings/mono/eina_mono/eina_inarray.cs index 8fbd89191c..c7f3151ac1 100644 --- a/src/bindings/mono/eina_mono/eina_inarray.cs +++ b/src/bindings/mono/eina_mono/eina_inarray.cs @@ -147,7 +147,7 @@ public class Inarray : IEnumerable, IDisposable } else { - Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(eina_inarray_free, h); + Efl.Eo.Globals.ThreadSafeFreeCbExec(eina_inarray_free, h); } } } diff --git a/src/bindings/mono/eina_mono/eina_iterator.cs b/src/bindings/mono/eina_mono/eina_iterator.cs index 75ca1b2785..05b5408606 100644 --- a/src/bindings/mono/eina_mono/eina_iterator.cs +++ b/src/bindings/mono/eina_mono/eina_iterator.cs @@ -79,7 +79,7 @@ public class Iterator : IEnumerable, IDisposable } else { - Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(eina_iterator_free, h); + Efl.Eo.Globals.ThreadSafeFreeCbExec(eina_iterator_free, h); } } } diff --git a/src/bindings/mono/eina_mono/eina_strbuf.cs b/src/bindings/mono/eina_mono/eina_strbuf.cs index 927a21da08..a538de0fd2 100644 --- a/src/bindings/mono/eina_mono/eina_strbuf.cs +++ b/src/bindings/mono/eina_mono/eina_strbuf.cs @@ -99,7 +99,7 @@ public class Strbuf : IDisposable } else { - Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(eina_strbuf_free, Handle); + Efl.Eo.Globals.ThreadSafeFreeCbExec(eina_strbuf_free, Handle); } Handle = IntPtr.Zero; diff --git a/src/bindings/mono/eina_mono/eina_value.cs b/src/bindings/mono/eina_mono/eina_value.cs index 3c9cb53ced..627c7cb343 100644 --- a/src/bindings/mono/eina_mono/eina_value.cs +++ b/src/bindings/mono/eina_mono/eina_value.cs @@ -1411,7 +1411,7 @@ public class Value : IDisposable, IComparable, IEquatable } else { - Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(eina_value_free, this.Handle); + Efl.Eo.Globals.ThreadSafeFreeCbExec(eina_value_free, this.Handle); } } diff --git a/src/bindings/mono/eldbus_mono/eldbus_connection.cs b/src/bindings/mono/eldbus_mono/eldbus_connection.cs index ea8a45f7a1..f88f0ac598 100644 --- a/src/bindings/mono/eldbus_mono/eldbus_connection.cs +++ b/src/bindings/mono/eldbus_mono/eldbus_connection.cs @@ -167,7 +167,7 @@ public class Connection : IDisposable } else { - Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(eldbus_connection_unref, h); + Efl.Eo.Globals.ThreadSafeFreeCbExec(eldbus_connection_unref, h); } } } diff --git a/src/bindings/mono/eldbus_mono/eldbus_message.cs b/src/bindings/mono/eldbus_mono/eldbus_message.cs index eec9167d18..559c2f10b9 100644 --- a/src/bindings/mono/eldbus_mono/eldbus_message.cs +++ b/src/bindings/mono/eldbus_mono/eldbus_message.cs @@ -236,7 +236,7 @@ public class Message : IDisposable } else { - Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(eldbus_message_unref, h); + Efl.Eo.Globals.ThreadSafeFreeCbExec(eldbus_message_unref, h); } } } diff --git a/src/bindings/mono/eldbus_mono/eldbus_object.cs b/src/bindings/mono/eldbus_mono/eldbus_object.cs index 136e8407ac..682fda6565 100644 --- a/src/bindings/mono/eldbus_mono/eldbus_object.cs +++ b/src/bindings/mono/eldbus_mono/eldbus_object.cs @@ -158,7 +158,7 @@ public class Object : System.IDisposable } else { - Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(eldbus_object_unref, h); + Efl.Eo.Globals.ThreadSafeFreeCbExec(eldbus_object_unref, h); } } } diff --git a/src/bindings/mono/eldbus_mono/eldbus_proxy.cs b/src/bindings/mono/eldbus_mono/eldbus_proxy.cs index c8ac4d265a..f5eec40d43 100644 --- a/src/bindings/mono/eldbus_mono/eldbus_proxy.cs +++ b/src/bindings/mono/eldbus_mono/eldbus_proxy.cs @@ -117,7 +117,7 @@ public class Proxy : IDisposable } else { - Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(eldbus_proxy_unref, h); + Efl.Eo.Globals.ThreadSafeFreeCbExec(eldbus_proxy_unref, h); } } } diff --git a/src/bindings/mono/eo_mono/iwrapper.cs b/src/bindings/mono/eo_mono/iwrapper.cs index 4f4181d244..a410a091bb 100644 --- a/src/bindings/mono/eo_mono/iwrapper.cs +++ b/src/bindings/mono/eo_mono/iwrapper.cs @@ -77,7 +77,7 @@ public class Globals efl_mono_thread_safe_efl_unref(IntPtr eo); [DllImport(efl.Libs.CustomExports)] public static extern void - efl_mono_thread_safe_free_cb_exec(EinaFreeCb free_cb, IntPtr cb_data); + efl_mono_thread_safe_free_cb_exec(IntPtr free_cb, IntPtr cb_data); [DllImport(efl.Libs.Eo)] public static extern IntPtr efl_class_name_get(IntPtr eo); @@ -653,6 +653,7 @@ public class Globals return ret; } + private static Efl.FreeGCHandleCb FreeGCHandleCallbackDelegate = new Efl.FreeGCHandleCb(FreeGCHandleCallback); public static void FreeGCHandleCallback(IntPtr gcHandlePtr) { try @@ -667,6 +668,7 @@ public class Globals } } + private static Efl.RemoveEventsCb RemoveEventsCallbackDelegate = new Efl.RemoveEventsCb(RemoveEventsCallback); public static void RemoveEventsCallback(IntPtr obj, IntPtr gcHandlePtr) { try @@ -696,7 +698,27 @@ public class Globals public static void SetNativeDisposeCallbacks() { - efl_mono_gchandle_callbacks_set(FreeGCHandleCallback, RemoveEventsCallback); + efl_mono_gchandle_callbacks_set(FreeGCHandleCallbackDelegate, RemoveEventsCallbackDelegate); + } + + public static void ThreadSafeFreeCbExec(EinaFreeCb cbFreeCb, IntPtr cbData) + { + EinaFreeCb cb = (IntPtr gcHandlePtr) => { + cbFreeCb(cbData); + GCHandle gcHandle = GCHandle.FromIntPtr(gcHandlePtr); + gcHandle.Free(); + }; + + Monitor.Enter(Efl.All.InitLock); + if (Efl.All.MainLoopInitialized) + { + IntPtr cbPtr = Marshal.GetFunctionPointerForDelegate(cb); + var handle = GCHandle.Alloc(cb); + var handlePtr = GCHandle.ToIntPtr(handle); + + efl_mono_thread_safe_free_cb_exec(cbPtr, handlePtr); + } + Monitor.Exit(Efl.All.InitLock); } } // Globals @@ -704,27 +726,14 @@ public class Globals public static class Config { - public static bool Initialized { - get; - private set; - } - - public static readonly object InitLock = new object(); - public static void Init() { Globals.efl_object_init(); - Monitor.Enter(InitLock); - Initialized = true; - Monitor.Exit(InitLock); Globals.SetNativeDisposeCallbacks(); } public static void Shutdown() { - Monitor.Enter(InitLock); - Initialized = false; - Monitor.Exit(InitLock); Globals.efl_object_shutdown(); } } @@ -962,37 +971,37 @@ public class NonOwnTag : IOwnershipTag { } -public class MarshalTest : ICustomMarshaler +public class MarshalEo : ICustomMarshaler where U : IOwnershipTag { public static ICustomMarshaler GetInstance(string cookie) { - Eina.Log.Debug("MarshalTest.GetInstace cookie " + cookie); - return new MarshalTest(); + Eina.Log.Debug("MarshalEo.GetInstace cookie " + cookie); + return new MarshalEo(); } public void CleanUpManagedData(object ManagedObj) { - //Eina.Log.Warning("MarshalTest.CleanUpManagedData not implemented"); + //Eina.Log.Warning("MarshalEo.CleanUpManagedData not implemented"); //throw new NotImplementedException(); } public void CleanUpNativeData(IntPtr pNativeData) { - //Eina.Log.Warning("MarshalTest.CleanUpNativeData not implemented"); + //Eina.Log.Warning("MarshalEo.CleanUpNativeData not implemented"); //throw new NotImplementedException(); } public int GetNativeDataSize() { - Eina.Log.Debug("MarshalTest.GetNativeDataSize"); + Eina.Log.Debug("MarshalEo.GetNativeDataSize"); return 0; //return 8; } public IntPtr MarshalManagedToNative(object ManagedObj) { - Eina.Log.Debug("MarshalTest.MarshallManagedToNative"); + Eina.Log.Debug("MarshalEo.MarshallManagedToNative"); if (ManagedObj == null) { @@ -1019,7 +1028,7 @@ public class MarshalEflClass : ICustomMarshaler { public static ICustomMarshaler GetInstance(string cookie) { - Eina.Log.Debug("MarshalTest.GetInstance cookie " + cookie); + Eina.Log.Debug("MarshalEflClass.GetInstance cookie " + cookie); return new MarshalEflClass(); } @@ -1033,13 +1042,13 @@ public class MarshalEflClass : ICustomMarshaler public int GetNativeDataSize() { - Eina.Log.Debug("MarshalTest.GetNativeDataSize"); + Eina.Log.Debug("MarshalEflClass.GetNativeDataSize"); return 0; } public IntPtr MarshalManagedToNative(object ManagedObj) { - Eina.Log.Debug("MarshalTest.MarshallManagedToNative"); + Eina.Log.Debug("MarshalEflClass.MarshallManagedToNative"); if (ManagedObj == null) { return IntPtr.Zero; @@ -1051,7 +1060,7 @@ public class MarshalEflClass : ICustomMarshaler public object MarshalNativeToManaged(IntPtr pNativeData) { - Eina.Log.Debug("MarshalTest.MarshalNativeToManaged"); + Eina.Log.Debug("MarshalEflClass.MarshalNativeToManaged"); if (pNativeData == IntPtr.Zero) { return null; diff --git a/src/lib/ecore/Ecore_Getopt.h b/src/lib/ecore/Ecore_Getopt.h index a4f188c8c2..7a038f744a 100644 --- a/src/lib/ecore/Ecore_Getopt.h +++ b/src/lib/ecore/Ecore_Getopt.h @@ -1215,4 +1215,7 @@ EAPI Eina_Bool ecore_getopt_callback_size_parse(const Ecore_Getopt *parser, con * @} */ +#undef EAPI +#define EAPI + #endif /* _ECORE_GETOPT_H */ diff --git a/src/lib/ecore/efl_composite_model.c b/src/lib/ecore/efl_composite_model.c index 668b382dfb..a0457729ac 100644 --- a/src/lib/ecore/efl_composite_model.c +++ b/src/lib/ecore/efl_composite_model.c @@ -8,10 +8,9 @@ #include "ecore_private.h" +#include "efl_composite_model_private.h" #include "efl_composite_model.eo.h" -#define _CHILD_INDEX "child.index" - typedef struct _Efl_Composite_Model_Data Efl_Composite_Model_Data; struct _Efl_Composite_Model_Data @@ -148,7 +147,7 @@ _efl_composite_model_index_get(const Eo *obj, Efl_Composite_Model_Data *pd) if (pd->need_index) return 0xFFFFFFFF; - fetch = efl_model_property_get(obj, _CHILD_INDEX); + fetch = efl_model_property_get(obj, EFL_COMPOSITE_MODEL_CHILD_INDEX); if (!eina_value_uint_convert(fetch, &r)) return 0xFFFFFFFF; eina_value_free(fetch); @@ -179,7 +178,7 @@ _efl_composite_model_efl_ui_view_model_set(Eo *obj EINA_UNUSED, Efl_Composite_Mo properties = efl_model_properties_get(pd->source); EINA_ITERATOR_FOREACH(properties, property) { - if (!strcmp(property, _CHILD_INDEX)) + if (!strcmp(property, EFL_COMPOSITE_MODEL_CHILD_INDEX)) { pd->need_index = EINA_FALSE; break; @@ -198,7 +197,7 @@ static Eina_Future * _efl_composite_model_efl_model_property_set(Eo *obj, Efl_Composite_Model_Data *pd, const char *property, Eina_Value *value) { - if (pd->need_index && !strcmp(property, _CHILD_INDEX)) + if (pd->need_index && !strcmp(property, EFL_COMPOSITE_MODEL_CHILD_INDEX)) { if (pd->set_index || !pd->source) return efl_loop_future_rejected(obj, EFL_MODEL_ERROR_READ_ONLY); @@ -214,7 +213,7 @@ static Eina_Value * _efl_composite_model_efl_model_property_get(const Eo *obj EINA_UNUSED, Efl_Composite_Model_Data *pd, const char *property) { - if (pd->need_index && !strcmp(property, _CHILD_INDEX)) + if (pd->need_index && !strcmp(property, EFL_COMPOSITE_MODEL_CHILD_INDEX)) { if (pd->set_index) return eina_value_uint_new(pd->index); @@ -229,7 +228,7 @@ _efl_composite_model_efl_model_properties_get(const Eo *obj EINA_UNUSED, Efl_Com if (pd->need_index) { static const char *composite_properties[] = { - _CHILD_INDEX + EFL_COMPOSITE_MODEL_CHILD_INDEX }; return eina_multi_iterator_new(efl_model_properties_get(pd->source), diff --git a/src/lib/ecore/efl_composite_model_private.h b/src/lib/ecore/efl_composite_model_private.h index c9e3783b9d..b780326c8b 100644 --- a/src/lib/ecore/efl_composite_model_private.h +++ b/src/lib/ecore/efl_composite_model_private.h @@ -1,3 +1,7 @@ +#ifndef EFL_COMPOSITE_MODEL_PRIVATE_H_ +# define EFL_COMPOSITE_MODEL_PRIVATE_H_ + +#define EFL_COMPOSITE_MODEL_CHILD_INDEX "child.index" #define EFL_COMPOSITE_MODEL_PROPERTIES(name, dyn, sta, ...) \ EFL_COMPOSITE_MODEL_PROPERTIES_SUPER(name, NULL, NULL, (dyn), sta, ##__VA_ARGS__) @@ -36,3 +40,4 @@ _efl_composite_model_properties_mix(Eina_Iterator *super, Eina_Iterator *dyn, Ei }; } +#endif diff --git a/src/lib/ecore_drm2/Ecore_Drm2.h b/src/lib/ecore_drm2/Ecore_Drm2.h index ecf4f4a2bd..843cfa6a2d 100644 --- a/src/lib/ecore_drm2/Ecore_Drm2.h +++ b/src/lib/ecore_drm2/Ecore_Drm2.h @@ -1179,6 +1179,23 @@ EAPI int ecore_drm2_device_fd_get(Ecore_Drm2_Device *device); */ EAPI Eina_Bool ecore_drm2_output_pending_get(Ecore_Drm2_Output *output); +/** + * Set the background color of an output's crtc + * + * @param output + * @param r + * @param g + * @param b + * @param a + * + * @return EINA_TRUE on success, EINA_FALSE otherwise + * + * @note This requires support from the video driver in order to function + * + * @since 1.23 + */ +EAPI Eina_Bool ecore_drm2_output_background_color_set(Ecore_Drm2_Output *output, uint64_t r, uint64_t g, uint64_t b, uint64_t a); + # endif #endif diff --git a/src/lib/ecore_drm2/ecore_drm2_device.c b/src/lib/ecore_drm2/ecore_drm2_device.c index b4ca722b22..c27deb8199 100644 --- a/src/lib/ecore_drm2/ecore_drm2_device.c +++ b/src/lib/ecore_drm2/ecore_drm2_device.c @@ -266,9 +266,13 @@ _drm2_atomic_state_crtc_fill(Ecore_Drm2_Crtc_State *cstate, int fd) { cstate->active.id = prop->prop_id; cstate->active.value = oprops->prop_values[i]; - DBG("\t\t\tValue: %d", cstate->active.value); + DBG("\t\t\tValue: %lu", cstate->active.value); + } + else if (!strcmp(prop->name, "BACKGROUND_COLOR")) + { + cstate->background.id = prop->prop_id; + cstate->background.value = oprops->prop_values[i]; } - cont: sym_drmModeFreeProperty(prop); } @@ -303,13 +307,13 @@ _drm2_atomic_state_conn_fill(Ecore_Drm2_Connector_State *cstate, int fd) { cstate->crtc.id = prop->prop_id; cstate->crtc.value = oprops->prop_values[i]; - DBG("\t\t\tValue: %d", cstate->crtc.value); + DBG("\t\t\tValue: %lu", cstate->crtc.value); } else if (!strcmp(prop->name, "DPMS")) { cstate->dpms.id = prop->prop_id; cstate->dpms.value = oprops->prop_values[i]; - DBG("\t\t\tValue: %d", cstate->dpms.value); + DBG("\t\t\tValue: %lu", cstate->dpms.value); } else if (!strcmp(prop->name, "EDID")) { @@ -344,13 +348,13 @@ _drm2_atomic_state_conn_fill(Ecore_Drm2_Connector_State *cstate, int fd) { cstate->aspect.id = prop->prop_id; cstate->aspect.value = oprops->prop_values[i]; - DBG("\t\t\tValue: %d", cstate->aspect.value); + DBG("\t\t\tValue: %lu", cstate->aspect.value); } else if (!strcmp(prop->name, "scaling mode")) { cstate->scaling.id = prop->prop_id; cstate->scaling.value = oprops->prop_values[i]; - DBG("\t\t\tValue: %d", cstate->scaling.value); + DBG("\t\t\tValue: %lu", cstate->scaling.value); } cont: @@ -388,13 +392,13 @@ _drm2_atomic_state_plane_fill(Ecore_Drm2_Plane_State *pstate, int fd) { pstate->cid.id = prop->prop_id; pstate->cid.value = oprops->prop_values[i]; - DBG("\t\t\tValue: %d", pstate->cid.value); + DBG("\t\t\tValue: %lu", pstate->cid.value); } else if (!strcmp(prop->name, "FB_ID")) { pstate->fid.id = prop->prop_id; pstate->fid.value = oprops->prop_values[i]; - DBG("\t\t\tValue: %d", pstate->fid.value); + DBG("\t\t\tValue: %lu", pstate->fid.value); } else if (!strcmp(prop->name, "CRTC_X")) { @@ -452,7 +456,7 @@ _drm2_atomic_state_plane_fill(Ecore_Drm2_Plane_State *pstate, int fd) DBG("\t\t\tCursor Plane"); break; default: - DBG("\t\t\tValue: %d", pstate->type.value); + DBG("\t\t\tValue: %lu", pstate->type.value); break; } } diff --git a/src/lib/ecore_drm2/ecore_drm2_fb.c b/src/lib/ecore_drm2/ecore_drm2_fb.c index e8f6c16762..aab47956fb 100644 --- a/src/lib/ecore_drm2/ecore_drm2_fb.c +++ b/src/lib/ecore_drm2/ecore_drm2_fb.c @@ -348,6 +348,15 @@ _fb_atomic_flip_test(Ecore_Drm2_Output *output) cstate->active.value); if (ret < 0) goto err; + if (cstate->background.id) + { + ret = + sym_drmModeAtomicAddProperty(req, cstate->obj_id, + cstate->background.id, + cstate->background.value); + if (ret < 0) goto err; + } + EINA_LIST_FOREACH(output->planes, l, plane) { pstate = plane->state; diff --git a/src/lib/ecore_drm2/ecore_drm2_outputs.c b/src/lib/ecore_drm2/ecore_drm2_outputs.c index 6734cacdff..dfb2fa93d1 100644 --- a/src/lib/ecore_drm2/ecore_drm2_outputs.c +++ b/src/lib/ecore_drm2/ecore_drm2_outputs.c @@ -1303,6 +1303,20 @@ _output_mode_atomic_set(Ecore_Drm2_Output *output, Ecore_Drm2_Output_Mode *mode) goto err; } + if (cstate->background.id) + { + ret = + sym_drmModeAtomicAddProperty(req, cstate->obj_id, + cstate->background.id, + cstate->background.value); + if (ret < 0) + { + ERR("Could not add atomic property"); + ret = EINA_FALSE; + goto err; + } + } + ret = sym_drmModeAtomicCommit(output->fd, req, DRM_MODE_ATOMIC_ALLOW_MODESET, output); if (ret < 0) @@ -1732,3 +1746,21 @@ ecore_drm2_output_relative_to_get(Ecore_Drm2_Output *output) EINA_SAFETY_ON_NULL_RETURN_VAL(output, NULL); return output->relative.to; } + +EAPI Eina_Bool +ecore_drm2_output_background_color_set(Ecore_Drm2_Output *output, uint64_t r, uint64_t g, uint64_t b, uint64_t a) +{ + Ecore_Drm2_Crtc_State *cstate; + + EINA_SAFETY_ON_NULL_RETURN_VAL(output, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(output->crtc_state, EINA_FALSE); + + cstate = output->crtc_state; + if (cstate->background.id) + { + cstate->background.value = (a << 48 | b << 32 | g << 16 | r); + return _fb_atomic_flip_test(output); + } + + return EINA_FALSE; +} diff --git a/src/lib/ecore_drm2/ecore_drm2_private.h b/src/lib/ecore_drm2/ecore_drm2_private.h index 25aaac7d71..56c9fe8a99 100644 --- a/src/lib/ecore_drm2/ecore_drm2_private.h +++ b/src/lib/ecore_drm2/ecore_drm2_private.h @@ -72,7 +72,8 @@ typedef struct _Ecore_Drm2_Atomic_Blob typedef struct _Ecore_Drm2_Atomic_Property { - uint32_t id, value; + uint32_t id; + uint64_t value; } Ecore_Drm2_Atomic_Property; typedef struct _Ecore_Drm2_Connector_State @@ -90,6 +91,7 @@ typedef struct _Ecore_Drm2_Crtc_State uint32_t obj_id; int index; Ecore_Drm2_Atomic_Property active; + Ecore_Drm2_Atomic_Property background; Ecore_Drm2_Atomic_Blob mode; } Ecore_Drm2_Crtc_State; diff --git a/src/lib/ecore_imf/ecore_imf_module.c b/src/lib/ecore_imf/ecore_imf_module.c index 0c6cee360d..391778f43b 100644 --- a/src/lib/ecore_imf/ecore_imf_module.c +++ b/src/lib/ecore_imf/ecore_imf_module.c @@ -97,7 +97,7 @@ ecore_imf_module_init(void) if ((!env) && (getenv("WAYLAND_DISPLAY")) && (!getenv("DISPLAY"))) env = "wayland"; #endif -#ifdef ENABLE_XIM +#ifdef BUILD_ECORE_IMF_XIM if ((!env) && (!getenv("WAYLAND_DISPLAY")) && (getenv("DISPLAY"))) env = "xim"; #endif diff --git a/src/lib/ecore_sdl/meson.build b/src/lib/ecore_sdl/meson.build index 01ef3981b9..b4685818c1 100644 --- a/src/lib/ecore_sdl/meson.build +++ b/src/lib/ecore_sdl/meson.build @@ -10,7 +10,7 @@ ecore_sdl_header_src = [ 'Ecore_Sdl_Keys.h' ] -ecore_sdl_deps += dependency('sdl') +ecore_sdl_deps += dependency('sdl2') ecore_sdl_lib = library('ecore_sdl', ecore_sdl_src, diff --git a/src/lib/ecore_win32/ecore_win32.c b/src/lib/ecore_win32/ecore_win32.c index f217b22475..1ee8b2fbdf 100644 --- a/src/lib/ecore_win32/ecore_win32.c +++ b/src/lib/ecore_win32/ecore_win32.c @@ -25,12 +25,6 @@ * @cond LOCAL */ -/* FIXME: uncomment when mingw-w64 will be updated in win-builds */ - -/* #ifndef WM_CLIPBOARDUPDATE */ -# define WM_CLIPBOARDUPDATE 0x031D -/* #endif */ - /* OLE IID for Drag'n Drop */ #define INITGUID @@ -43,9 +37,6 @@ DEFINE_OLEGUID(IID_IUnknown, 0x00000000L, 0, 0); #define IDI_ICON 101 -typedef BOOL WINAPI (*efl_AddClipboardFormatListener)(_In_ HWND hwnd); -typedef BOOL WINAPI (*efl_RemoveClipboardFormatListener)(_In_ HWND hwnd); - static int _ecore_win32_init_count = 0; LRESULT CALLBACK @@ -205,31 +196,17 @@ _ecore_win32_window_procedure(HWND window, /* Window notifications */ case WM_CREATE: { - efl_AddClipboardFormatListener acfl; - INF("create window message"); - - acfl = (efl_AddClipboardFormatListener)GetProcAddress(GetModuleHandle("user32.dll"), - "AddClipboardFormatListener"); - if (acfl) - { - if (!acfl(window)) - INF("can not create clipboard format listener; no clipboard notification will be sent"); - } + if (!AddClipboardFormatListener(window)) + INF("can not create clipboard format listener; no clipboard notification will be sent"); _ecore_win32_event_handle_create_notify(data); return 0; } case WM_DESTROY: { - efl_RemoveClipboardFormatListener rcfl; - INF("destroy window message"); _ecore_win32_event_handle_destroy_notify(data); - - rcfl = (efl_RemoveClipboardFormatListener)GetProcAddress(GetModuleHandle("user32.dll"), - "RemoveClipboardFormatListener"); - if (rcfl) - rcfl(window); + RemoveClipboardFormatListener(window); return 0; } case WM_SHOWWINDOW: diff --git a/src/lib/ecore_x/ecore_x.c b/src/lib/ecore_x/ecore_x.c index ae357df542..f3d8caeb20 100644 --- a/src/lib/ecore_x/ecore_x.c +++ b/src/lib/ecore_x/ecore_x.c @@ -1223,12 +1223,12 @@ _ecore_x_fd_handler(void *data, XEvent ev; XNextEvent(d, &ev); -#ifdef ENABLE_XIM +#ifdef BUILD_ECORE_IMF_XIM /* Filter event for XIM */ if (XFilterEvent(&ev, ev.xkey.window)) continue; -#endif /* ifdef ENABLE_XIM */ +#endif /* ifdef BUILD_ECORE_IMF_XIM */ if ((ev.type >= 0) && (ev.type < _ecore_x_event_handlers_num)) { if (_ecore_x_event_handlers[AnyXEvent]) diff --git a/src/lib/efl/interfaces/efl_content.eo b/src/lib/efl/interfaces/efl_content.eo index ed3e96b18c..d23ac388a4 100644 --- a/src/lib/efl/interfaces/efl_content.eo +++ b/src/lib/efl/interfaces/efl_content.eo @@ -1,6 +1,6 @@ interface Efl.Content { - [[Common interface for objects that have a (single) content. + [[Common interface for objects that have a single sub-object as content. This is used for the default content part of widgets, as well as for individual parts through @Efl.Part. @@ -9,17 +9,24 @@ interface Efl.Content ]] methods { @property content { - [[Swallowed sub-object contained in this object.]] + [[Sub-object currently set as this object's single content. + + If it is set multiple times, previous sub-objects are removed first. + Therefore, if an invalid $content is set the object will + become empty (it will have no sub-object). + ]] set { - return: bool; [[$true on success, $false otherwise]] + return: bool; [[$true if $content was successfully swallowed.]] } get {} values { - content: Efl.Gfx.Entity; [[The object to swallow.]] + content: Efl.Gfx.Entity; [[The sub-object.]] } } content_unset { - [[Unswallow the object in the current container and return it.]] + [[Remove the sub-object currently set as content of this object and return it. + This object becomes empty. + ]] return: Efl.Gfx.Entity; [[Unswallowed object]] } } diff --git a/src/lib/efl/interfaces/efl_pack_linear.eo b/src/lib/efl/interfaces/efl_pack_linear.eo index 423c6cbb6c..b82cee842f 100644 --- a/src/lib/efl/interfaces/efl_pack_linear.eo +++ b/src/lib/efl/interfaces/efl_pack_linear.eo @@ -13,12 +13,12 @@ interface @beta Efl.Pack_Linear extends Efl.Pack container without deleting it. ]] params { - @in subobj: Efl.Gfx.Entity; [[Item to pack.]] + @in subobj: Efl.Gfx.Entity; [[Item to pack at the beginning.]] } - return: bool; [[$false if $subobj could not be packed]] + return: bool; [[$false if $subobj could not be packed.]] } pack_end { - [[Append object at the end of this container. + [[Append item at the end of this container. This is the same as @.pack_at($subobj, -1). @@ -29,7 +29,7 @@ interface @beta Efl.Pack_Linear extends Efl.Pack params { @in subobj: Efl.Gfx.Entity; [[Item to pack at the end.]] } - return: bool; [[$false if $subobj could not be packed]] + return: bool; [[$false if $subobj could not be packed.]] } pack_before { [[Prepend item before other sub object. @@ -60,46 +60,72 @@ interface @beta Efl.Pack_Linear extends Efl.Pack could not be packed.]] } pack_at { - [[Inserts $subobj at the specified $index. + [[Inserts $subobj BEFORE the item at position $index. - Valid range: -$count to +$count. -1 refers to the last element. - Out of range indices will trigger an append. + $index ranges from -$count to $count-1, where positive numbers go + from first item (0) to last item ($count-1), and negative numbers go + from last item (-1) to first item (-$count). Where $count is + the number of items currently in the container. + + If $index is less than -$count, it will trigger @.pack_begin($subobj) + whereas $index greater than $count-1 will trigger @.pack_end($subobj). When this container is deleted, it will request deletion of the given $subobj. Use @Efl.Pack.unpack to remove $subobj from this container without deleting it. ]] params { - @in subobj: Efl.Gfx.Entity; [[Item to pack at given index.]] - @in index: int; [[A position.]] + @in subobj: Efl.Gfx.Entity; [[Item to pack.]] + @in index: int; [[Index of item to insert BEFORE. + Valid range is -$count to ($count-1). + ]] } return: bool; [[$false if $subobj could not be packed.]] } pack_content_get { - [[Content at a given index in this container. + [[Content at a given $index in this container. - Index -1 refers to the last item. The valid range is -(count - 1) to - (count - 1). + $index ranges from -$count to $count-1, where positive numbers go + from first item (0) to last item ($count-1), and negative numbers go + from last item (-1) to first item (-$count). Where $count is + the number of items currently in the container. + + If $index is less than -$count, it will return the first item + whereas $index greater than $count-1 will return the last item. ]] params { - index: int; [[Index number]] + @in index: int; [[Index of the item to retrieve. + Valid range is -$count to ($count-1). + ]] } return: Efl.Gfx.Entity; [[The object contained at the given $index.]] } pack_index_get { [[Get the index of a child in this container.]] params { - subobj: const(Efl.Gfx.Entity); [[An object contained in this pack.]] + @in subobj: const(Efl.Gfx.Entity); [[An object contained in this pack.]] } - return: int(-1); [[-1 in case of failure, or the index of this item.]] + return: int(-1); [[-1 in case $subobj is not a child of this object, + or the index of this item in the range 0 to ($count-1). + ]] } pack_unpack_at { - [[Pop out item at specified $index. + [[Pop out (remove) the item at the specified $index. - Equivalent to unpack(content_at($index)). + $index ranges from -$count to $count-1, where positive numbers go + from first item (0) to last item ($count-1), and negative numbers go + from last item (-1) to first item (-$count). Where $count is + the number of items currently in the container. + + If $index is less than -$count, it will remove the first item + whereas $index greater than $count-1 will remove the last item. + + Equivalent to @Efl.Pack.unpack(@.pack_content_get($index)). ]] params { - index: int; [[Index number]] + @in index: int; [[Index of item to remove. + Valid range is -$count to ($count-1). + ]] } return: Efl.Gfx.Entity; [[The child item if it could be removed.]] } diff --git a/src/lib/eina/eina_vpath.c b/src/lib/eina/eina_vpath.c index 207bb8aad0..25fa9018c4 100644 --- a/src/lib/eina/eina_vpath.c +++ b/src/lib/eina/eina_vpath.c @@ -214,6 +214,7 @@ _fetch_user_homedir(char **str, const char *name, const char *error) #else ERR("User fetching is disabled on this system\nThe string was: %s", error); return EINA_FALSE; + (void) name; #endif } diff --git a/src/lib/eina/eina_vpath.h b/src/lib/eina/eina_vpath.h index d06cb431c3..77c1e35afe 100644 --- a/src/lib/eina/eina_vpath.h +++ b/src/lib/eina/eina_vpath.h @@ -36,7 +36,7 @@ * (:app.tmp:)/some-temp-file/path/file.txt * * (:usr.desktop:)/file-in-users-desktop-directory.txt - * (:usr.documents:)/letter-to-gradma.doc + * (:usr.documents:)/letter-to-grandma.doc * (:usr.downloads:)/file-downloaded-here.zip * (:usr.music:)/fave-song.mp3 * (:usr.pictures:)/a-photo.,jpg @@ -44,7 +44,7 @@ * (:usr.templates:)/some-template-document.txt * (:usr.videos:)/some-video-file.mp4 * (:usr.data:)/file-in-user-data-dir - * (:usr.config:)/file-in-user-conifg-dir + * (:usr.config:)/file-in-user-config-dir * (:usr.cache:)/file-in-user-cache-dir * (:usr.run:)/file-in-xdg-runtime-dir * (:usr.tmp:)/some-temp-file/path/file.txt diff --git a/src/lib/eina/eina_vpath_xdg.c b/src/lib/eina/eina_vpath_xdg.c index e6db4c219e..bd36042f5d 100644 --- a/src/lib/eina/eina_vpath_xdg.c +++ b/src/lib/eina/eina_vpath_xdg.c @@ -13,31 +13,65 @@ void eina_xdg_env_init(void) { - char *s; - char home[PATH_MAX]; + char home[PATH_MAX], *s; Eina_Vpath_Interface_User user; eina_vpath_resolve_snprintf(home, sizeof(home), "(:home:)/"); - memset(&user, 0, sizeof(Eina_Vpath_Interface_User)); +#define FATAL_SNPRINTF(_buf, _err, _fmt, ...) \ + do { \ + if ((size_t)snprintf(_buf, sizeof(_buf), _fmt, ## __VA_ARGS__) >= (sizeof(_buf) - 1)) { \ + fprintf(stderr, _err"\n", _buf); \ + abort(); \ + } \ + } while (0) + +#ifdef _WIN32 +# define ENV_SET(_env, _dir, _meta) \ + char _meta[PATH_MAX + 128]; \ + if (_env) { \ + s = getenv(_env); \ + if (!s) s = home; \ + } else s = home; \ + if (_dir) FATAL_SNPRINTF(_meta, "vpath string '%s' truncated - fatal", "%s\\%s", s, (char *)_dir); \ + else FATAL_SNPRINTF(_meta, "vpath string '%s' truncated - fatal", "%s\\", s); \ + (&user)->_meta = _meta; + + ENV_SET(NULL, "Desktop", desktop); + ENV_SET(NULL, "Documents", documents); + ENV_SET(NULL, "Downloads", downloads); + ENV_SET(NULL, "Music", music); + ENV_SET(NULL, "Pictures", pictures); + ENV_SET("CommonProgramFiles", NULL, pub); + ENV_SET("APPDATA", "Microsoft\\Windows\\Templates", templates); + ENV_SET(NULL, "Videos", videos); + ENV_SET("LOCALAPPDATA", NULL, data); + ENV_SET("LOCALAPPDATA", "Temp", tmp); + ENV_SET("APPDATA", NULL, config); + ENV_SET("LOCALAPPDATA", NULL, cache); + if (!(s = getenv("APPDATA"))) + user.run = NULL; + else + user.run = s; +#else /* _WIN32 */ # if defined(HAVE_GETUID) && defined(HAVE_GETEUID) # define ENV_HOME_SET(_env, _dir, _meta) \ char _meta [PATH_MAX + 128]; \ if ((getuid() != geteuid()) || (!(s = getenv(_env)))) { \ - snprintf(_meta, sizeof(_meta), "%s/"_dir, home); \ + FATAL_SNPRINTF(_meta, "vpath string '%s' truncated - fatal", "%s/"_dir, home); \ s = _meta; \ } \ (&user)->_meta = s; -#else +# else # define ENV_HOME_SET(_env, _dir, _meta) \ char _meta [PATH_MAX + 128]; \ if (!(s = getenv(_env))) { \ - snprintf(_meta, sizeof(_meta), "%s/"_dir, home); \ + FATAL_SNPRINTF(_meta, "vpath string '%s' truncated - fatal", "%s/"_dir, home); \ s = _meta; \ } \ (&user)->_meta = s; -#endif +# endif // $XDG_DESKTOP_DIR="$HOME/Desktop" ENV_HOME_SET("XDG_DESKTOP_DIR", "Desktop", desktop); // $XDG_DOCUMENTS_DIR="$HOME/Documents" @@ -71,14 +105,15 @@ eina_xdg_env_init(void) // $HOME/.cache should be used. ENV_HOME_SET("XDG_CACHE_HOME", ".cache", cache); -#if defined(HAVE_GETUID) && defined(HAVE_GETEUID) +# if defined(HAVE_GETUID) && defined(HAVE_GETEUID) if ((getuid() != geteuid()) || (!(s = getenv("XDG_RUNTIME_DIR")))) -#else +# else if (!(s = getenv("XDG_RUNTIME_DIR"))) -#endif +# endif user.run = NULL; else user.run = s; +#endif /* _WIN32 */ eina_vpath_interface_user_set(&user); } diff --git a/src/lib/elementary/.gitignore b/src/lib/elementary/.gitignore index 9076648525..0a04d8032d 100644 --- a/src/lib/elementary/.gitignore +++ b/src/lib/elementary/.gitignore @@ -9,4 +9,4 @@ /eldbus_elementary_colorclass.c /eldbus_elementary_colorclass.h /eldbus_utils.h - +/elm_default_config.x diff --git a/src/lib/elementary/Efl_Ui.h b/src/lib/elementary/Efl_Ui.h index 22e446a998..246ebf8456 100644 --- a/src/lib/elementary/Efl_Ui.h +++ b/src/lib/elementary/Efl_Ui.h @@ -53,41 +53,6 @@ #include #include -#ifdef EAPI -# undef EAPI -#endif -#ifdef EWAPI -# undef EWAPI -#endif - -#ifdef _WIN32 -# ifdef EFL_BUILD -# ifdef DLL_EXPORT -# define EAPI __declspec(dllexport) -# else -# define EAPI -# endif -# else -# define EAPI __declspec(dllimport) -# endif -# define EAPI_WEAK -#else -# ifdef __GNUC__ -# if __GNUC__ >= 4 -# define EAPI __attribute__ ((visibility("default"))) -# define EAPI_WEAK __attribute__ ((weak)) -# else -# define EAPI -# define EAPI_WEAK -# endif -# else -# define EAPI -# define EAPI_WEAK -# endif -#endif - -#define EWAPI EAPI EAPI_WEAK - #ifdef _WIN32 # define WIN32_LEAN_AND_MEAN # include @@ -133,6 +98,41 @@ #include #endif +#ifdef EAPI +# undef EAPI +#endif +#ifdef EWAPI +# undef EWAPI +#endif + +#ifdef _WIN32 +# ifdef EFL_BUILD +# ifdef DLL_EXPORT +# define EAPI __declspec(dllexport) +# else +# define EAPI +# endif +# else +# define EAPI __declspec(dllimport) +# endif +# define EAPI_WEAK +#else +# ifdef __GNUC__ +# if __GNUC__ >= 4 +# define EAPI __attribute__ ((visibility("default"))) +# define EAPI_WEAK __attribute__ ((weak)) +# else +# define EAPI +# define EAPI_WEAK +# endif +# else +# define EAPI +# define EAPI_WEAK +# endif +#endif + +#define EWAPI EAPI EAPI_WEAK + #ifdef __cplusplus extern "C" { #endif diff --git a/src/lib/elementary/Elementary.h b/src/lib/elementary/Elementary.h index 96efada09e..74d1448530 100644 --- a/src/lib/elementary/Elementary.h +++ b/src/lib/elementary/Elementary.h @@ -292,6 +292,7 @@ typedef Eo Efl_Ui_Focus_Manager; # include # include # include +# include # include # include # include diff --git a/src/lib/elementary/efl_page_indicator.c b/src/lib/elementary/efl_page_indicator.c index 57cd2bf9f9..6b0be267b2 100644 --- a/src/lib/elementary/efl_page_indicator.c +++ b/src/lib/elementary/efl_page_indicator.c @@ -42,6 +42,14 @@ _efl_page_indicator_unpack(Eo *obj EINA_UNUSED, pd->curr_idx--; } +EOLIAN static void +_efl_page_indicator_unpack_all(Eo *obj EINA_UNUSED, + Efl_Page_Indicator_Data *pd) +{ + pd->cnt = 0; + pd->curr_idx = -1; +} + EOLIAN static void _efl_page_indicator_bind(Eo *obj EINA_UNUSED, Efl_Page_Indicator_Data *pd, @@ -72,6 +80,7 @@ EOAPI EFL_VOID_FUNC_BODYV(efl_page_indicator_pack, EFL_FUNC_CALL(index), int index) EOAPI EFL_VOID_FUNC_BODYV(efl_page_indicator_unpack, EFL_FUNC_CALL(index), int index) +EOAPI EFL_VOID_FUNC_BODY(efl_page_indicator_unpack_all) #define EFL_PAGE_INDICATOR_EXTRA_OPS \ EFL_OBJECT_OP_FUNC(efl_page_indicator_update, \ @@ -79,6 +88,8 @@ EOAPI EFL_VOID_FUNC_BODYV(efl_page_indicator_unpack, EFL_OBJECT_OP_FUNC(efl_page_indicator_pack, \ _efl_page_indicator_pack), \ EFL_OBJECT_OP_FUNC(efl_page_indicator_unpack, \ - _efl_page_indicator_unpack) + _efl_page_indicator_unpack), \ + EFL_OBJECT_OP_FUNC(efl_page_indicator_unpack_all, \ + _efl_page_indicator_unpack_all) #include "efl_page_indicator.eo.c" diff --git a/src/lib/elementary/efl_page_indicator_icon.c b/src/lib/elementary/efl_page_indicator_icon.c index 3c9c54e75e..55326cfdd6 100644 --- a/src/lib/elementary/efl_page_indicator_icon.c +++ b/src/lib/elementary/efl_page_indicator_icon.c @@ -109,6 +109,22 @@ _efl_page_indicator_icon_unpack(Eo *obj, } } +EOLIAN static void +_efl_page_indicator_icon_unpack_all(Eo *obj, + Efl_Page_Indicator_Icon_Data *pd) +{ + Eo *item; + + EINA_LIST_FREE(pd->items, item) + { + efl_del(item); + } + + pd->curr = NULL; + + efl_page_indicator_unpack_all(efl_super(obj, MY_CLASS)); +} + EOLIAN static void _efl_page_indicator_icon_efl_page_indicator_bind(Eo *obj, Efl_Page_Indicator_Icon_Data *pd, @@ -168,6 +184,8 @@ _efl_page_indicator_icon_efl_page_indicator_bind(Eo *obj, EFL_OBJECT_OP_FUNC(efl_page_indicator_pack, \ _efl_page_indicator_icon_pack), \ EFL_OBJECT_OP_FUNC(efl_page_indicator_unpack, \ - _efl_page_indicator_icon_unpack) + _efl_page_indicator_icon_unpack), \ + EFL_OBJECT_OP_FUNC(efl_page_indicator_unpack_all, \ + _efl_page_indicator_icon_unpack_all) #include "efl_page_indicator_icon.eo.c" diff --git a/src/lib/elementary/efl_page_transition.c b/src/lib/elementary/efl_page_transition.c index 3740a6996d..f6d73a2c10 100644 --- a/src/lib/elementary/efl_page_transition.c +++ b/src/lib/elementary/efl_page_transition.c @@ -71,6 +71,14 @@ _efl_page_transition_pack(Eo *obj EINA_UNUSED, } +EOLIAN static void +_efl_page_transition_unpack_all(Eo *obj EINA_UNUSED, + Efl_Page_Transition_Data *pd EINA_UNUSED, + int index EINA_UNUSED) +{ + +} + EOLIAN static void _efl_page_transition_curr_page_change(Eo *obj EINA_UNUSED, Efl_Page_Transition_Data *pd EINA_UNUSED, @@ -94,6 +102,7 @@ EOAPI EFL_VOID_FUNC_BODYV(efl_page_transition_update, EFL_FUNC_CALL(move), double move) EOAPI EFL_VOID_FUNC_BODYV(efl_page_transition_pack, EFL_FUNC_CALL(index), int index) +EOAPI EFL_VOID_FUNC_BODY(efl_page_transition_unpack_all) EOAPI EFL_VOID_FUNC_BODYV(efl_page_transition_curr_page_change, EFL_FUNC_CALL(diff), int diff) EOAPI EFL_VOID_FUNC_BODYV(efl_page_transition_page_size_set, @@ -109,6 +118,8 @@ EOAPI EFL_FUNC_BODYV(efl_page_transition_loop_set, Eina_Bool, 0, _efl_page_transition_update), \ EFL_OBJECT_OP_FUNC(efl_page_transition_pack, \ _efl_page_transition_pack), \ + EFL_OBJECT_OP_FUNC(efl_page_transition_unpack_all, \ + _efl_page_transition_unpack_all), \ EFL_OBJECT_OP_FUNC(efl_page_transition_curr_page_change, \ _efl_page_transition_curr_page_change), \ EFL_OBJECT_OP_FUNC(efl_page_transition_page_size_set, \ diff --git a/src/lib/elementary/efl_page_transition_scroll.c b/src/lib/elementary/efl_page_transition_scroll.c index 5c5cb9aa11..3908710cc6 100644 --- a/src/lib/elementary/efl_page_transition_scroll.c +++ b/src/lib/elementary/efl_page_transition_scroll.c @@ -412,6 +412,24 @@ _efl_page_transition_scroll_pack(Eo *obj, _efl_page_transition_scroll_update(obj, pd, 0.0); } +EOLIAN static void +_efl_page_transition_scroll_unpack_all(Eo *obj EINA_UNUSED, + Efl_Page_Transition_Scroll_Data *pd) +{ + Eina_List *list; + Page_Info *pi; + + EINA_LIST_FOREACH(pd->page_infos, list, pi) + { + efl_pack_unpack(pi->obj, pi->content); + + pi->content_num = -1; + pi->content = NULL; + pi->visible = EINA_FALSE; + } + return; +} + EOLIAN static void _efl_page_transition_scroll_curr_page_change(Eo *obj EINA_UNUSED, Efl_Page_Transition_Scroll_Data *pd, @@ -656,6 +674,8 @@ _efl_page_transition_scroll_efl_object_invalidate(Eo *obj, _efl_page_transition_scroll_update), \ EFL_OBJECT_OP_FUNC(efl_page_transition_pack, \ _efl_page_transition_scroll_pack), \ + EFL_OBJECT_OP_FUNC(efl_page_transition_unpack_all, \ + _efl_page_transition_scroll_unpack_all), \ EFL_OBJECT_OP_FUNC(efl_page_transition_curr_page_change, \ _efl_page_transition_scroll_curr_page_change), \ EFL_OBJECT_OP_FUNC(efl_page_transition_page_size_set, \ diff --git a/src/lib/elementary/efl_ui_alert_popup.c b/src/lib/elementary/efl_ui_alert_popup.c index 1fe6f55a34..e7eac4a955 100644 --- a/src/lib/elementary/efl_ui_alert_popup.c +++ b/src/lib/elementary/efl_ui_alert_popup.c @@ -242,8 +242,6 @@ _efl_ui_alert_popup_efl_object_constructor(Eo *obj, obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME); - elm_widget_sub_object_parent_add(obj); - return obj; } diff --git a/src/lib/elementary/efl_ui_anchor_popup.c b/src/lib/elementary/efl_ui_anchor_popup.c index a02e6a8b2b..ec0573be4c 100644 --- a/src/lib/elementary/efl_ui_anchor_popup.c +++ b/src/lib/elementary/efl_ui_anchor_popup.c @@ -330,8 +330,6 @@ _efl_ui_anchor_popup_efl_object_constructor(Eo *obj, obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME); - elm_widget_sub_object_parent_add(obj); - pd->priority[0] = EFL_UI_POPUP_ALIGN_TOP; pd->priority[1] = EFL_UI_POPUP_ALIGN_LEFT; pd->priority[2] = EFL_UI_POPUP_ALIGN_RIGHT; diff --git a/src/lib/elementary/efl_ui_bg.c b/src/lib/elementary/efl_ui_bg.c index aea33a086a..88d5ef7eb1 100644 --- a/src/lib/elementary/efl_ui_bg.c +++ b/src/lib/elementary/efl_ui_bg.c @@ -29,7 +29,6 @@ _efl_ui_bg_efl_object_constructor(Eo *obj, Efl_Ui_Bg_Data *pd) elm_widget_theme_klass_set(obj, "bg"); obj = efl_constructor(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_FALSE); if (elm_widget_theme_object_set(obj, wd->resize_obj, diff --git a/src/lib/elementary/efl_ui_box.c b/src/lib/elementary/efl_ui_box.c index eec5a645d8..ce3304132d 100644 --- a/src/lib/elementary/efl_ui_box.c +++ b/src/lib/elementary/efl_ui_box.c @@ -7,86 +7,102 @@ * - removed transition stuff (TODO: add back - needs clean API first) */ -static const char SIG_CHILD_ADDED[] = "child,added"; -static const char SIG_CHILD_REMOVED[] = "child,removed"; -static const Evas_Smart_Cb_Description _smart_callbacks[] = { - {SIG_CHILD_ADDED, ""}, - {SIG_CHILD_REMOVED, ""}, - {NULL, NULL} -}; +#define EFL_UI_BOX_DATA_GET(o, sd) \ + Efl_Ui_Box_Data *sd = efl_data_scope_get(o, EFL_UI_BOX_CLASS) + +void _efl_ui_box_custom_layout(Efl_Ui_Box *ui_box, Efl_Ui_Box_Data *pd); static void -_child_added_cb_proxy(void *data, const Efl_Event *event) +_on_child_size_changed(void *data, const Efl_Event *event EINA_UNUSED) { - Evas_Object *box = data; - Evas_Object_Box_Option *opt = event->info; - - efl_event_callback_legacy_call(box, EFL_CONTAINER_EVENT_CONTENT_ADDED, opt->obj); + Eo *box = data; + efl_pack_layout_request(box); } static void -_child_removed_cb_proxy(void *data, const Efl_Event *event) +_on_child_del(void *data, const Efl_Event *event) { - Evas_Object *box = data; - Evas_Object *child = event->info; + Eo *box = data; + EFL_UI_BOX_DATA_GET(box, sd); - efl_event_callback_legacy_call(box, EFL_CONTAINER_EVENT_CONTENT_REMOVED, child); + sd->children = eina_list_remove(sd->children, event->object); + + efl_pack_layout_request(box); } static void -_sizing_eval(Evas_Object *obj, Efl_Ui_Box_Data *sd) +_on_child_hints_changed(void *data, const Efl_Event *event EINA_UNUSED) { - Evas_Coord minw = -1, minh = -1, maxw = -1, maxh = -1; - Evas_Coord w, h; + Eo *box = data; + efl_pack_layout_request(box); +} - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); +EFL_CALLBACKS_ARRAY_DEFINE(efl_ui_box_callbacks, + { EFL_GFX_ENTITY_EVENT_SIZE_CHANGED, _on_child_size_changed }, + { EFL_GFX_ENTITY_EVENT_HINTS_CHANGED, _on_child_hints_changed }, + { EFL_EVENT_DEL, _on_child_del } +); - if (!efl_alive_get(obj)) return; - if (sd->delete_me) - return; +static inline Eina_Bool +_efl_ui_box_child_register(Eo *obj, Efl_Ui_Box_Data *pd, Efl_Gfx_Entity *subobj) +{ + if (!subobj || (efl_canvas_object_render_parent_get(subobj) == obj)) + { + ERR("subobj %p %s is already added to this", subobj, efl_class_name_get(subobj) ); + return EINA_FALSE; + } - evas_object_size_hint_combined_min_get(wd->resize_obj, &minw, &minh); - evas_object_size_hint_max_get(wd->resize_obj, &maxw, &maxh); - evas_object_size_hint_min_set(obj, minw, minh); - evas_object_size_hint_max_set(obj, maxw, maxh); + if (!efl_ui_widget_sub_object_add(obj, subobj)) + return EINA_FALSE; - 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); + efl_key_data_set(subobj, "_elm_leaveme", obj); + efl_canvas_group_member_add(obj, subobj); + efl_canvas_object_clipper_set(subobj, pd->clipper); + efl_pack_layout_request(obj); + + efl_event_callback_array_add(subobj, efl_ui_box_callbacks(), obj); + efl_event_callback_call(obj, EFL_CONTAINER_EVENT_CONTENT_ADDED, subobj); + + return EINA_TRUE; +} + +static inline Eina_Bool +_efl_ui_box_child_unregister(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED, Efl_Gfx_Entity *subobj) +{ + if (efl_canvas_object_render_parent_get(subobj) != obj) + { + ERR("subobj %p %s is not part of this widget", subobj, efl_class_name_get(subobj) ); + return EINA_FALSE; + } + if (!subobj || !_elm_widget_sub_object_redirect_to_top(obj, subobj)) + return EINA_FALSE; + + efl_canvas_group_member_remove(obj, subobj); + efl_canvas_object_clipper_set(subobj, NULL); + efl_key_data_set(subobj, "_elm_leaveme", NULL); + efl_pack_layout_request(obj); + + efl_event_callback_array_del(subobj, efl_ui_box_callbacks(), obj); + efl_event_callback_call(obj, EFL_CONTAINER_EVENT_CONTENT_REMOVED, subobj); + + return EINA_TRUE; } static void -_on_size_hints_changed(void *data, Evas *e EINA_UNUSED, - Evas_Object *resizeobj, void *event_info EINA_UNUSED) +_efl_ui_box_size_hints_changed_cb(void *data EINA_UNUSED, const Efl_Event *ev) { - Efl_Ui_Box *obj = data; - Efl_Ui_Box_Data *pd = efl_data_scope_get(obj, EFL_UI_BOX_CLASS); - - if (obj == resizeobj) - efl_pack_layout_request(obj); - else - _sizing_eval(data, pd); -} - -static void -_evas_box_custom_layout(Evas_Object *evas_box EINA_UNUSED, - Evas_Object_Box_Data *bd EINA_UNUSED, void *data) -{ - Efl_Ui_Box *obj = data; - - efl_pack_layout_update(obj); + efl_pack_layout_request(ev->object); } EOLIAN static void _efl_ui_box_homogeneous_set(Eo *obj, Efl_Ui_Box_Data *pd, Eina_Bool homogeneous) { - if (pd->homogeneous == !!homogeneous) + homogeneous = !!homogeneous; + + if (pd->homogeneous == homogeneous) return; - pd->homogeneous = !!homogeneous; + pd->homogeneous = homogeneous; efl_pack_layout_request(obj); } @@ -97,74 +113,54 @@ _efl_ui_box_homogeneous_get(const Eo *obj EINA_UNUSED, Efl_Ui_Box_Data *pd) } EOLIAN static void -_efl_ui_box_efl_pack_layout_layout_update(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED) +_efl_ui_box_efl_pack_layout_layout_update(Eo *obj, Efl_Ui_Box_Data *pd) { - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - Evas_Object_Box_Data *bd; - - bd = evas_object_smart_data_get(wd->resize_obj); - _efl_ui_box_custom_layout(obj, bd); - efl_event_callback_legacy_call(obj, EFL_PACK_EVENT_LAYOUT_UPDATED, NULL); + _efl_ui_box_custom_layout(obj, pd); } EOLIAN static void -_efl_ui_box_efl_canvas_group_group_calculate(Eo *obj, Efl_Ui_Box_Data *pd) +_efl_ui_box_efl_canvas_group_group_calculate(Eo *obj, Efl_Ui_Box_Data *_pd EINA_UNUSED) { - if (pd->recalc) return; - - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - evas_object_smart_need_recalculate_set(wd->resize_obj, EINA_TRUE); - pd->recalc = EINA_TRUE; - evas_object_smart_calculate(wd->resize_obj); - pd->recalc = EINA_FALSE; + efl_pack_layout_update(obj); } EOLIAN static void -_efl_ui_box_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Box_Data *_pd EINA_UNUSED) +_efl_ui_box_efl_gfx_entity_size_set(Eo *obj, Efl_Ui_Box_Data *_pd EINA_UNUSED, Eina_Size2D sz) { - Evas *e = evas_object_evas_get(obj); + efl_gfx_entity_size_set(efl_super(obj, MY_CLASS), sz); + efl_canvas_group_change(obj); +} - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - elm_widget_resize_object_set(obj, evas_object_box_add(e)); - evas_object_box_layout_set(wd->resize_obj, _evas_box_custom_layout, obj, NULL); +EOLIAN static void +_efl_ui_box_efl_gfx_entity_position_set(Eo *obj, Efl_Ui_Box_Data *_pd EINA_UNUSED, Eina_Position2D pos) +{ + efl_gfx_entity_position_set(efl_super(obj, MY_CLASS), pos); + efl_canvas_group_change(obj); +} - evas_object_event_callback_add(wd->resize_obj, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _on_size_hints_changed, obj); - evas_object_event_callback_add(obj, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _on_size_hints_changed, obj); +EOLIAN static void +_efl_ui_box_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Box_Data *pd) +{ + pd->clipper = efl_add(EFL_CANVAS_RECTANGLE_CLASS, obj); + evas_object_static_clip_set(pd->clipper, EINA_TRUE); + efl_gfx_entity_geometry_set(pd->clipper, EINA_RECT(-49999, -49999, 99999, 99999)); + efl_canvas_group_member_add(obj, pd->clipper); + efl_ui_widget_sub_object_add(obj, pd->clipper); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); - efl_event_callback_add(wd->resize_obj, EVAS_BOX_EVENT_CHILD_ADDED, _child_added_cb_proxy, obj); - efl_event_callback_add(wd->resize_obj, EVAS_BOX_EVENT_CHILD_REMOVED, _child_removed_cb_proxy, obj); - - elm_widget_can_focus_set(obj, EINA_FALSE); + efl_ui_widget_focus_allow_set(obj, EINA_FALSE); elm_widget_highlight_ignore_set(obj, EINA_TRUE); + + efl_event_callback_add(obj, EFL_GFX_ENTITY_EVENT_HINTS_CHANGED, + _efl_ui_box_size_hints_changed_cb, NULL); } EOLIAN static void -_efl_ui_box_efl_canvas_group_group_del(Eo *obj, Efl_Ui_Box_Data *sd) +_efl_ui_box_efl_canvas_group_group_del(Eo *obj, Efl_Ui_Box_Data *_pd EINA_UNUSED) { - Eina_List *l; - Evas_Object *child; - - sd->delete_me = EINA_TRUE; - - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - evas_object_event_callback_del_full - (wd->resize_obj, EVAS_CALLBACK_CHANGED_SIZE_HINTS, - _on_size_hints_changed, obj); - - /* let's make our box object the *last* to be processed, since it - * may (smart) parent other sub objects here */ - EINA_LIST_FOREACH (wd->subobjs, l, child) - { - if (child == wd->resize_obj) - { - wd->subobjs = - eina_list_demote_list(wd->subobjs, l); - break; - } - } + efl_event_callback_del(obj, EFL_GFX_ENTITY_EVENT_HINTS_CHANGED, + _efl_ui_box_size_hints_changed_cb, NULL); efl_canvas_group_del(efl_super(obj, MY_CLASS)); } @@ -174,10 +170,10 @@ _efl_ui_box_efl_object_constructor(Eo *obj, Efl_Ui_Box_Data *pd) { obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME); - evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); efl_access_object_access_type_set(obj, EFL_ACCESS_TYPE_SKIPPED); efl_access_object_role_set(obj, EFL_ACCESS_ROLE_FILLER); + pd->dir = EFL_UI_DIR_VERTICAL; pd->align.h = 0.5; pd->align.v = 0.5; @@ -187,48 +183,34 @@ _efl_ui_box_efl_object_constructor(Eo *obj, Efl_Ui_Box_Data *pd) /* CLEAN API BELOW */ EOLIAN static int -_efl_ui_box_efl_container_content_count(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED) +_efl_ui_box_efl_container_content_count(Eo *obj EINA_UNUSED, Efl_Ui_Box_Data *pd) { - Evas_Object_Box_Data *bd; - - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, 0); - - bd = evas_object_smart_data_get(wd->resize_obj); - return bd ? eina_list_count(bd->children) : 0; + return eina_list_count(pd->children); } EOLIAN static Eina_Bool _efl_ui_box_efl_pack_pack_clear(Eo *obj, Efl_Ui_Box_Data *pd) { - Eina_Bool ret; + Eo *child; + EINA_LIST_FREE(pd->children, child) + { + efl_event_callback_array_del(child, efl_ui_box_callbacks(), obj); + efl_del(child); + } - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); + efl_pack_layout_request(obj); - ret = evas_object_box_remove_all(wd->resize_obj, EINA_TRUE); - _sizing_eval(obj, pd); - - return ret; + return EINA_TRUE; } EOLIAN static Eina_Bool _efl_ui_box_efl_pack_unpack_all(Eo *obj, Efl_Ui_Box_Data *pd) { - Evas_Object_Box_Data *bd; - Evas_Object_Box_Option *opt; - Eina_List *l; - Eina_Bool ret; + Eo *child; + Eina_Bool ret = EINA_TRUE; - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); - - /* set this to block _sizing_eval() calls */ - pd->delete_me = EINA_TRUE; - bd = evas_object_smart_data_get(wd->resize_obj); - EINA_LIST_FOREACH(bd->children, l, opt) - _elm_widget_sub_object_redirect_to_top(obj, opt->obj); - pd->delete_me = EINA_FALSE; - - ret = evas_object_box_remove_all(wd->resize_obj, EINA_FALSE); - _sizing_eval(obj, pd); + EINA_LIST_FREE(pd->children, child) + ret &= _efl_ui_box_child_unregister(obj, pd, child); return ret; } @@ -236,16 +218,12 @@ _efl_ui_box_efl_pack_unpack_all(Eo *obj, Efl_Ui_Box_Data *pd) EOLIAN static Eina_Bool _efl_ui_box_efl_pack_unpack(Eo *obj, Efl_Ui_Box_Data *pd, Efl_Gfx_Entity *subobj) { - Eina_Bool ret = EINA_FALSE; - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); + if (!_efl_ui_box_child_unregister(obj, pd, subobj)) + return EINA_FALSE; - if (evas_object_box_remove(wd->resize_obj, subobj)) - { - ret = _elm_widget_sub_object_redirect_to_top(obj, subobj); - _sizing_eval(obj, pd); - } + pd->children = eina_list_remove(pd->children, subobj); - return ret; + return EINA_TRUE; } EOLIAN static Eina_Bool @@ -255,133 +233,91 @@ _efl_ui_box_efl_pack_pack(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED, Efl_Gfx_Enti } EOLIAN static Eina_Bool -_efl_ui_box_efl_pack_linear_pack_end(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED, Efl_Gfx_Entity *subobj) +_efl_ui_box_efl_pack_linear_pack_end(Eo *obj, Efl_Ui_Box_Data *pd, Efl_Gfx_Entity *subobj) { - Eina_Bool ret; - - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); - - ret = elm_widget_sub_object_add(obj, subobj); - ret &= (evas_object_box_append(wd->resize_obj, subobj) != NULL); - - return ret; -} - -EOLIAN static Eina_Bool -_efl_ui_box_efl_pack_linear_pack_begin(Eo *obj, Efl_Ui_Box_Data *_pd EINA_UNUSED, Efl_Gfx_Entity *subobj) -{ - Eina_Bool ret; - - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); - - ret = elm_widget_sub_object_add(obj, subobj); - ret &= (evas_object_box_prepend(wd->resize_obj, subobj) != NULL); - - return ret; -} - -EOLIAN static Eina_Bool -_efl_ui_box_efl_pack_linear_pack_before(Eo *obj, Efl_Ui_Box_Data *_pd EINA_UNUSED, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing) -{ - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); - - if (!elm_widget_sub_object_add(obj, subobj)) + if (!_efl_ui_box_child_register(obj, pd, subobj)) return EINA_FALSE; - if (!evas_object_box_insert_before(wd->resize_obj, subobj, existing)) - { - elm_widget_sub_object_del(obj, subobj); - return EINA_FALSE; - } + pd->children = eina_list_append(pd->children, subobj); return EINA_TRUE; } EOLIAN static Eina_Bool -_efl_ui_box_efl_pack_linear_pack_after(Eo *obj, Efl_Ui_Box_Data *_pd EINA_UNUSED, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing) +_efl_ui_box_efl_pack_linear_pack_begin(Eo *obj, Efl_Ui_Box_Data *pd, Efl_Gfx_Entity *subobj) { - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); - - if (!elm_widget_sub_object_add(obj, subobj)) + if (!_efl_ui_box_child_register(obj, pd, subobj)) return EINA_FALSE; - if (!evas_object_box_insert_after(wd->resize_obj, subobj, existing)) - { - elm_widget_sub_object_del(obj, subobj); - return EINA_FALSE; - } + pd->children = eina_list_prepend(pd->children, subobj); return EINA_TRUE; } EOLIAN static Eina_Bool -_efl_ui_box_efl_pack_linear_pack_at(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED, - Efl_Gfx_Entity *subobj, int index) +_efl_ui_box_efl_pack_linear_pack_before(Eo *obj, Efl_Ui_Box_Data *pd, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing) { - if (!index) + if (!_efl_ui_box_child_register(obj, pd, subobj)) + return EINA_FALSE; + + pd->children = eina_list_prepend_relative(pd->children, subobj, existing); + + return EINA_TRUE; +} + +EOLIAN static Eina_Bool +_efl_ui_box_efl_pack_linear_pack_after(Eo *obj, Efl_Ui_Box_Data *pd, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing) +{ + if (!_efl_ui_box_child_register(obj, pd, subobj)) + return EINA_FALSE; + + pd->children = eina_list_append_relative(pd->children, subobj, existing); + + return EINA_TRUE; +} + +EOLIAN static Eina_Bool +_efl_ui_box_efl_pack_linear_pack_at(Eo *obj, Efl_Ui_Box_Data *pd, Efl_Gfx_Entity *subobj, int index) +{ + int count = eina_list_count(pd->children); + + if (index < -count) return efl_pack_begin(obj, subobj); - else if (index == -1) + + if (index >= count) return efl_pack_end(obj, subobj); - else - { - Evas_Object_Box_Data *bd; - int cnt; - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); + if (index < 0) + index += count; - bd = evas_object_smart_data_get(wd->resize_obj); - cnt = eina_list_count(bd ? bd->children : NULL); - if (!cnt) - index = 0; - else - { - index %= cnt; - if (index < 0) index += cnt; - } - return (evas_object_box_insert_at(wd->resize_obj, subobj, index) != NULL); - } -} + if (!_efl_ui_box_child_register(obj, pd, subobj)) + return EINA_FALSE; -static inline Efl_Gfx_Entity * -_box_item(Evas_Object_Box_Option *opt) -{ - return opt ? opt->obj : NULL; + pd->children = eina_list_prepend_relative_list(pd->children, subobj, + eina_list_nth_list(pd->children, index)); + + return EINA_TRUE; } EOLIAN static Efl_Gfx_Entity * -_efl_ui_box_efl_pack_linear_pack_content_get(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED, - int index) +_efl_ui_box_efl_pack_linear_pack_content_get(Eo *obj EINA_UNUSED, Efl_Ui_Box_Data *pd, int index) { - Evas_Object_Box_Data *bd; - int cnt; + int count = eina_list_count(pd->children); - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); - bd = evas_object_smart_data_get(wd->resize_obj); - if (!bd || !bd->children) return NULL; + if (index <= -count) + return eina_list_data_get(pd->children); - if (!index) - return _box_item(eina_list_data_get(bd->children)); - else if (index == -1) - return _box_item(eina_list_last_data_get(bd->children)); + if (index >= count) + return eina_list_last_data_get(pd->children); - cnt = eina_list_count(bd->children); - if (!cnt) return NULL; + if (index < 0) + index += count; - if (index >= (cnt - 1)) - return _box_item(eina_list_last_data_get(bd->children)); - else if (index <= (-cnt)) - return _box_item(eina_list_data_get(bd->children)); - - // this should loop only once - while (index < 0) - index += cnt; - - return _box_item(eina_list_nth(bd->children, index)); + return eina_list_nth(pd->children, index); } EOLIAN static Efl_Gfx_Entity * -_efl_ui_box_efl_pack_linear_pack_unpack_at(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED, - int index) +_efl_ui_box_efl_pack_linear_pack_unpack_at(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED, int index) { Efl_Gfx_Entity *content; @@ -395,90 +331,28 @@ _efl_ui_box_efl_pack_linear_pack_unpack_at(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNU } EOLIAN static int -_efl_ui_box_efl_pack_linear_pack_index_get(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED, - const Efl_Gfx_Entity *subobj) +_efl_ui_box_efl_pack_linear_pack_index_get(Eo *obj EINA_UNUSED, Efl_Ui_Box_Data *pd, const Efl_Gfx_Entity *subobj) { - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, -1); - Evas_Object_Box_Data *bd; - Evas_Object_Box_Option *opt; - Eina_List *l; - int k = 0; - - if (evas_object_smart_parent_get(subobj) != wd->resize_obj) - goto end; - - bd = evas_object_smart_data_get(wd->resize_obj); - EINA_LIST_FOREACH(bd->children, l, opt) - { - if (opt->obj == subobj) - return k; - k++; - } - -end: - ERR("object %p (%s) is not a child of %p (%s)", - subobj, efl_class_name_get(subobj), obj, efl_class_name_get(obj)); - return -1; + return eina_list_data_idx(pd->children, (Efl_Gfx_Entity *)subobj); } EOLIAN static void _efl_ui_box_efl_pack_layout_layout_request(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED) { - evas_object_smart_need_recalculate_set(obj, EINA_TRUE); -} - -static Eina_Bool -_box_item_iterator_next(Box_Item_Iterator *it, void **data) -{ - Efl_Gfx_Entity *sub; - - if (!eina_iterator_next(it->real_iterator, (void **) &sub)) - return EINA_FALSE; - - if (data) *data = sub; - return EINA_TRUE; -} - -static Eo * -_box_item_iterator_get_container(Box_Item_Iterator *it) -{ - return it->object; -} - -static void -_box_item_iterator_free(Box_Item_Iterator *it) -{ - eina_iterator_free(it->real_iterator); - eina_list_free(it->list); - free(it); + efl_canvas_group_need_recalculate_set(obj, EINA_TRUE); } EOLIAN static Eina_Iterator * -_efl_ui_box_efl_container_content_iterate(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED) +_efl_ui_box_efl_container_content_iterate(Eo *obj EINA_UNUSED, Efl_Ui_Box_Data *pd) { - Box_Item_Iterator *it; - - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); - - it = calloc(1, sizeof(*it)); - if (!it) return NULL; - - EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); - - it->list = evas_object_box_children_get(wd->resize_obj); - it->real_iterator = eina_list_iterator_new(it->list); - it->iterator.version = EINA_ITERATOR_VERSION; - it->iterator.next = FUNC_ITERATOR_NEXT(_box_item_iterator_next); - it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER(_box_item_iterator_get_container); - it->iterator.free = FUNC_ITERATOR_FREE(_box_item_iterator_free); - it->object = obj; - - return &it->iterator; + return eina_list_iterator_new(pd->children); } EOLIAN static void _efl_ui_box_efl_ui_direction_direction_set(Eo *obj, Efl_Ui_Box_Data *pd, Efl_Ui_Dir dir) { + if (pd->dir == dir) return; + switch (dir) { case EFL_UI_DIR_RTL: @@ -510,28 +384,24 @@ _efl_ui_box_efl_ui_direction_direction_get(const Eo *obj EINA_UNUSED, Efl_Ui_Box EOLIAN static void _efl_ui_box_efl_pack_pack_padding_set(Eo *obj, Efl_Ui_Box_Data *pd, double h, double v, Eina_Bool scalable) { - - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - + scalable = !!scalable; if (h < 0) h = 0; if (v < 0) v = 0; + + if (EINA_DBL_EQ(pd->pad.h, h) && EINA_DBL_EQ(pd->pad.v, v) && + (pd->pad.scalable == scalable)) + return; + pd->pad.h = h; pd->pad.v = v; - pd->pad.scalable = !!scalable; - if (pd->pad.scalable) - { - double scale = elm_object_scale_get(obj); - evas_object_box_padding_set(wd->resize_obj, h * scale, v * scale); - } - else - evas_object_box_padding_set(wd->resize_obj, h, v); + pd->pad.scalable = scalable; + + efl_pack_layout_request(obj); } EOLIAN static void -_efl_ui_box_efl_pack_pack_padding_get(const Eo *obj, Efl_Ui_Box_Data *pd, double *h, double *v, Eina_Bool *scalable) +_efl_ui_box_efl_pack_pack_padding_get(const Eo *obj EINA_UNUSED, Efl_Ui_Box_Data *pd, double *h, double *v, Eina_Bool *scalable) { - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - if (scalable) *scalable = pd->pad.scalable; if (h) *h = pd->pad.h; if (v) *v = pd->pad.v; @@ -540,16 +410,17 @@ _efl_ui_box_efl_pack_pack_padding_get(const Eo *obj, Efl_Ui_Box_Data *pd, double EOLIAN static void _efl_ui_box_efl_pack_pack_align_set(Eo *obj, Efl_Ui_Box_Data *pd, double h, double v) { - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - if (h < 0) h = -1; + else if (h > 1) h = 1; if (v < 0) v = -1; - if (h > 1) h = 1; - if (v > 1) v = 1; + else if (v > 1) v = 1; + + if (EINA_DBL_EQ(pd->align.h, h) && EINA_DBL_EQ(pd->align.v, v)) + return; + pd->align.h = h; pd->align.v = v; - evas_object_box_align_set(wd->resize_obj, h, v); efl_pack_layout_request(obj); } diff --git a/src/lib/elementary/efl_ui_box.eo b/src/lib/elementary/efl_ui_box.eo index 6ec2da277f..5e5950cd63 100644 --- a/src/lib/elementary/efl_ui_box.eo +++ b/src/lib/elementary/efl_ui_box.eo @@ -30,6 +30,8 @@ class @beta Efl.Ui.Box extends Efl.Ui.Widget implements Efl.Pack_Linear, Efl.Pac implements { Efl.Object.constructor; Efl.Canvas.Group.group_calculate; + Efl.Gfx.Entity.position { set; } + Efl.Gfx.Entity.size { set; } Efl.Container.content_iterate; Efl.Container.content_count; Efl.Ui.Direction.direction { get; set; } diff --git a/src/lib/elementary/efl_ui_box_flow.c b/src/lib/elementary/efl_ui_box_flow.c index 38bcb7d626..2600acffd9 100644 --- a/src/lib/elementary/efl_ui_box_flow.c +++ b/src/lib/elementary/efl_ui_box_flow.c @@ -63,18 +63,14 @@ _row_weight_sort_cb(const void *l1, const void *l2) EOLIAN static void _efl_ui_box_flow_efl_pack_layout_layout_update(Eo *obj, Efl_Ui_Box_Flow_Data *pd EINA_UNUSED) { - Evas_Object_Box_Data *bd; - - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - bd = efl_data_scope_get(wd->resize_obj, EVAS_BOX_CLASS); - Efl_Ui_Box_Data *bcd = efl_data_scope_get(obj, EFL_UI_BOX_CLASS); - Evas_Object_Box_Option *opt; + Efl_Ui_Box_Data *bd = efl_data_scope_get(obj, EFL_UI_BOX_CLASS); + Eo *child; Eina_List *li; Eina_Inlist *inlist = NULL; Item_Calc *items, *item; Row_Calc *rows, *row; Efl_Ui_Container_Item_Hints *hints, *hint; - Eina_Bool axis = !efl_ui_dir_is_horizontal(bcd->dir, EINA_FALSE); + Eina_Bool axis = !efl_ui_dir_is_horizontal(bd->dir, EINA_FALSE); Eina_Bool c_axis = !axis; int want[2] = { 0, 0 }; int rc = 0, count, i = 0, id, item_last = 0; @@ -84,7 +80,7 @@ _efl_ui_box_flow_efl_pack_layout_layout_update(Eo *obj, Efl_Ui_Box_Flow_Data *pd count = eina_list_count(bd->children); if (!count) { - efl_gfx_hint_size_min_set(obj, EINA_SIZE2D(0, 0)); + efl_gfx_hint_size_restricted_min_set(obj, EINA_SIZE2D(0, 0)); return; } @@ -99,20 +95,20 @@ _efl_ui_box_flow_efl_pack_layout_layout_update(Eo *obj, Efl_Ui_Box_Flow_Data *pd #endif // scan all items, get their properties, calculate total weight & min size - EINA_LIST_FOREACH(bd->children, li, opt) + EINA_LIST_FOREACH(bd->children, li, child) { item = &items[i++]; - item->obj = opt->obj; + item->obj = child; hints = item->hints; _efl_ui_container_layout_item_init(item->obj, hints); - if ((bcd->homogeneous && !axis) || box_calc[0].fill) + if ((bd->homogeneous && !axis) || box_calc[0].fill) hints[0].weight = 1; else if (hints[0].weight < 0) hints[0].weight = 0; - if ((bcd->homogeneous && axis) || box_calc[1].fill) + if ((bd->homogeneous && axis) || box_calc[1].fill) hints[1].weight = 1; else if (hints[1].weight < 0) hints[1].weight = 0; @@ -120,7 +116,7 @@ _efl_ui_box_flow_efl_pack_layout_layout_update(Eo *obj, Efl_Ui_Box_Flow_Data *pd if (want[axis] < hints[axis].space) want[axis] = hints[axis].space; - if (bcd->homogeneous) + if (bd->homogeneous) continue; if (i == 1) @@ -150,7 +146,7 @@ _efl_ui_box_flow_efl_pack_layout_layout_update(Eo *obj, Efl_Ui_Box_Flow_Data *pd } // initialize homogeneous properties - if (bcd->homogeneous) + if (bd->homogeneous) { min_sum = 0; for (i = 0; i < count; i++) @@ -198,7 +194,7 @@ _efl_ui_box_flow_efl_pack_layout_layout_update(Eo *obj, Efl_Ui_Box_Flow_Data *pd cross_min_sum += row->cross_space; cross_weight_sum += row->cross_weight; - if (bcd->homogeneous) + if (bd->homogeneous) continue; if (row->weight_sum > 0) @@ -323,7 +319,7 @@ _efl_ui_box_flow_efl_pack_layout_layout_update(Eo *obj, Efl_Ui_Box_Flow_Data *pd row = item->row; - if (bcd->homogeneous) + if (bd->homogeneous) hints[axis].space = row->hgsize; hints[c_axis].space = row->cross_space; sw = hints[0].space - (hints[0].margin[0] + hints[0].margin[1]); diff --git a/src/lib/elementary/efl_ui_box_layout.c b/src/lib/elementary/efl_ui_box_layout.c index 4cc00e0c48..7240cd012c 100644 --- a/src/lib/elementary/efl_ui_box_layout.c +++ b/src/lib/elementary/efl_ui_box_layout.c @@ -28,10 +28,9 @@ _weight_sort_cb(const void *l1, const void *l2) } void -_efl_ui_box_custom_layout(Efl_Ui_Box *ui_box, Evas_Object_Box_Data *bd) +_efl_ui_box_custom_layout(Efl_Ui_Box *ui_box, Efl_Ui_Box_Data *pd) { - Efl_Ui_Box_Data *pd = efl_data_scope_get(ui_box, EFL_UI_BOX_CLASS); - Evas_Object_Box_Option *opt; + Eo *child; Eina_List *li; Eina_Inlist *inlist = NULL; Item_Calc *items, *item; @@ -44,7 +43,7 @@ _efl_ui_box_custom_layout(Efl_Ui_Box *ui_box, Evas_Object_Box_Data *bd) Efl_Ui_Container_Layout_Calc box_calc[2]; /* 0 is x-axis, 1 is y-axis */ - count = eina_list_count(bd->children); + count = eina_list_count(pd->children); if (!count) { efl_gfx_hint_size_restricted_min_set(ui_box, EINA_SIZE2D(0, 0)); @@ -59,10 +58,10 @@ _efl_ui_box_custom_layout(Efl_Ui_Box *ui_box, Evas_Object_Box_Data *bd) #endif // scan all items, get their properties, calculate total weight & min size - EINA_LIST_FOREACH(bd->children, li, opt) + EINA_LIST_FOREACH(pd->children, li, child) { item = &items[i++]; - item->obj = opt->obj; + item->obj = child; hints = item->hints; _efl_ui_container_layout_item_init(item->obj, hints); @@ -200,4 +199,6 @@ _efl_ui_box_custom_layout(Efl_Ui_Box *ui_box, Evas_Object_Box_Data *bd) (box_calc[1].pad * (count - 1)); efl_gfx_hint_size_restricted_min_set(ui_box, EINA_SIZE2D(want[0], want[1])); + + efl_event_callback_call(ui_box, EFL_PACK_EVENT_LAYOUT_UPDATED, NULL); } diff --git a/src/lib/elementary/efl_ui_box_private.h b/src/lib/elementary/efl_ui_box_private.h index 86a51398d2..5921eaf783 100644 --- a/src/lib/elementary/efl_ui_box_private.h +++ b/src/lib/elementary/efl_ui_box_private.h @@ -10,21 +10,13 @@ #include #include "elm_priv.h" -// FIXME: stop using Evas.Box -#include <../evas/canvas/evas_box_eo.h> - -// FIXME: stop using evas box -void _efl_ui_box_custom_layout(Efl_Ui_Box *box, Evas_Object_Box_Data *priv); - typedef struct _Efl_Ui_Box_Data Efl_Ui_Box_Data; -typedef struct _Box_Item_Iterator Box_Item_Iterator; struct _Efl_Ui_Box_Data { Efl_Ui_Dir dir; - Eina_Bool homogeneous : 1; - Eina_Bool delete_me : 1; - Eina_Bool recalc : 1; + Eo *clipper; + Eina_List *children; struct { double h, v; @@ -34,14 +26,8 @@ struct _Efl_Ui_Box_Data struct { double h, v; } align; -}; -struct _Box_Item_Iterator -{ - Eina_Iterator iterator; - Eina_List *list; - Eina_Iterator *real_iterator; - Efl_Ui_Box *object; + Eina_Bool homogeneous : 1; }; #endif diff --git a/src/lib/elementary/efl_ui_box_stack.c b/src/lib/elementary/efl_ui_box_stack.c index 69e72ea586..212368b4c0 100644 --- a/src/lib/elementary/efl_ui_box_stack.c +++ b/src/lib/elementary/efl_ui_box_stack.c @@ -16,8 +16,8 @@ struct _Item_Calc EOLIAN static void _efl_ui_box_stack_efl_pack_layout_layout_update(Eo *obj, void *_pd EINA_UNUSED) { - Evas_Object_Box_Option *opt; - Evas_Object_Box_Data *bd; + Efl_Ui_Box_Data *bd = efl_data_scope_get(obj, EFL_UI_BOX_CLASS); + Eo *child; Efl_Ui_Container_Layout_Calc box_calc[2]; Efl_Ui_Container_Item_Hints *hints; Item_Calc *items, *item; @@ -26,10 +26,6 @@ _efl_ui_box_stack_efl_pack_layout_layout_update(Eo *obj, void *_pd EINA_UNUSED) Evas_Object *old_child = NULL; int i = 0, count; - EINA_SAFETY_ON_FALSE_RETURN(efl_isa(obj, EFL_UI_BOX_CLASS)); - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - bd = efl_data_scope_get(wd->resize_obj, EVAS_BOX_CLASS); - count = eina_list_count(bd->children); if (!count) { @@ -44,13 +40,13 @@ _efl_ui_box_stack_efl_pack_layout_layout_update(Eo *obj, void *_pd EINA_UNUSED) memset(items, 0, count * sizeof(*items)); #endif - EINA_LIST_FOREACH(bd->children, l, opt) + EINA_LIST_FOREACH(bd->children, l, child) { item = &items[i++]; - item->obj = opt->obj; + item->obj = child; hints = item->hints; - _efl_ui_container_layout_item_init(opt->obj, hints); + _efl_ui_container_layout_item_init(child, hints); if (want.w < hints[0].space) want.w = hints[0].space; diff --git a/src/lib/elementary/efl_ui_button.c b/src/lib/elementary/efl_ui_button.c index 1bff2c930b..a3c1c4dbfc 100644 --- a/src/lib/elementary/efl_ui_button.c +++ b/src/lib/elementary/efl_ui_button.c @@ -218,7 +218,6 @@ _efl_ui_button_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Button_Data *_pd EINA_ if (!elm_widget_theme_klass_get(obj)) elm_widget_theme_klass_set(obj, "button"); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (elm_widget_is_legacy(obj)) { diff --git a/src/lib/elementary/efl_ui_calendar.c b/src/lib/elementary/efl_ui_calendar.c index a4df1829a8..eb3918d7ac 100644 --- a/src/lib/elementary/efl_ui_calendar.c +++ b/src/lib/elementary/efl_ui_calendar.c @@ -910,8 +910,6 @@ _efl_ui_calendar_constructor_internal(Eo *obj, Efl_Ui_Calendar_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); - elm_widget_sub_object_parent_add(obj); - priv->date_min.tm_year = 2; priv->date_min.tm_mon = 0; priv->date_min.tm_mday = 1; diff --git a/src/lib/elementary/efl_ui_clock.c b/src/lib/elementary/efl_ui_clock.c index 5c83d83774..e580d3cf06 100644 --- a/src/lib/elementary/efl_ui_clock.c +++ b/src/lib/elementary/efl_ui_clock.c @@ -855,7 +855,6 @@ _efl_ui_clock_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Clock_Data *priv) if (!elm_widget_theme_klass_get(obj)) elm_widget_theme_klass_set(obj, "uiclock"); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (elm_widget_theme_object_set(obj, wd->resize_obj, elm_widget_theme_klass_get(obj), diff --git a/src/lib/elementary/efl_ui_datepicker.c b/src/lib/elementary/efl_ui_datepicker.c index b7978b15c4..06a18780e3 100644 --- a/src/lib/elementary/efl_ui_datepicker.c +++ b/src/lib/elementary/efl_ui_datepicker.c @@ -255,8 +255,6 @@ _efl_ui_datepicker_efl_object_constructor(Eo *obj, Efl_Ui_Datepicker_Data *pd) _fields_init(obj); - elm_widget_sub_object_parent_add(obj); - elm_widget_can_focus_set(obj, EINA_TRUE); return obj; diff --git a/src/lib/elementary/efl_ui_flip.c b/src/lib/elementary/efl_ui_flip.c index 7f3da3c31a..71dc20e076 100644 --- a/src/lib/elementary/efl_ui_flip.c +++ b/src/lib/elementary/efl_ui_flip.c @@ -1812,7 +1812,6 @@ EOLIAN static void _efl_ui_flip_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Flip_Data *priv) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->clip = evas_object_rectangle_add(evas_object_evas_get(obj)); evas_object_static_clip_set(priv->clip, EINA_TRUE); diff --git a/src/lib/elementary/efl_ui_frame.c b/src/lib/elementary/efl_ui_frame.c index 649a532bea..664a542a46 100644 --- a/src/lib/elementary/efl_ui_frame.c +++ b/src/lib/elementary/efl_ui_frame.c @@ -113,7 +113,6 @@ _efl_ui_frame_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Frame_Data *_pd EINA_UN if (!elm_widget_theme_klass_get(obj)) elm_widget_theme_klass_set(obj, "frame"); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (elm_widget_is_legacy(obj)) { diff --git a/src/lib/elementary/efl_ui_image.c b/src/lib/elementary/efl_ui_image.c index a1bbe2f239..166db8dc27 100644 --- a/src/lib/elementary/efl_ui_image.c +++ b/src/lib/elementary/efl_ui_image.c @@ -534,7 +534,7 @@ EOLIAN static void _efl_ui_image_efl_gfx_image_smooth_scale_set(Eo *obj EINA_UNUSED, Efl_Ui_Image_Data *sd, Eina_Bool smooth) { sd->smooth = smooth; - if (!sd->edje) evas_object_image_smooth_scale_set(sd->img, smooth); + if (sd->img && (!sd->edje)) evas_object_image_smooth_scale_set(sd->img, smooth); } EOLIAN static Eina_Bool @@ -566,7 +566,6 @@ EOLIAN static void _efl_ui_image_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Image_Data *priv) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->hit_rect = evas_object_rectangle_add(evas_object_evas_get(obj)); evas_object_smart_member_add(priv->hit_rect, obj); diff --git a/src/lib/elementary/efl_ui_image_zoomable.c b/src/lib/elementary/efl_ui_image_zoomable.c index b7ff98a22c..0fe2bd864a 100644 --- a/src/lib/elementary/efl_ui_image_zoomable.c +++ b/src/lib/elementary/efl_ui_image_zoomable.c @@ -1833,8 +1833,6 @@ _efl_ui_image_zoomable_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Image_Zoomable Evas_Object *edje; Evas_Coord minw, minh; - elm_widget_sub_object_parent_add(obj); - edje = edje_object_add(evas_object_evas_get(obj)); elm_widget_resize_object_set(obj, edje); diff --git a/src/lib/elementary/efl_ui_layout.c b/src/lib/elementary/efl_ui_layout.c index 6677ccb01c..63f9491467 100644 --- a/src/lib/elementary/efl_ui_layout.c +++ b/src/lib/elementary/efl_ui_layout.c @@ -740,8 +740,6 @@ _efl_ui_layout_base_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Layout_Data *_pd { Evas_Object *edje; - elm_widget_sub_object_parent_add(obj); - /* has to be there *before* parent's smart_add() */ edje = edje_object_add(evas_object_evas_get(obj)); elm_widget_resize_object_set(obj, edje); diff --git a/src/lib/elementary/efl_ui_list_view.c b/src/lib/elementary/efl_ui_list_view.c index b0300db7c9..219d2aa151 100644 --- a/src/lib/elementary/efl_ui_list_view.c +++ b/src/lib/elementary/efl_ui_list_view.c @@ -588,7 +588,6 @@ _efl_ui_list_view_efl_canvas_group_group_add(Eo *obj, Efl_Ui_List_View_Data *pd) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_TRUE); diff --git a/src/lib/elementary/efl_ui_navigation_bar.c b/src/lib/elementary/efl_ui_navigation_bar.c index e8102ba2cf..d693a52838 100644 --- a/src/lib/elementary/efl_ui_navigation_bar.c +++ b/src/lib/elementary/efl_ui_navigation_bar.c @@ -39,8 +39,6 @@ _efl_ui_navigation_bar_efl_object_constructor(Eo *obj, Efl_Ui_Navigation_Bar_Dat obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME); - elm_widget_sub_object_parent_add(obj); - elm_widget_can_focus_set(obj, EINA_TRUE); if (elm_widget_theme_object_set(obj, wd->resize_obj, elm_widget_theme_klass_get(obj), diff --git a/src/lib/elementary/efl_ui_navigation_layout.c b/src/lib/elementary/efl_ui_navigation_layout.c index 0b5988450e..2f535e1a76 100644 --- a/src/lib/elementary/efl_ui_navigation_layout.c +++ b/src/lib/elementary/efl_ui_navigation_layout.c @@ -37,8 +37,6 @@ _efl_ui_navigation_layout_efl_object_constructor(Eo *obj, Efl_Ui_Navigation_Layo obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME); - elm_widget_sub_object_parent_add(obj); - elm_widget_can_focus_set(obj, EINA_TRUE); if (elm_widget_theme_object_set(obj, wd->resize_obj, elm_widget_theme_klass_get(obj), diff --git a/src/lib/elementary/efl_ui_nstate.c b/src/lib/elementary/efl_ui_nstate.c index a435c543e4..b44ea3b5d4 100644 --- a/src/lib/elementary/efl_ui_nstate.c +++ b/src/lib/elementary/efl_ui_nstate.c @@ -37,7 +37,6 @@ _efl_ui_nstate_efl_object_constructor(Eo *obj, Efl_Ui_Nstate_Data *pd) elm_widget_theme_klass_set(obj, "nstate"); obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME); - elm_widget_sub_object_parent_add(obj); pd->state = 0; // Default: 2 states diff --git a/src/lib/elementary/efl_ui_pager.c b/src/lib/elementary/efl_ui_pager.c index bf81d1ac91..efa77f8314 100644 --- a/src/lib/elementary/efl_ui_pager.c +++ b/src/lib/elementary/efl_ui_pager.c @@ -336,8 +336,6 @@ _efl_ui_pager_efl_object_constructor(Eo *obj, elm_widget_theme_style_get(obj)) == EFL_UI_THEME_APPLY_ERROR_GENERIC) CRI("Failed to set layout!"); - elm_widget_sub_object_parent_add(obj); - pd->cnt = 0; pd->loop = EFL_UI_PAGER_LOOP_DISABLED; @@ -379,6 +377,19 @@ _efl_ui_pager_efl_object_constructor(Eo *obj, return obj; } +EOLIAN static void +_efl_ui_pager_efl_object_invalidate(Eo *obj, + Efl_Ui_Pager_Data *pd) +{ + efl_invalidate(efl_super(obj, MY_CLASS)); + + /* Since the parent of foreclip and backclip is evas, foreclip and backclip + * are not deleted automatically when pager is deleted. + * Therefore, foreclip and backclip are deleted manually here. */ + efl_del(pd->foreclip); + efl_del(pd->backclip); +} + EOLIAN static int _efl_ui_pager_efl_container_content_count(Eo *obj EINA_UNUSED, Efl_Ui_Pager_Data *pd) @@ -784,20 +795,59 @@ _efl_ui_pager_loop_mode_get(const Eo *obj EINA_UNUSED, return pd->loop; } +static void +_unpack_all(Efl_Ui_Pager_Data *pd, + Eina_Bool clear) +{ + Eo *subobj; + + pd->cnt = 0; + pd->curr.page = -1; + pd->curr.pos = 0.0; + + if (pd->transition) + { + efl_page_transition_unpack_all(pd->transition); + } + else + { + subobj = eina_list_nth(pd->content_list, pd->curr.page); + efl_pack_unpack(pd->page_box, subobj); + } + + if (clear) + { + EINA_LIST_FREE(pd->content_list, subobj) + evas_object_del(subobj); + } + else + { + EINA_LIST_FREE(pd->content_list, subobj) + efl_canvas_object_clipper_set(subobj, NULL); + } + + if (pd->indicator) + { + efl_page_indicator_unpack_all(pd->indicator); + } +} + EOLIAN static Eina_Bool _efl_ui_pager_efl_pack_pack_clear(Eo *obj EINA_UNUSED, - Efl_Ui_Pager_Data *pd EINA_UNUSED) + Efl_Ui_Pager_Data *pd) { - ERR("Soon to be implemented"); - return EINA_FALSE; + _unpack_all(pd, EINA_TRUE); + + return EINA_TRUE; } EOLIAN static Eina_Bool _efl_ui_pager_efl_pack_unpack_all(Eo *obj EINA_UNUSED, - Efl_Ui_Pager_Data *pd EINA_UNUSED) + Efl_Ui_Pager_Data *pd) { - ERR("Soon to be implemented"); - return EINA_FALSE; + _unpack_all(pd, EINA_FALSE); + + return EINA_TRUE; } static void @@ -853,12 +903,19 @@ _efl_ui_pager_efl_pack_unpack(Eo *obj, } EOLIAN static Efl_Gfx_Entity * -_efl_ui_pager_efl_pack_linear_pack_unpack_at(Eo *obj EINA_UNUSED, - Efl_Ui_Pager_Data *pd EINA_UNUSED, - int index EINA_UNUSED) +_efl_ui_pager_efl_pack_linear_pack_unpack_at(Eo *obj, + Efl_Ui_Pager_Data *pd, + int index) { - ERR("Soon to be implemented"); - return NULL; + if (!EINA_DBL_EQ(pd->curr.pos, 0.0)) return NULL; + + if ((index >= pd->cnt) || (index < 0)) return NULL; + + Efl_Gfx_Entity *subobj = eina_list_nth(pd->content_list, index); + + _unpack(obj, pd, subobj, index); + + return subobj; } diff --git a/src/lib/elementary/efl_ui_pager.eo b/src/lib/elementary/efl_ui_pager.eo index 5a3a974adf..646be5accd 100644 --- a/src/lib/elementary/efl_ui_pager.eo +++ b/src/lib/elementary/efl_ui_pager.eo @@ -90,6 +90,7 @@ class @beta Efl.Ui.Pager extends Efl.Ui.Layout_Base implements Efl.Pack_Linear } implements { Efl.Object.constructor; + Efl.Object.invalidate; Efl.Container.content_count; Efl.Pack.pack_clear; //TODO Efl.Pack.unpack_all; //TODO diff --git a/src/lib/elementary/efl_ui_panel.c b/src/lib/elementary/efl_ui_panel.c index 9e8e4c5027..84aa6f08d9 100644 --- a/src/lib/elementary/efl_ui_panel.c +++ b/src/lib/elementary/efl_ui_panel.c @@ -838,7 +838,6 @@ _efl_ui_panel_efl_object_constructor(Eo *obj, Efl_Ui_Panel_Data *_pd) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); obj = efl_constructor(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_TRUE); _pd->panel_edje = wd->resize_obj; diff --git a/src/lib/elementary/efl_ui_panes.c b/src/lib/elementary/efl_ui_panes.c index a221193803..d42b3ebb3b 100644 --- a/src/lib/elementary/efl_ui_panes.c +++ b/src/lib/elementary/efl_ui_panes.c @@ -408,7 +408,6 @@ _efl_ui_panes_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Panes_Data *_pd EINA_UN if (!elm_widget_theme_klass_get(obj)) elm_widget_theme_klass_set(obj, "panes"); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); group = _efl_ui_panes_theme_group_get(obj, sd); if (elm_widget_theme_object_set(obj, wd->resize_obj, diff --git a/src/lib/elementary/efl_ui_popup.c b/src/lib/elementary/efl_ui_popup.c index cc8772d8d2..47ef65b4a9 100644 --- a/src/lib/elementary/efl_ui_popup.c +++ b/src/lib/elementary/efl_ui_popup.c @@ -215,8 +215,6 @@ _efl_ui_popup_efl_object_constructor(Eo *obj, Efl_Ui_Popup_Data *pd) obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME); - elm_widget_sub_object_parent_add(obj); - elm_widget_can_focus_set(obj, EINA_TRUE); if (elm_widget_theme_object_set(obj, wd->resize_obj, elm_widget_theme_klass_get(obj), diff --git a/src/lib/elementary/efl_ui_progressbar.c b/src/lib/elementary/efl_ui_progressbar.c index 2d1ecfc230..c65d9bdcff 100644 --- a/src/lib/elementary/efl_ui_progressbar.c +++ b/src/lib/elementary/efl_ui_progressbar.c @@ -359,7 +359,6 @@ _efl_ui_progressbar_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Progressbar_Data if (!elm_widget_theme_klass_get(obj)) elm_widget_theme_klass_set(obj, "progressbar"); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->dir = EFL_UI_DIR_RIGHT; priv->val = MIN_RATIO_LVL; diff --git a/src/lib/elementary/efl_ui_relative_layout.c b/src/lib/elementary/efl_ui_relative_layout.c index c5651fa793..fa47d7591c 100644 --- a/src/lib/elementary/efl_ui_relative_layout.c +++ b/src/lib/elementary/efl_ui_relative_layout.c @@ -492,7 +492,6 @@ _efl_ui_relative_layout_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Relative_Layo { evas_object_event_callback_add(obj, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _on_size_hints_changed, NULL); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_highlight_ignore_set(obj, EINA_TRUE); } diff --git a/src/lib/elementary/efl_ui_scroll_alert_popup.c b/src/lib/elementary/efl_ui_scroll_alert_popup.c index 1d4295e183..54e28c5643 100644 --- a/src/lib/elementary/efl_ui_scroll_alert_popup.c +++ b/src/lib/elementary/efl_ui_scroll_alert_popup.c @@ -266,8 +266,6 @@ _efl_ui_scroll_alert_popup_efl_object_constructor(Eo *obj, obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME); - elm_widget_sub_object_parent_add(obj); - pd->scroller = elm_scroller_add(obj); elm_object_style_set(pd->scroller, "popup/no_inset_shadow"); elm_scroller_policy_set(pd->scroller, ELM_SCROLLER_POLICY_AUTO, diff --git a/src/lib/elementary/efl_ui_scroll_manager.c b/src/lib/elementary/efl_ui_scroll_manager.c index 98da2fd830..a6bf0cda22 100644 --- a/src/lib/elementary/efl_ui_scroll_manager.c +++ b/src/lib/elementary/efl_ui_scroll_manager.c @@ -1023,7 +1023,7 @@ _efl_ui_scroll_manager_mouse_up_event_momentum_eval(Efl_Ui_Scroll_Manager_Data * { double t, at; Evas_Coord dx, dy, ax, ay, vel; - char sdx, sdy; + signed char sdx, sdy; t = ev->timestamp / 1000.0; @@ -1294,7 +1294,7 @@ _scroll_manager_momentum_animator_add(Efl_Ui_Scroll_Manager_Data *sd, double vx, #define INVERSE_MASS 1 #define ACCEL (FRICTION * INVERSE_MASS) double dur = 0.0; - char sdx = 0, sdy = 0; + signed char sdx = 0, sdy = 0; Evas_Coord dstx = 0, dsty = 0; /* @@ -2418,6 +2418,7 @@ _efl_ui_scroll_manager_efl_object_constructor(Eo *obj, Efl_Ui_Scroll_Manager_Dat sd->scrolling = EINA_FALSE; sd->event_rect = evas_object_rectangle_add(evas_object_evas_get(sd->parent)); + efl_key_data_set(sd->event_rect, "_elm_leaveme", obj); efl_canvas_group_member_add(sd->parent, sd->event_rect); efl_ui_widget_sub_object_add(sd->parent, sd->event_rect); diff --git a/src/lib/elementary/efl_ui_slider.c b/src/lib/elementary/efl_ui_slider.c index 23f4797419..6a5798d44b 100644 --- a/src/lib/elementary/efl_ui_slider.c +++ b/src/lib/elementary/efl_ui_slider.c @@ -655,7 +655,6 @@ _efl_ui_slider_efl_object_constructor(Eo *obj, Efl_Ui_Slider_Data *priv) if (!elm_widget_theme_klass_get(obj)) elm_widget_theme_klass_set(obj, "slider"); - elm_widget_sub_object_parent_add(obj); group = _efl_ui_slider_theme_group_get(obj, priv); if (elm_widget_theme_object_set(obj, wd->resize_obj, diff --git a/src/lib/elementary/efl_ui_spin.c b/src/lib/elementary/efl_ui_spin.c index 70cbfeea53..f446bab9f3 100644 --- a/src/lib/elementary/efl_ui_spin.c +++ b/src/lib/elementary/efl_ui_spin.c @@ -239,8 +239,6 @@ _efl_ui_spin_efl_object_constructor(Eo *obj, Efl_Ui_Spin_Data *sd) elm_widget_theme_klass_set(obj, "spin"); obj = efl_constructor(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); - sd->val_max = 100.0; sd->step = 1.0; sd->special_values = eina_array_new(sizeof(Efl_Ui_Spin_Special_Value)); diff --git a/src/lib/elementary/efl_ui_spin_button.c b/src/lib/elementary/efl_ui_spin_button.c index 0194921308..4941b41bde 100644 --- a/src/lib/elementary/efl_ui_spin_button.c +++ b/src/lib/elementary/efl_ui_spin_button.c @@ -830,7 +830,6 @@ _efl_ui_spin_button_efl_object_constructor(Eo *obj, Efl_Ui_Spin_Button_Data *sd) char *group; obj = efl_constructor(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_theme_klass_set(obj, "spin_button"); ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); diff --git a/src/lib/elementary/efl_ui_tab_bar.c b/src/lib/elementary/efl_ui_tab_bar.c index e5fb3414df..0129121d7a 100644 --- a/src/lib/elementary/efl_ui_tab_bar.c +++ b/src/lib/elementary/efl_ui_tab_bar.c @@ -376,9 +376,6 @@ _efl_ui_tab_bar_efl_object_constructor(Eo *obj, Efl_Ui_Tab_Bar_Data *sd) elm_widget_theme_style_get(obj)) == EFL_UI_THEME_APPLY_ERROR_GENERIC) CRI("Failed to set layout!"); - - elm_widget_sub_object_parent_add(obj); - sd->dir = EFL_UI_DIR_HORIZONTAL; sd->bx = evas_object_box_add(evas_object_evas_get(obj)); evas_object_box_align_set(sd->bx, 0.5, 0.5); diff --git a/src/lib/elementary/efl_ui_tab_page.c b/src/lib/elementary/efl_ui_tab_page.c index 1f7fc2ff89..a0bd26ef70 100644 --- a/src/lib/elementary/efl_ui_tab_page.c +++ b/src/lib/elementary/efl_ui_tab_page.c @@ -55,9 +55,6 @@ _efl_ui_tab_page_efl_object_constructor(Eo *obj, Efl_Ui_Tab_Page_Data *sd) elm_widget_theme_style_get(obj)) == EFL_UI_THEME_APPLY_ERROR_GENERIC) CRI("Failed to set layout!"); - - elm_widget_sub_object_parent_add(obj); - efl_ui_widget_focus_allow_set(obj, EINA_TRUE); sd->content = NULL; diff --git a/src/lib/elementary/efl_ui_tab_pager.c b/src/lib/elementary/efl_ui_tab_pager.c index 4187f31174..2b43aa8939 100644 --- a/src/lib/elementary/efl_ui_tab_pager.c +++ b/src/lib/elementary/efl_ui_tab_pager.c @@ -99,7 +99,6 @@ _efl_ui_tab_pager_efl_object_constructor(Eo *obj, Efl_Ui_Tab_Pager_Data *sd) elm_widget_theme_klass_set(obj, "tab_pager"); obj = efl_constructor(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); efl_ui_widget_focus_allow_set(obj, EINA_TRUE); diff --git a/src/lib/elementary/efl_ui_table.c b/src/lib/elementary/efl_ui_table.c index 50fd0be834..7a11f2fb71 100644 --- a/src/lib/elementary/efl_ui_table.c +++ b/src/lib/elementary/efl_ui_table.c @@ -161,8 +161,6 @@ _efl_ui_table_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Table_Data *pd) Custom_Table_Data *custom; Evas_Object *table; - elm_widget_sub_object_parent_add(obj); - table = efl_add(CUSTOM_TABLE_CLASS, obj); custom = efl_data_scope_get(table, CUSTOM_TABLE_CLASS); custom->gd = pd; @@ -306,6 +304,18 @@ _pack_at(Eo *obj, Efl_Ui_Table_Data *pd, Efl_Gfx_Entity *subobj, ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); + gi = efl_key_data_get(subobj, TABLE_ITEM_KEY); + + if (gi && efl_ui_widget_parent_get(subobj) == obj) + { + ERR("subobj %p %s is already added to this", subobj, efl_class_name_get(subobj) ); + return EINA_FALSE; + } + else if (gi && efl_ui_widget_parent_get(subobj) != obj) + { + gi = NULL; + } + if (col < 0) col = 0; if (row < 0) row = 0; @@ -327,22 +337,10 @@ _pack_at(Eo *obj, Efl_Ui_Table_Data *pd, Efl_Gfx_Entity *subobj, col, row, colspan, rowspan, pd->req_cols, pd->req_rows); } - if (obj == elm_widget_parent_widget_get(subobj)) - { - gi = efl_key_data_get(subobj, TABLE_ITEM_KEY); - if (gi) - { - gi->col = col; - gi->row = row; - gi->col_span = colspan; - gi->row_span = rowspan; - gi->linear = EINA_FALSE; - } - else ERR("object is a child but internal data was not found!"); - } - if (!gi) { + if (!elm_widget_sub_object_add(obj, subobj)) + return EINA_FALSE; gi = calloc(1, sizeof(*gi)); if (!gi) return EINA_FALSE; gi->col = col; @@ -356,7 +354,6 @@ _pack_at(Eo *obj, Efl_Ui_Table_Data *pd, Efl_Gfx_Entity *subobj, eina_inlist_append(EINA_INLIST_GET(pd->items), EINA_INLIST_GET(gi)); efl_key_data_set(subobj, TABLE_ITEM_KEY, gi); - elm_widget_sub_object_add(obj, subobj); efl_event_callback_legacy_call(obj, EFL_CONTAINER_EVENT_CONTENT_ADDED, subobj); efl_event_callback_array_add(subobj, subobj_callbacks(), obj); } @@ -469,6 +466,7 @@ end: eina_inlist_remove(EINA_INLIST_GET(pd->items), EINA_INLIST_GET(gi)); pd->count--; efl_key_data_set(subobj, TABLE_ITEM_KEY, NULL); + efl_event_callback_array_del(subobj, subobj_callbacks(), obj); free(gi); } @@ -489,20 +487,28 @@ _efl_ui_table_efl_pack_unpack(Eo *obj, Efl_Ui_Table_Data *pd, Efl_Gfx_Entity *su } EOLIAN static Eina_Bool -_efl_ui_table_efl_pack_pack_clear(Eo *obj, Efl_Ui_Table_Data *pd EINA_UNUSED) +_efl_ui_table_efl_pack_pack_clear(Eo *obj, Efl_Ui_Table_Data *pd) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); + while (pd->items) + _item_remove(obj, pd, pd->items->object); + evas_object_table_clear(wd->resize_obj, EINA_TRUE); + return EINA_TRUE; } EOLIAN static Eina_Bool -_efl_ui_table_efl_pack_unpack_all(Eo *obj, Efl_Ui_Table_Data *pd EINA_UNUSED) +_efl_ui_table_efl_pack_unpack_all(Eo *obj, Efl_Ui_Table_Data *pd) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); + while (pd->items) + _item_remove(obj, pd, pd->items->object); + evas_object_table_clear(wd->resize_obj, EINA_FALSE); + return EINA_TRUE; } diff --git a/src/lib/elementary/efl_ui_tags.c b/src/lib/elementary/efl_ui_tags.c index 00748a7986..12b56c15c5 100644 --- a/src/lib/elementary/efl_ui_tags.c +++ b/src/lib/elementary/efl_ui_tags.c @@ -1009,7 +1009,6 @@ _efl_ui_tags_efl_object_constructor(Eo *obj, Efl_Ui_Tags_Data *sd) elm_widget_theme_klass_set(obj, "tags"); obj = efl_constructor(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (elm_widget_theme_object_set(obj, wd->resize_obj, elm_widget_theme_klass_get(obj), diff --git a/src/lib/elementary/efl_ui_text.c b/src/lib/elementary/efl_ui_text.c index cae523bcdd..ebb2dd539e 100644 --- a/src/lib/elementary/efl_ui_text.c +++ b/src/lib/elementary/efl_ui_text.c @@ -2126,8 +2126,6 @@ _efl_ui_text_efl_object_constructor(Eo *obj, Efl_Ui_Text_Data *sd) elm_widget_theme_klass_set(obj, "text"); obj = efl_constructor(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); - text_obj = efl_add(EFL_UI_INTERNAL_TEXT_INTERACTIVE_CLASS, obj); efl_event_callback_forwarder_add(text_obj, EFL_UI_TEXT_EVENT_CHANGED_USER, obj); efl_event_callback_forwarder_add(text_obj, EFL_UI_TEXT_EVENT_CHANGED, obj); diff --git a/src/lib/elementary/efl_ui_text_alert_popup.c b/src/lib/elementary/efl_ui_text_alert_popup.c index dd19e6a0d8..355b8c21f3 100644 --- a/src/lib/elementary/efl_ui_text_alert_popup.c +++ b/src/lib/elementary/efl_ui_text_alert_popup.c @@ -274,8 +274,6 @@ _efl_ui_text_alert_popup_efl_object_constructor(Eo *obj, obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME); - elm_widget_sub_object_parent_add(obj); - pd->scroller = elm_scroller_add(obj); elm_object_style_set(pd->scroller, "popup/no_inset_shadow"); elm_scroller_policy_set(pd->scroller, ELM_SCROLLER_POLICY_OFF, diff --git a/src/lib/elementary/efl_ui_textpath.c b/src/lib/elementary/efl_ui_textpath.c index b602f6c9d7..679a68a38a 100644 --- a/src/lib/elementary/efl_ui_textpath.c +++ b/src/lib/elementary/efl_ui_textpath.c @@ -584,7 +584,6 @@ _efl_ui_textpath_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Textpath_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->text_obj = edje_object_add(evas_object_evas_get(obj)); elm_widget_theme_object_set(obj, priv->text_obj, "textpath", "base", diff --git a/src/lib/elementary/efl_ui_timepicker.c b/src/lib/elementary/efl_ui_timepicker.c index a77238bafa..732f8aefdc 100644 --- a/src/lib/elementary/efl_ui_timepicker.c +++ b/src/lib/elementary/efl_ui_timepicker.c @@ -226,8 +226,6 @@ _efl_ui_timepicker_efl_object_constructor(Eo *obj, Efl_Ui_Timepicker_Data *pd EI _fields_init(obj); - elm_widget_sub_object_parent_add(obj); - elm_widget_can_focus_set(obj, EINA_TRUE); return obj; diff --git a/src/lib/elementary/efl_ui_video.c b/src/lib/elementary/efl_ui_video.c index dd0d6f11ae..75b6b155dc 100644 --- a/src/lib/elementary/efl_ui_video.c +++ b/src/lib/elementary/efl_ui_video.c @@ -242,7 +242,6 @@ _efl_ui_video_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Video_Data *priv) if (!elm_widget_theme_klass_get(obj)) elm_widget_theme_klass_set(obj, "video"); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_TRUE); priv->emotion = emotion_object_add(evas_object_evas_get(obj)); diff --git a/src/lib/elementary/efl_ui_widget.c b/src/lib/elementary/efl_ui_widget.c index 99da93aa3b..872e32a744 100644 --- a/src/lib/elementary/efl_ui_widget.c +++ b/src/lib/elementary/efl_ui_widget.c @@ -1486,6 +1486,7 @@ _efl_ui_widget_widget_sub_object_add(Eo *obj, Elm_Widget_Smart_Data *sd, Evas_Ob Efl_Ui_Widget *parent; if (!sobj) return EINA_FALSE; + EINA_SAFETY_ON_FALSE_RETURN_VAL(efl_isa(sobj, EFL_GFX_ENTITY_INTERFACE), EINA_FALSE); EINA_SAFETY_ON_TRUE_RETURN_VAL(obj == sobj, EINA_FALSE); //first make sure that we unregister the sobj from the parent @@ -5058,7 +5059,15 @@ _efl_ui_widget_efl_object_constructor(Eo *obj, Elm_Widget_Smart_Data *sd EINA_UN evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); if (!efl_isa(obj, EFL_UI_WIN_CLASS)) { - efl_ui_widget_sub_object_add(efl_parent_get(obj), obj); + Eo *parent = efl_parent_get(obj); + if (!efl_isa(parent, EFL_UI_WIDGET_CLASS)) + { + ERR("You passed a wrong parent parameter (%p %s). " + "Elementary widget's parent should be an elementary widget.", + parent, evas_object_type_get(parent)); + } + + efl_ui_widget_sub_object_add(parent, obj); } sd->on_create = EINA_FALSE; diff --git a/src/lib/elementary/efl_ui_win.eo b/src/lib/elementary/efl_ui_win.eo index 3d86408942..33a4be6510 100644 --- a/src/lib/elementary/efl_ui_win.eo +++ b/src/lib/elementary/efl_ui_win.eo @@ -160,7 +160,7 @@ class Efl.Ui.Win extends Efl.Ui.Widget implements Efl.Canvas.Scene, Efl.Access.W get { } values { - type: Efl.Ui.Win_Indicator_Mode; [[The mype, one of @Efl.Ui.Win_Indicator_Mode.]] + type: Efl.Ui.Win_Indicator_Mode; [[The type, one of @Efl.Ui.Win_Indicator_Mode.]] } } @property keyboard_mode @beta { diff --git a/src/lib/elementary/elc_combobox.c b/src/lib/elementary/elc_combobox.c index 3c17d46061..71e581f18b 100644 --- a/src/lib/elementary/elc_combobox.c +++ b/src/lib/elementary/elc_combobox.c @@ -331,7 +331,6 @@ EOLIAN static void _elm_combobox_efl_canvas_group_group_add(Eo *obj, Elm_Combobox_Data *sd EINA_UNUSED) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); efl_ui_mirrored_automatic_set(obj, EINA_FALSE); diff --git a/src/lib/elementary/elc_ctxpopup.c b/src/lib/elementary/elc_ctxpopup.c index ac5a91905a..08817bac70 100644 --- a/src/lib/elementary/elc_ctxpopup.c +++ b/src/lib/elementary/elc_ctxpopup.c @@ -1033,7 +1033,6 @@ _elm_ctxpopup_efl_canvas_group_group_add(Eo *obj, Elm_Ctxpopup_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (!elm_layout_theme_set (obj, "ctxpopup", "base", elm_widget_style_get(obj))) diff --git a/src/lib/elementary/elc_fileselector.c b/src/lib/elementary/elc_fileselector.c index b718924429..59ce7b1321 100644 --- a/src/lib/elementary/elc_fileselector.c +++ b/src/lib/elementary/elc_fileselector.c @@ -936,15 +936,12 @@ _properties_changed(void *data, const Efl_Event *ev) } static Eina_Value -_process_children_cb(void *data, const Eina_Value v, const Eina_Future *dead_future EINA_UNUSED) +_process_children_cb(Eo *model EINA_UNUSED, void *data, const Eina_Value v) { Listing_Request *lreq = data; Efl_Model *child = NULL; unsigned int i, len; - if (eina_value_type_get(&v) == EINA_VALUE_TYPE_ERROR) - goto end; - if (!lreq->valid) goto end; EINA_VALUE_ARRAY_FOREACH(&v, len, i, child) @@ -960,6 +957,16 @@ _process_children_cb(void *data, const Eina_Value v, const Eina_Future *dead_fut return v; } +static Eina_Value +_process_children_error(Eo *model EINA_UNUSED, void *data, Eina_Error error) +{ + Listing_Request *lreq = data; + + _process_last(lreq); + + return eina_value_error_init(error); +} + static void _populate(Evas_Object *obj, Efl_Model *model, @@ -1030,8 +1037,11 @@ _populate(Evas_Object *obj, if (efl_model_children_count_get(model)) { future = efl_model_children_slice_get(model, 0, efl_model_children_count_get(model)); - future = eina_future_then(future, _process_children_cb, lreq, NULL); - efl_future_then(obj, future); + future = efl_future_then(obj, future); + efl_future_then(model, future, + .success = _process_children_cb, + .error = _process_children_error, + .data = lreq); } else { @@ -1562,21 +1572,19 @@ _files_grid_add(Evas_Object *obj) } static Eina_Value -_resource_created_then(void *data, const Eina_Value v, const Eina_Future *dead_future EINA_UNUSED) +_resource_created_then(Eo *model EINA_UNUSED, void *data, const Eina_Value v) { Evas_Object *fs = data; Efl_Model *child = NULL; unsigned int len, i; - if (eina_value_type_get(&v) == EINA_VALUE_TYPE_ERROR) - goto end; - ELM_FILESELECTOR_DATA_GET(fs, sd); EINA_VALUE_ARRAY_FOREACH(&v, len, i, child) - _process_model(sd, child); + { + _process_model(sd, child); + } - end: return v; } @@ -1593,8 +1601,10 @@ _resource_created(void *data, const Efl_Event *event) return; f = efl_model_children_slice_get(sd->model, evt->index, 1); - f = eina_future_then(f, _resource_created_then, fs, NULL); - efl_future_then(fs, f); + f = efl_future_then(fs, f); + f = efl_future_then(sd->model, f, + .success = _resource_created_then, + .data = fs); } static void @@ -1677,7 +1687,6 @@ _elm_fileselector_efl_canvas_group_group_add(Eo *obj, Elm_Fileselector_Data *pri char buf[1024]; efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_FALSE); priv->expand = !!_elm_config->fileselector_expand_enable; diff --git a/src/lib/elementary/elc_fileselector_button.c b/src/lib/elementary/elc_fileselector_button.c index 8dfe7ab54f..1a644534f1 100644 --- a/src/lib/elementary/elc_fileselector_button.c +++ b/src/lib/elementary/elc_fileselector_button.c @@ -216,7 +216,6 @@ _elm_fileselector_button_efl_canvas_group_group_add(Eo *obj, Elm_Fileselector_Bu const char *path; efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->window_title = eina_stringshare_add(DEFAULT_WINDOW_TITLE); path = eina_environment_home_get(); diff --git a/src/lib/elementary/elc_fileselector_entry.c b/src/lib/elementary/elc_fileselector_entry.c index f06862e911..df9ac79d2c 100644 --- a/src/lib/elementary/elc_fileselector_entry.c +++ b/src/lib/elementary/elc_fileselector_entry.c @@ -222,7 +222,6 @@ EOLIAN static void _elm_fileselector_entry_efl_canvas_group_group_add(Eo *obj, Elm_Fileselector_Entry_Data *priv) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->button = elm_fileselector_button_add(obj); efl_ui_mirrored_automatic_set(priv->button, EINA_FALSE); diff --git a/src/lib/elementary/elc_hoversel.c b/src/lib/elementary/elc_hoversel.c index 3986b2a14f..a7b5685f21 100644 --- a/src/lib/elementary/elc_hoversel.c +++ b/src/lib/elementary/elc_hoversel.c @@ -638,7 +638,6 @@ EOLIAN static void _elm_hoversel_efl_canvas_group_group_add(Eo *obj, Elm_Hoversel_Data *pd) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); efl_event_callback_add(obj, EFL_UI_EVENT_CLICKED, _on_clicked, obj); diff --git a/src/lib/elementary/elc_multibuttonentry.c b/src/lib/elementary/elc_multibuttonentry.c index 0032ad02ff..452d7e0849 100644 --- a/src/lib/elementary/elc_multibuttonentry.c +++ b/src/lib/elementary/elc_multibuttonentry.c @@ -1562,7 +1562,6 @@ _elm_multibuttonentry_efl_canvas_group_group_add(Eo *obj, Elm_Multibuttonentry_D if (!elm_widget_theme_klass_get(obj)) elm_widget_theme_klass_set(obj, "multibuttonentry"); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (elm_widget_theme_object_set(obj, wd->resize_obj, elm_widget_theme_klass_get(obj), diff --git a/src/lib/elementary/elc_naviframe.c b/src/lib/elementary/elc_naviframe.c index 251b3eb44f..fa22902d90 100644 --- a/src/lib/elementary/elc_naviframe.c +++ b/src/lib/elementary/elc_naviframe.c @@ -1392,7 +1392,6 @@ _elm_naviframe_efl_canvas_group_group_add(Eo *obj, Elm_Naviframe_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->dummy_edje = wd->resize_obj; evas_object_smart_member_add(priv->dummy_edje, obj); diff --git a/src/lib/elementary/elc_player.c b/src/lib/elementary/elc_player.c index 8a386fc9c4..275599c30f 100644 --- a/src/lib/elementary/elc_player.c +++ b/src/lib/elementary/elc_player.c @@ -592,7 +592,6 @@ _elm_player_efl_canvas_group_group_add(Eo *obj, Elm_Player_Data *priv) char buf[256]; efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (!elm_layout_theme_set(obj, "player", "base", elm_widget_style_get(obj))) CRI("Failed to set layout!"); diff --git a/src/lib/elementary/elc_popup.c b/src/lib/elementary/elc_popup.c index a967661e61..7cdf1edf0e 100644 --- a/src/lib/elementary/elc_popup.c +++ b/src/lib/elementary/elc_popup.c @@ -1417,7 +1417,6 @@ _elm_popup_efl_canvas_group_group_add(Eo *obj, Elm_Popup_Data *priv) char style[1024]; efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); snprintf(style, sizeof(style), "popup/%s", elm_widget_style_get(obj)); diff --git a/src/lib/elementary/elm_access.c b/src/lib/elementary/elm_access.c index 33809795fc..9b33f4de40 100644 --- a/src/lib/elementary/elm_access.c +++ b/src/lib/elementary/elm_access.c @@ -48,7 +48,6 @@ EOLIAN static void _elm_access_efl_canvas_group_group_add(Eo *obj, void *_pd EINA_UNUSED) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); } static Eina_Bool diff --git a/src/lib/elementary/elm_actionslider.c b/src/lib/elementary/elm_actionslider.c index 07fc630811..d4e3ca129b 100644 --- a/src/lib/elementary/elm_actionslider.c +++ b/src/lib/elementary/elm_actionslider.c @@ -483,7 +483,6 @@ _elm_actionslider_efl_canvas_group_group_add(Eo *obj, Elm_Actionslider_Data *pri ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->enabled_position = ELM_ACTIONSLIDER_ALL; diff --git a/src/lib/elementary/elm_box.c b/src/lib/elementary/elm_box.c index bd6a00d26b..68e5996c78 100644 --- a/src/lib/elementary/elm_box.c +++ b/src/lib/elementary/elm_box.c @@ -323,7 +323,6 @@ _elm_box_efl_canvas_group_group_add(Eo *obj, Elm_Box_Data *_pd EINA_UNUSED) _on_size_hints_changed, obj); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); efl_event_callback_add (wd->resize_obj, ELM_BOX_EVENT_CHILD_ADDED, _child_added_cb_proxy, obj); diff --git a/src/lib/elementary/elm_bubble.c b/src/lib/elementary/elm_bubble.c index f6f4a97c6d..559ba53d55 100644 --- a/src/lib/elementary/elm_bubble.c +++ b/src/lib/elementary/elm_bubble.c @@ -147,7 +147,6 @@ _elm_bubble_efl_canvas_group_group_add(Eo *obj, Elm_Bubble_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->pos = ELM_BUBBLE_POS_TOP_LEFT; //default diff --git a/src/lib/elementary/elm_calendar.c b/src/lib/elementary/elm_calendar.c index b3c7838408..b249fd44fe 100644 --- a/src/lib/elementary/elm_calendar.c +++ b/src/lib/elementary/elm_calendar.c @@ -1337,7 +1337,6 @@ _elm_calendar_efl_canvas_group_group_add(Eo *obj, Elm_Calendar_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->first_interval = 0.85; priv->date_min.tm_year = 2; diff --git a/src/lib/elementary/elm_clock.c b/src/lib/elementary/elm_clock.c index 948ec7cb4b..9b6caa147a 100644 --- a/src/lib/elementary/elm_clock.c +++ b/src/lib/elementary/elm_clock.c @@ -722,7 +722,6 @@ _elm_clock_efl_canvas_group_group_add(Eo *obj, Elm_Clock_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->cur.ampm = -1; priv->cur.seconds = EINA_TRUE; diff --git a/src/lib/elementary/elm_colorselector.c b/src/lib/elementary/elm_colorselector.c index 9ac78ee517..831ff3be78 100644 --- a/src/lib/elementary/elm_colorselector.c +++ b/src/lib/elementary/elm_colorselector.c @@ -1954,7 +1954,6 @@ _elm_colorselector_efl_canvas_group_group_add(Eo *obj, Elm_Colorselector_Data *p ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (!elm_layout_theme_set (obj, "colorselector", "palette", elm_object_style_get(obj))) diff --git a/src/lib/elementary/elm_conform.c b/src/lib/elementary/elm_conform.c index a72c08eafc..55c6bc8488 100644 --- a/src/lib/elementary/elm_conform.c +++ b/src/lib/elementary/elm_conform.c @@ -927,7 +927,6 @@ EOLIAN static void _elm_conformant_efl_canvas_group_group_add(Eo *obj, Elm_Conformant_Data *_pd EINA_UNUSED) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_FALSE); if (!elm_layout_theme_set diff --git a/src/lib/elementary/elm_dayselector.c b/src/lib/elementary/elm_dayselector.c index 78536bb3fd..781ee0c868 100644 --- a/src/lib/elementary/elm_dayselector.c +++ b/src/lib/elementary/elm_dayselector.c @@ -445,7 +445,6 @@ EOLIAN static void _elm_dayselector_efl_canvas_group_group_add(Eo *obj, Elm_Dayselector_Data *priv) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (!elm_layout_theme_set(obj, "dayselector", "base", elm_widget_style_get(obj))) diff --git a/src/lib/elementary/elm_diskselector.c b/src/lib/elementary/elm_diskselector.c index b6c49ecc74..fd2494f00c 100644 --- a/src/lib/elementary/elm_diskselector.c +++ b/src/lib/elementary/elm_diskselector.c @@ -1221,8 +1221,6 @@ _elm_diskselector_efl_canvas_group_group_add(Eo *obj, Elm_Diskselector_Data *pri Evas *evas; Evas_Object *blank, *edje; - elm_widget_sub_object_parent_add(obj); - evas = evas_object_evas_get(obj); evas_event_freeze(evas); diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c index b229596c4a..7478a40fd8 100644 --- a/src/lib/elementary/elm_entry.c +++ b/src/lib/elementary/elm_entry.c @@ -3785,7 +3785,6 @@ _elm_entry_efl_canvas_group_group_add(Eo *obj, Elm_Entry_Data *priv) if (!elm_widget_theme_klass_get(obj)) elm_widget_theme_klass_set(obj, "entry"); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->entry_edje = wd->resize_obj; diff --git a/src/lib/elementary/elm_flipselector.c b/src/lib/elementary/elm_flipselector.c index 8085325c84..f9ba061f75 100644 --- a/src/lib/elementary/elm_flipselector.c +++ b/src/lib/elementary/elm_flipselector.c @@ -616,7 +616,6 @@ EOLIAN static void _elm_flipselector_efl_canvas_group_group_add(Eo *obj, Elm_Flipselector_Data *priv) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (!elm_layout_theme_set (obj, "flipselector", "base", elm_widget_style_get(obj))) diff --git a/src/lib/elementary/elm_gengrid.c b/src/lib/elementary/elm_gengrid.c index cefa035264..76e540a9db 100644 --- a/src/lib/elementary/elm_gengrid.c +++ b/src/lib/elementary/elm_gengrid.c @@ -4092,7 +4092,6 @@ _elm_gengrid_efl_canvas_group_group_add(Eo *obj, Elm_Gengrid_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->hit_rect = evas_object_rectangle_add(evas_object_evas_get(obj)); evas_object_smart_member_add(priv->hit_rect, obj); diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c index 0cdec229b9..0a893b72d0 100644 --- a/src/lib/elementary/elm_genlist.c +++ b/src/lib/elementary/elm_genlist.c @@ -5782,7 +5782,6 @@ _elm_genlist_efl_canvas_group_group_add(Eo *obj, Elm_Genlist_Data *priv) int i; efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->size_caches = eina_hash_pointer_new(_size_cache_free); priv->hit_rect = evas_object_rectangle_add(e); diff --git a/src/lib/elementary/elm_gesture_layer.c b/src/lib/elementary/elm_gesture_layer.c index 667a2716a0..de1fe793e3 100644 --- a/src/lib/elementary/elm_gesture_layer.c +++ b/src/lib/elementary/elm_gesture_layer.c @@ -3748,7 +3748,6 @@ EOLIAN static void _elm_gesture_layer_efl_canvas_group_group_add(Eo *obj, Elm_Gesture_Layer_Data *priv) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->line_min_length = _elm_config->glayer_line_min_length * elm_config_finger_size_get(); diff --git a/src/lib/elementary/elm_glview.c b/src/lib/elementary/elm_glview.c index 1210416253..51e3cb6da6 100644 --- a/src/lib/elementary/elm_glview.c +++ b/src/lib/elementary/elm_glview.c @@ -224,8 +224,6 @@ _elm_glview_efl_canvas_group_group_add(Eo *obj, Elm_Glview_Data *priv EINA_UNUSE { Evas_Object *img; - elm_widget_sub_object_parent_add(obj); - // Create image to render Evas_GL Surface img = evas_object_image_filled_add(evas_object_evas_get(obj)); elm_widget_resize_object_set(obj, img); diff --git a/src/lib/elementary/elm_grid.c b/src/lib/elementary/elm_grid.c index 40b636eb07..6548f21e16 100644 --- a/src/lib/elementary/elm_grid.c +++ b/src/lib/elementary/elm_grid.c @@ -59,8 +59,6 @@ _elm_grid_efl_canvas_group_group_add(Eo *obj, void *_pd EINA_UNUSED) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); Evas_Object *grid; - elm_widget_sub_object_parent_add(obj); - grid = evas_object_grid_add(evas_object_evas_get(obj)); elm_widget_resize_object_set(obj, grid); evas_object_grid_size_set(wd->resize_obj, 100, 100); diff --git a/src/lib/elementary/elm_hover.c b/src/lib/elementary/elm_hover.c index e5019fed78..271436f707 100644 --- a/src/lib/elementary/elm_hover.c +++ b/src/lib/elementary/elm_hover.c @@ -582,7 +582,6 @@ EOLIAN static void _elm_hover_efl_canvas_group_group_add(Eo *obj, Elm_Hover_Data *sd) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); ELM_HOVER_PARTS_FOREACH sd->subs[i].swallow = _content_aliases[i].alias; diff --git a/src/lib/elementary/elm_icon.c b/src/lib/elementary/elm_icon.c index 819f549e63..3011a4d252 100644 --- a/src/lib/elementary/elm_icon.c +++ b/src/lib/elementary/elm_icon.c @@ -493,7 +493,6 @@ EOLIAN static void _elm_icon_efl_canvas_group_group_add(Eo *obj, Elm_Icon_Data *priv) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->thumb.request = NULL; } diff --git a/src/lib/elementary/elm_image_legacy.h b/src/lib/elementary/elm_image_legacy.h index d09060f969..f023de8316 100644 --- a/src/lib/elementary/elm_image_legacy.h +++ b/src/lib/elementary/elm_image_legacy.h @@ -553,5 +553,3 @@ EAPI Eina_Bool elm_image_aspect_fixed_get(const Evas_Object *obj); * @ingroup Elm_Image */ EAPI void elm_image_async_open_set(Evas_Object *obj, Eina_Bool async); - -#include "efl_ui_image.eo.legacy.h" diff --git a/src/lib/elementary/elm_index.c b/src/lib/elementary/elm_index.c index 49fa53192b..c046080a6e 100644 --- a/src/lib/elementary/elm_index.c +++ b/src/lib/elementary/elm_index.c @@ -1045,7 +1045,6 @@ _elm_index_efl_canvas_group_group_add(Eo *obj, Elm_Index_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (!elm_layout_theme_set (obj, "index", "base/vertical", elm_widget_style_get(obj))) diff --git a/src/lib/elementary/elm_inwin.c b/src/lib/elementary/elm_inwin.c index 54d2c4d775..e50128027e 100644 --- a/src/lib/elementary/elm_inwin.c +++ b/src/lib/elementary/elm_inwin.c @@ -46,7 +46,6 @@ EOLIAN static void _elm_inwin_efl_canvas_group_group_add(Eo *obj, Elm_Inwin_Data *pd EINA_UNUSED) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_FALSE); elm_widget_highlight_ignore_set(obj, EINA_TRUE); diff --git a/src/lib/elementary/elm_label.c b/src/lib/elementary/elm_label.c index 9e31e5a5b1..4468b72bd0 100644 --- a/src/lib/elementary/elm_label.c +++ b/src/lib/elementary/elm_label.c @@ -380,8 +380,6 @@ _elm_label_efl_canvas_group_group_add(Eo *obj, Elm_Label_Data *priv) efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); - priv->linewrap = ELM_WRAP_NONE; priv->wrap_w = -1; priv->slide_duration = 10; diff --git a/src/lib/elementary/elm_layout_legacy.h b/src/lib/elementary/elm_layout_legacy.h index 58dab5bcc9..55a23a69f3 100644 --- a/src/lib/elementary/elm_layout_legacy.h +++ b/src/lib/elementary/elm_layout_legacy.h @@ -711,5 +711,3 @@ EAPI const char *elm_layout_part_cursor_style_get(const Evas_Object *obj, const * @ingroup Elm_Layout */ EAPI Eina_Bool elm_layout_part_cursor_unset(Evas_Object *obj, const char *part_name); - -#include "efl_ui_layout.eo.legacy.h" diff --git a/src/lib/elementary/elm_list.c b/src/lib/elementary/elm_list.c index 891e58536f..da40668a02 100644 --- a/src/lib/elementary/elm_list.c +++ b/src/lib/elementary/elm_list.c @@ -2352,7 +2352,6 @@ _elm_list_efl_canvas_group_group_add(Eo *obj, Elm_List_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_TRUE); diff --git a/src/lib/elementary/elm_map.c b/src/lib/elementary/elm_map.c index 2e14abf2b8..71deea0b58 100644 --- a/src/lib/elementary/elm_map.c +++ b/src/lib/elementary/elm_map.c @@ -4092,8 +4092,6 @@ _elm_map_efl_canvas_group_group_add(Eo *obj, Elm_Map_Data *priv) Elm_Map_Pan_Data *pan_data; Evas_Object *edje; - elm_widget_sub_object_parent_add(obj); - edje = edje_object_add(evas_object_evas_get(obj)); elm_widget_resize_object_set(obj, edje); diff --git a/src/lib/elementary/elm_mapbuf.c b/src/lib/elementary/elm_mapbuf.c index 46796c1d6e..5706743243 100644 --- a/src/lib/elementary/elm_mapbuf.c +++ b/src/lib/elementary/elm_mapbuf.c @@ -284,7 +284,6 @@ _elm_mapbuf_efl_canvas_group_group_add(Eo *obj, Elm_Mapbuf_Data *priv) elm_widget_resize_object_set(obj, rect); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); evas_object_static_clip_set(rect, EINA_TRUE); evas_object_pass_events_set(rect, EINA_TRUE); diff --git a/src/lib/elementary/elm_menu.c b/src/lib/elementary/elm_menu.c index df38939c1c..236d859399 100644 --- a/src/lib/elementary/elm_menu.c +++ b/src/lib/elementary/elm_menu.c @@ -690,7 +690,6 @@ EOLIAN static void _elm_menu_efl_canvas_group_group_add(Eo *obj, Elm_Menu_Data *priv) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_FALSE); diff --git a/src/lib/elementary/elm_notify.c b/src/lib/elementary/elm_notify.c index 8a98c32f9b..0f1bbd37f4 100644 --- a/src/lib/elementary/elm_notify.c +++ b/src/lib/elementary/elm_notify.c @@ -143,12 +143,16 @@ EOLIAN static Eina_Error _elm_notify_efl_ui_widget_theme_apply(Eo *obj, Elm_Notify_Data *sd) { Eina_Error int_ret = EFL_UI_THEME_APPLY_ERROR_GENERIC; + Eina_Error notify_theme_ret = EFL_UI_THEME_APPLY_ERROR_GENERIC; int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); if (int_ret == EFL_UI_THEME_APPLY_ERROR_GENERIC) return int_ret; _mirrored_set(obj, efl_ui_mirrored_get(obj)); - int_ret &= _notify_theme_apply(obj); + notify_theme_ret = _notify_theme_apply(obj); + if (notify_theme_ret == EFL_UI_THEME_APPLY_ERROR_GENERIC) + return notify_theme_ret; + if (sd->block_events) _block_events_theme_apply(obj); edje_object_scale_set @@ -156,7 +160,11 @@ _elm_notify_efl_ui_widget_theme_apply(Eo *obj, Elm_Notify_Data *sd) _sizing_eval(obj); - return int_ret; + if ((int_ret == EFL_UI_THEME_APPLY_ERROR_DEFAULT) || + (notify_theme_ret == EFL_UI_THEME_APPLY_ERROR_DEFAULT)) + return EFL_UI_THEME_APPLY_ERROR_DEFAULT; + + return EFL_UI_THEME_APPLY_ERROR_NONE; } /* Legacy compat. Note that notify has no text parts in the default theme... */ @@ -441,7 +449,6 @@ EOLIAN static void _elm_notify_efl_canvas_group_group_add(Eo *obj, Elm_Notify_Data *priv) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->allow_events = EINA_TRUE; diff --git a/src/lib/elementary/elm_panel.c b/src/lib/elementary/elm_panel.c index a0b4ccd47e..7d9e800149 100644 --- a/src/lib/elementary/elm_panel.c +++ b/src/lib/elementary/elm_panel.c @@ -830,7 +830,6 @@ _elm_panel_efl_canvas_group_group_add(Eo *obj, Elm_Panel_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_TRUE); priv->panel_edje = wd->resize_obj; diff --git a/src/lib/elementary/elm_photo.c b/src/lib/elementary/elm_photo.c index 1af5e2b872..92d9aed828 100644 --- a/src/lib/elementary/elm_photo.c +++ b/src/lib/elementary/elm_photo.c @@ -262,7 +262,6 @@ _elm_photo_efl_canvas_group_group_add(Eo *obj, Elm_Photo_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_FALSE); diff --git a/src/lib/elementary/elm_plug.c b/src/lib/elementary/elm_plug.c index f55c616ec7..4b1f005ff0 100644 --- a/src/lib/elementary/elm_plug.c +++ b/src/lib/elementary/elm_plug.c @@ -114,7 +114,6 @@ _elm_plug_efl_canvas_group_group_add(Eo *obj, void *sd EINA_UNUSED) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); ee = ecore_evas_ecore_evas_get(evas_object_evas_get(obj)); if (!ee) return; diff --git a/src/lib/elementary/elm_prefs.c b/src/lib/elementary/elm_prefs.c index edd2213b4a..a320563661 100644 --- a/src/lib/elementary/elm_prefs.c +++ b/src/lib/elementary/elm_prefs.c @@ -48,7 +48,6 @@ EOLIAN static void _elm_prefs_efl_canvas_group_group_add(Eo *obj, Elm_Prefs_Data *_pd EINA_UNUSED) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); } static void _item_free(Elm_Prefs_Item_Node *it); diff --git a/src/lib/elementary/elm_priv.h b/src/lib/elementary/elm_priv.h index fa262e2646..478497468d 100644 --- a/src/lib/elementary/elm_priv.h +++ b/src/lib/elementary/elm_priv.h @@ -875,12 +875,14 @@ EOAPI void efl_page_transition_page_size_set(Eo *obj, Eina_Size2D sz); EOAPI void efl_page_transition_padding_size_set(Eo *obj, int padding); EOAPI void efl_page_transition_update(Eo *obj, double pos); EOAPI void efl_page_transition_pack(Eo *obj, int index); +EOAPI void efl_page_transition_unpack_all(Eo *obj); EOAPI void efl_page_transition_curr_page_change(Eo *obj, int diff); EOAPI Eina_Bool efl_page_transition_loop_set(Eo *obj, Efl_Ui_Pager_Loop loop); EOAPI void efl_page_indicator_update(Eo *obj, double pos); EOAPI void efl_page_indicator_pack(Eo *obj, int index); EOAPI void efl_page_indicator_unpack(Eo *obj, int index); +EOAPI void efl_page_indicator_unpack_all(Eo *obj); Eina_Bool _elm_config_accel_preference_parse(const char *pref, Eina_Stringshare **accel, int *gl_depth, int *gl_stencil, int *gl_msaa); diff --git a/src/lib/elementary/elm_progressbar_legacy.h b/src/lib/elementary/elm_progressbar_legacy.h index 8eedf940e5..a6b67991be 100644 --- a/src/lib/elementary/elm_progressbar_legacy.h +++ b/src/lib/elementary/elm_progressbar_legacy.h @@ -284,5 +284,3 @@ EAPI void elm_progressbar_part_value_set(Evas_Object *obj, const char *part, dou * @ingroup Elm_Progressbar */ EAPI double elm_progressbar_part_value_get(const Evas_Object *obj, const char *part); - -#include "efl_ui_progressbar.eo.legacy.h" diff --git a/src/lib/elementary/elm_route.c b/src/lib/elementary/elm_route.c index 3b9d3ecee3..be51b20704 100644 --- a/src/lib/elementary/elm_route.c +++ b/src/lib/elementary/elm_route.c @@ -138,7 +138,6 @@ _elm_route_efl_canvas_group_group_add(Eo *obj, Elm_Route_Data *priv) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_FALSE); evas_object_event_callback_add diff --git a/src/lib/elementary/elm_scroller.c b/src/lib/elementary/elm_scroller.c index f70ec39adc..1eec6d866e 100644 --- a/src/lib/elementary/elm_scroller.c +++ b/src/lib/elementary/elm_scroller.c @@ -778,7 +778,6 @@ _elm_scroller_efl_canvas_group_group_add(Eo *obj, Elm_Scroller_Data *priv) Evas_Coord minw, minh; efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_TRUE); if (!elm_layout_theme_set @@ -786,6 +785,7 @@ _elm_scroller_efl_canvas_group_group_add(Eo *obj, Elm_Scroller_Data *priv) CRI("Failed to set layout!"); priv->hit_rect = evas_object_rectangle_add(evas_object_evas_get(obj)); + evas_object_data_set(priv->hit_rect, "_elm_leaveme", obj); evas_object_smart_member_add(priv->hit_rect, obj); elm_widget_sub_object_add(obj, priv->hit_rect); diff --git a/src/lib/elementary/elm_scroller_legacy.h b/src/lib/elementary/elm_scroller_legacy.h index 6b40eff78f..b1ec21d223 100644 --- a/src/lib/elementary/elm_scroller_legacy.h +++ b/src/lib/elementary/elm_scroller_legacy.h @@ -1,4 +1,42 @@ -#include "elm_interface_scrollable.eo.legacy.h" +#ifndef _ELM_INTERFACE_SCROLLABLE_EO_TYPES +#define _ELM_INTERFACE_SCROLLABLE_EO_TYPES + +/** + * @brief Type that controls when scrollbars should appear. + * + * See also @ref elm_interface_scrollable_policy_set. + * + * @ingroup Elm_Scroller + */ +typedef enum +{ + ELM_SCROLLER_POLICY_AUTO = 0, /**< Show scrollbars as needed */ + ELM_SCROLLER_POLICY_ON, /**< Always show scrollbars */ + ELM_SCROLLER_POLICY_OFF, /**< Never show scrollbars */ + ELM_SCROLLER_POLICY_LAST /**< Sentinel value to indicate last enum field + * during iteration */ +} Elm_Scroller_Policy; + +/** + * @brief Type that controls how the content is scrolled. + * + * See also @ref elm_interface_scrollable_single_direction_set. + * + * @ingroup Elm_Scroller + */ +typedef enum +{ + ELM_SCROLLER_SINGLE_DIRECTION_NONE = 0, /**< Scroll every direction */ + ELM_SCROLLER_SINGLE_DIRECTION_SOFT, /**< Scroll single direction if the + * direction is certain */ + ELM_SCROLLER_SINGLE_DIRECTION_HARD, /**< Scroll only single direction */ + ELM_SCROLLER_SINGLE_DIRECTION_LAST /**< Sentinel value to indicate last enum + * field during iteration */ +} Elm_Scroller_Single_Direction; + + +#endif + #include "elm_scroller_eo.legacy.h" /** diff --git a/src/lib/elementary/elm_segment_control.c b/src/lib/elementary/elm_segment_control.c index 96d7558f8e..0a6a3d1a19 100644 --- a/src/lib/elementary/elm_segment_control.c +++ b/src/lib/elementary/elm_segment_control.c @@ -611,7 +611,6 @@ _elm_segment_control_efl_canvas_group_group_add(Eo *obj, Elm_Segment_Control_Dat { sd->obj = obj; efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (!elm_layout_theme_set (obj, "segment_control", "base", elm_widget_style_get(obj))) diff --git a/src/lib/elementary/elm_separator.c b/src/lib/elementary/elm_separator.c index 2c73da13b0..792a74294f 100644 --- a/src/lib/elementary/elm_separator.c +++ b/src/lib/elementary/elm_separator.c @@ -48,7 +48,6 @@ EOLIAN static void _elm_separator_efl_canvas_group_group_add(Eo *obj, Elm_Separator_Data *sd EINA_UNUSED) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_FALSE); if (!elm_layout_theme_set diff --git a/src/lib/elementary/elm_slider_legacy.h b/src/lib/elementary/elm_slider_legacy.h index 99c5097297..aa32dec6b1 100644 --- a/src/lib/elementary/elm_slider_legacy.h +++ b/src/lib/elementary/elm_slider_legacy.h @@ -381,5 +381,3 @@ EAPI double elm_slider_step_get(const Evas_Object *obj); * @ingroup Elm_Slider */ EAPI void elm_slider_step_set(Evas_Object *obj, double step); - -#include "efl_ui_slider.eo.legacy.h" diff --git a/src/lib/elementary/elm_slideshow.c b/src/lib/elementary/elm_slideshow.c index 741be9eeb5..da8887413d 100644 --- a/src/lib/elementary/elm_slideshow.c +++ b/src/lib/elementary/elm_slideshow.c @@ -310,7 +310,6 @@ _elm_slideshow_efl_canvas_group_group_add(Eo *obj, Elm_Slideshow_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->count_item_pre_before = 2; priv->count_item_pre_after = 2; diff --git a/src/lib/elementary/elm_spinner.c b/src/lib/elementary/elm_spinner.c index 001dd3b152..3c35f0e2ce 100644 --- a/src/lib/elementary/elm_spinner.c +++ b/src/lib/elementary/elm_spinner.c @@ -1187,7 +1187,6 @@ _elm_spinner_efl_canvas_group_group_add(Eo *obj, Elm_Spinner_Data *priv) ELM_SPINNER_DATA_GET(obj, sd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->val_max = 100.0; priv->step = 1.0; diff --git a/src/lib/elementary/elm_table.c b/src/lib/elementary/elm_table.c index 14a287f911..fa07e5912b 100644 --- a/src/lib/elementary/elm_table.c +++ b/src/lib/elementary/elm_table.c @@ -92,8 +92,6 @@ _elm_table_efl_canvas_group_group_add(Eo *obj, void *_pd EINA_UNUSED) { Evas_Object *table; - elm_widget_sub_object_parent_add(obj); - table = evas_object_table_add(evas_object_evas_get(obj)); elm_widget_resize_object_set(obj, table); diff --git a/src/lib/elementary/elm_thumb.c b/src/lib/elementary/elm_thumb.c index df6244e32e..67ac441d6f 100644 --- a/src/lib/elementary/elm_thumb.c +++ b/src/lib/elementary/elm_thumb.c @@ -532,7 +532,6 @@ _elm_thumb_efl_canvas_group_group_add(Eo *obj, Elm_Thumb_Data *_pd EINA_UNUSED) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (!elm_layout_theme_set(obj, "thumb", "base", elm_widget_style_get(obj))) CRI("Failed to set layout!"); diff --git a/src/lib/elementary/elm_toolbar.c b/src/lib/elementary/elm_toolbar.c index b64f4d91bb..0efcacb8c0 100644 --- a/src/lib/elementary/elm_toolbar.c +++ b/src/lib/elementary/elm_toolbar.c @@ -2740,8 +2740,6 @@ _elm_toolbar_efl_canvas_group_group_add(Eo *obj, Elm_Toolbar_Data *priv) { Evas_Object *edje; - elm_widget_sub_object_parent_add(obj); - edje = edje_object_add(evas_object_evas_get(obj)); elm_widget_resize_object_set(obj, edje); diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build index 31b0199f6e..89ce09a95e 100644 --- a/src/lib/elementary/meson.build +++ b/src/lib/elementary/meson.build @@ -24,16 +24,15 @@ pub_eo_file_target = [] foreach eo_file : pub_legacy_eo_files pub_eo_file_target += custom_target('eolian_gen_' + eo_file, input : eo_file, - output : [eo_file + '.legacy.h',], + output : [eo_file + '.h'], depfile : eo_file + '.d', install : true, install_dir : dir_package_include, command : eolian_gen + [ '-I', meson.current_source_dir(), eolian_include_directories, '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'), '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), - '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'), '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'), - '-gchld', '@INPUT@']) + '-gchd', '@INPUT@']) endforeach @@ -191,16 +190,6 @@ foreach eo_file : pub_eo_files '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'), '-gchd', '@INPUT@']) - pub_eo_file_target += custom_target('eolian_gen_legacy_' + eo_file, - input : eo_file, - output : [eo_file + '.legacy.h'], - depfile : eo_file + '.legacy.d', - install : true, - install_dir : dir_package_include, - command : eolian_gen + [ '-I', meson.current_source_dir(), eolian_include_directories, - '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'), - '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.d'), - '-gld', '@INPUT@']) endforeach diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h index d909b7a375..8258690b85 100644 --- a/src/lib/evas/Evas_Legacy.h +++ b/src/lib/evas/Evas_Legacy.h @@ -3526,8 +3526,6 @@ EWAPI Eina_Bool _evas_object_intercept_call(Evas_Object *obj, Evas_Object_Interc */ EAPI Evas_Object *evas_object_rectangle_add(Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; -#include "canvas/efl_canvas_rectangle.eo.legacy.h" - /** * @} */ @@ -4373,8 +4371,6 @@ EAPI void evas_vg_gradient_spread_set(Eo *obj, Efl_Gfx_Gradient_Spread s); */ EAPI Efl_Gfx_Gradient_Spread evas_vg_gradient_spread_get(Eo *obj); -#include "canvas/efl_canvas_vg_gradient.eo.legacy.h" - /** * Creates a new linear gradient object \. * @@ -4424,8 +4420,6 @@ EAPI void evas_vg_gradient_linear_end_set(Eo *obj, double x, double y); */ EAPI void evas_vg_gradient_linear_end_get(Eo *obj, double *x, double *y); -#include "canvas/efl_canvas_vg_gradient_linear.eo.legacy.h" - /** * Creates a new radial gradient object \. * @@ -4492,8 +4486,6 @@ EAPI void evas_vg_gradient_radial_focal_set(Eo *obj, double x, double y); */ EAPI void evas_vg_gradient_radial_focal_get(Eo *obj, double *x, double *y); -#include "canvas/efl_canvas_vg_gradient_radial.eo.legacy.h" - /** * @} */ @@ -8126,8 +8118,6 @@ EAPI void evas_object_map_enable_set(Evas_Object *obj, Eina_Bool enabled); */ EAPI Eina_Bool evas_object_map_enable_get(const Evas_Object *obj); -#include "canvas/efl_gfx_mapping.eo.legacy.h" - /** * @brief Apply an evas filter program on this text object. * @@ -8247,13 +8237,3 @@ EAPI void evas_object_freeze_events_set(Efl_Canvas_Object *obj, Eina_Bool freeze EAPI Eina_Bool evas_object_freeze_events_get(const Efl_Canvas_Object *obj); #include "canvas/efl_canvas_event_grabber_eo.legacy.h" - -#include "canvas/efl_canvas_animation_alpha.eo.legacy.h" -#include "canvas/efl_canvas_animation.eo.legacy.h" -#include "canvas/efl_canvas_animation_group.eo.legacy.h" -#include "canvas/efl_canvas_animation_group_parallel.eo.legacy.h" -#include "canvas/efl_canvas_animation_group_sequential.eo.legacy.h" -#include "canvas/efl_canvas_animation_player.eo.legacy.h" -#include "canvas/efl_canvas_animation_rotate.eo.legacy.h" -#include "canvas/efl_canvas_animation_scale.eo.legacy.h" -#include "canvas/efl_canvas_animation_translate.eo.legacy.h" diff --git a/src/lib/evas/canvas/efl_canvas_image.c b/src/lib/evas/canvas/efl_canvas_image.c index 434c427bb0..9d4c6c4594 100644 --- a/src/lib/evas/canvas/efl_canvas_image.c +++ b/src/lib/evas/canvas/efl_canvas_image.c @@ -4,6 +4,21 @@ #define MY_CLASS EFL_CANVAS_IMAGE_CLASS #define MY_CLASS_NAME efl_class_name_get(MY_CLASS) +void +_evas_image_file_unload(Eo *eo_obj) +{ + Evas_Object_Protected_Data *obj; + Evas_Image_Data *o = efl_data_scope_get(eo_obj, EFL_CANVAS_IMAGE_INTERNAL_CLASS); + + if (!o->cur->f) return; + + obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); + evas_object_async_block(obj); + _evas_image_init_set(NULL, NULL, eo_obj, obj, o, NULL); + o->buffer_data_set = EINA_FALSE; + _evas_image_done_set(eo_obj, obj, o); + o->load_error = EFL_GFX_IMAGE_LOAD_ERROR_NONE; +} Eina_Bool _evas_image_file_load(Eo *eo_obj) { @@ -48,6 +63,13 @@ _efl_canvas_image_efl_file_load(Eo *eo_obj, void *_pd EINA_UNUSED) return EFL_GFX_IMAGE_LOAD_ERROR_DOES_NOT_EXIST; } +EOLIAN static void +_efl_canvas_image_efl_file_unload(Eo *eo_obj, void *_pd EINA_UNUSED) +{ + efl_file_unload(efl_super(eo_obj, MY_CLASS)); + _evas_image_file_unload(eo_obj); +} + const Eina_File * _evas_image_mmap_get(const Eo *eo_obj) { diff --git a/src/lib/evas/canvas/efl_canvas_image.eo b/src/lib/evas/canvas/efl_canvas_image.eo index 2dbad42f60..428a1f900a 100644 --- a/src/lib/evas/canvas/efl_canvas_image.eo +++ b/src/lib/evas/canvas/efl_canvas_image.eo @@ -17,6 +17,7 @@ class @beta Efl.Canvas.Image extends Efl.Canvas.Image_Internal implements Efl.Gfx.Buffer.buffer_map; Efl.Gfx.Buffer.buffer_unmap; Efl.File.load; + Efl.File.unload; Efl.Gfx.Frame_Controller.animated { get; } Efl.Gfx.Frame_Controller.frame { get; set; } Efl.Gfx.Frame_Controller.frame_count { get; } diff --git a/src/lib/evas/canvas/evas_image_eo.c b/src/lib/evas/canvas/evas_image_eo.c index 6c67d08c27..2d4f39ff39 100644 --- a/src/lib/evas/canvas/evas_image_eo.c +++ b/src/lib/evas/canvas/evas_image_eo.c @@ -15,6 +15,7 @@ _evas_image_class_initializer(Efl_Class *klass) EFL_OPS_DEFINE(ops, EFL_OBJECT_OP_FUNC(efl_file_load, _evas_image_efl_file_load), + EFL_OBJECT_OP_FUNC(efl_file_unload, _evas_image_efl_file_unload), EVAS_IMAGE_EXTRA_OPS ); opsp = &ops; diff --git a/src/lib/evas/canvas/evas_image_legacy.c b/src/lib/evas/canvas/evas_image_legacy.c index fc8172719c..6d466be575 100644 --- a/src/lib/evas/canvas/evas_image_legacy.c +++ b/src/lib/evas/canvas/evas_image_legacy.c @@ -1304,4 +1304,12 @@ _evas_image_efl_file_load(Eo *obj, void *pd EINA_UNUSED) return EFL_GFX_IMAGE_LOAD_ERROR_DOES_NOT_EXIST; } +EOLIAN static void +_evas_image_efl_file_unload(Eo *obj, void *pd EINA_UNUSED) +{ + EVAS_IMAGE_API(obj); + efl_file_unload(efl_super(obj, EVAS_IMAGE_CLASS)); + _evas_image_file_unload(obj); +} + #include "canvas/evas_image_eo.c" diff --git a/src/lib/evas/canvas/evas_image_private.h b/src/lib/evas/canvas/evas_image_private.h index 79114b4f99..5a4f3771a2 100644 --- a/src/lib/evas/canvas/evas_image_private.h +++ b/src/lib/evas/canvas/evas_image_private.h @@ -162,6 +162,7 @@ void _evas_image_fill_set(Eo *eo_obj, Evas_Image_Data *o, int x, int y, int w, i /* Efl.File */ Eina_Bool _evas_image_file_load(Eo *eo_obj); +void _evas_image_file_unload(Eo *eo_obj); const Eina_File *_evas_image_mmap_get(const Eo *eo_obj); const char *_evas_image_key_get(const Eo *eo_obj); void _efl_canvas_image_load_error_set(Eo *eo_obj EINA_UNUSED, Eina_Error err); diff --git a/src/lib/evas/canvas/evas_map.c b/src/lib/evas/canvas/evas_map.c index e633ccd883..1f576fcf84 100644 --- a/src/lib/evas/canvas/evas_map.c +++ b/src/lib/evas/canvas/evas_map.c @@ -1381,12 +1381,8 @@ evas_object_map_update(Evas_Object *eo_obj, pt->x = (lround(p->x) + x) * FP1; pt->y = (lround(p->y) + y) * FP1; pt->z = (lround(p->z) ) * FP1; - /* FIXME: Adding the framespace is a workaround for a bug on the EGL - * wayland backend, which does not affect other ports. Remove this when - * it is correctly handled inside the GL rendering code, which handles - * maps with perspective set. */ - pt->fx = p->px + obj->layer->evas->framespace.x; - pt->fy = p->py + obj->layer->evas->framespace.y; + pt->fx = p->x + (float) x; + pt->fy = p->y + (float) y; pt->fz = p->z; if ((uvw == 0) || (imagew == 0)) pt->u = 0; else pt->u = ((lround(p->u) * imagew) / uvw) * FP1; diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c index 5beeb4b0ce..1d9ede0de7 100644 --- a/src/lib/evas/canvas/evas_object_image.c +++ b/src/lib/evas/canvas/evas_object_image.c @@ -283,7 +283,9 @@ _evas_image_init_set(const Eina_File *f, const char *key, } ENFN->image_free(ENC, o->engine_data); } + o->engine_data = NULL; o->load_error = EFL_GFX_IMAGE_LOAD_ERROR_NONE; + if (!lo) return; lo->emile.scale_down_by = o->load_opts->scale_down_by; lo->emile.dpi = o->load_opts->dpi; lo->emile.w = o->load_opts->w; diff --git a/src/lib/evas/canvas/evas_object_textblock.c b/src/lib/evas/canvas/evas_object_textblock.c index 63eddd46a3..da73c03eb7 100644 --- a/src/lib/evas/canvas/evas_object_textblock.c +++ b/src/lib/evas/canvas/evas_object_textblock.c @@ -13571,6 +13571,7 @@ evas_object_textblock_free(Evas_Object *eo_obj) ts->objects = eina_list_remove(ts->objects, eo_obj); if (!ts->objects && (ts->delete_me || o->auto_styles)) { + _style_cache = eina_list_remove(_style_cache, ts); evas_textblock_style_free(ts); } free(use); diff --git a/src/lib/evas/canvas/meson.build b/src/lib/evas/canvas/meson.build index e0e6b3364a..3d1849b1a5 100644 --- a/src/lib/evas/canvas/meson.build +++ b/src/lib/evas/canvas/meson.build @@ -68,16 +68,6 @@ foreach eo_file : pub_eo_files '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'), '-gchd', '@INPUT@']) - pub_eo_file_target += custom_target('eolian_gen_legacy_' + eo_file, - input : eo_file, - output : [eo_file + '.legacy.h'], - depfile : eo_file + '.legacy.d', - install : true, - install_dir : join_paths(dir_package_include, 'canvas'), - command : eolian_gen + [ '-I', meson.current_source_dir(), eolian_include_directories, - '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'), - '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.d'), - '-gld', '@INPUT@']) endforeach diff --git a/src/lib/evas/common/evas_convert_yuv.c b/src/lib/evas/common/evas_convert_yuv.c index d199ec5aa5..ee753d1961 100644 --- a/src/lib/evas/common/evas_convert_yuv.c +++ b/src/lib/evas/common/evas_convert_yuv.c @@ -1622,9 +1622,10 @@ _evas_nv12torgb_raster(unsigned char **yuv, unsigned char *rgb, int w, int h) unsigned char *yp1, *yp2, *up, *vp; unsigned char *dp1; unsigned char *dp2; + int stride = sizeof(DATA32) * w; dp1 = rgb; - dp2 = dp1 + sizeof (int) * w; + dp2 = dp1 + stride; for (yy = 0; yy < h; yy++) { @@ -1646,8 +1647,8 @@ _evas_nv12torgb_raster(unsigned char **yuv, unsigned char *rgb, int w, int h) } /* jump one line */ - dp1 += sizeof (int) * w; - dp2 += sizeof (int) * w; + dp1 += stride; + dp2 += stride; } } diff --git a/src/lib/evas/common/evas_map_image_internal_high.c b/src/lib/evas/common/evas_map_image_internal_high.c index f842c7455d..0fd3ce40a7 100644 --- a/src/lib/evas/common/evas_map_image_internal_high.c +++ b/src/lib/evas/common/evas_map_image_internal_high.c @@ -354,7 +354,8 @@ _map_triangle_draw_linear(RGBA_Image *src, RGBA_Image *dst, int dw = dst->cache_entry.w; int x1, x2, x, y, uu, vv, ar, ab, iru, irv, px, ay; float dx, u, v, iptr; - float _dcdx[4], _dcdya[4], _ca[4], c[4]; + float _dcdx[4], _dcdya[4], _ca[4]; + float c[4] = {0, 0, 0, 0}; DATA32 *buf, *tmp; DATA8 *mbuf; @@ -773,8 +774,8 @@ _evas_common_map_rgba_internal_high(RGBA_Image *src, RGBA_Image *dst, Check alpha transparency. */ for (int i = 0; i < 4; i++) { - x[i] = ((float) (p[i].x >> FP)) + 0.5; - y[i] = ((float) (p[i].y >> FP)) + 0.5; + x[i] = p[i].fx + 0.5; + y[i] = p[i].fy + 0.5; u[i] = (p[i].u >> FP); v[i] = (p[i].v >> FP); c[i] = p[i].col; diff --git a/src/lib/evas/gesture/meson.build b/src/lib/evas/gesture/meson.build index 86927504ac..3765a0b67d 100644 --- a/src/lib/evas/gesture/meson.build +++ b/src/lib/evas/gesture/meson.build @@ -21,16 +21,6 @@ foreach eo_file : pub_eo_files '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'), '-gchd', '@INPUT@']) - pub_eo_file_target += custom_target('eolian_gen_legacy_' + eo_file, - input : eo_file, - output : [eo_file + '.legacy.h'], - depfile : eo_file + '.legacy.d', - install : true, - install_dir : join_paths(dir_package_include, 'gesture'), - command : eolian_gen + [ '-I', meson.current_source_dir(), eolian_include_directories, - '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'), - '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.d'), - '-gld', '@INPUT@']) endforeach pub_evas_eo_files += files(pub_eo_files) @@ -52,16 +42,6 @@ foreach eo_file : pub_eo_files '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'), '-gchd', '@INPUT@']) - pub_eo_file_target += custom_target('eolian_gen_legacy_' + eo_file, - input : eo_file, - output : [eo_file + '.legacy.h'], - depfile : eo_file + '.legacy.d', - install : false, - install_dir : join_paths(dir_package_include, 'gesture'), - command : eolian_gen + [ '-I', meson.current_source_dir(), eolian_include_directories, - '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'), - '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.d'), - '-gld', '@INPUT@']) endforeach pub_eo_types_files = [ diff --git a/src/lib/evas/meson.build b/src/lib/evas/meson.build index d338d586cc..b7238b6b44 100644 --- a/src/lib/evas/meson.build +++ b/src/lib/evas/meson.build @@ -35,16 +35,6 @@ foreach eo_file : pub_legacy_eo_files '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'), '-gchd', '@INPUT@']) - pub_eo_file_target += custom_target('eolian_gen_legacy_' + eo_file, - input : eo_file, - output : [eo_file + '.legacy.h'], - depfile : eo_file + '.legacy.d', - install : true, - install_dir : dir_package_include, - command : eolian_gen + [ '-I', meson.current_source_dir(), eolian_include_directories, - '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'), - '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.d'), - '-gld', '@INPUT@']) endforeach pub_eo_files = [ diff --git a/src/lib/evil/evil_fnmatch.c b/src/lib/evil/evil_fnmatch.c deleted file mode 100644 index 0b4af7bfb0..0000000000 --- a/src/lib/evil/evil_fnmatch.c +++ /dev/null @@ -1,231 +0,0 @@ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif /* HAVE_CONFIG_H */ - -#include -#include - -#include "fnmatch.h" -#include "evil_fnmatch_private.h" - -enum fnmatch_status -{ - fnmatch_not_found = 0, - fnmatch_found = 1, - fnmatch_syntax_error = 2 -}; - -static -size_t -fnmatch_match_class_token(enum fnmatch_status *status, - const char *class_token, - char c) -{ - if (! *class_token) - { - *status = fnmatch_syntax_error; - return 0; - } - else if (class_token[1] == '-' && class_token[2] != ']') - { - if (class_token[0] <= c && c <= class_token[2]) - *status = fnmatch_found; - return 3; - } - else - { - if (c == *class_token) - *status = fnmatch_found; - return 1; - } -} - -static -size_t -fnmatch_complement_class(const char *class_token) -{ - switch (*class_token) - { - case 0: - return FNM_SYNTAXERR; - - case '!': - return 1; - - default: - return 0; - } -} - -static -size_t -fnmatch_match_class(const char *class, - char c) -{ - const size_t complement = fnmatch_complement_class(class + 1); - enum fnmatch_status status; - size_t pos; - - if (complement == FNM_SYNTAXERR) - return FNM_SYNTAXERR; - - status = fnmatch_not_found; - pos = 1 + complement; - - do - pos += fnmatch_match_class_token(&status, class + pos, c); - while (class[pos] && class[pos] != ']'); - - if (status == fnmatch_syntax_error || ! class[pos]) - return FNM_SYNTAXERR; - - if (status == fnmatch_found) - return complement ? 0 : pos + 1; - else - return complement ? pos + 1 : 0; -} - -static -size_t -fnmatch_chrcasecmp(char a, - char b) -{ - if ('A' <= a && a <= 'Z') - a += 'a' - 'A'; - if ('A' <= b && b <= 'Z') - b += 'a' - 'A'; - return a == b; -} - -static -size_t -fnmatch_match_token(const char *token, - char c, - e_bool leading, - int flags) -{ - if (*token == '\\' && !(flags & FNM_NOESCAPE)) - return token[1] ? (token[1] == c ? 2 : 0) : FNM_SYNTAXERR; - - if (c == '/' && (flags & FNM_PATHNAME)) - return *token == '/'; - - if (c == '.' && leading && (flags & FNM_PERIOD)) - return *token == '.'; - - switch (*token) - { - case '?': - return 1; - - case '[': - return fnmatch_match_class(token, c); - - default: - if (flags & FNM_CASEFOLD) - return fnmatch_chrcasecmp(*token, c); - return *token == c ? 1 : 0; - } -} - -static -void -fnmatch_init_states(struct list_of_states *states) -{ - states->size = 1; - states->states[0] = 0; - memset(states->has, 0, states->reserved * sizeof (*states->has)); - states->has[0] = 1; -} - -static -size_t -fnmatch_check_finals(const char *pattern, - const struct list_of_states *states) -{ - size_t i, j; - for (i = 0; i < states->size; ++i) - { - e_bool match = 1; - - for (j = states->states[i]; pattern[j]; ++j) - if (pattern[j] != '*') - { - match = 0; - break; - } - - if (match) - return 0; - } - return FNM_NOMATCH; -} - -int -fnmatch(const char *pattern, - const char *string, - int flags) -{ - struct list_of_states *states; - struct list_of_states *new_states; - e_bool leading = 1; - char *c; - size_t r; - - assert(pattern); - assert(string); - - states = fnmatch_list_of_states_alloc(2, strlen(pattern)); - new_states = states + 1; - - if (! states) - return FNM_NOMEM; - fnmatch_init_states(states); - - - for (c = (char *)string; *c && states->size; ++c) - { - size_t i; - fnmatch_list_of_states_clear(new_states); - - for (i = 0; i < states->size; ++i) - { - const size_t pos = states->states[i]; - - if (! pattern[pos]) - { - if (*c == '/' && (flags & FNM_LEADING_DIR)) - return 0; - continue; - } - else if (pattern[pos] == '*') - { - fnmatch_list_of_states_insert(states, pos + 1); - if ((*c != '/' || !(flags & FNM_PATHNAME)) && - (*c != '.' || !leading || !(flags & FNM_PERIOD))) - fnmatch_list_of_states_insert(new_states, pos); - } - else - { - const size_t m = fnmatch_match_token(pattern + pos, *c, - leading, flags); - - if (m == FNM_SYNTAXERR) - return FNM_SYNTAXERR; - else if (m) - fnmatch_list_of_states_insert(new_states, pos + m); - } - } - { - struct list_of_states *tmp = states; - - states = new_states; - new_states = tmp; - } - leading = *c == '/' && (flags & FNM_PATHNAME); - } - - r = fnmatch_check_finals(pattern, states); - fnmatch_list_of_states_free(states < new_states ? states : new_states, 2); - return (int)r; -} diff --git a/src/lib/evil/evil_fnmatch_list_of_states.c b/src/lib/evil/evil_fnmatch_list_of_states.c deleted file mode 100644 index c6cfb7fe81..0000000000 --- a/src/lib/evil/evil_fnmatch_list_of_states.c +++ /dev/null @@ -1,77 +0,0 @@ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif /* HAVE_CONFIG_H */ - -#include -#include -#include - -#include "evil_fnmatch_private.h" - -struct list_of_states* -fnmatch_list_of_states_alloc(size_t n, - size_t pattern_len) -{ - struct list_of_states *l; - - const size_t reserved = pattern_len + 1; - const size_t states_size = sizeof (*l->states) * reserved; - const size_t has_size = sizeof (*l->has) * reserved; - const size_t states_has_size = states_size + has_size; - const size_t struct_size = sizeof (*l) + states_has_size; - - unsigned char *states; - unsigned char *has; - size_t i; - - l = malloc(n * struct_size); - if (!l) - return 0; - - states = (unsigned char *) (l + n); - has = states + states_size; - - for (i = 0; i < n; ++i) - { - l[i].reserved = reserved; - l[i].states = (size_t *) states; - l[i].has = (e_bool *) has; - states += states_has_size; - has += states_has_size; - } - - return l; -} - -void -fnmatch_list_of_states_free(struct list_of_states *lists, - size_t n) -{ - assert(lists); - - (void) n; - free(lists); -} - -void -fnmatch_list_of_states_insert(struct list_of_states *list, - size_t state) -{ - assert(list); - assert(state < list->reserved); - - if (list->has[state]) - return; - - list->states[list->size++] = state; - list->has[state] = 1; -} - -void -fnmatch_list_of_states_clear(struct list_of_states *list) -{ - assert(list); - - list->size = 0; - memset(list->has, 0, list->reserved * sizeof (*list->has)); -} diff --git a/src/lib/evil/evil_fnmatch_private.h b/src/lib/evil/evil_fnmatch_private.h deleted file mode 100644 index f5ced5d68f..0000000000 --- a/src/lib/evil/evil_fnmatch_private.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef __EVIL_FNMATCH_PRIVATE_H__ -#define __EVIL_FNMATCH_PRIVATE_H__ - - -typedef int e_bool; - -struct list_of_states -{ - size_t reserved; - size_t size; - size_t *states; - e_bool *has; -}; - -struct list_of_states *fnmatch_list_of_states_alloc(size_t n, size_t pattern_len); - -void fnmatch_list_of_states_free(struct list_of_states *lists, size_t n); - -void fnmatch_list_of_states_insert(struct list_of_states *list, size_t state); - -void fnmatch_list_of_states_clear(struct list_of_states *list); - - -#endif /* __EVIL_FNMATCH_PRIVATE_H__ */ diff --git a/src/lib/evil/evil_util.c b/src/lib/evil/evil_util.c index e47475371a..7add78f888 100644 --- a/src/lib/evil/evil_util.c +++ b/src/lib/evil/evil_util.c @@ -168,19 +168,6 @@ _evil_last_error_display(const char *fct) fprintf(stderr, "[Evil] [%s] ERROR: %s\n", fct, evil_last_error_get()); } - -const char * -evil_tmpdir_get(void) -{ - return NULL; -} - -const char * -evil_homedir_get(void) -{ - return NULL; -} - int evil_path_is_absolute(const char *path) { diff --git a/src/lib/evil/evil_util.h b/src/lib/evil/evil_util.h index e1fdf26387..5709371f18 100644 --- a/src/lib/evil/evil_util.h +++ b/src/lib/evil/evil_util.h @@ -63,59 +63,6 @@ EAPI const char *evil_format_message(long err); EAPI const char *evil_last_error_get(void); -/** - * @brief Return a dir to store temporary files. - * - * @return The directory to store temporary files. - * - * Return a directory to store temporary files. The function gets - * the value of the following environment variables, and in that order: - * - TMP - * - TEMP - * - USERPROFILE - * - WINDIR - * and returns its value if it exists. If none exists, the function - * returns "C:\". - * - * Conformity: Non applicable. - * - * Supported OS: Windows 95, Windows 98, Windows Me, Windows NT, Windows 2000, - * Windows XP. - - * @deprecated - * This function is deprecated and returns @c NULL. - * Use eina_environment_tmp_get() instead. - * - * @ingroup Evil - */ -EAPI const char *evil_tmpdir_get(void); - -/** - * @brief Return a dir to store personal files. - * - * @return The directory to store personal files. - * - * Return a directory to store personal files. The function gets - * the value of the following environment variables, and in that order: - * - HOME - * - USERPROFILE - * - WINDIR - * and returns its value if it exists. If none exists, the function - * returns "C:\". - * - * Conformity: Non applicable. - * - * Supported OS: Windows 95, Windows 98, Windows Me, Windows NT, Windows 2000, - * Windows XP. - - * @deprecated - * This function is deprecated and returns @c NULL. - * Use eina_environment_home_get() instead. - * - * @ingroup Evil - */ -EAPI const char *evil_homedir_get(void); - /** * @brief check if the given path is absolute. * diff --git a/src/lib/evil/fnmatch.h b/src/lib/evil/fnmatch.h deleted file mode 100644 index 0464fa7ef6..0000000000 --- a/src/lib/evil/fnmatch.h +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef __EVIL_FNMATCH_H__ -#define __EVIL_FNMATCH_H__ - -#ifdef EAPI -# undef EAPI -#endif - -#ifdef _WIN32 -# ifdef EFL_BUILD -# ifdef DLL_EXPORT -# define EAPI __declspec(dllexport) -# else -# define EAPI -# endif -# else -# define EAPI __declspec(dllimport) -# endif -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* We #undef these before defining them because some losing systems - (HP-UX A.08.07 for example) define these in . */ -#undef FNM_PATHNAME -#undef FNM_NOESCAPE -#undef FNM_PERIOD - -/* Bits set in the FLAGS argument to `fnmatch'. */ -#define FNM_PATHNAME (1 << 0) /* No wildcard can ever match `/'. */ -#define FNM_NOESCAPE (1 << 1) /* Backslashes don't quote special chars. */ -#define FNM_PERIOD (1 << 2) /* Leading `.' is matched only explicitly. */ - -#if !defined (_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 2 || defined (_GNU_SOURCE) -#define FNM_FILE_NAME FNM_PATHNAME /* Preferred GNU name. */ -#define FNM_LEADING_DIR (1 << 3) /* Ignore `/...' after a match. */ -#define FNM_CASEFOLD (1 << 4) /* Compare without regard to case. */ -#endif - -/* Value returned by `fnmatch' if STRING does not match PATTERN. */ -#define FNM_NOMATCH 1 -#define FNM_SYNTAXERR 2 -#define FNM_NOMEM 3 - -/* Match STRING against the filename pattern PATTERN, - returning zero if it matches, FNM_NOMATCH if not. */ -EAPI int fnmatch(const char *__pattern, const char *__string, int __flags); - -#ifdef __cplusplus -} -#endif - -#undef EAPI -#define EAPI - -#endif /* __EVIL_FNMATCH_H__ */ diff --git a/src/lib/evil/meson.build b/src/lib/evil/meson.build index 482e733637..0402b373c7 100644 --- a/src/lib/evil/meson.build +++ b/src/lib/evil/meson.build @@ -18,17 +18,13 @@ if target_machine.system() == 'windows' 'evil_unistd.h', 'evil_util.h', 'dirent.h', - 'fnmatch.h', 'pwd.h', - 'regex/regex.h' ] evil_header_sys_src = [join_paths('sys','mman.h')] evil_src = [ 'evil_dlfcn.c', 'evil_fcntl.c', - 'evil_fnmatch.c', - 'evil_fnmatch_list_of_states.c', 'evil_langinfo.c', 'evil_locale.c', 'evil_main.c', @@ -41,11 +37,8 @@ if target_machine.system() == 'windows' 'evil_unistd.c', 'evil_util.c', 'evil_private.h', - 'evil_fnmatch_private.h', ] - subdir('regex') - psapi = cc.find_library('psapi') ole32 = cc.find_library('ole32') ws2_32 = cc.find_library('ws2_32') @@ -53,13 +46,13 @@ if target_machine.system() == 'windows' uuid = cc.find_library('uuid') evil_lib = library('evil', evil_src, - dependencies : [psapi, ole32, ws2_32, secur32, uuid], - include_directories : [config_dir, include_directories('regex')], + dependencies : [psapi, ole32, ws2_32, secur32, uuid, regexp], + include_directories : [config_dir], ) evil = declare_dependency( - include_directories: [config_dir, include_directories('regex'), include_directories('.')], - dependencies : [psapi, ole32, ws2_32, secur32, uuid], + include_directories: [include_directories('.')], + dependencies : [psapi, ole32, ws2_32, secur32, uuid, regexp], link_with: evil_lib, ) else diff --git a/src/lib/evil/regex/cclass.h b/src/lib/evil/regex/cclass.h deleted file mode 100644 index 0c293028e9..0000000000 --- a/src/lib/evil/regex/cclass.h +++ /dev/null @@ -1,31 +0,0 @@ -/* character-class table */ -static struct cclass { - char *name; - char *chars; - char *multis; -} cclasses[] = { - "alnum", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\ -0123456789", "", - "alpha", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", - "", - "blank", " \t", "", - "cntrl", "\007\b\t\n\v\f\r\1\2\3\4\5\6\16\17\20\21\22\23\24\ -\25\26\27\30\31\32\33\34\35\36\37\177", "", - "digit", "0123456789", "", - "graph", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\ -0123456789!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~", - "", - "lower", "abcdefghijklmnopqrstuvwxyz", - "", - "print", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\ -0123456789!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~ ", - "", - "punct", "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~", - "", - "space", "\t\n\v\f\r ", "", - "upper", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", - "", - "xdigit", "0123456789ABCDEFabcdef", - "", - NULL, 0, "" -}; diff --git a/src/lib/evil/regex/cname.h b/src/lib/evil/regex/cname.h deleted file mode 100644 index 02e86e912e..0000000000 --- a/src/lib/evil/regex/cname.h +++ /dev/null @@ -1,102 +0,0 @@ -/* character-name table */ -static struct cname { - char *name; - char code; -} cnames[] = { - "NUL", '\0', - "SOH", '\001', - "STX", '\002', - "ETX", '\003', - "EOT", '\004', - "ENQ", '\005', - "ACK", '\006', - "BEL", '\007', - "alert", '\007', - "BS", '\010', - "backspace", '\b', - "HT", '\011', - "tab", '\t', - "LF", '\012', - "newline", '\n', - "VT", '\013', - "vertical-tab", '\v', - "FF", '\014', - "form-feed", '\f', - "CR", '\015', - "carriage-return", '\r', - "SO", '\016', - "SI", '\017', - "DLE", '\020', - "DC1", '\021', - "DC2", '\022', - "DC3", '\023', - "DC4", '\024', - "NAK", '\025', - "SYN", '\026', - "ETB", '\027', - "CAN", '\030', - "EM", '\031', - "SUB", '\032', - "ESC", '\033', - "IS4", '\034', - "FS", '\034', - "IS3", '\035', - "GS", '\035', - "IS2", '\036', - "RS", '\036', - "IS1", '\037', - "US", '\037', - "space", ' ', - "exclamation-mark", '!', - "quotation-mark", '"', - "number-sign", '#', - "dollar-sign", '$', - "percent-sign", '%', - "ampersand", '&', - "apostrophe", '\'', - "left-parenthesis", '(', - "right-parenthesis", ')', - "asterisk", '*', - "plus-sign", '+', - "comma", ',', - "hyphen", '-', - "hyphen-minus", '-', - "period", '.', - "full-stop", '.', - "slash", '/', - "solidus", '/', - "zero", '0', - "one", '1', - "two", '2', - "three", '3', - "four", '4', - "five", '5', - "six", '6', - "seven", '7', - "eight", '8', - "nine", '9', - "colon", ':', - "semicolon", ';', - "less-than-sign", '<', - "equals-sign", '=', - "greater-than-sign", '>', - "question-mark", '?', - "commercial-at", '@', - "left-square-bracket", '[', - "backslash", '\\', - "reverse-solidus", '\\', - "right-square-bracket", ']', - "circumflex", '^', - "circumflex-accent", '^', - "underscore", '_', - "low-line", '_', - "grave-accent", '`', - "left-brace", '{', - "left-curly-bracket", '{', - "vertical-line", '|', - "right-brace", '}', - "right-curly-bracket", '}', - "tilde", '~', - "DEL", '\177', - NULL, 0, -}; diff --git a/src/lib/evil/regex/engine.c b/src/lib/evil/regex/engine.c deleted file mode 100644 index 919fe3f641..0000000000 --- a/src/lib/evil/regex/engine.c +++ /dev/null @@ -1,1019 +0,0 @@ -/* - * The matching engine and friends. This file is #included by regexec.c - * after suitable #defines of a variety of macros used herein, so that - * different state representations can be used without duplicating masses - * of code. - */ - -#ifdef SNAMES -#define matcher smatcher -#define fast sfast -#define slow sslow -#define dissect sdissect -#define backref sbackref -#define step sstep -#define print sprint -#define at sat -#define match smat -#endif -#ifdef LNAMES -#define matcher lmatcher -#define fast lfast -#define slow lslow -#define dissect ldissect -#define backref lbackref -#define step lstep -#define print lprint -#define at lat -#define match lmat -#endif - -/* another structure passed up and down to avoid zillions of parameters */ -struct match { - struct re_guts *g; - int eflags; - regmatch_t *pmatch; /* [nsub+1] (0 element unused) */ - char *offp; /* offsets work from here */ - char *beginp; /* start of string -- virtual NUL precedes */ - char *endp; /* end of string -- virtual NUL here */ - char *coldp; /* can be no match starting before here */ - char **lastpos; /* [nplus+1] */ - STATEVARS; - states st; /* current states */ - states fresh; /* states for a fresh start */ - states tmp; /* temporary */ - states empty; /* empty set of states */ -}; - -#include "engine.ih" - -#ifdef REDEBUG -#define SP(t, s, c) print(m, t, s, c, stdout) -#define AT(t, p1, p2, s1, s2) at(m, t, p1, p2, s1, s2) -#define NOTE(str) { if (m->eflags®_TRACE) printf("=%s\n", (str)); } -#else -#define SP(t, s, c) /* nothing */ -#define AT(t, p1, p2, s1, s2) /* nothing */ -#define NOTE(s) /* nothing */ -#endif - -/* - - matcher - the actual matching engine - == static int matcher(register struct re_guts *g, char *string, \ - == size_t nmatch, regmatch_t pmatch[], int eflags); - */ -static int /* 0 success, REG_NOMATCH failure */ -matcher(g, string, nmatch, pmatch, eflags) -register struct re_guts *g; -char *string; -size_t nmatch; -regmatch_t pmatch[]; -int eflags; -{ - register char *endp; - register int i; - struct match mv; - register struct match *m = &mv; - register char *dp; - const register sopno gf = g->firststate+1; /* +1 for OEND */ - const register sopno gl = g->laststate; - char *start; - char *stop; - - /* simplify the situation where possible */ - if (g->cflags®_NOSUB) - nmatch = 0; - if (eflags®_STARTEND) { - start = string + pmatch[0].rm_so; - stop = string + pmatch[0].rm_eo; - } else { - start = string; - stop = start + strlen(start); - } - if (stop < start) - return(REG_INVARG); - - /* prescreening; this does wonders for this rather slow code */ - if (g->must != NULL) { - for (dp = start; dp < stop; dp++) - if (*dp == g->must[0] && stop - dp >= g->mlen && - memcmp(dp, g->must, (size_t)g->mlen) == 0) - break; - if (dp == stop) /* we didn't find g->must */ - return(REG_NOMATCH); - } - - /* match struct setup */ - m->g = g; - m->eflags = eflags; - m->pmatch = NULL; - m->lastpos = NULL; - m->offp = string; - m->beginp = start; - m->endp = stop; - STATESETUP(m, 4); - SETUP(m->st); - SETUP(m->fresh); - SETUP(m->tmp); - SETUP(m->empty); - CLEAR(m->empty); - - /* this loop does only one repetition except for backrefs */ - for (;;) { - endp = fast(m, start, stop, gf, gl); - if (endp == NULL) { /* a miss */ - STATETEARDOWN(m); - return(REG_NOMATCH); - } - if (nmatch == 0 && !g->backrefs) - break; /* no further info needed */ - - /* where? */ - assert(m->coldp != NULL); - for (;;) { - NOTE("finding start"); - endp = slow(m, m->coldp, stop, gf, gl); - if (endp != NULL) - break; - assert(m->coldp < m->endp); - m->coldp++; - } - if (nmatch == 1 && !g->backrefs) - break; /* no further info needed */ - - /* oh my, he wants the subexpressions... */ - if (m->pmatch == NULL) - m->pmatch = (regmatch_t *)malloc((m->g->nsub + 1) * - sizeof(regmatch_t)); - if (m->pmatch == NULL) { - STATETEARDOWN(m); - return(REG_ESPACE); - } - for (i = 1; i <= m->g->nsub; i++) - m->pmatch[i].rm_so = m->pmatch[i].rm_eo = -1; - if (!g->backrefs && !(m->eflags®_BACKR)) { - NOTE("dissecting"); - dp = dissect(m, m->coldp, endp, gf, gl); - } else { - if (g->nplus > 0 && m->lastpos == NULL) - m->lastpos = (char **)malloc((g->nplus+1) * - sizeof(char *)); - if (g->nplus > 0 && m->lastpos == NULL) { - free(m->pmatch); - STATETEARDOWN(m); - return(REG_ESPACE); - } - NOTE("backref dissect"); - dp = backref(m, m->coldp, endp, gf, gl, (sopno)0); - } - if (dp != NULL) - break; - - /* uh-oh... we couldn't find a subexpression-level match */ - assert(g->backrefs); /* must be back references doing it */ - assert(g->nplus == 0 || m->lastpos != NULL); - for (;;) { - if (dp != NULL || endp <= m->coldp) - break; /* defeat */ - NOTE("backoff"); - endp = slow(m, m->coldp, endp-1, gf, gl); - if (endp == NULL) - break; /* defeat */ - /* try it on a shorter possibility */ -#ifndef NDEBUG - for (i = 1; i <= m->g->nsub; i++) { - assert(m->pmatch[i].rm_so == -1); - assert(m->pmatch[i].rm_eo == -1); - } -#endif - NOTE("backoff dissect"); - dp = backref(m, m->coldp, endp, gf, gl, (sopno)0); - } - assert(dp == NULL || dp == endp); - if (dp != NULL) /* found a shorter one */ - break; - - /* despite initial appearances, there is no match here */ - NOTE("false alarm"); - start = m->coldp + 1; /* recycle starting later */ - assert(start <= stop); - } - - /* fill in the details if requested */ - if (nmatch > 0) { - pmatch[0].rm_so = m->coldp - m->offp; - pmatch[0].rm_eo = endp - m->offp; - } - if (nmatch > 1) { - assert(m->pmatch != NULL); - for (i = 1; i < nmatch; i++) - if (i <= m->g->nsub) - pmatch[i] = m->pmatch[i]; - else { - pmatch[i].rm_so = -1; - pmatch[i].rm_eo = -1; - } - } - - if (m->pmatch != NULL) - free((char *)m->pmatch); - if (m->lastpos != NULL) - free((char *)m->lastpos); - STATETEARDOWN(m); - return(0); -} - -/* - - dissect - figure out what matched what, no back references - == static char *dissect(register struct match *m, char *start, \ - == char *stop, sopno startst, sopno stopst); - */ -static char * /* == stop (success) always */ -dissect(m, start, stop, startst, stopst) -register struct match *m; -char *start; -char *stop; -sopno startst; -sopno stopst; -{ - register int i; - register sopno ss; /* start sop of current subRE */ - register sopno es; /* end sop of current subRE */ - register char *sp; /* start of string matched by it */ - register char *stp; /* string matched by it cannot pass here */ - register char *rest; /* start of rest of string */ - register char *tail; /* string unmatched by rest of RE */ - register sopno ssub; /* start sop of subsubRE */ - register sopno esub; /* end sop of subsubRE */ - register char *ssp; /* start of string matched by subsubRE */ - register char *sep; /* end of string matched by subsubRE */ - register char *oldssp; /* previous ssp */ - register char *dp; - - AT("diss", start, stop, startst, stopst); - sp = start; - for (ss = startst; ss < stopst; ss = es) { - /* identify end of subRE */ - es = ss; - switch (OP(m->g->strip[es])) { - case OPLUS_: - case OQUEST_: - es += OPND(m->g->strip[es]); - break; - case OCH_: - while (OP(m->g->strip[es]) != O_CH) - es += OPND(m->g->strip[es]); - break; - } - es++; - - /* figure out what it matched */ - switch (OP(m->g->strip[ss])) { - case OEND: - assert(nope); - break; - case OCHAR: - sp++; - break; - case OBOL: - case OEOL: - case OBOW: - case OEOW: - break; - case OANY: - case OANYOF: - sp++; - break; - case OBACK_: - case O_BACK: - assert(nope); - break; - /* cases where length of match is hard to find */ - case OQUEST_: - stp = stop; - for (;;) { - /* how long could this one be? */ - rest = slow(m, sp, stp, ss, es); - assert(rest != NULL); /* it did match */ - /* could the rest match the rest? */ - tail = slow(m, rest, stop, es, stopst); - if (tail == stop) - break; /* yes! */ - /* no -- try a shorter match for this one */ - stp = rest - 1; - assert(stp >= sp); /* it did work */ - } - ssub = ss + 1; - esub = es - 1; - /* did innards match? */ - if (slow(m, sp, rest, ssub, esub) != NULL) { - dp = dissect(m, sp, rest, ssub, esub); - assert(dp == rest); - } else /* no */ - assert(sp == rest); - sp = rest; - break; - case OPLUS_: - stp = stop; - for (;;) { - /* how long could this one be? */ - rest = slow(m, sp, stp, ss, es); - assert(rest != NULL); /* it did match */ - /* could the rest match the rest? */ - tail = slow(m, rest, stop, es, stopst); - if (tail == stop) - break; /* yes! */ - /* no -- try a shorter match for this one */ - stp = rest - 1; - assert(stp >= sp); /* it did work */ - } - ssub = ss + 1; - esub = es - 1; - ssp = sp; - oldssp = ssp; - for (;;) { /* find last match of innards */ - sep = slow(m, ssp, rest, ssub, esub); - if (sep == NULL || sep == ssp) - break; /* failed or matched null */ - oldssp = ssp; /* on to next try */ - ssp = sep; - } - if (sep == NULL) { - /* last successful match */ - sep = ssp; - ssp = oldssp; - } - assert(sep == rest); /* must exhaust substring */ - assert(slow(m, ssp, sep, ssub, esub) == rest); - dp = dissect(m, ssp, sep, ssub, esub); - assert(dp == sep); - sp = rest; - break; - case OCH_: - stp = stop; - for (;;) { - /* how long could this one be? */ - rest = slow(m, sp, stp, ss, es); - assert(rest != NULL); /* it did match */ - /* could the rest match the rest? */ - tail = slow(m, rest, stop, es, stopst); - if (tail == stop) - break; /* yes! */ - /* no -- try a shorter match for this one */ - stp = rest - 1; - assert(stp >= sp); /* it did work */ - } - ssub = ss + 1; - esub = ss + OPND(m->g->strip[ss]) - 1; - assert(OP(m->g->strip[esub]) == OOR1); - for (;;) { /* find first matching branch */ - if (slow(m, sp, rest, ssub, esub) == rest) - break; /* it matched all of it */ - /* that one missed, try next one */ - assert(OP(m->g->strip[esub]) == OOR1); - esub++; - assert(OP(m->g->strip[esub]) == OOR2); - ssub = esub + 1; - esub += OPND(m->g->strip[esub]); - if (OP(m->g->strip[esub]) == OOR2) - esub--; - else - assert(OP(m->g->strip[esub]) == O_CH); - } - dp = dissect(m, sp, rest, ssub, esub); - assert(dp == rest); - sp = rest; - break; - case O_PLUS: - case O_QUEST: - case OOR1: - case OOR2: - case O_CH: - assert(nope); - break; - case OLPAREN: - i = OPND(m->g->strip[ss]); - assert(0 < i && i <= m->g->nsub); - m->pmatch[i].rm_so = sp - m->offp; - break; - case ORPAREN: - i = OPND(m->g->strip[ss]); - assert(0 < i && i <= m->g->nsub); - m->pmatch[i].rm_eo = sp - m->offp; - break; - default: /* uh oh */ - assert(nope); - break; - } - } - - assert(sp == stop); - return(sp); -} - -/* - - backref - figure out what matched what, figuring in back references - == static char *backref(register struct match *m, char *start, \ - == char *stop, sopno startst, sopno stopst, sopno lev); - */ -static char * /* == stop (success) or NULL (failure) */ -backref(m, start, stop, startst, stopst, lev) -register struct match *m; -char *start; -char *stop; -sopno startst; -sopno stopst; -sopno lev; /* PLUS nesting level */ -{ - register int i; - register sopno ss; /* start sop of current subRE */ - register char *sp; /* start of string matched by it */ - register sopno ssub; /* start sop of subsubRE */ - register sopno esub; /* end sop of subsubRE */ - register char *ssp; /* start of string matched by subsubRE */ - register char *dp; - register size_t len; - register int hard; - register sop s; - register regoff_t offsave; - register cset *cs; - - AT("back", start, stop, startst, stopst); - sp = start; - - /* get as far as we can with easy stuff */ - hard = 0; - for (ss = startst; !hard && ss < stopst; ss++) - switch (OP(s = m->g->strip[ss])) { - case OCHAR: - if (sp == stop || *sp++ != (char)OPND(s)) - return(NULL); - break; - case OANY: - if (sp == stop) - return(NULL); - sp++; - break; - case OANYOF: - cs = &m->g->sets[OPND(s)]; - if (sp == stop || !CHIN(cs, *sp++)) - return(NULL); - break; - case OBOL: - if ( (sp == m->beginp && !(m->eflags®_NOTBOL)) || - (sp < m->endp && *(sp-1) == '\n' && - (m->g->cflags®_NEWLINE)) ) - { /* yes */ } - else - return(NULL); - break; - case OEOL: - if ( (sp == m->endp && !(m->eflags®_NOTEOL)) || - (sp < m->endp && *sp == '\n' && - (m->g->cflags®_NEWLINE)) ) - { /* yes */ } - else - return(NULL); - break; - case OBOW: - if (( (sp == m->beginp && !(m->eflags®_NOTBOL)) || - (sp < m->endp && *(sp-1) == '\n' && - (m->g->cflags®_NEWLINE)) || - (sp > m->beginp && - !ISWORD(*(sp-1))) ) && - (sp < m->endp && ISWORD(*sp)) ) - { /* yes */ } - else - return(NULL); - break; - case OEOW: - if (( (sp == m->endp && !(m->eflags®_NOTEOL)) || - (sp < m->endp && *sp == '\n' && - (m->g->cflags®_NEWLINE)) || - (sp < m->endp && !ISWORD(*sp)) ) && - (sp > m->beginp && ISWORD(*(sp-1))) ) - { /* yes */ } - else - return(NULL); - break; - case O_QUEST: - break; - case OOR1: /* matches null but needs to skip */ - ss++; - s = m->g->strip[ss]; - do { - assert(OP(s) == OOR2); - ss += OPND(s); - } while (OP(s = m->g->strip[ss]) != O_CH); - /* note that the ss++ gets us past the O_CH */ - break; - default: /* have to make a choice */ - hard = 1; - break; - } - if (!hard) { /* that was it! */ - if (sp != stop) - return(NULL); - return(sp); - } - ss--; /* adjust for the for's final increment */ - - /* the hard stuff */ - AT("hard", sp, stop, ss, stopst); - s = m->g->strip[ss]; - switch (OP(s)) { - case OBACK_: /* the vilest depths */ - i = OPND(s); - assert(0 < i && i <= m->g->nsub); - if (m->pmatch[i].rm_eo == -1) - return(NULL); - assert(m->pmatch[i].rm_so != -1); - len = m->pmatch[i].rm_eo - m->pmatch[i].rm_so; - assert(stop - m->beginp >= len); - if (sp > stop - len) - return(NULL); /* not enough left to match */ - ssp = m->offp + m->pmatch[i].rm_so; - if (memcmp(sp, ssp, len) != 0) - return(NULL); - while (m->g->strip[ss] != SOP(O_BACK, i)) - ss++; - return(backref(m, sp+len, stop, ss+1, stopst, lev)); - break; - case OQUEST_: /* to null or not */ - dp = backref(m, sp, stop, ss+1, stopst, lev); - if (dp != NULL) - return(dp); /* not */ - return(backref(m, sp, stop, ss+OPND(s)+1, stopst, lev)); - break; - case OPLUS_: - assert(m->lastpos != NULL); - assert(lev+1 <= m->g->nplus); - m->lastpos[lev+1] = sp; - return(backref(m, sp, stop, ss+1, stopst, lev+1)); - break; - case O_PLUS: - if (sp == m->lastpos[lev]) /* last pass matched null */ - return(backref(m, sp, stop, ss+1, stopst, lev-1)); - /* try another pass */ - m->lastpos[lev] = sp; - dp = backref(m, sp, stop, ss-OPND(s)+1, stopst, lev); - if (dp == NULL) - return(backref(m, sp, stop, ss+1, stopst, lev-1)); - else - return(dp); - break; - case OCH_: /* find the right one, if any */ - ssub = ss + 1; - esub = ss + OPND(s) - 1; - assert(OP(m->g->strip[esub]) == OOR1); - for (;;) { /* find first matching branch */ - dp = backref(m, sp, stop, ssub, esub, lev); - if (dp != NULL) - return(dp); - /* that one missed, try next one */ - if (OP(m->g->strip[esub]) == O_CH) - return(NULL); /* there is none */ - esub++; - assert(OP(m->g->strip[esub]) == OOR2); - ssub = esub + 1; - esub += OPND(m->g->strip[esub]); - if (OP(m->g->strip[esub]) == OOR2) - esub--; - else - assert(OP(m->g->strip[esub]) == O_CH); - } - break; - case OLPAREN: /* must undo assignment if rest fails */ - i = OPND(s); - assert(0 < i && i <= m->g->nsub); - offsave = m->pmatch[i].rm_so; - m->pmatch[i].rm_so = sp - m->offp; - dp = backref(m, sp, stop, ss+1, stopst, lev); - if (dp != NULL) - return(dp); - m->pmatch[i].rm_so = offsave; - return(NULL); - break; - case ORPAREN: /* must undo assignment if rest fails */ - i = OPND(s); - assert(0 < i && i <= m->g->nsub); - offsave = m->pmatch[i].rm_eo; - m->pmatch[i].rm_eo = sp - m->offp; - dp = backref(m, sp, stop, ss+1, stopst, lev); - if (dp != NULL) - return(dp); - m->pmatch[i].rm_eo = offsave; - return(NULL); - break; - default: /* uh oh */ - assert(nope); - break; - } - - /* "can't happen" */ - assert(nope); - /* NOTREACHED */ - return((char *)NULL); /* dummy */ -} - -/* - - fast - step through the string at top speed - == static char *fast(register struct match *m, char *start, \ - == char *stop, sopno startst, sopno stopst); - */ -static char * /* where tentative match ended, or NULL */ -fast(m, start, stop, startst, stopst) -register struct match *m; -char *start; -char *stop; -sopno startst; -sopno stopst; -{ - register states st = m->st; - register states fresh = m->fresh; - register states tmp = m->tmp; - register char *p = start; - register int c = (start == m->beginp) ? OUT : *(start-1); - register int lastc; /* previous c */ - register int flagch; - register int i; - register char *coldp; /* last p after which no match was underway */ - - CLEAR(st); - SET1(st, startst); - st = step(m->g, startst, stopst, st, NOTHING, st); - ASSIGN(fresh, st); - SP("start", st, *p); - coldp = NULL; - for (;;) { - /* next character */ - lastc = c; - c = (p == m->endp) ? OUT : *p; - if (EQ(st, fresh)) - coldp = p; - - /* is there an EOL and/or BOL between lastc and c? */ - flagch = '\0'; - i = 0; - if ( (lastc == '\n' && m->g->cflags®_NEWLINE) || - (lastc == OUT && !(m->eflags®_NOTBOL)) ) { - flagch = BOL; - i = m->g->nbol; - } - if ( (c == '\n' && m->g->cflags®_NEWLINE) || - (c == OUT && !(m->eflags®_NOTEOL)) ) { - flagch = (flagch == BOL) ? BOLEOL : EOL; - i += m->g->neol; - } - if (i != 0) { - for (; i > 0; i--) - st = step(m->g, startst, stopst, st, flagch, st); - SP("boleol", st, c); - } - - /* how about a word boundary? */ - if ( (flagch == BOL || (lastc != OUT && !ISWORD(lastc))) && - (c != OUT && ISWORD(c)) ) { - flagch = BOW; - } - if ( (lastc != OUT && ISWORD(lastc)) && - (flagch == EOL || (c != OUT && !ISWORD(c))) ) { - flagch = EOW; - } - if (flagch == BOW || flagch == EOW) { - st = step(m->g, startst, stopst, st, flagch, st); - SP("boweow", st, c); - } - - /* are we done? */ - if (ISSET(st, stopst) || p == stop) - break; /* NOTE BREAK OUT */ - - /* no, we must deal with this character */ - ASSIGN(tmp, st); - ASSIGN(st, fresh); - assert(c != OUT); - st = step(m->g, startst, stopst, tmp, c, st); - SP("aft", st, c); - assert(EQ(step(m->g, startst, stopst, st, NOTHING, st), st)); - p++; - } - - assert(coldp != NULL); - m->coldp = coldp; - if (ISSET(st, stopst)) - return(p+1); - else - return(NULL); -} - -/* - - slow - step through the string more deliberately - == static char *slow(register struct match *m, char *start, \ - == char *stop, sopno startst, sopno stopst); - */ -static char * /* where it ended */ -slow(m, start, stop, startst, stopst) -register struct match *m; -char *start; -char *stop; -sopno startst; -sopno stopst; -{ - register states st = m->st; - register states empty = m->empty; - register states tmp = m->tmp; - register char *p = start; - register int c = (start == m->beginp) ? OUT : *(start-1); - register int lastc; /* previous c */ - register int flagch; - register int i; - register char *matchp; /* last p at which a match ended */ - - AT("slow", start, stop, startst, stopst); - CLEAR(st); - SET1(st, startst); - SP("sstart", st, *p); - st = step(m->g, startst, stopst, st, NOTHING, st); - matchp = NULL; - for (;;) { - /* next character */ - lastc = c; - c = (p == m->endp) ? OUT : *p; - - /* is there an EOL and/or BOL between lastc and c? */ - flagch = '\0'; - i = 0; - if ( (lastc == '\n' && m->g->cflags®_NEWLINE) || - (lastc == OUT && !(m->eflags®_NOTBOL)) ) { - flagch = BOL; - i = m->g->nbol; - } - if ( (c == '\n' && m->g->cflags®_NEWLINE) || - (c == OUT && !(m->eflags®_NOTEOL)) ) { - flagch = (flagch == BOL) ? BOLEOL : EOL; - i += m->g->neol; - } - if (i != 0) { - for (; i > 0; i--) - st = step(m->g, startst, stopst, st, flagch, st); - SP("sboleol", st, c); - } - - /* how about a word boundary? */ - if ( (flagch == BOL || (lastc != OUT && !ISWORD(lastc))) && - (c != OUT && ISWORD(c)) ) { - flagch = BOW; - } - if ( (lastc != OUT && ISWORD(lastc)) && - (flagch == EOL || (c != OUT && !ISWORD(c))) ) { - flagch = EOW; - } - if (flagch == BOW || flagch == EOW) { - st = step(m->g, startst, stopst, st, flagch, st); - SP("sboweow", st, c); - } - - /* are we done? */ - if (ISSET(st, stopst)) - matchp = p; - if (EQ(st, empty) || p == stop) - break; /* NOTE BREAK OUT */ - - /* no, we must deal with this character */ - ASSIGN(tmp, st); - ASSIGN(st, empty); - assert(c != OUT); - st = step(m->g, startst, stopst, tmp, c, st); - SP("saft", st, c); - assert(EQ(step(m->g, startst, stopst, st, NOTHING, st), st)); - p++; - } - - return(matchp); -} - - -/* - - step - map set of states reachable before char to set reachable after - == static states step(register struct re_guts *g, sopno start, sopno stop, \ - == register states bef, int ch, register states aft); - == #define BOL (OUT+1) - == #define EOL (BOL+1) - == #define BOLEOL (BOL+2) - == #define NOTHING (BOL+3) - == #define BOW (BOL+4) - == #define EOW (BOL+5) - == #define CODEMAX (BOL+5) // highest code used - == #define NONCHAR(c) ((c) > CHAR_MAX) - == #define NNONCHAR (CODEMAX-CHAR_MAX) - */ -static states -step(g, start, stop, bef, ch, aft) -register struct re_guts *g; -sopno start; /* start state within strip */ -sopno stop; /* state after stop state within strip */ -register states bef; /* states reachable before */ -int ch; /* character or NONCHAR code */ -register states aft; /* states already known reachable after */ -{ - register cset *cs; - register sop s; - register sopno pc; - register onestate here; /* note, macros know this name */ - register sopno look; - register long i; - - for (pc = start, INIT(here, pc); pc != stop; pc++, INC(here)) { - s = g->strip[pc]; - switch (OP(s)) { - case OEND: - assert(pc == stop-1); - break; - case OCHAR: - /* only characters can match */ - assert(!NONCHAR(ch) || ch != (char)OPND(s)); - if (ch == (char)OPND(s)) - FWD(aft, bef, 1); - break; - case OBOL: - if (ch == BOL || ch == BOLEOL) - FWD(aft, bef, 1); - break; - case OEOL: - if (ch == EOL || ch == BOLEOL) - FWD(aft, bef, 1); - break; - case OBOW: - if (ch == BOW) - FWD(aft, bef, 1); - break; - case OEOW: - if (ch == EOW) - FWD(aft, bef, 1); - break; - case OANY: - if (!NONCHAR(ch)) - FWD(aft, bef, 1); - break; - case OANYOF: - cs = &g->sets[OPND(s)]; - if (!NONCHAR(ch) && CHIN(cs, ch)) - FWD(aft, bef, 1); - break; - case OBACK_: /* ignored here */ - case O_BACK: - FWD(aft, aft, 1); - break; - case OPLUS_: /* forward, this is just an empty */ - FWD(aft, aft, 1); - break; - case O_PLUS: /* both forward and back */ - FWD(aft, aft, 1); - i = ISSETBACK(aft, OPND(s)); - BACK(aft, aft, OPND(s)); - if (!i && ISSETBACK(aft, OPND(s))) { - /* oho, must reconsider loop body */ - pc -= OPND(s) + 1; - INIT(here, pc); - } - break; - case OQUEST_: /* two branches, both forward */ - FWD(aft, aft, 1); - FWD(aft, aft, OPND(s)); - break; - case O_QUEST: /* just an empty */ - FWD(aft, aft, 1); - break; - case OLPAREN: /* not significant here */ - case ORPAREN: - FWD(aft, aft, 1); - break; - case OCH_: /* mark the first two branches */ - FWD(aft, aft, 1); - assert(OP(g->strip[pc+OPND(s)]) == OOR2); - FWD(aft, aft, OPND(s)); - break; - case OOR1: /* done a branch, find the O_CH */ - if (ISSTATEIN(aft, here)) { - for (look = 1; - OP(s = g->strip[pc+look]) != O_CH; - look += OPND(s)) - assert(OP(s) == OOR2); - FWD(aft, aft, look); - } - break; - case OOR2: /* propagate OCH_'s marking */ - FWD(aft, aft, 1); - if (OP(g->strip[pc+OPND(s)]) != O_CH) { - assert(OP(g->strip[pc+OPND(s)]) == OOR2); - FWD(aft, aft, OPND(s)); - } - break; - case O_CH: /* just empty */ - FWD(aft, aft, 1); - break; - default: /* ooooops... */ - assert(nope); - break; - } - } - - return(aft); -} - -#ifdef REDEBUG -/* - - print - print a set of states - == #ifdef REDEBUG - == static void print(struct match *m, char *caption, states st, \ - == int ch, FILE *d); - == #endif - */ -static void -print(m, caption, st, ch, d) -struct match *m; -char *caption; -states st; -int ch; -FILE *d; -{ - register struct re_guts *g = m->g; - register int i; - register int first = 1; - - if (!(m->eflags®_TRACE)) - return; - - fprintf(d, "%s", caption); - if (ch != '\0') - fprintf(d, " %s", pchar(ch)); - for (i = 0; i < g->nstates; i++) - if (ISSET(st, i)) { - fprintf(d, "%s%d", (first) ? "\t" : ", ", i); - first = 0; - } - fprintf(d, "\n"); -} - -/* - - at - print current situation - == #ifdef REDEBUG - == static void at(struct match *m, char *title, char *start, char *stop, \ - == sopno startst, sopno stopst); - == #endif - */ -static void -at(m, title, start, stop, startst, stopst) -struct match *m; -char *title; -char *start; -char *stop; -sopno startst; -sopno stopst; -{ - if (!(m->eflags®_TRACE)) - return; - - printf("%s %s-", title, pchar(*start)); - printf("%s ", pchar(*stop)); - printf("%ld-%ld\n", (long)startst, (long)stopst); -} - -#ifndef PCHARDONE -#define PCHARDONE /* never again */ -/* - - pchar - make a character printable - == #ifdef REDEBUG - == static char *pchar(int ch); - == #endif - * - * Is this identical to regchar() over in debug.c? Well, yes. But a - * duplicate here avoids having a debugging-capable regexec.o tied to - * a matching debug.o, and this is convenient. It all disappears in - * the non-debug compilation anyway, so it doesn't matter much. - */ -static char * /* -> representation */ -pchar(ch) -int ch; -{ - static char pbuf[10]; - - if (isprint(ch) || ch == ' ') - sprintf(pbuf, "%c", ch); - else - sprintf(pbuf, "\\%o", ch); - return(pbuf); -} -#endif -#endif - -#undef matcher -#undef fast -#undef slow -#undef dissect -#undef backref -#undef step -#undef print -#undef at -#undef match diff --git a/src/lib/evil/regex/engine.ih b/src/lib/evil/regex/engine.ih deleted file mode 100644 index 6b744d431c..0000000000 --- a/src/lib/evil/regex/engine.ih +++ /dev/null @@ -1,35 +0,0 @@ -/* ========= begin header generated by ../src/lib/evil/regex/mkh.sh ========= */ -#ifdef __cplusplus -extern "C" { -#endif - -/* === lib/evil/regex/engine.c === */ -static int matcher(register struct re_guts *g, char *string, size_t nmatch, regmatch_t pmatch[], int eflags); -static char *dissect(register struct match *m, char *start, char *stop, sopno startst, sopno stopst); -static char *backref(register struct match *m, char *start, char *stop, sopno startst, sopno stopst, sopno lev); -static char *fast(register struct match *m, char *start, char *stop, sopno startst, sopno stopst); -static char *slow(register struct match *m, char *start, char *stop, sopno startst, sopno stopst); -static states step(register struct re_guts *g, sopno start, sopno stop, register states bef, int ch, register states aft); -#define BOL (OUT+1) -#define EOL (BOL+1) -#define BOLEOL (BOL+2) -#define NOTHING (BOL+3) -#define BOW (BOL+4) -#define EOW (BOL+5) -#define CODEMAX (BOL+5) /* highest code used */ -#define NONCHAR(c) ((c) > CHAR_MAX) -#define NNONCHAR (CODEMAX-CHAR_MAX) -#ifdef REDEBUG -static void print(struct match *m, char *caption, states st, int ch, FILE *d); -#endif -#ifdef REDEBUG -static void at(struct match *m, char *title, char *start, char *stop, sopno startst, sopno stopst); -#endif -#ifdef REDEBUG -static char *pchar(int ch); -#endif - -#ifdef __cplusplus -} -#endif -/* ========= end header generated by ../src/lib/evil/regex/mkh.sh ========= */ diff --git a/src/lib/evil/regex/meson.build b/src/lib/evil/regex/meson.build deleted file mode 100644 index d04769b72d..0000000000 --- a/src/lib/evil/regex/meson.build +++ /dev/null @@ -1,10 +0,0 @@ -evil_src += files([ -'regcomp.c', -'regerror.c', -'regexec.c', -'regfree.c', -'cclass.h', -'cname.h', -'regex2.h', -'utils.h' -]) diff --git a/src/lib/evil/regex/regcomp.c b/src/lib/evil/regex/regcomp.c deleted file mode 100644 index c1b7850504..0000000000 --- a/src/lib/evil/regex/regcomp.c +++ /dev/null @@ -1,1604 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include - -#include "utils.h" -#include "regex2.h" - -#include "cclass.h" -#include "cname.h" - -/* - * parse structure, passed up and down to avoid global variables and - * other clumsinesses - */ -struct parse { - char *next; /* next character in RE */ - char *end; /* end of string (-> NUL normally) */ - int error; /* has an error been seen? */ - sop *strip; /* malloced strip */ - sopno ssize; /* malloced strip size (allocated) */ - sopno slen; /* malloced strip length (used) */ - int ncsalloc; /* number of csets allocated */ - struct re_guts *g; -# define NPAREN 10 /* we need to remember () 1-9 for back refs */ - sopno pbegin[NPAREN]; /* -> ( ([0] unused) */ - sopno pend[NPAREN]; /* -> ) ([0] unused) */ -}; - -#include "regcomp.ih" - -static char nuls[10]; /* place to point scanner in event of error */ - -/* - * macros for use with parse structure - * BEWARE: these know that the parse structure is named `p' !!! - */ -#define PEEK() (*p->next) -#define PEEK2() (*(p->next+1)) -#define MORE() (p->next < p->end) -#define MORE2() (p->next+1 < p->end) -#define SEE(c) (MORE() && PEEK() == (c)) -#define SEETWO(a, b) (MORE() && MORE2() && PEEK() == (a) && PEEK2() == (b)) -#define EAT(c) ((SEE(c)) ? (NEXT(), 1) : 0) -#define EATTWO(a, b) ((SEETWO(a, b)) ? (NEXT2(), 1) : 0) -#define NEXT() (p->next++) -#define NEXT2() (p->next += 2) -#define NEXTn(n) (p->next += (n)) -#define GETNEXT() (*p->next++) -#define SETERROR(e) seterr(p, (e)) -#define REQUIRE(co, e) ((co) || SETERROR(e)) -#define MUSTSEE(c, e) (REQUIRE(MORE() && PEEK() == (c), e)) -#define MUSTEAT(c, e) (REQUIRE(MORE() && GETNEXT() == (c), e)) -#define MUSTNOTSEE(c, e) (REQUIRE(!MORE() || PEEK() != (c), e)) -#define EMIT(op, sopnd) doemit(p, (sop)(op), (size_t)(sopnd)) -#define INSERT(op, pos) doinsert(p, (sop)(op), HERE()-(pos)+1, pos) -#define AHEAD(pos) dofwd(p, pos, HERE()-(pos)) -#define ASTERN(sop, pos) EMIT(sop, HERE()-pos) -#define HERE() (p->slen) -#define THERE() (p->slen - 1) -#define THERETHERE() (p->slen - 2) -#define DROP(n) (p->slen -= (n)) - -#ifndef NDEBUG -static int never = 0; /* for use in asserts; shuts lint up */ -#else -#define never 0 /* some s have bugs too */ -#endif - -/* - - regcomp - interface for parser and compilation - = extern int regcomp(regex_t *, const char *, int); - = #define REG_BASIC 0000 - = #define REG_EXTENDED 0001 - = #define REG_ICASE 0002 - = #define REG_NOSUB 0004 - = #define REG_NEWLINE 0010 - = #define REG_NOSPEC 0020 - = #define REG_PEND 0040 - = #define REG_DUMP 0200 - */ -EAPI int /* 0 success, otherwise REG_something */ -regcomp(preg, pattern, cflags) -regex_t *preg; -const char *pattern; -int cflags; -{ - struct parse pa; - register struct re_guts *g; - register struct parse *p = &pa; - register int i; - register size_t len; -#ifdef REDEBUG -# define GOODFLAGS(f) (f) -#else -# define GOODFLAGS(f) ((f)&~REG_DUMP) -#endif - - cflags = GOODFLAGS(cflags); - if ((cflags®_EXTENDED) && (cflags®_NOSPEC)) - return(REG_INVARG); - - if (cflags®_PEND) { - if (preg->re_endp < pattern) - return(REG_INVARG); - len = preg->re_endp - pattern; - } else - len = strlen((char *)pattern); - - /* do the mallocs early so failure handling is easy */ - g = (struct re_guts *)malloc(sizeof(struct re_guts) + - (NC-1)*sizeof(cat_t)); - if (g == NULL) - return(REG_ESPACE); - p->ssize = len/(size_t)2*(size_t)3 + (size_t)1; /* ugh */ - p->strip = (sop *)malloc(p->ssize * sizeof(sop)); - p->slen = 0; - if (p->strip == NULL) { - free((char *)g); - return(REG_ESPACE); - } - - /* set things up */ - p->g = g; - p->next = (char *)pattern; /* convenience; we do not modify it */ - p->end = p->next + len; - p->error = 0; - p->ncsalloc = 0; - for (i = 0; i < NPAREN; i++) { - p->pbegin[i] = 0; - p->pend[i] = 0; - } - g->csetsize = NC; - g->sets = NULL; - g->setbits = NULL; - g->ncsets = 0; - g->cflags = cflags; - g->iflags = 0; - g->nbol = 0; - g->neol = 0; - g->must = NULL; - g->mlen = 0; - g->nsub = 0; - g->ncategories = 1; /* category 0 is "everything else" */ - g->categories = &g->catspace[-(CHAR_MIN)]; - (void) memset((char *)g->catspace, 0, NC*sizeof(cat_t)); - g->backrefs = 0; - - /* do it */ - EMIT(OEND, 0); - g->firststate = THERE(); - if (cflags®_EXTENDED) - p_ere(p, OUT); - else if (cflags®_NOSPEC) - p_str(p); - else - p_bre(p, OUT, OUT); - EMIT(OEND, 0); - g->laststate = THERE(); - - /* tidy up loose ends and fill things in */ - categorize(p, g); - stripsnug(p, g); - findmust(p, g); - g->nplus = pluscount(p, g); - g->magic = MAGIC2; - preg->re_nsub = g->nsub; - preg->re_g = g; - preg->re_magic = MAGIC1; -#ifndef REDEBUG - /* not debugging, so can't rely on the assert() in regexec() */ - if (g->iflags&BAD) - SETERROR(REG_ASSERT); -#endif - - /* win or lose, we're done */ - if (p->error != 0) /* lose */ - regfree(preg); - return(p->error); -} - -/* - - p_ere - ERE parser top level, concatenation and alternation - == static void p_ere(register struct parse *p, int stop); - */ -static void -p_ere(p, stop) -register struct parse *p; -int stop; /* character this ERE should end at */ -{ - register char c; - register sopno prevback; - register sopno prevfwd; - register sopno conc; - register int first = 1; /* is this the first alternative? */ - - for (;;) { - /* do a bunch of concatenated expressions */ - conc = HERE(); - while (MORE() && (c = PEEK()) != '|' && c != stop) - p_ere_exp(p); - REQUIRE(HERE() != conc, REG_EMPTY); /* require nonempty */ - - if (!EAT('|')) - break; /* NOTE BREAK OUT */ - - if (first) { - INSERT(OCH_, conc); /* offset is wrong */ - prevfwd = conc; - prevback = conc; - first = 0; - } - ASTERN(OOR1, prevback); - prevback = THERE(); - AHEAD(prevfwd); /* fix previous offset */ - prevfwd = HERE(); - EMIT(OOR2, 0); /* offset is very wrong */ - } - - if (!first) { /* tail-end fixups */ - AHEAD(prevfwd); - ASTERN(O_CH, prevback); - } - - assert(!MORE() || SEE(stop)); -} - -/* - - p_ere_exp - parse one subERE, an atom possibly followed by a repetition op - == static void p_ere_exp(register struct parse *p); - */ -static void -p_ere_exp(p) -register struct parse *p; -{ - register char c; - register sopno pos; - register int count; - register int count2; - register sopno subno; - int wascaret = 0; - - assert(MORE()); /* caller should have ensured this */ - c = GETNEXT(); - - pos = HERE(); - switch (c) { - case '(': - REQUIRE(MORE(), REG_EPAREN); - p->g->nsub++; - subno = p->g->nsub; - if (subno < NPAREN) - p->pbegin[subno] = HERE(); - EMIT(OLPAREN, subno); - if (!SEE(')')) - p_ere(p, ')'); - if (subno < NPAREN) { - p->pend[subno] = HERE(); - assert(p->pend[subno] != 0); - } - EMIT(ORPAREN, subno); - MUSTEAT(')', REG_EPAREN); - break; -#ifndef POSIX_MISTAKE - case ')': /* happens only if no current unmatched ( */ - /* - * You may ask, why the ifndef? Because I didn't notice - * this until slightly too late for 1003.2, and none of the - * other 1003.2 regular-expression reviewers noticed it at - * all. So an unmatched ) is legal POSIX, at least until - * we can get it fixed. - */ - SETERROR(REG_EPAREN); - break; -#endif - case '^': - EMIT(OBOL, 0); - p->g->iflags |= USEBOL; - p->g->nbol++; - wascaret = 1; - break; - case '$': - EMIT(OEOL, 0); - p->g->iflags |= USEEOL; - p->g->neol++; - break; - case '|': - SETERROR(REG_EMPTY); - break; - case '*': - case '+': - case '?': - SETERROR(REG_BADRPT); - break; - case '.': - if (p->g->cflags®_NEWLINE) - nonnewline(p); - else - EMIT(OANY, 0); - break; - case '[': - p_bracket(p); - break; - case '\\': - REQUIRE(MORE(), REG_EESCAPE); - c = GETNEXT(); - ordinary(p, c); - break; - case '{': /* okay as ordinary except if digit follows */ - REQUIRE(!MORE() || !isdigit(PEEK()), REG_BADRPT); - /* FALLTHROUGH */ - default: - ordinary(p, c); - break; - } - - if (!MORE()) - return; - c = PEEK(); - /* we call { a repetition if followed by a digit */ - if (!( c == '*' || c == '+' || c == '?' || - (c == '{' && MORE2() && isdigit(PEEK2())) )) - return; /* no repetition, we're done */ - NEXT(); - - REQUIRE(!wascaret, REG_BADRPT); - switch (c) { - case '*': /* implemented as +? */ - /* this case does not require the (y|) trick, noKLUDGE */ - INSERT(OPLUS_, pos); - ASTERN(O_PLUS, pos); - INSERT(OQUEST_, pos); - ASTERN(O_QUEST, pos); - break; - case '+': - INSERT(OPLUS_, pos); - ASTERN(O_PLUS, pos); - break; - case '?': - /* KLUDGE: emit y? as (y|) until subtle bug gets fixed */ - INSERT(OCH_, pos); /* offset slightly wrong */ - ASTERN(OOR1, pos); /* this one's right */ - AHEAD(pos); /* fix the OCH_ */ - EMIT(OOR2, 0); /* offset very wrong... */ - AHEAD(THERE()); /* ...so fix it */ - ASTERN(O_CH, THERETHERE()); - break; - case '{': - count = p_count(p); - if (EAT(',')) { - if (isdigit(PEEK())) { - count2 = p_count(p); - REQUIRE(count <= count2, REG_BADBR); - } else /* single number with comma */ - count2 = INFINITY; - } else /* just a single number */ - count2 = count; - repeat(p, pos, count, count2); - if (!EAT('}')) { /* error heuristics */ - while (MORE() && PEEK() != '}') - NEXT(); - REQUIRE(MORE(), REG_EBRACE); - SETERROR(REG_BADBR); - } - break; - } - - if (!MORE()) - return; - c = PEEK(); - if (!( c == '*' || c == '+' || c == '?' || - (c == '{' && MORE2() && isdigit(PEEK2())) ) ) - return; - SETERROR(REG_BADRPT); -} - -/* - - p_str - string (no metacharacters) "parser" - == static void p_str(register struct parse *p); - */ -static void -p_str(p) -register struct parse *p; -{ - REQUIRE(MORE(), REG_EMPTY); - while (MORE()) - ordinary(p, GETNEXT()); -} - -/* - - p_bre - BRE parser top level, anchoring and concatenation - == static void p_bre(register struct parse *p, register int end1, \ - == register int end2); - * Giving end1 as OUT essentially eliminates the end1/end2 check. - * - * This implementation is a bit of a kludge, in that a trailing $ is first - * taken as an ordinary character and then revised to be an anchor. The - * only undesirable side effect is that '$' gets included as a character - * category in such cases. This is fairly harmless; not worth fixing. - * The amount of lookahead needed to avoid this kludge is excessive. - */ -static void -p_bre(p, end1, end2) -register struct parse *p; -register int end1; /* first terminating character */ -register int end2; /* second terminating character */ -{ - register sopno start = HERE(); - register int first = 1; /* first subexpression? */ - register int wasdollar = 0; - - if (EAT('^')) { - EMIT(OBOL, 0); - p->g->iflags |= USEBOL; - p->g->nbol++; - } - while (MORE() && !SEETWO(end1, end2)) { - wasdollar = p_simp_re(p, first); - first = 0; - } - if (wasdollar) { /* oops, that was a trailing anchor */ - DROP(1); - EMIT(OEOL, 0); - p->g->iflags |= USEEOL; - p->g->neol++; - } - - REQUIRE(HERE() != start, REG_EMPTY); /* require nonempty */ -} - -/* - - p_simp_re - parse a simple RE, an atom possibly followed by a repetition - == static int p_simp_re(register struct parse *p, int starordinary); - */ -static int /* was the simple RE an unbackslashed $? */ -p_simp_re(p, starordinary) -register struct parse *p; -int starordinary; /* is a leading * an ordinary character? */ -{ - register int c; - register int count; - register int count2; - register sopno pos; - register int i; - register sopno subno; -# define BACKSL (1<g->cflags®_NEWLINE) - nonnewline(p); - else - EMIT(OANY, 0); - break; - case '[': - p_bracket(p); - break; - case BACKSL|'{': - SETERROR(REG_BADRPT); - break; - case BACKSL|'(': - p->g->nsub++; - subno = p->g->nsub; - if (subno < NPAREN) - p->pbegin[subno] = HERE(); - EMIT(OLPAREN, subno); - /* the MORE here is an error heuristic */ - if (MORE() && !SEETWO('\\', ')')) - p_bre(p, '\\', ')'); - if (subno < NPAREN) { - p->pend[subno] = HERE(); - assert(p->pend[subno] != 0); - } - EMIT(ORPAREN, subno); - REQUIRE(EATTWO('\\', ')'), REG_EPAREN); - break; - case BACKSL|')': /* should not get here -- must be user */ - case BACKSL|'}': - SETERROR(REG_EPAREN); - break; - case BACKSL|'1': - case BACKSL|'2': - case BACKSL|'3': - case BACKSL|'4': - case BACKSL|'5': - case BACKSL|'6': - case BACKSL|'7': - case BACKSL|'8': - case BACKSL|'9': - i = (c&~BACKSL) - '0'; - assert(i < NPAREN); - if (p->pend[i] != 0) { - assert(i <= p->g->nsub); - EMIT(OBACK_, i); - assert(p->pbegin[i] != 0); - assert(OP(p->strip[p->pbegin[i]]) == OLPAREN); - assert(OP(p->strip[p->pend[i]]) == ORPAREN); - (void) dupl(p, p->pbegin[i]+1, p->pend[i]); - EMIT(O_BACK, i); - } else - SETERROR(REG_ESUBREG); - p->g->backrefs = 1; - break; - case '*': - REQUIRE(starordinary, REG_BADRPT); - /* FALLTHROUGH */ - default: - ordinary(p, (char)c); /* takes off BACKSL, if any */ - break; - } - - if (EAT('*')) { /* implemented as +? */ - /* this case does not require the (y|) trick, noKLUDGE */ - INSERT(OPLUS_, pos); - ASTERN(O_PLUS, pos); - INSERT(OQUEST_, pos); - ASTERN(O_QUEST, pos); - } else if (EATTWO('\\', '{')) { - count = p_count(p); - if (EAT(',')) { - if (MORE() && isdigit(PEEK())) { - count2 = p_count(p); - REQUIRE(count <= count2, REG_BADBR); - } else /* single number with comma */ - count2 = INFINITY; - } else /* just a single number */ - count2 = count; - repeat(p, pos, count, count2); - if (!EATTWO('\\', '}')) { /* error heuristics */ - while (MORE() && !SEETWO('\\', '}')) - NEXT(); - REQUIRE(MORE(), REG_EBRACE); - SETERROR(REG_BADBR); - } - } else if (c == (unsigned char)'$') /* $ (but not \$) ends it */ - return(1); - - return(0); -} - -/* - - p_count - parse a repetition count - == static int p_count(register struct parse *p); - */ -static int /* the value */ -p_count(p) -register struct parse *p; -{ - register int count = 0; - register int ndigits = 0; - - while (MORE() && isdigit(PEEK()) && count <= DUPMAX) { - count = count*10 + (GETNEXT() - '0'); - ndigits++; - } - - REQUIRE(ndigits > 0 && count <= DUPMAX, REG_BADBR); - return(count); -} - -/* - - p_bracket - parse a bracketed character list - == static void p_bracket(register struct parse *p); - * - * Note a significant property of this code: if the allocset() did SETERROR, - * no set operations are done. - */ -static void -p_bracket(p) -register struct parse *p; -{ - register cset *cs = allocset(p); - register int invert = 0; - - /* Dept of Truly Sickening Special-Case Kludges */ - if (p->next + 5 < p->end && strncmp(p->next, "[:<:]]", 6) == 0) { - EMIT(OBOW, 0); - NEXTn(6); - return; - } - if (p->next + 5 < p->end && strncmp(p->next, "[:>:]]", 6) == 0) { - EMIT(OEOW, 0); - NEXTn(6); - return; - } - - if (EAT('^')) - invert++; /* make note to invert set at end */ - if (EAT(']')) - CHadd(cs, ']'); - else if (EAT('-')) - CHadd(cs, '-'); - while (MORE() && PEEK() != ']' && !SEETWO('-', ']')) - p_b_term(p, cs); - if (EAT('-')) - CHadd(cs, '-'); - MUSTEAT(']', REG_EBRACK); - - if (p->error != 0) /* don't mess things up further */ - return; - - if (p->g->cflags®_ICASE) { - register int i; - register int ci; - - for (i = p->g->csetsize - 1; i >= 0; i--) - if (CHIN(cs, i) && isalpha(i)) { - ci = othercase(i); - if (ci != i) - CHadd(cs, ci); - } - if (cs->multis != NULL) - mccase(p, cs); - } - if (invert) { - register int i; - - for (i = p->g->csetsize - 1; i >= 0; i--) - if (CHIN(cs, i)) - CHsub(cs, i); - else - CHadd(cs, i); - if (p->g->cflags®_NEWLINE) - CHsub(cs, '\n'); - if (cs->multis != NULL) - mcinvert(p, cs); - } - - assert(cs->multis == NULL); /* xxx */ - - if (nch(p, cs) == 1) { /* optimize singleton sets */ - ordinary(p, firstch(p, cs)); - freeset(p, cs); - } else - EMIT(OANYOF, freezeset(p, cs)); -} - -/* - - p_b_term - parse one term of a bracketed character list - == static void p_b_term(register struct parse *p, register cset *cs); - */ -static void -p_b_term(p, cs) -register struct parse *p; -register cset *cs; -{ - register char c; - register char start, finish; - register int i; - - /* classify what we've got */ - switch ((MORE()) ? PEEK() : '\0') { - case '[': - c = (MORE2()) ? PEEK2() : '\0'; - break; - case '-': - SETERROR(REG_ERANGE); - return; /* NOTE RETURN */ - break; - default: - c = '\0'; - break; - } - - switch (c) { - case ':': /* character class */ - NEXT2(); - REQUIRE(MORE(), REG_EBRACK); - c = PEEK(); - REQUIRE(c != '-' && c != ']', REG_ECTYPE); - p_b_cclass(p, cs); - REQUIRE(MORE(), REG_EBRACK); - REQUIRE(EATTWO(':', ']'), REG_ECTYPE); - break; - case '=': /* equivalence class */ - NEXT2(); - REQUIRE(MORE(), REG_EBRACK); - c = PEEK(); - REQUIRE(c != '-' && c != ']', REG_ECOLLATE); - p_b_eclass(p, cs); - REQUIRE(MORE(), REG_EBRACK); - REQUIRE(EATTWO('=', ']'), REG_ECOLLATE); - break; - default: /* symbol, ordinary character, or range */ -/* xxx revision needed for multichar stuff */ - start = p_b_symbol(p); - if (SEE('-') && MORE2() && PEEK2() != ']') { - /* range */ - NEXT(); - if (EAT('-')) - finish = '-'; - else - finish = p_b_symbol(p); - } else - finish = start; -/* xxx what about signed chars here... */ - REQUIRE(start <= finish, REG_ERANGE); - for (i = start; i <= finish; i++) - CHadd(cs, i); - break; - } -} - -/* - - p_b_cclass - parse a character-class name and deal with it - == static void p_b_cclass(register struct parse *p, register cset *cs); - */ -static void -p_b_cclass(p, cs) -register struct parse *p; -register cset *cs; -{ - register char *sp = p->next; - register struct cclass *cp; - register size_t len; - register char *u; - register char c; - - while (MORE() && isalpha(PEEK())) - NEXT(); - len = p->next - sp; - for (cp = cclasses; cp->name != NULL; cp++) - if (strncmp(cp->name, sp, len) == 0 && cp->name[len] == '\0') - break; - if (cp->name == NULL) { - /* oops, didn't find it */ - SETERROR(REG_ECTYPE); - return; - } - - u = cp->chars; - while ((c = *u++) != '\0') - CHadd(cs, c); - for (u = cp->multis; *u != '\0'; u += strlen(u) + 1) - MCadd(p, cs, u); -} - -/* - - p_b_eclass - parse an equivalence-class name and deal with it - == static void p_b_eclass(register struct parse *p, register cset *cs); - * - * This implementation is incomplete. xxx - */ -static void -p_b_eclass(p, cs) -register struct parse *p; -register cset *cs; -{ - register char c; - - c = p_b_coll_elem(p, '='); - CHadd(cs, c); -} - -/* - - p_b_symbol - parse a character or [..]ed multicharacter collating symbol - == static char p_b_symbol(register struct parse *p); - */ -static char /* value of symbol */ -p_b_symbol(p) -register struct parse *p; -{ - register char value; - - REQUIRE(MORE(), REG_EBRACK); - if (!EATTWO('[', '.')) - return(GETNEXT()); - - /* collating symbol */ - value = p_b_coll_elem(p, '.'); - REQUIRE(EATTWO('.', ']'), REG_ECOLLATE); - return(value); -} - -/* - - p_b_coll_elem - parse a collating-element name and look it up - == static char p_b_coll_elem(register struct parse *p, int endc); - */ -static char /* value of collating element */ -p_b_coll_elem(p, endc) -register struct parse *p; -int endc; /* name ended by endc,']' */ -{ - register char *sp = p->next; - register struct cname *cp; - register int len; - - while (MORE() && !SEETWO(endc, ']')) - NEXT(); - if (!MORE()) { - SETERROR(REG_EBRACK); - return(0); - } - len = p->next - sp; - for (cp = cnames; cp->name != NULL; cp++) - if (strncmp(cp->name, sp, len) == 0 && cp->name[len] == '\0') - return(cp->code); /* known name */ - if (len == 1) - return(*sp); /* single character */ - SETERROR(REG_ECOLLATE); /* neither */ - return(0); -} - -/* - - othercase - return the case counterpart of an alphabetic - == static char othercase(int ch); - */ -static char /* if no counterpart, return ch */ -othercase(ch) -int ch; -{ - assert(isalpha(ch)); - if (isupper(ch)) - return(tolower(ch)); - else if (islower(ch)) - return(toupper(ch)); - else /* peculiar, but could happen */ - return(ch); -} - -/* - - bothcases - emit a dualcase version of a two-case character - == static void bothcases(register struct parse *p, int ch); - * - * Boy, is this implementation ever a kludge... - */ -static void -bothcases(p, ch) -register struct parse *p; -int ch; -{ - register char *oldnext = p->next; - register char *oldend = p->end; - char bracket[3]; - - assert(othercase(ch) != ch); /* p_bracket() would recurse */ - p->next = bracket; - p->end = bracket+2; - bracket[0] = ch; - bracket[1] = ']'; - bracket[2] = '\0'; - p_bracket(p); - assert(p->next == bracket+2); - p->next = oldnext; - p->end = oldend; -} - -/* - - ordinary - emit an ordinary character - == static void ordinary(register struct parse *p, register int ch); - */ -static void -ordinary(p, ch) -register struct parse *p; -register int ch; -{ - register cat_t *cap = p->g->categories; - - if ((p->g->cflags®_ICASE) && isalpha(ch) && othercase(ch) != ch) - bothcases(p, ch); - else { - EMIT(OCHAR, (unsigned char)ch); - if (cap[ch] == 0) - cap[ch] = p->g->ncategories++; - } -} - -/* - - nonnewline - emit REG_NEWLINE version of OANY - == static void nonnewline(register struct parse *p); - * - * Boy, is this implementation ever a kludge... - */ -static void -nonnewline(p) -register struct parse *p; -{ - register char *oldnext = p->next; - register char *oldend = p->end; - char bracket[4]; - - p->next = bracket; - p->end = bracket+3; - bracket[0] = '^'; - bracket[1] = '\n'; - bracket[2] = ']'; - bracket[3] = '\0'; - p_bracket(p); - assert(p->next == bracket+3); - p->next = oldnext; - p->end = oldend; -} - -/* - - repeat - generate code for a bounded repetition, recursively if needed - == static void repeat(register struct parse *p, sopno start, int from, int to); - */ -static void -repeat(p, start, from, to) -register struct parse *p; -sopno start; /* operand from here to end of strip */ -int from; /* repeated from this number */ -int to; /* to this number of times (maybe INFINITY) */ -{ - register sopno finish = HERE(); -# define N 2 -# define INF 3 -# define REP(f, t) ((f)*8 + (t)) -# define MAP(n) (((n) <= 1) ? (n) : ((n) == INFINITY) ? INF : N) - register sopno copy; - - if (p->error != 0) /* head off possible runaway recursion */ - return; - - assert(from <= to); - - switch (REP(MAP(from), MAP(to))) { - case REP(0, 0): /* must be user doing this */ - DROP(finish-start); /* drop the operand */ - break; - case REP(0, 1): /* as x{1,1}? */ - case REP(0, N): /* as x{1,n}? */ - case REP(0, INF): /* as x{1,}? */ - /* KLUDGE: emit y? as (y|) until subtle bug gets fixed */ - INSERT(OCH_, start); /* offset is wrong... */ - repeat(p, start+1, 1, to); - ASTERN(OOR1, start); - AHEAD(start); /* ... fix it */ - EMIT(OOR2, 0); - AHEAD(THERE()); - ASTERN(O_CH, THERETHERE()); - break; - case REP(1, 1): /* trivial case */ - /* done */ - break; - case REP(1, N): /* as x?x{1,n-1} */ - /* KLUDGE: emit y? as (y|) until subtle bug gets fixed */ - INSERT(OCH_, start); - ASTERN(OOR1, start); - AHEAD(start); - EMIT(OOR2, 0); /* offset very wrong... */ - AHEAD(THERE()); /* ...so fix it */ - ASTERN(O_CH, THERETHERE()); - copy = dupl(p, start+1, finish+1); - assert(copy == finish+4); - repeat(p, copy, 1, to-1); - break; - case REP(1, INF): /* as x+ */ - INSERT(OPLUS_, start); - ASTERN(O_PLUS, start); - break; - case REP(N, N): /* as xx{m-1,n-1} */ - copy = dupl(p, start, finish); - repeat(p, copy, from-1, to-1); - break; - case REP(N, INF): /* as xx{n-1,INF} */ - copy = dupl(p, start, finish); - repeat(p, copy, from-1, to); - break; - default: /* "can't happen" */ - SETERROR(REG_ASSERT); /* just in case */ - break; - } -} - -/* - - seterr - set an error condition - == static int seterr(register struct parse *p, int e); - */ -static int /* useless but makes type checking happy */ -seterr(p, e) -register struct parse *p; -int e; -{ - if (p->error == 0) /* keep earliest error condition */ - p->error = e; - p->next = nuls; /* try to bring things to a halt */ - p->end = nuls; - return(0); /* make the return value well-defined */ -} - -/* - - allocset - allocate a set of characters for [] - == static cset *allocset(register struct parse *p); - */ -static cset * -allocset(p) -register struct parse *p; -{ - register int no = p->g->ncsets++; - register size_t nc; - register size_t nbytes; - register cset *cs; - register size_t css = (size_t)p->g->csetsize; - register int i; - - if (no >= p->ncsalloc) { /* need another column of space */ - p->ncsalloc += CHAR_BIT; - nc = p->ncsalloc; - assert(nc % CHAR_BIT == 0); - nbytes = nc / CHAR_BIT * css; - if (p->g->sets == NULL) - p->g->sets = (cset *)malloc(nc * sizeof(cset)); - else - p->g->sets = (cset *)realloc((char *)p->g->sets, - nc * sizeof(cset)); - if (p->g->setbits == NULL) - p->g->setbits = (uch *)malloc(nbytes); - else { - p->g->setbits = (uch *)realloc((char *)p->g->setbits, - nbytes); - /* xxx this isn't right if setbits is now NULL */ - for (i = 0; i < no; i++) - p->g->sets[i].ptr = p->g->setbits + css*(i/CHAR_BIT); - } - if (p->g->sets != NULL && p->g->setbits != NULL) - (void) memset((char *)p->g->setbits + (nbytes - css), - 0, css); - else { - no = 0; - SETERROR(REG_ESPACE); - /* caller's responsibility not to do set ops */ - } - } - - assert(p->g->sets != NULL); /* xxx */ - cs = &p->g->sets[no]; - cs->ptr = p->g->setbits + css*((no)/CHAR_BIT); - cs->mask = 1 << ((no) % CHAR_BIT); - cs->hash = 0; - cs->smultis = 0; - cs->multis = NULL; - - return(cs); -} - -/* - - freeset - free a now-unused set - == static void freeset(register struct parse *p, register cset *cs); - */ -static void -freeset(p, cs) -register struct parse *p; -register cset *cs; -{ - register int i; - register cset *top = &p->g->sets[p->g->ncsets]; - register size_t css = (size_t)p->g->csetsize; - - for (i = 0; i < css; i++) - CHsub(cs, i); - if (cs == top-1) /* recover only the easy case */ - p->g->ncsets--; -} - -/* - - freezeset - final processing on a set of characters - == static int freezeset(register struct parse *p, register cset *cs); - * - * The main task here is merging identical sets. This is usually a waste - * of time (although the hash code minimizes the overhead), but can win - * big if REG_ICASE is being used. REG_ICASE, by the way, is why the hash - * is done using addition rather than xor -- all ASCII [aA] sets xor to - * the same value! - */ -static int /* set number */ -freezeset(p, cs) -register struct parse *p; -register cset *cs; -{ - register uch h = cs->hash; - register int i; - register cset *top = &p->g->sets[p->g->ncsets]; - register cset *cs2; - register size_t css = (size_t)p->g->csetsize; - - /* look for an earlier one which is the same */ - for (cs2 = &p->g->sets[0]; cs2 < top; cs2++) - if (cs2->hash == h && cs2 != cs) { - /* maybe */ - for (i = 0; i < css; i++) - if (!!CHIN(cs2, i) != !!CHIN(cs, i)) - break; /* no */ - if (i == css) - break; /* yes */ - } - - if (cs2 < top) { /* found one */ - freeset(p, cs); - cs = cs2; - } - - return((int)(cs - p->g->sets)); -} - -/* - - firstch - return first character in a set (which must have at least one) - == static int firstch(register struct parse *p, register cset *cs); - */ -static int /* character; there is no "none" value */ -firstch(p, cs) -register struct parse *p; -register cset *cs; -{ - register int i; - register size_t css = (size_t)p->g->csetsize; - - for (i = 0; i < css; i++) - if (CHIN(cs, i)) - return((char)i); - assert(never); - return(0); /* arbitrary */ -} - -/* - - nch - number of characters in a set - == static int nch(register struct parse *p, register cset *cs); - */ -static int -nch(p, cs) -register struct parse *p; -register cset *cs; -{ - register int i; - register size_t css = (size_t)p->g->csetsize; - register int n = 0; - - for (i = 0; i < css; i++) - if (CHIN(cs, i)) - n++; - return(n); -} - -/* - - mcadd - add a collating element to a cset - == static void mcadd(register struct parse *p, register cset *cs, \ - == register char *cp); - */ -static void -mcadd(p, cs, cp) -register struct parse *p; -register cset *cs; -register char *cp; -{ - register size_t oldend = cs->smultis; - - cs->smultis += strlen(cp) + 1; - if (cs->multis == NULL) - cs->multis = malloc(cs->smultis); - else - cs->multis = realloc(cs->multis, cs->smultis); - if (cs->multis == NULL) { - SETERROR(REG_ESPACE); - return; - } - - (void) strcpy(cs->multis + oldend - 1, cp); - cs->multis[cs->smultis - 1] = '\0'; -} - -/* - - mcsub - subtract a collating element from a cset - == static void mcsub(register cset *cs, register char *cp); - */ -static void -mcsub(cs, cp) -register cset *cs; -register char *cp; -{ - register char *fp = mcfind(cs, cp); - register size_t len; - - assert(fp != NULL); - len = strlen(fp); - (void) memmove(fp, fp + len + 1, - cs->smultis - (fp + len + 1 - cs->multis)); - cs->smultis -= len; - - if (cs->smultis == 0) { - free(cs->multis); - cs->multis = NULL; - return; - } - - cs->multis = realloc(cs->multis, cs->smultis); - assert(cs->multis != NULL); -} - -/* - - mcin - is a collating element in a cset? - == static int mcin(register cset *cs, register char *cp); - */ -static int -mcin(cs, cp) -register cset *cs; -register char *cp; -{ - return(mcfind(cs, cp) != NULL); -} - -/* - - mcfind - find a collating element in a cset - == static char *mcfind(register cset *cs, register char *cp); - */ -static char * -mcfind(cs, cp) -register cset *cs; -register char *cp; -{ - register char *p; - - if (cs->multis == NULL) - return(NULL); - for (p = cs->multis; *p != '\0'; p += strlen(p) + 1) - if (strcmp(cp, p) == 0) - return(p); - return(NULL); -} - -/* - - mcinvert - invert the list of collating elements in a cset - == static void mcinvert(register struct parse *p, register cset *cs); - * - * This would have to know the set of possibilities. Implementation - * is deferred. - */ -static void -mcinvert(p, cs) -register struct parse *p; -register cset *cs; -{ - assert(cs->multis == NULL); /* xxx */ -} - -/* - - mccase - add case counterparts of the list of collating elements in a cset - == static void mccase(register struct parse *p, register cset *cs); - * - * This would have to know the set of possibilities. Implementation - * is deferred. - */ -static void -mccase(p, cs) -register struct parse *p; -register cset *cs; -{ - assert(cs->multis == NULL); /* xxx */ -} - -/* - - isinsets - is this character in any sets? - == static int isinsets(register struct re_guts *g, int c); - */ -static int /* predicate */ -isinsets(g, c) -register struct re_guts *g; -int c; -{ - register uch *col; - register int i; - register int ncols = (g->ncsets+(CHAR_BIT-1)) / CHAR_BIT; - register unsigned uc = (unsigned char)c; - - for (i = 0, col = g->setbits; i < ncols; i++, col += g->csetsize) - if (col[uc] != 0) - return(1); - return(0); -} - -/* - - samesets - are these two characters in exactly the same sets? - == static int samesets(register struct re_guts *g, int c1, int c2); - */ -static int /* predicate */ -samesets(g, c1, c2) -register struct re_guts *g; -int c1; -int c2; -{ - register uch *col; - register int i; - register int ncols = (g->ncsets+(CHAR_BIT-1)) / CHAR_BIT; - register unsigned uc1 = (unsigned char)c1; - register unsigned uc2 = (unsigned char)c2; - - for (i = 0, col = g->setbits; i < ncols; i++, col += g->csetsize) - if (col[uc1] != col[uc2]) - return(0); - return(1); -} - -/* - - categorize - sort out character categories - == static void categorize(struct parse *p, register struct re_guts *g); - */ -static void -categorize(p, g) -struct parse *p; -register struct re_guts *g; -{ - register cat_t *cats = g->categories; - register int c; - register int c2; - register cat_t cat; - - /* avoid making error situations worse */ - if (p->error != 0) - return; - - for (c = CHAR_MIN; c <= CHAR_MAX; c++) - if (cats[c] == 0 && isinsets(g, c)) { - cat = g->ncategories++; - cats[c] = cat; - for (c2 = c+1; c2 <= CHAR_MAX; c2++) - if (cats[c2] == 0 && samesets(g, c, c2)) - cats[c2] = cat; - } -} - -/* - - dupl - emit a duplicate of a bunch of sops - == static sopno dupl(register struct parse *p, sopno start, sopno finish); - */ -static sopno /* start of duplicate */ -dupl(p, start, finish) -register struct parse *p; -sopno start; /* from here */ -sopno finish; /* to this less one */ -{ - register sopno ret = HERE(); - register sopno len = finish - start; - - assert(finish >= start); - if (len == 0) - return(ret); - enlarge(p, p->ssize + len); /* this many unexpected additions */ - assert(p->ssize >= p->slen + len); - (void) memcpy((char *)(p->strip + p->slen), - (char *)(p->strip + start), (size_t)len*sizeof(sop)); - p->slen += len; - return(ret); -} - -/* - - doemit - emit a strip operator - == static void doemit(register struct parse *p, sop op, size_t opnd); - * - * It might seem better to implement this as a macro with a function as - * hard-case backup, but it's just too big and messy unless there are - * some changes to the data structures. Maybe later. - */ -static void -doemit(p, op, opnd) -register struct parse *p; -sop op; -size_t opnd; -{ - /* avoid making error situations worse */ - if (p->error != 0) - return; - - /* deal with oversize operands ("can't happen", more or less) */ - assert(opnd < 1<slen >= p->ssize) - enlarge(p, (p->ssize+1) / 2 * 3); /* +50% */ - assert(p->slen < p->ssize); - - /* finally, it's all reduced to the easy case */ - p->strip[p->slen++] = SOP(op, opnd); -} - -/* - - doinsert - insert a sop into the strip - == static void doinsert(register struct parse *p, sop op, size_t opnd, sopno pos); - */ -static void -doinsert(p, op, opnd, pos) -register struct parse *p; -sop op; -size_t opnd; -sopno pos; -{ - register sopno sn; - register sop s; - register int i; - - /* avoid making error situations worse */ - if (p->error != 0) - return; - - sn = HERE(); - EMIT(op, opnd); /* do checks, ensure space */ - assert(HERE() == sn+1); - s = p->strip[sn]; - - /* adjust paren pointers */ - assert(pos > 0); - for (i = 1; i < NPAREN; i++) { - if (p->pbegin[i] >= pos) { - p->pbegin[i]++; - } - if (p->pend[i] >= pos) { - p->pend[i]++; - } - } - - memmove((char *)&p->strip[pos+1], (char *)&p->strip[pos], - (HERE()-pos-1)*sizeof(sop)); - p->strip[pos] = s; -} - -/* - - dofwd - complete a forward reference - == static void dofwd(register struct parse *p, sopno pos, sop value); - */ -static void -dofwd(p, pos, value) -register struct parse *p; -register sopno pos; -sop value; -{ - /* avoid making error situations worse */ - if (p->error != 0) - return; - - assert(value < 1<strip[pos] = OP(p->strip[pos]) | value; -} - -/* - - enlarge - enlarge the strip - == static void enlarge(register struct parse *p, sopno size); - */ -static void -enlarge(p, size) -register struct parse *p; -register sopno size; -{ - register sop *sp; - - if (p->ssize >= size) - return; - - sp = (sop *)realloc(p->strip, size*sizeof(sop)); - if (sp == NULL) { - SETERROR(REG_ESPACE); - return; - } - p->strip = sp; - p->ssize = size; -} - -/* - - stripsnug - compact the strip - == static void stripsnug(register struct parse *p, register struct re_guts *g); - */ -static void -stripsnug(p, g) -register struct parse *p; -register struct re_guts *g; -{ - g->nstates = p->slen; - g->strip = (sop *)realloc((char *)p->strip, p->slen * sizeof(sop)); - if (g->strip == NULL) { - SETERROR(REG_ESPACE); - g->strip = p->strip; - } -} - -/* - - findmust - fill in must and mlen with longest mandatory literal string - == static void findmust(register struct parse *p, register struct re_guts *g); - * - * This algorithm could do fancy things like analyzing the operands of | - * for common subsequences. Someday. This code is simple and finds most - * of the interesting cases. - * - * Note that must and mlen got initialized during setup. - */ -static void -findmust(p, g) -struct parse *p; -register struct re_guts *g; -{ - register sop *scan; - sop *start; - register sop *newstart; - register sopno newlen; - register sop s; - register char *cp; - register sopno i; - - /* avoid making error situations worse */ - if (p->error != 0) - return; - - /* find the longest OCHAR sequence in strip */ - newlen = 0; - scan = g->strip + 1; - do { - s = *scan++; - switch (OP(s)) { - case OCHAR: /* sequence member */ - if (newlen == 0) /* new sequence */ - newstart = scan - 1; - newlen++; - break; - case OPLUS_: /* things that don't break one */ - case OLPAREN: - case ORPAREN: - break; - case OQUEST_: /* things that must be skipped */ - case OCH_: - scan--; - do { - scan += OPND(s); - s = *scan; - /* assert() interferes w debug printouts */ - if (OP(s) != O_QUEST && OP(s) != O_CH && - OP(s) != OOR2) { - g->iflags |= BAD; - return; - } - } while (OP(s) != O_QUEST && OP(s) != O_CH); - /* fallthrough */ - default: /* things that break a sequence */ - if (newlen > g->mlen) { /* ends one */ - start = newstart; - g->mlen = newlen; - } - newlen = 0; - break; - } - } while (OP(s) != OEND); - - if (g->mlen == 0) /* there isn't one */ - return; - - /* turn it into a character string */ - g->must = malloc((size_t)g->mlen + 1); - if (g->must == NULL) { /* argh; just forget it */ - g->mlen = 0; - return; - } - cp = g->must; - scan = start; - for (i = g->mlen; i > 0; i--) { - while (OP(s = *scan++) != OCHAR) - continue; - assert(cp < g->must + g->mlen); - *cp++ = (char)OPND(s); - } - assert(cp == g->must + g->mlen); - *cp++ = '\0'; /* just on general principles */ -} - -/* - - pluscount - count + nesting - == static sopno pluscount(register struct parse *p, register struct re_guts *g); - */ -static sopno /* nesting depth */ -pluscount(p, g) -struct parse *p; -register struct re_guts *g; -{ - register sop *scan; - register sop s; - register sopno plusnest = 0; - register sopno maxnest = 0; - - if (p->error != 0) - return(0); /* there may not be an OEND */ - - scan = g->strip + 1; - do { - s = *scan++; - switch (OP(s)) { - case OPLUS_: - plusnest++; - break; - case O_PLUS: - if (plusnest > maxnest) - maxnest = plusnest; - plusnest--; - break; - } - } while (OP(s) != OEND); - if (plusnest != 0) - g->iflags |= BAD; - return(maxnest); -} diff --git a/src/lib/evil/regex/regcomp.ih b/src/lib/evil/regex/regcomp.ih deleted file mode 100644 index 357461f77f..0000000000 --- a/src/lib/evil/regex/regcomp.ih +++ /dev/null @@ -1,51 +0,0 @@ -/* ========= begin header generated by ../src/lib/evil/regex/mkh.sh ========= */ -#ifdef __cplusplus -extern "C" { -#endif - -/* === lib/evil/regex/regcomp.c === */ -static void p_ere(register struct parse *p, int stop); -static void p_ere_exp(register struct parse *p); -static void p_str(register struct parse *p); -static void p_bre(register struct parse *p, register int end1, register int end2); -static int p_simp_re(register struct parse *p, int starordinary); -static int p_count(register struct parse *p); -static void p_bracket(register struct parse *p); -static void p_b_term(register struct parse *p, register cset *cs); -static void p_b_cclass(register struct parse *p, register cset *cs); -static void p_b_eclass(register struct parse *p, register cset *cs); -static char p_b_symbol(register struct parse *p); -static char p_b_coll_elem(register struct parse *p, int endc); -static char othercase(int ch); -static void bothcases(register struct parse *p, int ch); -static void ordinary(register struct parse *p, register int ch); -static void nonnewline(register struct parse *p); -static void repeat(register struct parse *p, sopno start, int from, int to); -static int seterr(register struct parse *p, int e); -static cset *allocset(register struct parse *p); -static void freeset(register struct parse *p, register cset *cs); -static int freezeset(register struct parse *p, register cset *cs); -static int firstch(register struct parse *p, register cset *cs); -static int nch(register struct parse *p, register cset *cs); -static void mcadd(register struct parse *p, register cset *cs, register char *cp); -static void mcsub(register cset *cs, register char *cp); -static int mcin(register cset *cs, register char *cp); -static char *mcfind(register cset *cs, register char *cp); -static void mcinvert(register struct parse *p, register cset *cs); -static void mccase(register struct parse *p, register cset *cs); -static int isinsets(register struct re_guts *g, int c); -static int samesets(register struct re_guts *g, int c1, int c2); -static void categorize(struct parse *p, register struct re_guts *g); -static sopno dupl(register struct parse *p, sopno start, sopno finish); -static void doemit(register struct parse *p, sop op, size_t opnd); -static void doinsert(register struct parse *p, sop op, size_t opnd, sopno pos); -static void dofwd(register struct parse *p, sopno pos, sop value); -static void enlarge(register struct parse *p, sopno size); -static void stripsnug(register struct parse *p, register struct re_guts *g); -static void findmust(register struct parse *p, register struct re_guts *g); -static sopno pluscount(register struct parse *p, register struct re_guts *g); - -#ifdef __cplusplus -} -#endif -/* ========= end header generated by ../src/lib/evil/regex/mkh.sh ========= */ diff --git a/src/lib/evil/regex/regerror.c b/src/lib/evil/regex/regerror.c deleted file mode 100644 index ae46a43c3e..0000000000 --- a/src/lib/evil/regex/regerror.c +++ /dev/null @@ -1,122 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#include "regex.h" -#include "utils.h" -#include "regerror.ih" - -/* - = #define REG_OKAY 0 - = #define REG_NOMATCH 1 - = #define REG_BADPAT 2 - = #define REG_ECOLLATE 3 - = #define REG_ECTYPE 4 - = #define REG_EESCAPE 5 - = #define REG_ESUBREG 6 - = #define REG_EBRACK 7 - = #define REG_EPAREN 8 - = #define REG_EBRACE 9 - = #define REG_BADBR 10 - = #define REG_ERANGE 11 - = #define REG_ESPACE 12 - = #define REG_BADRPT 13 - = #define REG_EMPTY 14 - = #define REG_ASSERT 15 - = #define REG_INVARG 16 - = #define REG_ATOI 255 // convert name to number (!) - = #define REG_ITOA 0400 // convert number to name (!) - */ -static struct rerr { - int code; - char *name; - char *explain; -} rerrs[] = { - REG_OKAY, "REG_OKAY", "no errors detected", - REG_NOMATCH, "REG_NOMATCH", "regexec() failed to match", - REG_BADPAT, "REG_BADPAT", "invalid regular expression", - REG_ECOLLATE, "REG_ECOLLATE", "invalid collating element", - REG_ECTYPE, "REG_ECTYPE", "invalid character class", - REG_EESCAPE, "REG_EESCAPE", "trailing backslash (\\)", - REG_ESUBREG, "REG_ESUBREG", "invalid backreference number", - REG_EBRACK, "REG_EBRACK", "brackets ([ ]) not balanced", - REG_EPAREN, "REG_EPAREN", "parentheses not balanced", - REG_EBRACE, "REG_EBRACE", "braces not balanced", - REG_BADBR, "REG_BADBR", "invalid repetition count(s)", - REG_ERANGE, "REG_ERANGE", "invalid character range", - REG_ESPACE, "REG_ESPACE", "out of memory", - REG_BADRPT, "REG_BADRPT", "repetition-operator operand invalid", - REG_EMPTY, "REG_EMPTY", "empty (sub)expression", - REG_ASSERT, "REG_ASSERT", "\"can't happen\" -- you found a bug", - REG_INVARG, "REG_INVARG", "invalid argument to regex routine", - -1, "", "*** unknown regexp error code ***", -}; - -/* - - regerror - the interface to error numbers - = extern size_t regerror(int, const regex_t *, char *, size_t); - */ -/* ARGSUSED */ -EAPI size_t -regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size) -{ - register struct rerr *r; - register size_t len; - register int target = errcode &~ REG_ITOA; - register char *s; - char convbuf[50]; - - if (errcode == REG_ATOI) - s = regatoi(preg, convbuf); - else { - for (r = rerrs; r->code >= 0; r++) - if (r->code == target) - break; - - if (errcode®_ITOA) { - if (r->code >= 0) - (void) strcpy(convbuf, r->name); - else - sprintf(convbuf, "REG_0x%x", target); - assert(strlen(convbuf) < sizeof(convbuf)); - s = convbuf; - } else - s = r->explain; - } - - len = strlen(s) + 1; - if (errbuf_size > 0) { - if (errbuf_size > len) - (void) strcpy(errbuf, s); - else { - (void) strncpy(errbuf, s, errbuf_size-1); - errbuf[errbuf_size-1] = '\0'; - } - } - - return(len); -} - -/* - - regatoi - internal routine to implement REG_ATOI - == static char *regatoi(const regex_t *preg, char *localbuf); - */ -static char * -regatoi(preg, localbuf) -const regex_t *preg; -char *localbuf; -{ - register struct rerr *r; - - for (r = rerrs; r->code >= 0; r++) - if (strcmp(r->name, preg->re_endp) == 0) - break; - if (r->code < 0) - return("0"); - - sprintf(localbuf, "%d", r->code); - return(localbuf); -} diff --git a/src/lib/evil/regex/regerror.ih b/src/lib/evil/regex/regerror.ih deleted file mode 100644 index e3f391cc90..0000000000 --- a/src/lib/evil/regex/regerror.ih +++ /dev/null @@ -1,12 +0,0 @@ -/* ========= begin header generated by ../src/lib/evil/regex/mkh.sh ========= */ -#ifdef __cplusplus -extern "C" { -#endif - -/* === lib/evil/regex/regerror.c === */ -static char *regatoi(const regex_t *preg, char *localbuf); - -#ifdef __cplusplus -} -#endif -/* ========= end header generated by ../src/lib/evil/regex/mkh.sh ========= */ diff --git a/src/lib/evil/regex/regex.h b/src/lib/evil/regex/regex.h deleted file mode 100644 index b521b3a024..0000000000 --- a/src/lib/evil/regex/regex.h +++ /dev/null @@ -1,78 +0,0 @@ -#ifndef _REGEX_H_ -#define _REGEX_H_ /* never again */ - -#include -#include - -/* ========= begin header generated by ../src/lib/evil/regex/mkh.sh ========= */ -#ifdef __cplusplus -extern "C" { -#endif - -/* === lib/evil/regex/regex2.h === */ -typedef off_t regoff_t; -typedef struct { - int re_magic; - size_t re_nsub; /* number of parenthesized subexpressions */ - const char *re_endp; /* end pointer for REG_PEND */ - struct re_guts *re_g; /* none of your business :-) */ -} regex_t; -typedef struct { - regoff_t rm_so; /* start of match */ - regoff_t rm_eo; /* end of match */ -} regmatch_t; - - -/* === lib/evil/regex/regcomp.c === */ -EAPI int regcomp(regex_t *, const char *, int); -#define REG_BASIC 0000 -#define REG_EXTENDED 0001 -#define REG_ICASE 0002 -#define REG_NOSUB 0004 -#define REG_NEWLINE 0010 -#define REG_NOSPEC 0020 -#define REG_PEND 0040 -#define REG_DUMP 0200 - - -/* === lib/evil/regex/regerror.c === */ -#define REG_OKAY 0 -#define REG_NOMATCH 1 -#define REG_BADPAT 2 -#define REG_ECOLLATE 3 -#define REG_ECTYPE 4 -#define REG_EESCAPE 5 -#define REG_ESUBREG 6 -#define REG_EBRACK 7 -#define REG_EPAREN 8 -#define REG_EBRACE 9 -#define REG_BADBR 10 -#define REG_ERANGE 11 -#define REG_ESPACE 12 -#define REG_BADRPT 13 -#define REG_EMPTY 14 -#define REG_ASSERT 15 -#define REG_INVARG 16 -#define REG_ATOI 255 /* convert name to number (!) */ -#define REG_ITOA 0400 /* convert number to name (!) */ -EAPI size_t regerror(int, const regex_t *, char *, size_t); - - -/* === lib/evil/regex/regexec.c === */ -EAPI int regexec(const regex_t *, const char *, size_t, regmatch_t [], int); -#define REG_NOTBOL 00001 -#define REG_NOTEOL 00002 -#define REG_STARTEND 00004 -#define REG_TRACE 00400 /* tracing of execution */ -#define REG_LARGE 01000 /* force large representation */ -#define REG_BACKR 02000 /* force use of backref code */ - - -/* === lib/evil/regex/regfree.c === */ -EAPI void regfree(regex_t *); - -#ifdef __cplusplus -} -#endif -/* ========= end header generated by ../src/lib/evil/regex/mkh.sh ========= */ -#endif diff --git a/src/lib/evil/regex/regex2.h b/src/lib/evil/regex/regex2.h deleted file mode 100644 index 58fd8d8a43..0000000000 --- a/src/lib/evil/regex/regex2.h +++ /dev/null @@ -1,134 +0,0 @@ -/* - * First, the stuff that ends up in the outside-world include file - = typedef off_t regoff_t; - = typedef struct { - = int re_magic; - = size_t re_nsub; // number of parenthesized subexpressions - = const char *re_endp; // end pointer for REG_PEND - = struct re_guts *re_g; // none of your business :-) - = } regex_t; - = typedef struct { - = regoff_t rm_so; // start of match - = regoff_t rm_eo; // end of match - = } regmatch_t; - */ -/* - * internals of regex_t - */ -#define MAGIC1 ((('r'^0200)<<8) | 'e') - -/* - * The internal representation is a *strip*, a sequence of - * operators ending with an endmarker. (Some terminology etc. is a - * historical relic of earlier versions which used multiple strips.) - * Certain oddities in the representation are there to permit running - * the machinery backwards; in particular, any deviation from sequential - * flow must be marked at both its source and its destination. Some - * fine points: - * - * - OPLUS_ and O_PLUS are *inside* the loop they create. - * - OQUEST_ and O_QUEST are *outside* the bypass they create. - * - OCH_ and O_CH are *outside* the multi-way branch they create, while - * OOR1 and OOR2 are respectively the end and the beginning of one of - * the branches. Note that there is an implicit OOR2 following OCH_ - * and an implicit OOR1 preceding O_CH. - * - * In state representations, an operator's bit is on to signify a state - * immediately *preceding* "execution" of that operator. - */ -typedef long sop; /* strip operator */ -typedef long sopno; -#define OPRMASK 0x7c000000 -#define OPDMASK 0x03ffffff -#define OPSHIFT (26) -#define OP(n) ((n)&OPRMASK) -#define OPND(n) ((n)&OPDMASK) -#define SOP(op, opnd) ((op)|(opnd)) -/* operators meaning operand */ -/* (back, fwd are offsets) */ -#define OEND (1< uch [csetsize] */ - uch mask; /* bit within array */ - uch hash; /* hash code */ - size_t smultis; - char *multis; /* -> char[smulti] ab\0cd\0ef\0\0 */ -} cset; -/* note that CHadd and CHsub are unsafe, and CHIN doesn't yield 0/1 */ -#define CHadd(cs, c) ((cs)->ptr[(uch)(c)] |= (cs)->mask, (cs)->hash += (c)) -#define CHsub(cs, c) ((cs)->ptr[(uch)(c)] &= ~(cs)->mask, (cs)->hash -= (c)) -#define CHIN(cs, c) ((cs)->ptr[(uch)(c)] & (cs)->mask) -#define MCadd(p, cs, cp) mcadd(p, cs, cp) /* regcomp() internal fns */ -#define MCsub(p, cs, cp) mcsub(p, cs, cp) -#define MCin(p, cs, cp) mcin(p, cs, cp) - -/* stuff for character categories */ -typedef unsigned char cat_t; - -/* - * main compiled-expression structure - */ -struct re_guts { - int magic; -# define MAGIC2 ((('R'^0200)<<8)|'E') - sop *strip; /* malloced area for strip */ - int csetsize; /* number of bits in a cset vector */ - int ncsets; /* number of csets in use */ - cset *sets; /* -> cset [ncsets] */ - uch *setbits; /* -> uch[csetsize][ncsets/CHAR_BIT] */ - int cflags; /* copy of regcomp() cflags argument */ - sopno nstates; /* = number of sops */ - sopno firststate; /* the initial OEND (normally 0) */ - sopno laststate; /* the final OEND */ - int iflags; /* internal flags */ -# define USEBOL 01 /* used ^ */ -# define USEEOL 02 /* used $ */ -# define BAD 04 /* something wrong */ - int nbol; /* number of ^ used */ - int neol; /* number of $ used */ - int ncategories; /* how many character categories */ - cat_t *categories; /* ->catspace[-CHAR_MIN] */ - char *must; /* match must contain this string */ - int mlen; /* length of must */ - size_t nsub; /* copy of re_nsub */ - int backrefs; /* does it use back references? */ - sopno nplus; /* how deep does it nest +s? */ - /* catspace must be last */ - cat_t catspace[1]; /* actually [NC] */ -}; - -/* misc utilities */ -#define OUT (CHAR_MAX+1) /* a non-character value */ -#define ISWORD(c) (isalnum(c) || (c) == '_') diff --git a/src/lib/evil/regex/regexec.c b/src/lib/evil/regex/regexec.c deleted file mode 100644 index 3a9135d7b8..0000000000 --- a/src/lib/evil/regex/regexec.c +++ /dev/null @@ -1,138 +0,0 @@ -/* - * the outer shell of regexec() - * - * This file includes engine.c *twice*, after muchos fiddling with the - * macros that code uses. This lets the same code operate on two different - * representations for state sets. - */ -#include -#include -#include -#include -#include -#include -#include - -#include "utils.h" -#include "regex2.h" - -static int nope = 0; /* for use in asserts; shuts lint up */ - -/* macros for manipulating states, small version */ -#define states unsigned -#define states1 unsigned /* for later use in regexec() decision */ -#define CLEAR(v) ((v) = 0) -#define SET0(v, n) ((v) &= ~((unsigned)1 << (n))) -#define SET1(v, n) ((v) |= (unsigned)1 << (n)) -#define ISSET(v, n) ((v) & ((unsigned)1 << (n))) -#define ASSIGN(d, s) ((d) = (s)) -#define EQ(a, b) ((a) == (b)) -#define STATEVARS int dummy /* dummy version */ -#define STATESETUP(m, n) /* nothing */ -#define STATETEARDOWN(m) /* nothing */ -#define SETUP(v) ((v) = 0) -#define onestate unsigned -#define INIT(o, n) ((o) = (unsigned)1 << (n)) -#define INC(o) ((o) <<= 1) -#define ISSTATEIN(v, o) ((v) & (o)) -/* some abbreviations; note that some of these know variable names! */ -/* do "if I'm here, I can also be there" etc without branches */ -#define FWD(dst, src, n) ((dst) |= ((unsigned)(src)&(here)) << (n)) -#define BACK(dst, src, n) ((dst) |= ((unsigned)(src)&(here)) >> (n)) -#define ISSETBACK(v, n) ((v) & ((unsigned)here >> (n))) -/* function names */ -#define SNAMES /* engine.c looks after details */ - -#include "engine.c" - -/* now undo things */ -#undef states -#undef CLEAR -#undef SET0 -#undef SET1 -#undef ISSET -#undef ASSIGN -#undef EQ -#undef STATEVARS -#undef STATESETUP -#undef STATETEARDOWN -#undef SETUP -#undef onestate -#undef INIT -#undef INC -#undef ISSTATEIN -#undef FWD -#undef BACK -#undef ISSETBACK -#undef SNAMES - -/* macros for manipulating states, large version */ -#define states char * -#define CLEAR(v) memset(v, 0, m->g->nstates) -#define SET0(v, n) ((v)[n] = 0) -#define SET1(v, n) ((v)[n] = 1) -#define ISSET(v, n) ((v)[n]) -#define ASSIGN(d, s) memcpy(d, s, m->g->nstates) -#define EQ(a, b) (memcmp(a, b, m->g->nstates) == 0) -#define STATEVARS int vn; char *space -#define STATESETUP(m, nv) { (m)->space = malloc((nv)*(m)->g->nstates); \ - if ((m)->space == NULL) return(REG_ESPACE); \ - (m)->vn = 0; } -#define STATETEARDOWN(m) { free((m)->space); } -#define SETUP(v) ((v) = &m->space[m->vn++ * m->g->nstates]) -#define onestate int -#define INIT(o, n) ((o) = (n)) -#define INC(o) ((o)++) -#define ISSTATEIN(v, o) ((v)[o]) -/* some abbreviations; note that some of these know variable names! */ -/* do "if I'm here, I can also be there" etc without branches */ -#define FWD(dst, src, n) ((dst)[here+(n)] |= (src)[here]) -#define BACK(dst, src, n) ((dst)[here-(n)] |= (src)[here]) -#define ISSETBACK(v, n) ((v)[here - (n)]) -/* function names */ -#define LNAMES /* flag */ - -#include "engine.c" - -/* - - regexec - interface for matching - = extern int regexec(const regex_t *, const char *, size_t, \ - = regmatch_t [], int); - = #define REG_NOTBOL 00001 - = #define REG_NOTEOL 00002 - = #define REG_STARTEND 00004 - = #define REG_TRACE 00400 // tracing of execution - = #define REG_LARGE 01000 // force large representation - = #define REG_BACKR 02000 // force use of backref code - * - * We put this here so we can exploit knowledge of the state representation - * when choosing which matcher to call. Also, by this point the matchers - * have been prototyped. - */ -EAPI int /* 0 success, REG_NOMATCH failure */ -regexec(preg, string, nmatch, pmatch, eflags) -const regex_t *preg; -const char *string; -size_t nmatch; -regmatch_t pmatch[]; -int eflags; -{ - register struct re_guts *g = preg->re_g; -#ifdef REDEBUG -# define GOODFLAGS(f) (f) -#else -# define GOODFLAGS(f) ((f)&(REG_NOTBOL|REG_NOTEOL|REG_STARTEND)) -#endif - - if (preg->re_magic != MAGIC1 || g->magic != MAGIC2) - return(REG_BADPAT); - assert(!(g->iflags&BAD)); - if (g->iflags&BAD) /* backstop for no-debug case */ - return(REG_BADPAT); - eflags = GOODFLAGS(eflags); - - if (g->nstates <= CHAR_BIT*sizeof(states1) && !(eflags®_LARGE)) - return(smatcher(g, (char *)string, nmatch, pmatch, eflags)); - else - return(lmatcher(g, (char *)string, nmatch, pmatch, eflags)); -} diff --git a/src/lib/evil/regex/regfree.c b/src/lib/evil/regex/regfree.c deleted file mode 100644 index 75885bd076..0000000000 --- a/src/lib/evil/regex/regfree.c +++ /dev/null @@ -1,37 +0,0 @@ -#include -#include -#include -#include - -#include "utils.h" -#include "regex2.h" - -/* - - regfree - free everything - = extern void regfree(regex_t *); - */ -EAPI void -regfree(preg) -regex_t *preg; -{ - register struct re_guts *g; - - if (preg->re_magic != MAGIC1) /* oops */ - return; /* nice to complain, but hard */ - - g = preg->re_g; - if (g == NULL || g->magic != MAGIC2) /* oops again */ - return; - preg->re_magic = 0; /* mark it invalid */ - g->magic = 0; /* mark it invalid */ - - if (g->strip != NULL) - free((char *)g->strip); - if (g->sets != NULL) - free((char *)g->sets); - if (g->setbits != NULL) - free((char *)g->setbits); - if (g->must != NULL) - free(g->must); - free((char *)g); -} diff --git a/src/lib/evil/regex/utils.h b/src/lib/evil/regex/utils.h deleted file mode 100644 index 1a997ac8fc..0000000000 --- a/src/lib/evil/regex/utils.h +++ /dev/null @@ -1,22 +0,0 @@ -/* utility definitions */ -#ifdef _POSIX2_RE_DUP_MAX -#define DUPMAX _POSIX2_RE_DUP_MAX -#else -#define DUPMAX 255 -#endif -#define INFINITY (DUPMAX + 1) -#define NC (CHAR_MAX - CHAR_MIN + 1) -typedef unsigned char uch; - -/* switch off assertions (if not already off) if no REDEBUG */ -#ifndef REDEBUG -#ifndef NDEBUG -#define NDEBUG /* no assertions please */ -#endif -#endif -#include - -/* for old systems with bcopy() but no memmove() */ -#ifdef USEBCOPY -#define memmove(d, s, c) bcopy(s, d, c) -#endif diff --git a/src/modules/ecore_imf/meson.build b/src/modules/ecore_imf/meson.build index 97f021adff..b8a495a280 100644 --- a/src/modules/ecore_imf/meson.build +++ b/src/modules/ecore_imf/meson.build @@ -15,9 +15,6 @@ foreach mod_name : mods mod_src = [] mod_deps = [] - if loader_disabler.contains('xim') == false - config_h.set('ENABLE_'+mod_name.to_upper(), '1') - endif if loader_disabler.contains(mod_name) == false mod_install_dir = join_paths(dir_package_modules, mod_name, version_name) subdir(mod_name) diff --git a/src/modules/elementary/web/none/elm_web_none.c b/src/modules/elementary/web/none/elm_web_none.c index d601460bda..88218462dc 100644 --- a/src/modules/elementary/web/none/elm_web_none.c +++ b/src/modules/elementary/web/none/elm_web_none.c @@ -59,7 +59,6 @@ _elm_web_none_efl_canvas_group_group_add(Eo *obj, Elm_Web_None_Data *_pd EINA_UN elm_widget_resize_object_set(obj, resize_obj); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); } EOLIAN static Evas_Object* diff --git a/src/modules/evas/engines/gl_common/evas_gl_common.h b/src/modules/evas/engines/gl_common/evas_gl_common.h index ab9a54948d..2c74423f26 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_common.h +++ b/src/modules/evas/engines/gl_common/evas_gl_common.h @@ -308,8 +308,6 @@ struct _Evas_Engine_GL_Context Eina_Bool size : 1; } change; - Eina_Bool havestuff : 1; - struct { struct { int x, y, w, h; @@ -335,7 +333,7 @@ struct _Evas_Engine_GL_Context } shader; struct { int num, alloc; - GLshort *vertex; + GLfloat *vertex; GLubyte *color; GLfloat *texuv; GLfloat *texuv2; @@ -380,6 +378,9 @@ struct _Evas_Engine_GL_Context GLuint preserve_bit; int gles_version; + + Eina_Bool havestuff : 1; + Eina_Bool msaa : 1; }; struct _Evas_GL_Texture_Pool diff --git a/src/modules/evas/engines/gl_common/evas_gl_context.c b/src/modules/evas/engines/gl_common/evas_gl_context.c index 2877007f42..c1f7d985b6 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_context.c +++ b/src/modules/evas/engines/gl_common/evas_gl_context.c @@ -1403,7 +1403,7 @@ array_alloc(Evas_Engine_GL_Context *gc, int n) gc->pipe[n].array.field = _pipebuf_resize(gc->pipe[n].array.field, \ gc->pipe[n].array.alloc * sizeof(type) * size) - RALOC(vertex, GLshort, VERTEX_CNT); + RALOC(vertex, GLfloat, VERTEX_CNT); RALOC(color, GLubyte, COLOR_CNT); RALOC(texuv, GLfloat, TEX_CNT); RALOC(texa, GLfloat, TEX_CNT); @@ -1778,14 +1778,21 @@ static int pipe_region_intersects(Evas_Engine_GL_Context *gc, int n, int x, int y, int w, int h) { - int rx, ry, rw, rh, ii, end; - const GLshort *v; - +#define SPANS_INTERSECT(x1, w1, x2, w2) \ +(!((((x2) + (w2)) <= (x1)) || ((x2) >= ((x1) + (w1))))) + +#define REGIONS_INTERSECT(x, y, w, h, xx, yy, ww, hh) \ +((SPANS_COMMON((x), (w), (xx), (ww))) && (SPANS_COMMON((y), (h), (yy), (hh)))) + + float rx, ry, rw, rh; + int ii, end; + const GLfloat *v; + rx = gc->pipe[n].region.x; ry = gc->pipe[n].region.y; rw = gc->pipe[n].region.w; rh = gc->pipe[n].region.h; - if (!RECTS_INTERSECT(x, y, w, h, rx, ry, rw, rh)) return 0; + if (!REGIONS_INTERSECT(x, y, w, h, rx, ry, rw, rh)) return 0; // a hack for now. map pipes use their whole bounding box for intersects // which at worst case reduces to old pipeline flushes, but cheaper than @@ -1803,7 +1810,7 @@ pipe_region_intersects(Evas_Engine_GL_Context *gc, int n, ry = v[ii + 1]; rw = v[ii + 3] - rx; rh = v[ii + 7] - ry; - if (RECTS_INTERSECT(x, y, w, h, rx, ry, rw, rh)) return 1; + if (REGIONS_INTERSECT(x, y, w, h, rx, ry, rw, rh)) return 1; } return 0; } @@ -2930,16 +2937,14 @@ evas_gl_common_context_image_map_push(Evas_Engine_GL_Context *gc, (A_VAL(&(p[2].col)) < 0xff) || (A_VAL(&(p[3].col)) < 0xff)) blend = EINA_TRUE; - if ((p[0].z == p[1].z) && (p[1].z == p[2].z) && (p[2].z == p[3].z)) - flat = EINA_TRUE; + if (((p[0].z == p[1].z) && (p[1].z == p[2].z) && (p[2].z == p[3].z)) || + (p[0].foc <= 0)) + { + flat = EINA_TRUE; + } if (!clip) cx = cy = cw = ch = 0; - if (!flat) - { - if (p[0].foc <= 0) flat = EINA_TRUE; - } - switch (cspace) { case EVAS_COLORSPACE_YCBCR422P601_PL: @@ -3000,28 +3005,11 @@ evas_gl_common_context_image_map_push(Evas_Engine_GL_Context *gc, w = w - x; h = h - y; - if (!flat) - { - // FUZZZZ! - x -= 3; - y -= 3; - w += 6; - h += 6; - } - if (clip) - { - if (flat) - { - int nx = x, ny = y, nw = w, nh = h; - - RECTS_CLIP_TO_RECT(nx, ny, nw, nh, cx, cy, cw, ch); - if ((nx == x) && (ny == y) && (nw == w) && (nh == h)) - { - clip = 0; cx = 0; cy = 0; cw = 0; ch = 0; - } - x = nx; y = ny; w = nw; h = nh; - } - } + // FUZZZZ! + x -= 3; + y -= 3; + w += 6; + h += 6; if (!flat) { @@ -3033,6 +3021,17 @@ evas_gl_common_context_image_map_push(Evas_Engine_GL_Context *gc, gc->change.size = 1; _evas_gl_common_viewport_set(gc); } + else if (clip) + { + int nx = x, ny = y, nw = w, nh = h; + + RECTS_CLIP_TO_RECT(nx, ny, nw, nh, cx, cy, cw, ch); + if ((nx == x) && (ny == y) && (nw == w) && (nh == h)) + { + clip = 0; cx = 0; cy = 0; cw = 0; ch = 0; + } + x = nx; y = ny; w = nw; h = nh; + } pn = _evas_gl_common_context_push(SHD_MAP, gc, tex, mtex, @@ -3108,8 +3107,8 @@ evas_gl_common_context_image_map_push(Evas_Engine_GL_Context *gc, if (flat) { PUSH_VERTEX(pn, - (p[points[i]].x >> FP), - (p[points[i]].y >> FP), + p[points[i]].fx, + p[points[i]].fy, 0); } else @@ -4106,7 +4105,7 @@ shader_array_flush(Evas_Engine_GL_Context *gc) } // use_vertex is always true - glVertexAttribPointer(SHAD_VERTEX, VERTEX_CNT, GL_SHORT, GL_FALSE, 0, vertex_ptr); + glVertexAttribPointer(SHAD_VERTEX, VERTEX_CNT, GL_FLOAT, GL_FALSE, 0, vertex_ptr); if (gc->pipe[i].array.use_color) { diff --git a/src/modules/evas/engines/gl_common/evas_gl_font.c b/src/modules/evas/engines/gl_common/evas_gl_font.c index 3d5d436448..b7bd643756 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_font.c +++ b/src/modules/evas/engines/gl_common/evas_gl_font.c @@ -5,7 +5,7 @@ evas_gl_font_texture_new(void *context, RGBA_Font_Glyph *fg) { Evas_Engine_GL_Context *gc = context; Evas_GL_Texture *tex; - int w, h, j, nw, fh, y; + int w, h, nw, fh, y; DATA8 *ndata, *data, *p1, *p2; if (fg->ext_dat) return fg->ext_dat; // FIXME: one engine at a time can do this :( @@ -17,8 +17,6 @@ evas_gl_font_texture_new(void *context, RGBA_Font_Glyph *fg) if (!fg->glyph_out->rle) return NULL; data = evas_common_font_glyph_uncompress(fg, &w, &h); if (!data) return NULL; - j = w; - if (j < w) j = w; // expand to 32bit (4 byte) aligned rows for texture upload nw = ((w + 3) / 4) * 4; @@ -31,7 +29,7 @@ evas_gl_font_texture_new(void *context, RGBA_Font_Glyph *fg) // else copy row by row for (y = 0; y < h; y++) { - p1 = data + (j * y); + p1 = data + (w * y); p2 = ndata + (nw * y); memcpy(p2,p1,w); } diff --git a/src/modules/evas/engines/gl_generic/evas_engine.c b/src/modules/evas/engines/gl_generic/evas_engine.c index 2659498611..60301d4283 100644 --- a/src/modules/evas/engines/gl_generic/evas_engine.c +++ b/src/modules/evas/engines/gl_generic/evas_engine.c @@ -1229,7 +1229,8 @@ eng_image_scale_hint_get(void *engine EINA_UNUSED, void *image) } static Eina_Bool -eng_image_map_draw(void *engine, void *data, void *context, void *surface, void *image, RGBA_Map *m, int smooth, int level, Eina_Bool do_async) +eng_image_map_draw(void *engine EINA_UNUSED, void *data, void *context, void *surface, void *image, + RGBA_Map *m, int smooth, int level, Eina_Bool do_async EINA_UNUSED) { Evas_Engine_GL_Context *gl_context; Evas_GL_Image *gim = image; @@ -1239,7 +1240,8 @@ eng_image_map_draw(void *engine, void *data, void *context, void *surface, void evas_gl_common_context_target_surface_set(gl_context, surface); gl_context->dc = context; - if ((m->pts[0].x == m->pts[3].x) && + if (!gl_context->msaa && + (m->pts[0].x == m->pts[3].x) && (m->pts[1].x == m->pts[2].x) && (m->pts[0].y == m->pts[1].y) && (m->pts[3].y == m->pts[2].y) && @@ -1259,7 +1261,6 @@ eng_image_map_draw(void *engine, void *data, void *context, void *surface, void (m->pts[3].col == 0xffffffff)) { int dx, dy, dw, dh; - dx = m->pts[0].x >> FP; dy = m->pts[0].y >> FP; dw = (m->pts[2].x >> FP) - dx; diff --git a/src/modules/evas/engines/gl_x11/evas_x_main.c b/src/modules/evas/engines/gl_x11/evas_x_main.c index 3996f510d0..3543d9390b 100644 --- a/src/modules/evas/engines/gl_x11/evas_x_main.c +++ b/src/modules/evas/engines/gl_x11/evas_x_main.c @@ -632,6 +632,7 @@ try_gles2: glXGetFBConfigAttrib(gw->disp, evis->config, GLX_FBCONFIG_ID, &gw->gl_context->glxcfg_rgb); glXGetFBConfigAttrib(gw->disp, evis2->config, GLX_FBCONFIG_ID, &gw->gl_context->glxcfg_rgba); #endif + gw->gl_context->msaa = (Eina_Bool) msaa_bits; eng_window_use(gw); glsym_evas_gl_common_context_resize(gw->gl_context, w, h, rot); gw->surf = 1; diff --git a/src/modules/evas/engines/software_generic/evas_engine.c b/src/modules/evas/engines/software_generic/evas_engine.c index 7007f3a2fd..1b9aeed1c3 100644 --- a/src/modules/evas/engines/software_generic/evas_engine.c +++ b/src/modules/evas/engines/software_generic/evas_engine.c @@ -2494,7 +2494,8 @@ _draw_thread_map_draw(void *data) continue; } - if ((m->pts[0 + offset].x == m->pts[3 + offset].x) && + if (!(map->anti_alias && map->smooth) && //For sub-pixel rendering + (m->pts[0 + offset].x == m->pts[3 + offset].x) && (m->pts[1 + offset].x == m->pts[2 + offset].x) && (m->pts[0 + offset].y == m->pts[1 + offset].y) && (m->pts[3 + offset].y == m->pts[2 + offset].y) && diff --git a/src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c b/src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c index 950db2bea1..9c63d0bdbd 100644 --- a/src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c +++ b/src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c @@ -1519,7 +1519,13 @@ _clone_gradient(Svg_Style_Gradient *from) grad->id = _copy_id(from->id); grad->ref = _copy_id(from->ref); grad->spread = from->spread; + grad->use_percentage = from->use_percentage; grad->user_space = from->user_space; + if (from->transform) + { + grad->transform = calloc(1, sizeof(Eina_Matrix3)); + eina_matrix3_copy(grad->transform, from->transform); + } grad->stops = _clone_grad_stops(from->stops); if (grad->type == SVG_LINEAR_GRADIENT) { @@ -1874,15 +1880,53 @@ _handle_linear_y2_attr(Evas_SVG_Loader *loader, Svg_Linear_Gradient* linear, con linear->y2 = _gradient_to_double(loader->svg_parse, value, SVG_PARSER_LENGTH_VERTICAL); } +static void +_recalc_linear_x1_attr(Evas_SVG_Loader *loader, Svg_Linear_Gradient* linear, Eina_Bool user_space) +{ + if (!user_space) + { + linear->x1 = linear->x1 * loader->svg_parse->global.width; + } +} + +static void +_recalc_linear_y1_attr(Evas_SVG_Loader *loader, Svg_Linear_Gradient* linear, Eina_Bool user_space) +{ + if (!user_space) + { + linear->y1 = linear->y1 * loader->svg_parse->global.height; + } +} + +static void +_recalc_linear_x2_attr(Evas_SVG_Loader *loader, Svg_Linear_Gradient* linear, Eina_Bool user_space) +{ + if (!user_space) + { + linear->x2 = linear->x2 * loader->svg_parse->global.width; + } +} + +static void +_recalc_linear_y2_attr(Evas_SVG_Loader *loader, Svg_Linear_Gradient* linear, Eina_Bool user_space) +{ + if (!user_space) + { + linear->y2 = linear->y2 * loader->svg_parse->global.height; + } +} + typedef void (*Linear_Method)(Evas_SVG_Loader *loader, Svg_Linear_Gradient *linear, const char *value); +typedef void (*Linear_Method_Recalc)(Evas_SVG_Loader *loader, Svg_Linear_Gradient *linear, Eina_Bool user_space); #define LINEAR_DEF(Name) \ - { #Name, sizeof (#Name), _handle_linear_##Name##_attr} + { #Name, sizeof (#Name), _handle_linear_##Name##_attr, _recalc_linear_##Name##_attr} static const struct { const char *tag; int sz; - Linear_Method tag_handler;; + Linear_Method tag_handler; + Linear_Method_Recalc tag_recalc; } linear_tags[] = { LINEAR_DEF(x1), LINEAR_DEF(y1), @@ -1922,6 +1966,10 @@ _attr_parse_linear_gradient_node(void *data, const char *key, const char *value) { grad->user_space = EINA_TRUE; } + else if (!strcmp(key, "gradientTransform")) + { + grad->transform = _parse_transformation_matrix(value); + } return EINA_TRUE; } @@ -1931,6 +1979,7 @@ _create_linearGradient(Evas_SVG_Loader *loader, const char *buf, unsigned buflen { Svg_Style_Gradient *grad = calloc(1, sizeof(Svg_Style_Gradient)); loader->svg_parse->style_grad = grad; + unsigned int i; grad->type = SVG_LINEAR_GRADIENT; grad->user_space = EINA_FALSE; @@ -1942,6 +1991,11 @@ _create_linearGradient(Evas_SVG_Loader *loader, const char *buf, unsigned buflen eina_simple_xml_attributes_parse(buf, buflen, _attr_parse_linear_gradient_node, loader); + for (i = 0; i < sizeof (linear_tags) / sizeof(linear_tags[0]); i++) + linear_tags[i].tag_recalc(loader, grad->linear, grad->user_space); + + grad->use_percentage = EINA_TRUE; + return loader->svg_parse->style_grad; } diff --git a/src/static_libs/vg_common/vg_common.h b/src/static_libs/vg_common/vg_common.h index ba8d610bf6..fc8d566144 100644 --- a/src/static_libs/vg_common/vg_common.h +++ b/src/static_libs/vg_common/vg_common.h @@ -202,10 +202,12 @@ struct _Svg_Style_Gradient Eina_Stringshare *id; Eina_Stringshare *ref; Efl_Gfx_Gradient_Spread spread; - Eina_Bool user_space; Eina_List *stops; // Efl_Gfx_Gradient_Stop Svg_Radial_Gradient *radial; Svg_Linear_Gradient *linear; + Eina_Matrix3 *transform; + Eina_Bool user_space; + Eina_Bool use_percentage; }; struct _Svg_Paint diff --git a/src/static_libs/vg_common/vg_common_svg.c b/src/static_libs/vg_common/vg_common_svg.c index 1c33e6454e..9cb4b9e246 100644 --- a/src/static_libs/vg_common/vg_common_svg.c +++ b/src/static_libs/vg_common/vg_common_svg.c @@ -158,10 +158,10 @@ _eet_for_style_gradient(void) EET_DATA_DESCRIPTOR_ADD_BASIC(_eet_style_gradient_node, Svg_Style_Gradient, "type", type, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_BASIC(_eet_style_gradient_node, Svg_Style_Gradient, "id", id, EET_T_STRING); EET_DATA_DESCRIPTOR_ADD_BASIC(_eet_style_gradient_node, Svg_Style_Gradient, "spread", spread, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(_eet_style_gradient_node, Svg_Style_Gradient, "user_space", user_space, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_LIST(_eet_style_gradient_node, Svg_Style_Gradient, "stops", stops, _eet_gradient_stops_node); EET_DATA_DESCRIPTOR_ADD_SUB(_eet_style_gradient_node, Svg_Style_Gradient, "radial", radial, _eet_radial_gradient_node); EET_DATA_DESCRIPTOR_ADD_SUB(_eet_style_gradient_node, Svg_Style_Gradient, "linear", linear, _eet_linear_gradient_node); + EET_DATA_DESCRIPTOR_ADD_BASIC(_eet_style_gradient_node, Svg_Style_Gradient, "user_space", user_space, EET_T_INT); return _eet_style_gradient_node; } @@ -481,6 +481,7 @@ _svg_style_gradient_free(Svg_Style_Gradient *grad) eina_stringshare_del(grad->ref); free(grad->radial); free(grad->linear); + if (grad->transform) free(grad->transform); EINA_LIST_FREE(grad->stops, stop) { @@ -568,8 +569,43 @@ _apply_gradient_property(Svg_Style_Gradient *g, Efl_VG *vg, Efl_VG *parent, Vg_F if (g->type == SVG_LINEAR_GRADIENT) { grad_obj = efl_add(EFL_CANVAS_VG_GRADIENT_LINEAR_CLASS, parent); - efl_gfx_gradient_linear_start_set(grad_obj, g->linear->x1 * r.w + r.x, g->linear->y1 * r.h + r.y); - efl_gfx_gradient_linear_end_set(grad_obj, g->linear->x2 * r.w + r.x, g->linear->y2 * r.h + r.y); + + if (g->use_percentage) + { + g->linear->x1 = g->linear->x1 * r.w + r.x; + g->linear->y1 = g->linear->y1 * r.h + r.y; + g->linear->x2 = g->linear->x2 * r.w + r.x; + g->linear->y2 = g->linear->y2 * r.h + r.y; + } + + if (g->transform) + { + double cy = ((double) r.h) * 0.5 + r.y; + double cx = ((double) r.w) * 0.5 + r.x; + + //Calc start point + eina_matrix3_identity(&m); + eina_matrix3_translate(&m, g->linear->x1 - cx, g->linear->y1 - cy); + eina_matrix3_multiply_copy(&m, g->transform , &m); + eina_matrix3_translate(&m, cx, cy); + + eina_matrix3_values_get(&m, NULL, NULL, &g->linear->x1, + NULL, NULL, &g->linear->y1, + NULL, NULL, NULL); + + //Calc end point + eina_matrix3_identity(&m); + eina_matrix3_translate(&m, g->linear->x2 - cx, g->linear->y2 - cy); + eina_matrix3_multiply_copy(&m, g->transform , &m); + eina_matrix3_translate(&m, cx, cy); + + eina_matrix3_values_get(&m, NULL, NULL, &g->linear->x2, + NULL, NULL, &g->linear->y2, + NULL, NULL, NULL); + } + + efl_gfx_gradient_linear_start_set(grad_obj, g->linear->x1, g->linear->y1); + efl_gfx_gradient_linear_end_set(grad_obj, g->linear->x2, g->linear->y2); } else if (g->type == SVG_RADIAL_GRADIENT) { @@ -911,6 +947,7 @@ _create_gradient_node(Efl_VG *vg) if (!grad->linear) goto oom_error; efl_gfx_gradient_linear_start_get(vg, &grad->linear->x1, &grad->linear->y1); efl_gfx_gradient_linear_end_get(vg, &grad->linear->x2, &grad->linear->y2); + grad->use_percentage = EINA_FALSE; } else { diff --git a/src/tests/ecore/ecore_test_ecore_imf.c b/src/tests/ecore/ecore_test_ecore_imf.c index 9851c77fa1..67571c40f5 100644 --- a/src/tests/ecore/ecore_test_ecore_imf.c +++ b/src/tests/ecore/ecore_test_ecore_imf.c @@ -14,7 +14,7 @@ EFL_START_TEST(ecore_test_ecore_imf_init) EFL_END_TEST static const char *built_modules[] = { -#ifdef ENABLE_XIM +#ifdef BUILD_ECORE_IMF_XIM "xim", #endif #ifdef BUILD_ECORE_IMF_IBUS diff --git a/src/tests/eio/eio_test_file.c b/src/tests/eio/eio_test_file.c index 5028215306..d7b84eaefb 100644 --- a/src/tests/eio/eio_test_file.c +++ b/src/tests/eio/eio_test_file.c @@ -41,11 +41,10 @@ _delete_filter_cb(void *data EINA_UNUSED, Eio_File *handler EINA_UNUSED, } static void -_main_cb(void *data, Eio_File *handler EINA_UNUSED, const char *file) +_main_cb(void *data, Eio_File *handler EINA_UNUSED, const char *file EINA_UNUSED) { int *number_of_listed_files = (int *)data; - fprintf(stderr, "Processing file:%s\n", file); (*number_of_listed_files)++; } @@ -63,11 +62,10 @@ _direct_filter_cb(void *data EINA_UNUSED, Eio_File *handler EINA_UNUSED, } static void -_direct_main_cb(void *data, Eio_File *handler EINA_UNUSED, const Eina_File_Direct_Info *info) +_direct_main_cb(void *data, Eio_File *handler EINA_UNUSED, const Eina_File_Direct_Info *info EINA_UNUSED) { int *number_of_listed_files = (int *)data; - fprintf(stderr, "Processing file:%s\n", info->path); (*number_of_listed_files)++; } diff --git a/src/tests/elementary/efl_ui_test_box.c b/src/tests/elementary/efl_ui_test_box.c index b1792c96a4..ca9b0c134e 100644 --- a/src/tests/elementary/efl_ui_test_box.c +++ b/src/tests/elementary/efl_ui_test_box.c @@ -224,9 +224,7 @@ layout_setup() { win = win_add(); - layout = efl_add(EFL_UI_BOX_CLASS, win, - efl_pack_align_set(efl_added, 0.8, 0.2), - efl_ui_direction_set(efl_added, EFL_UI_DIR_VERTICAL)); + layout = efl_add(EFL_UI_BOX_CLASS, win); } static void @@ -254,6 +252,9 @@ EFL_START_TEST (efl_ui_box_layout_update) { int i, max_index = (sizeof(hints) / sizeof(Hint)); + efl_pack_align_set(layout, 0.8, 0.2); + efl_ui_direction_set(layout, EFL_UI_DIR_VERTICAL); + Eo *btn = efl_add(EFL_UI_BUTTON_CLASS, layout, efl_pack_end(layout, efl_added)); @@ -270,6 +271,9 @@ EFL_START_TEST (efl_ui_box_layout_update_pack) int i, max_index2, max_index3; Eo *btn, *btn2, *btn3; + efl_pack_align_set(layout, 0.8, 0.2); + efl_ui_direction_set(layout, EFL_UI_DIR_VERTICAL); + max_index2 = ((sizeof(hints2) / sizeof(Hint)) / 2); max_index3 = ((sizeof(hints3) / sizeof(Hint)) / 3); @@ -364,6 +368,8 @@ EFL_START_TEST (efl_ui_box_size) Eo *btn, *btn2, *btn3; Eina_Size2D min, user_min; + efl_ui_direction_set(layout, EFL_UI_DIR_VERTICAL); + btn = efl_add(EFL_UI_BUTTON_CLASS, layout, efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(100, 100)), efl_pack_end(layout, efl_added)); @@ -407,6 +413,144 @@ EFL_START_TEST (efl_ui_box_size) } EFL_END_TEST +EFL_START_TEST (efl_ui_box_pack_unpack) +{ +#define BTN_NUM 6 + Eo *o, *btn[BTN_NUM]; + Eina_Iterator *itr; + int i; + + for (i = 0; i < BTN_NUM; i++) + btn[i] = efl_add(EFL_UI_BUTTON_CLASS, layout); + + //pack test + ck_assert(efl_pack(layout, btn[1])); + ck_assert_ptr_eq(efl_pack_content_get(layout, 0), btn[1]); + ck_assert_int_eq(efl_pack_index_get(layout, btn[1]), 0); + ck_assert(!efl_pack_end(layout, btn[1])); + ck_assert(!efl_pack(layout, NULL)); + ck_assert(efl_pack_after(layout, btn[3], btn[1])); + ck_assert_ptr_eq(efl_pack_content_get(layout, 1), btn[3]); + ck_assert_int_eq(efl_pack_index_get(layout, btn[3]), 1); + ck_assert(efl_pack_after(layout, btn[5], NULL)); + ck_assert_ptr_eq(efl_pack_content_get(layout, 2), btn[5]); + ck_assert_int_eq(efl_pack_index_get(layout, btn[5]), 2); + ck_assert_ptr_eq(efl_pack_content_get(layout, -1), btn[5]); + ck_assert_int_eq(efl_pack_index_get(layout, btn[5]), 2); + ck_assert(!efl_pack_after(layout, btn[5], NULL)); + ck_assert(!efl_pack_after(layout, NULL, btn[5])); + ck_assert(efl_pack_before(layout, btn[4], btn[5])); + ck_assert(efl_pack_begin(layout, btn[0])); + ck_assert_ptr_eq(efl_pack_content_get(layout, 0), btn[0]); + ck_assert_int_eq(efl_pack_index_get(layout, btn[0]), 0); + ck_assert(efl_pack_at(layout, btn[2], 2)); + ck_assert_ptr_eq(efl_pack_content_get(layout, 2), btn[2]); + ck_assert_int_eq(efl_pack_index_get(layout, btn[2]), 2); + + ck_assert_int_eq(efl_content_count(layout), BTN_NUM); + + i = 0; + itr = efl_content_iterate(layout); + EINA_ITERATOR_FOREACH(itr, o) + { + ck_assert_ptr_eq(o, btn[i++]); + } + eina_iterator_free(itr); + + /* btn array index : 0 1 2 3 4 5 + * children index : 0 1 2 3 4 5 + * negative index : -6 -5 -4 -3 -2 -1 + */ + //negative index test + for (i = -1; i >= -BTN_NUM; i--) + { + o = efl_pack_content_get(layout, i); + ck_assert_ptr_eq(o, btn[BTN_NUM + i]); + ck_assert_int_eq(efl_pack_index_get(layout, o), BTN_NUM + i); + } + + //unpack test + ck_assert_ptr_eq(efl_pack_unpack_at(layout, 2), btn[2]); + ck_assert(!efl_pack_unpack(layout, btn[2])); + efl_pack_at(layout, btn[2], 2); + ck_assert(efl_pack_unpack(layout, efl_pack_content_get(layout, 2))); + ck_assert(!efl_pack_unpack(layout, btn[2])); + + efl_pack_at(layout, btn[2], 2); + ck_assert_ptr_eq(efl_pack_unpack_at(layout, efl_pack_index_get(layout, btn[2])), btn[2]); + + ck_assert(!efl_pack_unpack(layout, NULL)); + ck_assert_int_eq(efl_content_count(layout), BTN_NUM - 1); + + efl_pack_unpack_all(layout); + ck_assert_int_eq(efl_content_count(layout), 0); + ck_assert(!efl_invalidated_get(btn[0])); + + for (i = 0; i < BTN_NUM; i++) + efl_pack_end(layout, btn[i]); + + efl_pack_clear(layout); + ck_assert_int_eq(efl_content_count(layout), 0); + ck_assert(efl_invalidated_get(btn[0])); +#undef BTN_NUM +} +EFL_END_TEST + +EFL_START_TEST (efl_ui_box_properties) +{ + double h, v; + Eina_Bool b; + + //align test + efl_pack_align_get(layout, &h, &v); + ck_assert(EINA_DBL_EQ(h, 0.5)); + ck_assert(EINA_DBL_EQ(v, 0.5)); + + efl_pack_align_set(layout, 0.3, 0.8234); + efl_pack_align_get(layout, &h, &v); + ck_assert(EINA_DBL_EQ(h, 0.3)); + ck_assert(EINA_DBL_EQ(v, 0.8234)); + + efl_pack_align_set(layout, -0.23, 123); + efl_pack_align_get(layout, &h, &v); + ck_assert(EINA_DBL_EQ(h, -1)); + ck_assert(EINA_DBL_EQ(v, 1)); + + //padding test + efl_pack_padding_get(layout, &h, &v, &b); + ck_assert(EINA_DBL_EQ(h, 0.0)); + ck_assert(EINA_DBL_EQ(v, 0.0)); + ck_assert_int_eq(b, 0); + + efl_pack_padding_set(layout, 0.3, 0.8234, 1); + efl_pack_padding_get(layout, &h, &v, &b); + ck_assert(EINA_DBL_EQ(h, 0.3)); + ck_assert(EINA_DBL_EQ(v, 0.8234)); + ck_assert_int_eq(b, 1); + + efl_pack_padding_set(layout, -1.23, 123, 45); + efl_pack_padding_get(layout, &h, &v, &b); + ck_assert(EINA_DBL_EQ(h, 0)); + ck_assert(EINA_DBL_EQ(v, 123)); + ck_assert_int_eq(b, 1); + + //direction test + ck_assert_int_eq(efl_ui_direction_get(layout), EFL_UI_DIR_VERTICAL); + + efl_ui_direction_set(layout, EFL_UI_DIR_DEFAULT); + ck_assert_int_eq(efl_ui_direction_get(layout), EFL_UI_DIR_VERTICAL); + + efl_ui_direction_set(layout, EFL_UI_DIR_HORIZONTAL); + ck_assert_int_eq(efl_ui_direction_get(layout), EFL_UI_DIR_HORIZONTAL); + + //homogeneous test + ck_assert_int_eq(efl_ui_box_homogeneous_get(layout), 0); + + efl_ui_box_homogeneous_set(layout, 123); + ck_assert_int_eq(efl_ui_box_homogeneous_get(layout), 1); +} +EFL_END_TEST + void efl_ui_test_box(TCase *tc) { tcase_add_checked_fixture(tc, layout_setup, layout_teardown); @@ -414,4 +558,6 @@ void efl_ui_test_box(TCase *tc) tcase_add_test(tc, efl_ui_box_layout_update); tcase_add_test(tc, efl_ui_box_layout_update_pack); tcase_add_test(tc, efl_ui_box_size); + tcase_add_test(tc, efl_ui_box_pack_unpack); + tcase_add_test(tc, efl_ui_box_properties); } diff --git a/src/tests/elementary/efl_ui_test_table.c b/src/tests/elementary/efl_ui_test_table.c index ac96db58e9..f299fdd9bc 100644 --- a/src/tests/elementary/efl_ui_test_table.c +++ b/src/tests/elementary/efl_ui_test_table.c @@ -341,11 +341,12 @@ EFL_START_TEST (efl_ui_table_layout_update_matrix) { for (j = 0; j < 3; j++) { - btn[3 * i + j] = efl_add(EFL_UI_BUTTON_CLASS, layout, - efl_pack_table(layout, efl_added, i, j, 1, 1)); + btn[3 * i + j] = efl_add(EFL_UI_BUTTON_CLASS, layout); if ((i == 2) && (j == 1)) efl_pack_table(layout, btn[3 * i + j], i, j, 1, 2); + else + efl_pack_table(layout, btn[3 * i + j], i, j, 1, 1); } } for (i = 0; i < max_index; i++) diff --git a/src/tests/elementary/meson.build b/src/tests/elementary/meson.build index 51120beca8..edea9537dc 100644 --- a/src/tests/elementary/meson.build +++ b/src/tests/elementary/meson.build @@ -167,3 +167,4 @@ test('efl-ui-suite', efl_ui_suite, install_data(files(['testdiff.diff', 'testfile-windows.txt', 'testfile-withblanks.txt', 'testfile.txt']), install_dir : join_paths(dir_data, 'elementary') ) +subdir('spec') diff --git a/src/tests/elementary/spec/efl_test_container.c b/src/tests/elementary/spec/efl_test_container.c new file mode 100644 index 0000000000..ecef9b1740 --- /dev/null +++ b/src/tests/elementary/spec/efl_test_container.c @@ -0,0 +1,56 @@ +#ifdef HAVE_CONFIG_H +# include "elementary_config.h" +#endif + +#include +#include "efl_ui_spec_suite.h" +#include "suite_helpers.h" + +void +efl_test_container_content_equal(Efl_Ui_Widget **wid, unsigned int len) +{ + Efl_Ui_Widget *c; + Eina_Iterator *iter; + unsigned int i; + Eina_List *tmp = NULL; + + ck_assert_int_eq(efl_content_count(widget), len); + iter = efl_content_iterate(widget); + EINA_ITERATOR_FOREACH(iter, c) + { + ck_assert_ptr_eq(eina_list_data_find(tmp, c), NULL); + tmp = eina_list_append(tmp, c); + } + eina_iterator_free(iter); + for (i = 0; i < len; ++i) + { + ck_assert_ptr_ne(eina_list_data_find(tmp, wid[i]), NULL); + tmp = eina_list_remove(tmp, wid[i]); + } + ck_assert_int_eq(eina_list_count(tmp), 0); +} + +typedef struct { + Eina_Bool *flag; + void *expected_event_data; +} Efl_Container_Event_Content; + +static void +_evt_called(void *data, const Efl_Event *ev) +{ + Efl_Container_Event_Content *content = data; + + *content->flag = EINA_TRUE; + ck_assert_ptr_eq(content->expected_event_data, ev->info); + efl_event_callback_del(ev->object, ev->desc, _evt_called, data); + free(data); +} + +void +efl_test_container_expect_evt_content_added(Efl_Ui_Widget *widget, const Efl_Event_Description *ev, Eina_Bool *flag, void *event_data) +{ + Efl_Container_Event_Content *c = calloc(1, sizeof(Efl_Container_Event_Content)); + c->flag = flag; + c->expected_event_data = event_data; + efl_event_callback_add(widget, ev, _evt_called, c); +} diff --git a/src/tests/elementary/spec/efl_test_pack.c b/src/tests/elementary/spec/efl_test_pack.c new file mode 100644 index 0000000000..626e3e9b5b --- /dev/null +++ b/src/tests/elementary/spec/efl_test_pack.c @@ -0,0 +1,348 @@ +#ifdef HAVE_CONFIG_H +# include "elementary_config.h" +#endif + +#include +#include "efl_ui_spec_suite.h" +#include "suite_helpers.h" + +/* + In general: + - If a subobject is deleted the box simply forgets about it. Never return this element again container. +*/ + +EFL_START_TEST(base2) +{ + ck_assert(win); + ck_assert(widget); +} +EFL_END_TEST + +static void +_setup_std_pack(Efl_Ui_Widget *wid[3]) +{ + unsigned int i; + + for (i = 0; i < 3; ++i) + { + wid[i] = efl_add(WIDGET_CLASS, widget); + ck_assert_int_eq(efl_pack(widget, wid[i]), EINA_TRUE); + efl_gfx_entity_visible_set(widget, EINA_TRUE); + } +} + +/* + pack_clear function: + - each element must be deleted after the call + - the container must have 0 contents after the call + - the call must return true even if the container is empty +*/ + +EFL_START_TEST(pack_clear1) +{ + Efl_Ui_Widget *wid[3]; + unsigned int i; + + _setup_std_pack(wid); + + for (i = 0; i < sizeof(wid)/sizeof(Efl_Ui_Widget*); ++i) + { + efl_wref_add(wid[i], &wid[i]); + } + + ck_assert_int_eq(efl_pack_clear(widget), EINA_TRUE); + + for (i = 0; i < sizeof(wid)/sizeof(Efl_Ui_Widget*); ++i) + { + ck_assert_ptr_eq(wid[i], NULL); + } + + efl_test_container_content_equal(NULL, 0); +} +EFL_END_TEST + +EFL_START_TEST(pack_clear2) +{ + Efl_Ui_Widget *wid[3]; + + _setup_std_pack(wid); + + ck_assert_int_eq(efl_pack_clear(widget), EINA_TRUE); + ck_assert_int_eq(efl_pack_clear(widget), EINA_TRUE); + ck_assert_int_eq(efl_pack_clear(widget), EINA_TRUE); + ck_assert_int_eq(efl_pack_clear(widget), EINA_TRUE); + ck_assert_int_eq(efl_pack_clear(widget), EINA_TRUE); +} +EFL_END_TEST + +/* + unpack_all function: + - each element must have exactly one reference after the call + - the container must have 0 contents after the call + - the call must return true even if the container is empty +*/ + +EFL_START_TEST(unpack_all1) +{ + Efl_Ui_Widget *wid[3]; + unsigned int i; + + _setup_std_pack(wid); + + ck_assert_int_eq(efl_pack_unpack_all(widget), EINA_TRUE); + + for (i = 0; i < sizeof(wid)/sizeof(Efl_Ui_Widget*); ++i) + { + ck_assert_int_eq(efl_ref_count(wid[i]), 1); + } + efl_test_container_content_equal(NULL, 0); +} +EFL_END_TEST + +EFL_START_TEST(unpack_all2) +{ + Efl_Ui_Widget *wid[3]; + unsigned int i; + + _setup_std_pack(wid); + + ck_assert_int_eq(efl_pack_unpack_all(widget), EINA_TRUE); + ck_assert_int_eq(efl_pack_clear(widget), EINA_TRUE); + + for (i = 0; i < sizeof(wid)/sizeof(Efl_Ui_Widget*); ++i) + { + ck_assert_int_eq(efl_ref_count(wid[i]), 1); + } + efl_test_container_content_equal(NULL, 0); +} +EFL_END_TEST + +/* + unpack function: + - the element must have exactly one reference after the call + - the container must have one content less after the call + - the widget parent must be different from the parent + - unpacking something invalid can return EINA_FALSE but must not print an error +*/ + +EFL_START_TEST(unpack1) +{ + Efl_Ui_Widget *wid[3]; + _setup_std_pack(wid); + + ck_assert_int_eq(efl_pack_unpack(widget, wid[2]), EINA_TRUE); + ck_assert_ptr_ne(efl_ui_widget_parent_get(wid[2]), widget); + ck_assert_int_eq(efl_ref_count(wid[2]), 1); + efl_test_container_content_equal(wid, 2); +} +EFL_END_TEST + +EFL_START_TEST(unpack2) +{ + Efl_Ui_Widget *wid[3]; + _setup_std_pack(wid); + + ck_assert_int_eq(efl_pack_unpack(widget, wid[0]), EINA_TRUE); + ck_assert_int_eq(efl_pack(widget, wid[0]), EINA_TRUE); + ck_assert_int_eq(efl_pack_unpack(widget, wid[0]), EINA_TRUE); + ck_assert_int_eq(efl_pack(widget, wid[0]), EINA_TRUE); + + efl_test_container_content_equal(wid, 3); +} +EFL_END_TEST + +EFL_START_TEST(unpack3) +{ + Efl_Ui_Widget *wid[3], *invalid; + _setup_std_pack(wid); + + invalid = efl_add(WIDGET_CLASS, win); + ck_assert_int_eq(efl_pack_unpack(widget, wid[2]), EINA_TRUE); + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack_unpack(widget, wid[2]), EINA_FALSE); + EXPECT_ERROR_END; + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack_unpack(widget, wid[2]), EINA_FALSE); + EXPECT_ERROR_END; + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack_unpack(widget, (Eo*)0x111), EINA_FALSE); + EXPECT_ERROR_END; + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack_unpack(widget, invalid), EINA_FALSE); + EXPECT_ERROR_END; + efl_test_container_content_equal(wid, 2); +} +EFL_END_TEST + +/* + pack function: + - element must be added to the content of the container + - elements widget_parent must be the container + - double adding a widdget must error + - adding something invalid must error +*/ + +EFL_START_TEST(pack1) +{ + Efl_Ui_Widget *wid[3]; + unsigned int i; + + _setup_std_pack(wid); + + for (i = 0; i < sizeof(wid)/sizeof(Efl_Ui_Widget*); ++i) + { + ck_assert_int_eq(efl_ref_count(wid[i]), 1); + ck_assert_ptr_eq(efl_ui_widget_parent_get(wid[i]), widget); + } + + efl_test_container_content_equal(wid, 3); +} +EFL_END_TEST + +EFL_START_TEST(pack2) +{ + Efl_Ui_Widget *wid[3]; + _setup_std_pack(wid); + + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack(widget, wid[0]), EINA_FALSE); + EXPECT_ERROR_END; + efl_test_container_content_equal(wid, 3); +} +EFL_END_TEST + +EFL_START_TEST(pack3) +{ + Efl_Ui_Widget *wid[3]; + _setup_std_pack(wid); + + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack(widget, (Eo*)0x111F), EINA_FALSE); + EXPECT_ERROR_END; + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack(widget, widget), EINA_FALSE); + EXPECT_ERROR_END; + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack(widget, NULL), EINA_FALSE); + EXPECT_ERROR_END; + efl_test_container_content_equal(wid, 3); +} +EFL_END_TEST + +EFL_START_TEST(pack_align) +{ +#define TUPLE_CHECK(H,V,rh,rv) \ + do { \ + double v, h; \ + efl_pack_align_set(widget, H, V); \ + efl_pack_align_get(widget, &h, &v); \ + ck_assert(v == rv); \ + ck_assert(h == rh); \ + } while(0); + + TUPLE_CHECK( 1.0, 1.0, 1.0, 1.0); + TUPLE_CHECK( 0.0, 0.0, 0.0, 0.0); + TUPLE_CHECK(- 1.0, - 1.0, -1.0, -1.0); + TUPLE_CHECK(-42.0, -42.0, -1.0, -1.0); + TUPLE_CHECK( 42.0, 42.0, 1.0, 1.0); + TUPLE_CHECK(-42.0, 42.0, -1.0, 1.0); + TUPLE_CHECK( 42.0, -42.0, 1.0, -1.0); +#undef TUPLE_CHECK +} +EFL_END_TEST + +EFL_START_TEST(pack_padding) +{ +#define TUPLE_CHECK(H, V, rh, rv, S, rs) \ + do { \ + double v, h; \ + Eina_Bool r; \ + efl_pack_padding_set(widget, H, V, S); \ + efl_pack_padding_get(widget, &h, &v, &r); \ + ck_assert(v == rv); \ + ck_assert(h == rh); \ + ck_assert_int_eq(r, S); \ + } while(0); + + TUPLE_CHECK( 0.0, 0.0, 0.0, 0.0, EINA_TRUE, EINA_TRUE); + TUPLE_CHECK( -1.0, -123.0, 0.0, 0.0, EINA_FALSE, EINA_FALSE); + TUPLE_CHECK( -1.0, 123.0, 0.0, 123.0, EINA_FALSE, EINA_FALSE); +#undef TUPLE_CHECK +} +EFL_END_TEST + +EFL_START_TEST(evt_content_added) +{ + Eina_Bool called = EINA_TRUE; + Efl_Ui_Widget *wid = efl_add(WIDGET_CLASS, win); + efl_test_container_expect_evt_content_added(widget, EFL_CONTAINER_EVENT_CONTENT_ADDED, &called, wid); + efl_pack(widget, wid); + ck_assert_int_eq(called, EINA_TRUE); +} +EFL_END_TEST + +EFL_START_TEST(evt_content_removed) +{ + Eina_Bool called = EINA_TRUE; + Efl_Ui_Widget *wid[3]; + + _setup_std_pack(wid); + + efl_test_container_expect_evt_content_added(widget, EFL_CONTAINER_EVENT_CONTENT_REMOVED, &called, wid[1]); + efl_pack_unpack(widget, wid[1]); + ck_assert_int_eq(called, EINA_TRUE); +} +EFL_END_TEST + +EFL_START_TEST(child_killed) +{ + Efl_Ui_Widget *wid[3]; + _setup_std_pack(wid); + + efl_wref_add(wid[0], &wid[0]); + efl_del(wid[0]); + efl_test_container_content_equal(&wid[1], 2); + ck_assert_ptr_eq(wid[0], NULL); +} +EFL_END_TEST + +EFL_START_TEST(container_killed) +{ + Efl_Ui_Widget *wid[3]; + unsigned int i = 0; + + _setup_std_pack(wid); + + for (i = 0; i < sizeof(wid)/sizeof(Efl_Ui_Widget*); ++i) + { + efl_wref_add(wid[i], &wid[i]); + } + efl_del(widget); + for (i = 0; i < sizeof(wid)/sizeof(Efl_Ui_Widget*); ++i) + { + ck_assert_ptr_eq(wid[i], NULL); + } +} +EFL_END_TEST + +void +efl_pack_behavior_test(TCase *tc) +{ + tcase_add_test(tc, base2); + tcase_add_test(tc, pack_clear1); + tcase_add_test(tc, pack_clear2); + tcase_add_test(tc, unpack_all1); + tcase_add_test(tc, unpack_all2); + tcase_add_test(tc, unpack1); + tcase_add_test(tc, unpack2); + tcase_add_test(tc, unpack3); + tcase_add_test(tc, pack1); + tcase_add_test(tc, pack2); + tcase_add_test(tc, pack3); + tcase_add_test(tc, pack_align); + tcase_add_test(tc, pack_padding); + tcase_add_test(tc, evt_content_added); + tcase_add_test(tc, evt_content_removed); + tcase_add_test(tc, child_killed); + tcase_add_test(tc, container_killed); +} diff --git a/src/tests/elementary/spec/efl_test_pack_linear.c b/src/tests/elementary/spec/efl_test_pack_linear.c new file mode 100644 index 0000000000..cf85f9192b --- /dev/null +++ b/src/tests/elementary/spec/efl_test_pack_linear.c @@ -0,0 +1,396 @@ +#ifdef HAVE_CONFIG_H +# include "elementary_config.h" +#endif + +#include +#include "efl_ui_spec_suite.h" +#include "suite_helpers.h" +#include + +static void +_fill_array(Efl_Ui_Widget *wid[3]) +{ + for (int i = 0; i < 3; ++i) + { + wid[i] = efl_add(WIDGET_CLASS, win); + } +} + +static void +_ordering_equals(Efl_Ui_Widget **wid, unsigned int len) +{ + for (unsigned int i = 0; i < len; ++i) + { + ck_assert_ptr_eq(efl_pack_content_get(widget, i), wid[i]); + } + efl_test_container_content_equal(wid, len); +} + +EFL_START_TEST(pack_begin1) +{ + Efl_Ui_Widget *wid[3]; + Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win); + + _fill_array(wid); + + for (int i = 2; i >= 0; i--) + { + efl_pack_begin(widget, wid[i]); + ck_assert_ptr_eq(efl_ui_widget_parent_get(wid[i]), widget); + } + _ordering_equals(wid, 3); + efl_pack_begin(widget, inv); + ck_assert_ptr_eq(efl_pack_content_get(widget, 0), inv); + Efl_Ui_Widget *wid2[] = {inv, wid[0], wid[1], wid[2]}; + _ordering_equals(wid2, 4); +} +EFL_END_TEST + +EFL_START_TEST(pack_begin2) +{ + Efl_Ui_Widget *wid[3]; + + _fill_array(wid); + + for (int i = 2; i >= 0; i--) + { + efl_pack_begin(widget, wid[i]); + ck_assert_ptr_eq(efl_ui_widget_parent_get(wid[i]), widget); + } + + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack_begin(widget, wid[0]), EINA_FALSE); + EXPECT_ERROR_END; + _ordering_equals(wid, 3); +} +EFL_END_TEST + +EFL_START_TEST(pack_end1) +{ + Efl_Ui_Widget *wid[3]; + Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win); + + _fill_array(wid); + + for (int i = 0; i < 3; i++) + { + efl_pack_end(widget, wid[i]); + ck_assert_ptr_eq(efl_ui_widget_parent_get(wid[i]), widget); + } + + _ordering_equals(wid, 3); + efl_pack_end(widget, inv); + ck_assert_ptr_eq(efl_pack_content_get(widget, 3), inv); + Efl_Ui_Widget *wid2[] = {wid[0], wid[1], wid[2], inv}; + _ordering_equals(wid2, 4); +} +EFL_END_TEST + +EFL_START_TEST(pack_end2) +{ + Efl_Ui_Widget *wid[3]; + + _fill_array(wid); + + for (int i = 0; i < 3; i++) + { + efl_pack_end(widget, wid[i]); + ck_assert_ptr_eq(efl_ui_widget_parent_get(wid[i]), widget); + } + + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack_end(widget, wid[0]), EINA_FALSE); + EXPECT_ERROR_END; + _ordering_equals(wid, 3); +} +EFL_END_TEST + +EFL_START_TEST(pack_before1) +{ + Efl_Ui_Widget *wid[3]; + Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win); + + _fill_array(wid); + + for (int i = 0; i < 3; i++) + efl_pack_end(widget, wid[i]); + + ck_assert_int_eq(efl_pack_before(widget, inv, wid[0]), EINA_TRUE); + ck_assert_ptr_eq(efl_ui_widget_parent_get(inv), widget); + Efl_Ui_Widget *wid2[] = {inv, wid[0], wid[1], wid[2]}; + _ordering_equals(wid2, 4); + efl_pack_unpack(widget, inv); + + ck_assert_int_eq(efl_pack_before(widget, inv, wid[2]), EINA_TRUE); + ck_assert_ptr_eq(efl_ui_widget_parent_get(inv), widget); + Efl_Ui_Widget *wid3[] = {wid[0], wid[1], inv, wid[2]}; + _ordering_equals(wid3, 4); +} +EFL_END_TEST + +EFL_START_TEST(pack_before2) +{ + Efl_Ui_Widget *wid[3]; + Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win); + + _fill_array(wid); + + for (int i = 0; i < 3; i++) + efl_pack_end(widget, wid[i]); + + ck_assert_int_eq(efl_pack_before(widget, inv, wid[0]), EINA_TRUE); + ck_assert_ptr_eq(efl_ui_widget_parent_get(inv), widget); + Efl_Ui_Widget *wid2[] = {inv, wid[0], wid[1], wid[2]}; + _ordering_equals(wid2, 4); + + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack_before(widget, inv, wid[2]), EINA_FALSE); + EXPECT_ERROR_END; +} +EFL_END_TEST + +EFL_START_TEST(pack_after1) +{ + Efl_Ui_Widget *wid[3]; + Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win); + + _fill_array(wid); + + for (int i = 0; i < 3; i++) + efl_pack_end(widget, wid[i]); + + ck_assert_int_eq(efl_pack_after(widget, inv, wid[0]), EINA_TRUE); + ck_assert_ptr_eq(efl_ui_widget_parent_get(inv), widget); + Efl_Ui_Widget *wid2[] = {wid[0], inv, wid[1], wid[2]}; + _ordering_equals(wid2, 4); + efl_pack_unpack(widget, inv); + + ck_assert_int_eq(efl_pack_after(widget, inv, wid[2]), EINA_TRUE); + ck_assert_ptr_eq(efl_ui_widget_parent_get(inv), widget); + Efl_Ui_Widget *wid3[] = {wid[0], wid[1], wid[2], inv}; + _ordering_equals(wid3, 4); +} +EFL_END_TEST + +EFL_START_TEST(pack_after2) +{ + Efl_Ui_Widget *wid[3]; + Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win); + + _fill_array(wid); + + for (int i = 0; i < 3; i++) + efl_pack_end(widget, wid[i]); + + ck_assert_int_eq(efl_pack_after(widget, inv, wid[0]), EINA_TRUE); + ck_assert_ptr_eq(efl_ui_widget_parent_get(inv), widget); + Efl_Ui_Widget *wid2[] = {wid[0], inv, wid[1], wid[2]}; + _ordering_equals(wid2, 4); + + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack_after(widget, inv, wid[2]), EINA_FALSE); + EXPECT_ERROR_END; +} +EFL_END_TEST + +EFL_START_TEST(pack_at1) +{ + for (int x = -3; x < 3; ++x) + { + Efl_Ui_Widget *wid[3]; + Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win); + unsigned int i; + + _fill_array(wid); + for (int i = 0; i < 3; i++) + efl_pack_end(widget, wid[i]); + + efl_pack_at(widget, inv, x); + ck_assert_ptr_eq(efl_ui_widget_parent_get(inv), widget); + + for (i = 0; i < 4; ++i) + { + Efl_Ui_Widget *w = efl_pack_content_get(widget, i); + unsigned int place_to_expect_inv = (3 + x) % 3; + if (i == place_to_expect_inv) + ck_assert_ptr_eq(w, inv); + else if (i < place_to_expect_inv) + ck_assert_ptr_eq(w, wid[i]); + else if (i > place_to_expect_inv) + ck_assert_ptr_eq(w, wid[i - 1]); + } + efl_pack_clear(widget); + } +} +EFL_END_TEST + +EFL_START_TEST(pack_at2) +{ + for (int x = -3; x < 3; ++x) + { + Efl_Ui_Widget *wid[3]; + Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win); + unsigned int i; + + _fill_array(wid); + for (int i = 0; i < 3; i++) + efl_pack_end(widget, wid[i]); + + ck_assert_int_eq(efl_pack_at(widget, inv, x), EINA_TRUE); + ck_assert_ptr_eq(efl_ui_widget_parent_get(inv), widget); + + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack_at(widget, inv, x - 1), EINA_FALSE); + EXPECT_ERROR_END; + + for (i = 0; i < 4; ++i) + { + Efl_Ui_Widget *w = efl_pack_content_get(widget, i); + unsigned int place_to_expect_inv = (3 + x) % 3; + if (i == place_to_expect_inv) + ck_assert_ptr_eq(w, inv); + else if (i < place_to_expect_inv) + ck_assert_ptr_eq(w, wid[i]); + else if (i > place_to_expect_inv) + ck_assert_ptr_eq(w, wid[i - 1]); + } + efl_pack_clear(widget); + } +} +EFL_END_TEST + + +EFL_START_TEST(pack_at3) +{ + Efl_Ui_Widget *wid[3]; + Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win); + Efl_Ui_Widget *inv2 = efl_add(WIDGET_CLASS, win); + + _fill_array(wid); + for (int i = 0; i < 3; i++) + efl_pack_end(widget, wid[i]); + + ck_assert_int_eq(efl_pack_at(widget, inv,-100000), EINA_TRUE); + ck_assert_ptr_eq(efl_ui_widget_parent_get(inv), widget); + ck_assert_int_eq(efl_pack_at(widget, inv2, 100000), EINA_TRUE); + ck_assert_ptr_eq(efl_ui_widget_parent_get(inv2), widget); + Efl_Ui_Widget *wid2[] = {inv, wid[0], wid[1], wid[2], inv2}; + _ordering_equals(wid2, 5); +} +EFL_END_TEST + +EFL_START_TEST(pack_content_get1) +{ + Efl_Ui_Widget *wid[3]; + + _fill_array(wid); + + for (int i = 0; i < 3; i++) + efl_pack_end(widget, wid[i]); + + for (int i = -100000; i <= 100000; i++) + { + if (i < -3) + ck_assert_ptr_eq(efl_pack_content_get(widget, i), efl_pack_content_get(widget, 0)); + else if (i >= -3 && i < 3) + ck_assert_ptr_eq(efl_pack_content_get(widget, i), wid[(i + 3) % 3]); + else + ck_assert_ptr_eq(efl_pack_content_get(widget, i), efl_pack_content_get(widget, 2)); + } +} +EFL_END_TEST + +EFL_START_TEST(pack_index_get1) +{ + Efl_Ui_Widget *wid[3]; + Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win); + + _fill_array(wid); + for (int i = 0; i < 3; i++) + efl_pack_end(widget, wid[i]); + for (int i = 0; i < 3; i++) + ck_assert_int_eq(efl_pack_index_get(widget, wid[i]), i); + + ck_assert_int_eq(efl_pack_index_get(widget, (void*)0xAFFE), -1); + ck_assert_int_eq(efl_pack_index_get(widget, inv), -1); +} +EFL_END_TEST + +EFL_START_TEST(pack_unpack_at1) +{ + Efl_Ui_Widget *wid[3]; + + _fill_array(wid); + for (int i = 0; i < 3; i++) + efl_pack_end(widget, wid[i]); + for (int i = 0; i < 3; i++) + ck_assert_int_eq(efl_pack_index_get(widget, wid[i]), i); + + ck_assert_ptr_eq(efl_pack_unpack_at(widget, 1), wid[1]); + Efl_Ui_Widget *wid1[] = {wid[0], wid[2]}; + _ordering_equals(wid1, 2); + ck_assert_ptr_eq(efl_pack_unpack_at(widget, 1), wid[2]); + Efl_Ui_Widget *wid2[] = {wid[0]}; + _ordering_equals(wid2, 1); + ck_assert_ptr_eq(efl_pack_unpack_at(widget, 0), wid[0]); + Efl_Ui_Widget *wid3[] = {}; + _ordering_equals(wid3, 0); +} +EFL_END_TEST + + +EFL_START_TEST(pack_unpack_at2) +{ + Efl_Ui_Widget *wid[3]; + + _fill_array(wid); + for (int i = 0; i < 3; i++) + efl_pack_end(widget, wid[i]); + for (int i = 0; i < 3; i++) + ck_assert_int_eq(efl_pack_index_get(widget, wid[i]), i); + + ck_assert_ptr_eq(efl_pack_unpack_at(widget, 1), wid[1]); + efl_del(widget); + ck_assert_int_eq(efl_ref_count(wid[1]), 1); + ck_assert_int_eq(efl_ref_count(widget), 0); +} +EFL_END_TEST + +EFL_START_TEST(pack_unpack_at3) +{ + for (int x = -3; x < 3; ++x) + { + Efl_Ui_Widget *wid[3]; + + _fill_array(wid); + for (int i = 0; i < 3; i++) + efl_pack_end(widget, wid[i]); + ck_assert_ptr_eq(efl_pack_unpack_at(widget, x), wid[(3+x)%3]); + ck_assert_int_eq(efl_content_count(widget), 2); + ck_assert_ptr_ne(efl_ui_widget_parent_get(wid[(3+x)%3]), widget); + efl_pack_unpack_all(widget); + } +} +EFL_END_TEST + +void +efl_pack_linear_behavior_test(TCase *tc) +{ + tcase_add_test(tc, pack_begin1); + tcase_add_test(tc, pack_begin2); + tcase_add_test(tc, pack_end1); + tcase_add_test(tc, pack_end2); + tcase_add_test(tc, pack_before1); + tcase_add_test(tc, pack_before2); + tcase_add_test(tc, pack_after1); + tcase_add_test(tc, pack_after2); + tcase_add_test(tc, pack_at1); + tcase_add_test(tc, pack_at2); + tcase_add_test(tc, pack_at3); + tcase_add_test(tc, pack_content_get1); + tcase_add_test(tc, pack_index_get1); + tcase_add_test(tc, pack_unpack_at1); + tcase_add_test(tc, pack_unpack_at2); + tcase_add_test(tc, pack_unpack_at3); + efl_pack_behavior_test(tc); +} diff --git a/src/tests/elementary/spec/efl_ui_spec_suite.c b/src/tests/elementary/spec/efl_ui_spec_suite.c new file mode 100644 index 0000000000..1b84cf540e --- /dev/null +++ b/src/tests/elementary/spec/efl_ui_spec_suite.c @@ -0,0 +1,66 @@ +#ifdef HAVE_CONFIG_H +# include "elementary_config.h" +#endif + +#include +#include "efl_ui_spec_suite.h" +#include "suite_helpers.h" +#include "eo_internal.h" + +Evas_Object *win = NULL; +Evas_Object *widget = NULL; + +EFL_CLASS_SIMPLE_CLASS(efl_ui_widget, "efl_ui_widget", EFL_UI_WIDGET_CLASS); + +static int tree_abort; +static int tree_abort_level; + +static void +_shutdown(void) +{ + eina_log_abort_on_critical_set(tree_abort); + eina_log_abort_on_critical_level_set(tree_abort_level); +} + +static void +_setup(void) +{ + tree_abort = eina_log_abort_on_critical_get(); + tree_abort_level = eina_log_abort_on_critical_level_get(); + eina_log_abort_on_critical_level_set(2); + eina_log_abort_on_critical_set(1); +} + +static void +_setup_window_and_widget(const Efl_Class *klass) +{ + ck_assert(!win); + ck_assert(!widget); + + win = win_add(); + widget = efl_add(klass, win); + efl_content_set(win, widget); + + ck_assert(win); + ck_assert(widget); +} + +#include "efl_ui_spec_suite_gen.x" +int +main(int argc, char **argv) +{ + int failed_count; + +#define LIST_DECL +#include "efl_ui_spec_suite_gen.x" + + if (!_efl_test_option_disp(argc, argv, etc)) + return 0; + + failed_count = suite_setup(EINA_FALSE); + + failed_count += _efl_suite_build_and_run(argc - 1, (const char **)argv + 1, + "Efl_Ui_Spec", etc, SUITE_INIT_FN(elm2), SUITE_SHUTDOWN_FN(elm)); + + return (failed_count == 0) ? 0 : 255; +} diff --git a/src/tests/elementary/spec/efl_ui_spec_suite.h b/src/tests/elementary/spec/efl_ui_spec_suite.h new file mode 100644 index 0000000000..c8e008fa60 --- /dev/null +++ b/src/tests/elementary/spec/efl_ui_spec_suite.h @@ -0,0 +1,26 @@ +#ifndef EFL_UI_SUITE_H +#define EFL_UI_SUITE_H + +#include + +#define EFL_NOLEGACY_API_SUPPORT +#include +#include "../efl_check.h" + +extern Evas_Object *win; +extern Evas_Object *widget; + +void efl_pack_behavior_test(TCase *tc); +void efl_pack_linear_behavior_test(TCase *tc); + + +void efl_test_container_content_equal(Efl_Ui_Widget **wid, unsigned int len); +void efl_test_container_expect_evt_content_added(Efl_Ui_Widget *widget, const Efl_Event_Description *ev, Eina_Bool *flag, void *event_data); + +Evas_Object * win_add(); + +const Efl_Class* efl_ui_widget_realized_class_get(void); + +#define WIDGET_CLASS efl_ui_widget_realized_class_get() + +#endif diff --git a/src/tests/elementary/spec/generator.py b/src/tests/elementary/spec/generator.py new file mode 100755 index 0000000000..47749fac07 --- /dev/null +++ b/src/tests/elementary/spec/generator.py @@ -0,0 +1,67 @@ +#!/usr/bin/python + +tests = [ + ["Efl.Pack_Linear" , "Efl.Ui.Box"], + ["Efl.Pack" , "Efl.Ui.Table"], +] + +fixture_gen_template = """ +static void +_{}_fixture(void) +{{ + _setup_window_and_widget({}); +}} +""" + +tcase_gen_template = """ +static void +{}(TCase *tc) +{{ + tcase_add_checked_fixture(tc, _{}_fixture, NULL); + tcase_add_checked_fixture(tc, _setup, _shutdown); + {}(tc); +}} + +""" + +file_gen_template = """ +#ifdef LIST_DECL + {} +#else + {} +#endif +""" + +import sys + +list_of_tcases = "static const Efl_Test_Case etc[] = {\n" +list_entry = " {{ \"{}-{}\", {}}},\n" +generated_api = "" + +def interface_to_api(interface_name): + return interface_name+"_behavior_test" + +def to_func_name(class_name): + return class_name.replace('.','_').lower() + +def to_class_getter(class_name): + return class_name.replace('.','_').upper()+'_CLASS' + +widgets = [] + +for test in tests: + interface_test = to_func_name(test[0]) + for widget_class in test[1:]: + combo_name = "_{}_{}".format(to_func_name(interface_test), to_func_name(widget_class)); + list_of_tcases += list_entry.format(interface_test, to_func_name(widget_class), combo_name) + generated_api += tcase_gen_template.format(combo_name, to_func_name(widget_class), interface_to_api(interface_test)) + if widget_class not in widgets: + widgets += [widget_class] + +for widget in widgets: + generated_api = fixture_gen_template.format(to_func_name(widget), to_class_getter(widget)) + generated_api + +list_of_tcases += " { NULL, NULL }\n};" + +output = open(sys.argv[1], "w") +output.write(file_gen_template.format(list_of_tcases, generated_api)) diff --git a/src/tests/elementary/spec/meson.build b/src/tests/elementary/spec/meson.build new file mode 100644 index 0000000000..495d864bda --- /dev/null +++ b/src/tests/elementary/spec/meson.build @@ -0,0 +1,32 @@ +efl_ui_suite_behavior_src = [ + join_paths('..','suite_helpers.c'), + join_paths('..','suite_helpers.h'), + join_paths('..','elm_test_init.c'), + 'efl_ui_spec_suite.c', + 'efl_test_pack.c', + 'efl_test_pack_linear.c', + 'efl_test_container.c', +] + +test_generator = find_program('generator.py') + +generated_test_parts = custom_target('generate_test_suite', + output: 'efl_ui_spec_suite_gen.x', + command: [test_generator, '@OUTPUT@'], +) + +efl_ui_behavior_suite = executable('efl_ui_spec_suite', + efl_ui_suite_behavior_src + [generated_test_parts], + dependencies: [check, eina, elementary, elementary_deps], + include_directories : [config_dir] + [elementary_config_dir] + [include_directories('../')], + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"', + '-DELM_IMAGE_DATA_DIR="'+join_paths(meson.source_root(), 'data', 'elementary')+'"', + '-DELM_TEST_DATA_DIR="'+join_paths(meson.build_root(), 'data', 'elementary')+'"', + ] +) + +test('efl_ui_spec-suite', efl_ui_behavior_suite, + env : test_env +) diff --git a/src/tests/eolian/eolian_generation.c b/src/tests/eolian/eolian_generation.c index 2fe0be6267..589efa7a02 100644 --- a/src/tests/eolian/eolian_generation.c +++ b/src/tests/eolian/eolian_generation.c @@ -163,7 +163,6 @@ EFL_START_TEST(eolian_functions_descriptions) _remove_ref(output_filepath, "eo.h"); fail_if(0 != _eolian_gen_execute(TESTS_SRC_DIR"/data/class_simple.eo", "-gh", output_filepath)); fail_if(!_files_compare(TESTS_SRC_DIR"/data/class_simple_ref_eo.h", output_filepath, "eo.h")); - fail_if(0 != _eolian_gen_execute(TESTS_SRC_DIR"/data/class_simple.eo", "-gl", output_filepath)); } EFL_END_TEST @@ -186,7 +185,6 @@ EFL_START_TEST(eolian_docs) _remove_ref(output_filepath, "eo.h"); fail_if(0 != _eolian_gen_execute(TESTS_SRC_DIR"/data/docs.eo", "-gh", output_filepath)); fail_if(!_files_compare(TESTS_SRC_DIR"/data/docs_ref.h", output_filepath, "eo.h")); - fail_if(0 != _eolian_gen_execute(TESTS_SRC_DIR"/data/docs.eo", "-gl", output_filepath)); } EFL_END_TEST diff --git a/src/tests/evas/evas_test_image.c b/src/tests/evas/evas_test_image.c index da6ad42365..259cff77d3 100644 --- a/src/tests/evas/evas_test_image.c +++ b/src/tests/evas/evas_test_image.c @@ -729,6 +729,40 @@ EFL_START_TEST(evas_object_image_cached_data_comparision) } EFL_END_TEST +EFL_START_TEST(evas_object_image_api) +{ + Evas *e = _setup_evas(); + Evas_Object *o; + void *pix; + int w, h; + + o = evas_object_image_filled_add(e); + /* test file load */ + evas_object_image_file_set(o, TESTS_IMG_DIR"/Light.jpg", NULL); + ck_assert(!!efl_file_get(o)); + pix = evas_object_image_data_get(o, EINA_FALSE); + ck_assert(!!pix); + evas_object_image_size_get(o, &w, &h); + ck_assert(w && h); + /* test file unload */ + evas_object_image_file_set(o, NULL, NULL); + ck_assert(!efl_file_get(o)); + pix = evas_object_image_data_get(o, EINA_FALSE); + ck_assert(!pix); + evas_object_image_size_get(o, &w, &h); + ck_assert(!w && !h); + /* test file load after unload */ + evas_object_image_file_set(o, TESTS_IMG_DIR"/Light.jpg", NULL); + ck_assert(!!efl_file_get(o)); + pix = evas_object_image_data_get(o, EINA_FALSE); + ck_assert(!!pix); + evas_object_image_size_get(o, &w, &h); + ck_assert(w && h); + + evas_free(e); +} +EFL_END_TEST + EFL_START_TEST(evas_object_image_defaults) { Evas *e = _setup_evas(); @@ -972,6 +1006,7 @@ EFL_END_TEST void evas_test_image_object(TCase *tc) { + tcase_add_test(tc, evas_object_image_api); tcase_add_test(tc, evas_object_image_defaults); tcase_add_test(tc, evas_object_image_loader); tcase_add_test(tc, evas_object_image_loader_orientation); diff --git a/src/tests/evil/evil_suite.c b/src/tests/evil/evil_suite.c index 3331d287b2..b29dbc702b 100644 --- a/src/tests/evil/evil_suite.c +++ b/src/tests/evil/evil_suite.c @@ -30,9 +30,7 @@ static const Efl_Test_Case etc[] = { { "Dlfcn", evil_test_dlfcn }, /* { "Fcntl", evil_test_fcntl }, */ - /* { "Fnmatch", evil_test_fnmatch }, */ /* { "Langinfo", evil_test_langinfo }, */ - { "Libgen", evil_test_libgen }, { "Main", evil_test_main }, /* { "Mman", evil_test_mman }, */ /* { "Pwd", evil_test_pwd }, */ diff --git a/src/tests/evil/evil_suite.h b/src/tests/evil/evil_suite.h index e7efc926ab..a9599b6ee8 100644 --- a/src/tests/evil/evil_suite.h +++ b/src/tests/evil/evil_suite.h @@ -23,9 +23,7 @@ #include "../efl_check.h" void evil_test_dlfcn(TCase *tc); /* void evil_test_fcntl(TCase *tc); */ -/* void evil_test_fnmatch(TCase *tc); */ /* void evil_test_langinfo(TCase *tc); */ -void evil_test_libgen(TCase *tc); void evil_test_main(TCase *tc); /* void evil_test_mman(TCase *tc); */ /* void evil_test_pwd(TCase *tc); */ diff --git a/src/tests/evil/evil_test_libgen.c b/src/tests/evil/evil_test_libgen.c deleted file mode 100644 index 263e6de836..0000000000 --- a/src/tests/evil/evil_test_libgen.c +++ /dev/null @@ -1,308 +0,0 @@ -/* EVIL - EFL library for Windows port - * Copyright (C) 2017 Vincent Torri - * - * 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, or (at your option) any later version. - * - * 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 FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; - * if not, see . - */ - -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -#include -#include -#include - -#include "evil_suite.h" - -EFL_START_TEST(evil_libgen_null) -{ - char *dname; - char *bname; - - dname = dirname(NULL); - fail_if(strcmp(dname, ".") != 0); - bname = basename(NULL); - fail_if(strcmp(bname, ".") != 0); -} -EFL_END_TEST - -EFL_START_TEST(evil_libgen_empty) -{ - const char *path = ""; - char *dirc; - char *basec; - char *dname; - char *bname; - - dirc = strdup(path); - fail_if(dirc == NULL); - basec = strdup(path); - fail_if(basec == NULL); - - dname = dirname(dirc); - fail_if(strcmp(dname, ".") != 0); - bname = basename(basec); - fail_if(strcmp(bname, ".") != 0); - - free(dirc); - free(basec); -} -EFL_END_TEST - -EFL_START_TEST(evil_libgen_path) -{ - const char *path = "/usr/lib"; - char *dirc; - char *basec; - char *dname; - char *bname; - - dirc = strdup(path); - fail_if(dirc == NULL); - basec = strdup(path); - fail_if(basec == NULL); - - dname = dirname(dirc); - fail_if(strcmp(dname, "/usr") != 0); - bname = basename(basec); - fail_if(strcmp(bname, "lib") != 0); - - free(dirc); - free(basec); -} -EFL_END_TEST - -EFL_START_TEST(evil_libgen_path_with_slash) -{ - const char *path = "/usr/"; - char *dirc; - char *basec; - char *dname; - char *bname; - - dirc = strdup(path); - fail_if(dirc == NULL); - basec = strdup(path); - fail_if(basec == NULL); - - dname = dirname(dirc); - fail_if(strcmp(dname, "/") != 0); - bname = basename(basec); - fail_if(strcmp(bname, "usr") != 0); - - free(dirc); - free(basec); -} -EFL_END_TEST - -EFL_START_TEST(evil_libgen_folder) -{ - const char *path = "usr"; - char *dirc; - char *basec; - char *dname; - char *bname; - - dirc = strdup(path); - fail_if(dirc == NULL); - basec = strdup(path); - fail_if(basec == NULL); - - dname = dirname(dirc); - fail_if(strcmp(dname, ".") != 0); - bname = basename(basec); - fail_if(strcmp(bname, "usr") != 0); - - free(dirc); - free(basec); -} -EFL_END_TEST - -EFL_START_TEST(evil_libgen_slash) -{ - const char *path = "/"; - char *dirc; - char *basec; - char *dname; - char *bname; - - dirc = strdup(path); - fail_if(dirc == NULL); - basec = strdup(path); - fail_if(basec == NULL); - - dname = dirname(dirc); - fail_if(strcmp(dname, "/") != 0); - bname = basename(basec); - fail_if(strcmp(bname, "/") != 0); - - free(dirc); - free(basec); -} -EFL_END_TEST - -EFL_START_TEST(evil_libgen_dot) -{ - const char *path = "."; - char *dirc; - char *basec; - char *dname; - char *bname; - - dirc = strdup(path); - fail_if(dirc == NULL); - basec = strdup(path); - fail_if(basec == NULL); - - dname = dirname(dirc); - fail_if(strcmp(dname, ".") != 0); - bname = basename(basec); - fail_if(strcmp(bname, ".") != 0); - - free(dirc); - free(basec); -} -EFL_END_TEST - -EFL_START_TEST(evil_libgen_dot_dot) -{ - const char *path = ".."; - char *dirc; - char *basec; - char *dname; - char *bname; - - dirc = strdup(path); - fail_if(dirc == NULL); - basec = strdup(path); - fail_if(basec == NULL); - - dname = dirname(dirc); - fail_if(strcmp(dname, ".") != 0); - bname = basename(basec); - fail_if(strcmp(bname, "..") != 0); - - free(dirc); - free(basec); -} -EFL_END_TEST - -EFL_START_TEST(evil_libgen_win_dir_1) -{ - const char *path = "c:/foo/bar"; - char *dirc; - char *basec; - char *dname; - char *bname; - - dirc = strdup(path); - fail_if(dirc == NULL); - basec = strdup(path); - fail_if(basec == NULL); - - dname = dirname(dirc); - fail_if(strcmp(dname, "c:/foo") != 0); - bname = basename(basec); -fail_if(strcmp(bname, "bar") != 0); - - free(dirc); - free(basec); -} -EFL_END_TEST - -EFL_START_TEST(evil_libgen_win_dir_2) -{ - const char *path = "c:/foo\\bar"; - char *dirc; - char *basec; - char *dname; - char *bname; - - dirc = strdup(path); - fail_if(dirc == NULL); - basec = strdup(path); - fail_if(basec == NULL); - - dname = dirname(dirc); - fail_if(strcmp(dname, "c:/foo") != 0); - bname = basename(basec); - fail_if(strcmp(bname, "bar") != 0); - - free(dirc); - free(basec); -} -EFL_END_TEST - -EFL_START_TEST(evil_libgen_win_dir_3) -{ - const char *path = "c:\\foo/bar"; - char *dirc; - char *basec; - char *dname; - char *bname; - - dirc = strdup(path); - fail_if(dirc == NULL); - basec = strdup(path); - fail_if(basec == NULL); - - dname = dirname(dirc); - fail_if(strcmp(dname, "c:\\foo") != 0); - bname = basename(basec); - fail_if(strcmp(bname, "bar") != 0); - - free(dirc); - free(basec); -} -EFL_END_TEST - -EFL_START_TEST(evil_libgen_win_dir_4) -{ - const char *path = "c:\\foo\\bar"; - char *dirc; - char *basec; - char *dname; - char *bname; - - dirc = strdup(path); - fail_if(dirc == NULL); - basec = strdup(path); - fail_if(basec == NULL); - - dname = dirname(dirc); - fail_if(strcmp(dname, "c:\\foo") != 0); - bname = basename(basec); - fail_if(strcmp(bname, "bar") != 0); - - free(dirc); - free(basec); -} -EFL_END_TEST - -void evil_test_libgen(TCase *tc) -{ - tcase_add_test(tc, evil_libgen_null); - tcase_add_test(tc, evil_libgen_empty); - tcase_add_test(tc, evil_libgen_path); - tcase_add_test(tc, evil_libgen_path_with_slash); - tcase_add_test(tc, evil_libgen_folder); - tcase_add_test(tc, evil_libgen_slash); - tcase_add_test(tc, evil_libgen_dot); - tcase_add_test(tc, evil_libgen_dot_dot); - tcase_add_test(tc, evil_libgen_win_dir_1); - tcase_add_test(tc, evil_libgen_win_dir_2); - tcase_add_test(tc, evil_libgen_win_dir_3); - tcase_add_test(tc, evil_libgen_win_dir_4); -}