diff options
Diffstat (limited to 'recipes/efl1')
41 files changed, 1422 insertions, 0 deletions
diff --git a/recipes/efl1/ecore-native_svn.bb b/recipes/efl1/ecore-native_svn.bb new file mode 100644 index 0000000000..22208b926e --- /dev/null +++ b/recipes/efl1/ecore-native_svn.bb @@ -0,0 +1,32 @@ +require ecore.inc +inherit native +DEPENDS = "eet-native evas-native" +PR = "r3" + +EXTRA_OECONF = "\ + --enable-ecore-txt \ + --enable-ecore-config \ + --disable-ecore-x-xcb \ + --disable-ecore-x \ + --enable-ecore-job \ + --disable-ecore-directfb \ + --disable-ecore-sdl \ + --enable-ecore-fb \ + --enable-ecore-evas \ + --enable-ecore-evas-fb \ + --disable-ecore-evas-x11-gl \ + --disable-ecore-evas-xrender \ + --disable-ecore-evas-dfb \ + --disable-ecore-evas-sdl \ + --disable-openssl \ + --enable-abstract-sockets \ + --enable-ecore-con \ + --enable-ecore-ipc \ + --enable-ecore-file \ + --enable-inotify \ + --disable-poll \ + --disable-curl \ + --disable-ecore-desktop \ + --disable-ecore-imf \ + --disable-ecore-imf_evas \ +" diff --git a/recipes/efl1/ecore.inc b/recipes/efl1/ecore.inc new file mode 100644 index 0000000000..a25cacc3e9 --- /dev/null +++ b/recipes/efl1/ecore.inc @@ -0,0 +1,43 @@ +DESCRIPTION = "Ecore is the Enlightenment application framework library" +LICENSE = "MIT BSD" +DEPENDS = "curl eet evas tslib libxtst libxcomposite libxinerama libxscrnsaver libxdamage libxrandr libxcursor libxprintutil" +# optional +# DEPENDS += "directfb libsdl-x11 openssl virtual/libiconv" +PV = "0.9.9.050+svnr${SRCREV}" +PR = "r1" + +inherit efl + +FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/ecore" + +PACKAGES += "\ + ${PN}-con \ + ${PN}-config \ + ${PN}-desktop \ + ${PN}-directfb \ + ${PN}-sdl \ + ${PN}-evas \ + ${PN}-fb \ + ${PN}-file \ + ${PN}-imf \ + ${PN}-imf-evas \ + ${PN}-ipc \ + ${PN}-job \ + ${PN}-txt \ + ${PN}-x \ + " +FILES_${PN} = "${libdir}/libecore.so.*" +FILES_${PN}-con = "${libdir}/libecore_con.so.*" +FILES_${PN}-config = "${libdir}/libecore_config.so.*" +FILES_${PN}-desktop = "${libdir}/libecore_desktop.so.*" +FILES_${PN}-directfb = "${libdir}/libecore_directfb.so.*" +FILES_${PN}-sdl = "${libdir}/libecore_sdl.so.*" +FILES_${PN}-evas = "${libdir}/libecore_evas.so.*" +FILES_${PN}-fb = "${libdir}/libecore_fb.so.*" +FILES_${PN}-file = "${libdir}/libecore_file.so.*" +FILES_${PN}-imf = "${libdir}/libecore_imf.so.*" +FILES_${PN}-imf-evas = "${libdir}/libecore_imf_evas.so.*" +FILES_${PN}-ipc = "${libdir}/libecore_ipc.so.*" +FILES_${PN}-job = "${libdir}/libecore_job.so.*" +FILES_${PN}-txt = "${libdir}/libecore_txt.so.*" +FILES_${PN}-x = "${libdir}/libecore_x.so.*" diff --git a/recipes/efl1/ecore/add-tslib-support.patch b/recipes/efl1/ecore/add-tslib-support.patch new file mode 100644 index 0000000000..c125122a91 --- /dev/null +++ b/recipes/efl1/ecore/add-tslib-support.patch @@ -0,0 +1,104 @@ + +# +# tslib support for ecore, (C) Michael 'Mickey' Lauer <mickey@Vanille.de> +# + +--- ecore/src/lib/ecore_fb/ecore_fb.c~add-tslib-support.patch ++++ ecore/src/lib/ecore_fb/ecore_fb.c +@@ -4,6 +4,13 @@ + #include "Ecore_Fb.h" + #include "ecore_private.h" + ++ ++#ifdef HAVE_TSLIB ++#include <tslib.h> ++#include <errno.h> ++#endif ++ ++ + #include <fcntl.h> + #include <unistd.h> + #include <stdio.h> +@@ -77,6 +84,11 @@ + unsigned char z; + }; + ++#ifdef HAVE_TSLIB ++struct tsdev *_ecore_fb_tslib_tsdev = NULL; ++struct ts_sample _ecore_fb_tslib_event; ++#endif ++ + static void _ecore_fb_size_get(int *w, int *h); + static int _ecore_fb_ts_fd_handler(void *data, Ecore_Fd_Handler *fd_handler); + static int _ecore_fb_kbd_fd_handler(void *data, Ecore_Fd_Handler *fd_handler); +@@ -269,10 +281,39 @@ + ecore_fb_init(const char *name __UNUSED__) + { + int prev_flags; ++#ifdef HAVE_TSLIB ++ char *tslib_tsdevice = NULL; ++#endif + + _ecore_fb_init_count++; + if (_ecore_fb_init_count > 1) return _ecore_fb_init_count; ++#ifdef HAVE_TSLIB ++ if ( ( tslib_tsdevice = getenv("TSLIB_TSDEVICE") ) != NULL ) ++ { ++ printf( "ECORE_FB: TSLIB_TSDEVICE = '%s'\n", tslib_tsdevice ); ++ _ecore_fb_tslib_tsdev = ts_open( tslib_tsdevice, 1 ); /* 1 = nonblocking, 0 = blocking */ ++ ++ if ( !_ecore_fb_tslib_tsdev ) ++ { ++ printf( "ECORE_FB: Can't ts_open (%s)\n", strerror( errno ) ); ++ return 0; ++ } ++ ++ if ( ts_config( _ecore_fb_tslib_tsdev ) ) ++ { ++ printf( "ECORE_FB: Can't ts_config (%s)\n", strerror( errno ) ); ++ return 0; ++ } ++ _ecore_fb_ts_fd = ts_fd( _ecore_fb_tslib_tsdev ); ++ if ( _ecore_fb_ts_fd < 0 ) ++ { ++ printf( "ECORE_FB: Can't open touchscreen (%s)\n", strerror( errno ) ); ++ return 0; ++ } ++ } ++#else + _ecore_fb_ts_fd = open("/dev/touchscreen/0", O_RDONLY); ++#endif + if (_ecore_fb_ts_fd >= 0) + { + prev_flags = fcntl(_ecore_fb_ts_fd, F_GETFL); +@@ -790,7 +831,21 @@ + char *ptr; + double t; + int did_triple = 0; +- ++ ++#ifdef HAVE_TSLIB ++ if ( _ecore_fb_ts_apply_cal ) ++ num = ts_read_raw( _ecore_fb_tslib_tsdev, &_ecore_fb_tslib_event, 1 ); ++ else ++ num = ts_read( _ecore_fb_tslib_tsdev, &_ecore_fb_tslib_event, 1 ); ++ if ( num != 1 ) ++ { ++ return 1; /* no more samples at this time */ ++ } ++ x = _ecore_fb_tslib_event.x; ++ y = _ecore_fb_tslib_event.y; ++ pressure = _ecore_fb_tslib_event.pressure; ++ v = 1; /* loop, there might be more samples */ ++#else + ptr = (char *)&(_ecore_fb_ts_event); + ptr += _ecore_fb_ts_event_byte_count; + num = sizeof(Ecore_Fb_Ts_Event) - _ecore_fb_ts_event_byte_count; +@@ -811,6 +866,7 @@ + y = _ecore_fb_ts_event.y; + } + pressure = _ecore_fb_ts_event.pressure; ++#endif + /* add event to queue */ + /* always add a move event */ + if ((pressure) || (prev_pressure)) diff --git a/recipes/efl1/ecore/fix-directfb-include.patch b/recipes/efl1/ecore/fix-directfb-include.patch new file mode 100644 index 0000000000..b1c06f7f43 --- /dev/null +++ b/recipes/efl1/ecore/fix-directfb-include.patch @@ -0,0 +1,13 @@ +Index: ecore-0.9.9.038/src/lib/ecore_directfb/Ecore_DirectFB.h +=================================================================== +--- ecore-0.9.9.038.orig/src/lib/ecore_directfb/Ecore_DirectFB.h ++++ ecore-0.9.9.038/src/lib/ecore_directfb/Ecore_DirectFB.h +@@ -23,7 +23,7 @@ + #endif + + #include <Ecore_Data.h> +-#include <directfb.h> ++#include <directfb/directfb.h> + + + #ifdef __cplusplus diff --git a/recipes/efl1/ecore_svn.bb b/recipes/efl1/ecore_svn.bb new file mode 100644 index 0000000000..a35111d308 --- /dev/null +++ b/recipes/efl1/ecore_svn.bb @@ -0,0 +1,32 @@ +require ecore.inc +PR = "r1" + +EXTRA_OECONF = "\ + --x-includes=${STAGING_INCDIR}/X11 \ + --x-libraries=${STAGING_LIBDIR} \ + --enable-simple-x11 \ +\ + --enable-ecore-txt \ + --enable-ecore-config \ + --disable-ecore-x-xcb \ + --enable-ecore-x \ + --enable-ecore-job \ + --disable-ecore-directfb \ + --disable-ecore-sdl \ + --enable-ecore-fb \ + --enable-ecore-evas \ + --enable-ecore-evas-software-16-x11 \ + --disable-ecore-evas-x11-gl \ + --enable-ecore-evas-xrender \ + --disable-ecore-evas-dfb \ + --disable-ecore-evas-sdl \ + --disable-openssl \ + --enable-abstract-sockets \ + --enable-ecore-con \ + --enable-ecore-ipc \ + --enable-ecore-file \ + --enable-inotify \ + --disable-poll \ + --enable-curl \ + --disable-ecore-desktop \ +" diff --git a/recipes/efl1/edb_svn.bb b/recipes/efl1/edb_svn.bb new file mode 100644 index 0000000000..a3d2d3d99c --- /dev/null +++ b/recipes/efl1/edb_svn.bb @@ -0,0 +1,9 @@ +DESCRIPTION = "Edb is the Enlightenment database library" +LICENSE = "MIT BSD" +DEPENDS = "zlib" +PV = "1.0.5.050+svnr${SRCREV}" +PR = "r1" + +inherit efl + +SRC_URI = "svn://svn.enlightenment.org/svn/e/trunk/OLD;module=edb;proto=http" diff --git a/recipes/efl1/edbus_svn.bb b/recipes/efl1/edbus_svn.bb new file mode 100644 index 0000000000..b9fc1a67b8 --- /dev/null +++ b/recipes/efl1/edbus_svn.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "DBus and HAL convenience wrappers for EFL" +DEPENDS = "dbus ecore" +LICENSE = "MIT BSD" +PV = "0.5.0.050+svnr${SRCREV}" +PR = "r1" + +inherit efl + +SRC_URI = "svn://svn.enlightenment.org/svn/e/trunk;module=e_dbus;proto=http" +S = "${WORKDIR}/e_dbus" + +EXTRA_OECONF = "--enable-build-test-gui" + +PACKAGES =+ "${PN}-enotify ${PN}-edbus ${PN}-enm ${PN}-ehal ${PN}-test-gui" +FILES_${PN}-enotify = "${libdir}/libenotify.so.*" +FILES_${PN}-edbus = "${libdir}/libedbus.so.*" +FILES_${PN}-enm = "${libdir}/libenm.so.*" +FILES_${PN}-ehal = "${libdir}/libehal.so.*" +FILES_${PN}-test-gui = "${bindir}/e_dbus_hal" diff --git a/recipes/efl1/edje-native_svn.bb b/recipes/efl1/edje-native_svn.bb new file mode 100644 index 0000000000..238bfd00dc --- /dev/null +++ b/recipes/efl1/edje-native_svn.bb @@ -0,0 +1,11 @@ +require edje_${PV}.bb +inherit native +PR = "r1" + +DEPENDS = "evas-native ecore-native eet-native embryo-native" + +do_configure_prepend() { + sed -i 's:EMBRYO_PREFIX"/bin:"${STAGING_BINDIR}:' ${S}/src/bin/edje_cc_out.c + sed -i 's:cpp -I:/usr/bin/cpp -I:' ${S}/src/bin/edje_cc_parse.c + sed -i 's:gcc -I:/usr/bin/gcc -I:' ${S}/src/bin/edje_cc_parse.c +} diff --git a/recipes/efl1/edje-sdk_svn.bb b/recipes/efl1/edje-sdk_svn.bb new file mode 100644 index 0000000000..2bd75a0672 --- /dev/null +++ b/recipes/efl1/edje-sdk_svn.bb @@ -0,0 +1,9 @@ +require edje_svn.bb + +inherit sdk +PR = "r1" + +SRCNAME = "${@bb.data.getVar('PN', d, 1).replace('-sdk', '')}" +DEPENDS = "evas-native ecore-native eet-native embryo-native" +S = "${WORKDIR}/edje" + diff --git a/recipes/efl1/edje_svn.bb b/recipes/efl1/edje_svn.bb new file mode 100644 index 0000000000..7cf257f62a --- /dev/null +++ b/recipes/efl1/edje_svn.bb @@ -0,0 +1,27 @@ +DESCRIPTION = "Edje is the Enlightenment graphical design & layout library" +DEPENDS = "eet evas ecore embryo edje-native" +LICENSE = "MIT BSD" +PV = "0.5.0.050+svnr${SRCREV}" +PR = "r1" + +inherit efl + +# gain some extra performance at the expense of RAM - generally i'd say bad +# and a possible source of bugs +#EXTRA_OECONF = "--enable-edje-program-cache" + +PACKAGES =+ "${PN}-utils" +RDEPENDS_${PN}-utils = "cpp cpp-symlinks embryo-tests" + +RRECOMMENDS_${PN}-utils = "\ + libevas-saver-png \ + libevas-saver-jpeg \ + libevas-saver-eet \ + libevas-saver-tiff \ +" + +DEBIAN_NOAUTONAME_${PN}-utils = "1" +FILES_${PN}-utils = "\ + ${bindir}/edje_* \ + ${datadir}/edje/include/edje.inc \ +" diff --git a/recipes/efl1/eet-native_svn.bb b/recipes/efl1/eet-native_svn.bb new file mode 100644 index 0000000000..454bc53a7b --- /dev/null +++ b/recipes/efl1/eet-native_svn.bb @@ -0,0 +1,6 @@ +require eet_svn.bb +inherit native +DEPENDS = "zlib-native jpeg-native eina-native" +# we no longer inherit pkgconfig, so we need to state this explicitly +# (see explanation in efl.bbclass and autotools.bbclass) +DEPENDS += "pkgconfig-native" diff --git a/recipes/efl1/eet_svn.bb b/recipes/efl1/eet_svn.bb new file mode 100644 index 0000000000..4af40da984 --- /dev/null +++ b/recipes/efl1/eet_svn.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "EET is the Enlightenment data storage library" +DEPENDS = "zlib jpeg openssl eina" +LICENSE = "MIT BSD" +PV = "1.1.0+svnr${SRCREV}" +PR = "r1" + +inherit efl + +EXTRA_OECONF = "\ + --enable-openssl \ + --enable-cypher \ + --enable-signature \ + --disable-coverage \ + --enable-old-eet-file-format \ + --disable-assert \ +" diff --git a/recipes/efl1/eflpp_svn.bb b/recipes/efl1/eflpp_svn.bb new file mode 100644 index 0000000000..4942f5c548 --- /dev/null +++ b/recipes/efl1/eflpp_svn.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "EFLpp are C++ bindings to the EFL" +AUTHOR = "Michael 'Mickey' Lauer <mlauer@vanille-media.de>" +HOMEPAGE = "http://www.vanille-media.de/site/index.php/projects/efl/" +LICENSE = "LGPL" +DEPENDS = "evas ecore edje emotion esmart etk ewl libsigc++-2.0" +PV = "0.1.0+svnr${SRCREV}" +PR = "r1" + +inherit efl + +EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc" + +SRC_URI = "svn://svn.enlightenment.org/svn/e/trunk/BINDINGS;module=cxx;proto=http" +S = "${WORKDIR}/cxx" diff --git a/recipes/efl1/efreet_svn.bb b/recipes/efl1/efreet_svn.bb new file mode 100644 index 0000000000..218d22efe3 --- /dev/null +++ b/recipes/efl1/efreet_svn.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "The Enlightenment freedesktop.org library" +DEPENDS = "ecore" +LICENSE = "MIT BSD" +PV = "0.5.0.050+svnr${SRCREV}" +PR = "r1" + +inherit efl + +PACKAGES =+ "${PN}-mime ${PN}-trash" +FILES_${PN}-mime = "${libdir}/libefreet_mime.so.*" +FILES_${PN}-trash = "${libdir}/libefreet_trash.so.*" diff --git a/recipes/efl1/eina-native_svn.bb b/recipes/efl1/eina-native_svn.bb new file mode 100644 index 0000000000..8cc34bb178 --- /dev/null +++ b/recipes/efl1/eina-native_svn.bb @@ -0,0 +1,6 @@ +require eina_svn.bb +inherit native +DEPENDS = "" +# we no longer inherit pkgconfig, so we need to state this explicitly +# (see explanation in efl.bbclass and autotools.bbclass) +DEPENDS += "pkgconfig-native" diff --git a/recipes/efl1/eina_svn.bb b/recipes/efl1/eina_svn.bb new file mode 100644 index 0000000000..f38c4c5b36 --- /dev/null +++ b/recipes/efl1/eina_svn.bb @@ -0,0 +1,8 @@ +DESCRIPTION = "Eina is the Enlightenment data library" +LICENSE = "LGPL" +PV = "0.0.1+svnr${SRCREV}" +PR = "r0" + +inherit efl + +FILES_${PN} += "${libdir}/eina" diff --git a/recipes/efl1/elementary_svn.bb b/recipes/efl1/elementary_svn.bb new file mode 100644 index 0000000000..82a099f00d --- /dev/null +++ b/recipes/efl1/elementary_svn.bb @@ -0,0 +1,33 @@ +DESCRIPTION = "EFL based widget set for mobile devices" +LICENSE = "LGPL" +DEPENDS = "evas ecore edje eet edbus" +PV = "0.0.0+svnr${SRCREV}" +PR = "r4" + +inherit efl + +EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc" + +SRC_URI = "svn://svn.enlightenment.org/svn/e/trunk/TMP/st;module=elementary;proto=http" +S = "${WORKDIR}/elementary" + +RDEPENDS_${PN} = "elementary-themes" +RRECOMMENDS_${PN} = "elementary-tests" + +do_compile_append() { + sed -i -e s:${STAGING_DIR_TARGET}::g \ + -e s:/${TARGET_SYS}::g \ + elementary.pc +} + +FILES_${PN}-themes = "\ + ${datadir}/elementary/themes \ +" + +FILES_${PN}-tests = "\ + ${bindir}/elementary* \ + ${datadir}/elementary/images \ + ${datadir}/elementary/objects \ + ${datadir}/applications/* \ + ${datadir}/icons/* \ +" diff --git a/recipes/efl1/embryo-native_svn.bb b/recipes/efl1/embryo-native_svn.bb new file mode 100644 index 0000000000..2fc3faddfd --- /dev/null +++ b/recipes/efl1/embryo-native_svn.bb @@ -0,0 +1,3 @@ +require embryo_${PV}.bb +inherit native + diff --git a/recipes/efl1/embryo_svn.bb b/recipes/efl1/embryo_svn.bb new file mode 100644 index 0000000000..688ec22e97 --- /dev/null +++ b/recipes/efl1/embryo_svn.bb @@ -0,0 +1,9 @@ +DESCRIPTION = "The Enlightenment C-like scripting language for Edje" +LICENSE = "MIT BSD" +PV = "0.9.9.050+svnr${SRCREV}" +PR = "r1" + +inherit efl + +# HACK alert: When compiling for VFP embryo emits bugs -- maybe gcc bug +#FULL_OPTIMIZATION_arm =+ "-O0" diff --git a/recipes/efl1/emotion_svn.bb b/recipes/efl1/emotion_svn.bb new file mode 100644 index 0000000000..455bc82b18 --- /dev/null +++ b/recipes/efl1/emotion_svn.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "The Enlightenment multimedia library" +LICENSE = "MIT BSD" +# we no longer build the libxine backend, since the gstreamer backend seems more promising +DEPENDS = "eet evas ecore edje gstreamer gst-plugins-base" +PV = "0.1.0.042+svnr${SRCREV}" +PR = "r1" + +inherit efl + +EXTRA_OECONF = "--disable-xine --enable-gstreamer" + +PACKAGES =+ "emotion-backend-gstreamer" +FILES_emotion-backend-gstreamer = "${libdir}/emotion/*.so" +RRECOMMENDS_${PN} = "emotion-backend-gstreamer" diff --git a/recipes/efl1/engrave_svn.bb b/recipes/efl1/engrave_svn.bb new file mode 100644 index 0000000000..3dc5e332a2 --- /dev/null +++ b/recipes/efl1/engrave_svn.bb @@ -0,0 +1,8 @@ +DESCRIPTION = "Engrave is an Edje Editing Library" +LICENSE = "MIT" +# also requires yacc and lex on host +DEPENDS = "evas ecore" +PV = "0.0.0+svnr${SRCREV}" +PR = "r1" + +inherit efl diff --git a/recipes/efl1/enhance_svn.bb b/recipes/efl1/enhance_svn.bb new file mode 100644 index 0000000000..dd09256655 --- /dev/null +++ b/recipes/efl1/enhance_svn.bb @@ -0,0 +1,7 @@ +DESCRIPTION = "Enhance translates between glade .xml files and ETK" +LICENSE = "MIT" +DEPENDS = "exml" +PV = "0.0.0+svnr${SRCREV}" +PR = "r1" + +inherit efl diff --git a/recipes/efl1/epdf/fix-plugin-path-check.patch b/recipes/efl1/epdf/fix-plugin-path-check.patch new file mode 100644 index 0000000000..b218fffb7a --- /dev/null +++ b/recipes/efl1/epdf/fix-plugin-path-check.patch @@ -0,0 +1,24 @@ +Index: epdf/configure.in +=================================================================== +--- epdf.orig/configure.in ++++ epdf/configure.in +@@ -95,8 +95,8 @@ + [ + have_ewl="yes" + requirements="$requirements ewl" +- EWL_TEST_LIBS_DIR="`$PKG_CONFIG --variable=testsdir ewl`" +- EWL_TEST_SOURCE_DIR="`$PKG_CONFIG --variable=testssrcdir ewl`" ++ EWL_TEST_LIBS_DIR="/usr/lib/ewl/tests/" ++ EWL_TEST_SOURCE_DIR="/usr/share/ewl/examples/" + AC_SUBST(EWL_TEST_LIBS_DIR) + AC_SUBST(EWL_TEST_SOURCE_DIR) + ], +@@ -144,7 +144,7 @@ + [ + have_epsilon="yes" + requirements="$requirements epsilon imlib2" +- EPSILON_PLUGINS_DIR="`$PKG_CONFIG --variable=pluginsdir epsilon`" ++ EPSILON_PLUGINS_DIR="/usr/lib/epsilon/plugins/" + AC_SUBST(EPSILON_PLUGINS_DIR) + ], + [ diff --git a/recipes/efl1/epdf_svn.bb b/recipes/efl1/epdf_svn.bb new file mode 100644 index 0000000000..7aeb537268 --- /dev/null +++ b/recipes/efl1/epdf_svn.bb @@ -0,0 +1,28 @@ +DESCRIPTION = "Epdf is the glue between EFL and libpoppler" +LICENSE = "MIT BSD" +DEPENDS = "poppler evas ecore etk ewl" +PV = "0.1.0+svnr${SRCREV}" +PR = "r2" + +inherit efl + +SRC_URI = "svn://svn.enlightenment.org/svn/e/trunk/PROTO;module=epdf;proto=http" +# file://fix-plugin-path-check.patch;HACK=1;patch=1" +# FIXME This package is not really working correctly at the moment. It doesn't +# recognize epsilon and doesn't build everything. The next one actually using +# this package is welcome to fix it. + +EXTRA_OECONF = "--enable-etk --enable-ewl" + +# add ewl additions +FILES_${PN}-dev += "${libdir}/ewl/tests/*.a ${libdir}/ewl/tests/*.la" +FILES_${PN}-dbg += "${libdir}/ewl/tests/.debug" + +# add epsilon additions +FILES_${PN}-dev += "${libdir}/epsilon/plugins/epdf_thumbnailer.a ${libdir}/epsilon/plugins/epdf_thumbnailer.la" +FILES_${PN}-dbg += "${libdir}/epsilon/plugins/.debug" + +PACKAGES += "${PN}-ewl-widget epsilon-plugin-${PN}" +FILES_${PN}-ewl-widget = "${libdir}/ewl/tests/libewl_pdf*.so*" +FILES_epsilon-plugin-${PN} = "${libdir}/epsilon/plugins/epdf_thumbnailer.so*" + diff --git a/recipes/efl1/epeg_svn.bb b/recipes/efl1/epeg_svn.bb new file mode 100644 index 0000000000..25ea7fa0b9 --- /dev/null +++ b/recipes/efl1/epeg_svn.bb @@ -0,0 +1,9 @@ +DESCRIPTION = "Epeg is a small library for handling thumbnails." +LICENSE = "MIT" +DEPENDS = "jpeg" +PV = "0.9.0+svnr${SRCREV}" +PR = "r2" + +inherit efl + +SRC_URI = "svn://svn.enlightenment.org/svn/e/trunk/OLD;module=epeg;proto=http" diff --git a/recipes/efl1/epsilon_svn.bb b/recipes/efl1/epsilon_svn.bb new file mode 100644 index 0000000000..ad928eb693 --- /dev/null +++ b/recipes/efl1/epsilon_svn.bb @@ -0,0 +1,21 @@ +DESCRIPTION = "Epsilon is a flexible and powerful image thumbnailing library \ +that is compliant with the freedesktop.org Thumbnail Managing Standard." +LICENSE = "MIT BSD" +# can also depend on xine for movie thumbnails +DEPENDS = "libpng evas ecore edje perl-native" +PV = "0.3.0.012+svnr${SRCREV}" +PR = "r4" + +inherit efl + +# a gstreamer thumbnailer would be nice now that we have emotion using gstreamer as well +EXTRA_OECONF = "--disable-xine" + +# package the thumb daemon seperately +PACKAGES =+ "${PN}-thumbd" +FILES_${PN}-thumbd = "${bindir}/epsilon ${bindir}/epsilon_thumbd" +RRECOMMENDS_${PN} = "${PN}-thumbd" + +FILES_${PN}-dev += "${libdir}/${PN}/*/*.a ${libdir}/${PN}/*/*.la" +FILES_${PN}-dbg += "${libdir}/${PN}/plugins/.debug/*.so" + diff --git a/recipes/efl1/esmart_svn.bb b/recipes/efl1/esmart_svn.bb new file mode 100644 index 0000000000..1ff75a4a84 --- /dev/null +++ b/recipes/efl1/esmart_svn.bb @@ -0,0 +1,27 @@ +DESCRIPTION = "ESmart is a collection of smart Evas objects" +LICENSE = "MIT BSD" +DEPENDS = "evas ecore edje imlib2 epsilon libtool" +PV = "0.9.0.050+svnr${SRCREV}" +PR = "r1" + +inherit efl + +EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc" + +PACKAGES =+ "${PN}-textentry \ + ${PN}-thumb \ + ${PN}-container \ + ${PN}-container-plugins \ + ${PN}-file-dialog \ + ${PN}-draggies \ + ${PN}-trans-x11" + +FILES_${PN}-dbg += "${libdir}/.debug/ ${libdir}/esmart/*/.debug/" +FILES_${PN}-textentry = "${libdir}/libesmart_text_entry*.so*" +FILES_${PN}-thumb = "${libdir}/libesmart_thumb*.so*" +FILES_${PN}-container = "${libdir}/libesmart_container*" +DEPENDS_${PN}-container += "${PN}-container-plugins" +FILES_${PN}-container-plugins = "${libdir}/esmart/layout/*.so" +FILES_${PN}-file-dialog = "${libdir}/libesmart_file_dialog*.so*" +FILES_${PN}-draggies = "${libdir}/libesmart_draggies*.so*" +FILES_${PN}-trans-x11 = "${libdir}/libesmart_trans_x11*.so*" diff --git a/recipes/efl1/etk-native_svn.bb b/recipes/efl1/etk-native_svn.bb new file mode 100644 index 0000000000..345802d25d --- /dev/null +++ b/recipes/efl1/etk-native_svn.bb @@ -0,0 +1,5 @@ +require etk_svn.bb +inherit native +DEPENDS = "evas-native ecore-native edje-native" + +SRC_URI += "file://no-tests.patch;patch=1" diff --git a/recipes/efl1/etk/etk_scrolled_view_dragable_combined_bouncy.patch b/recipes/efl1/etk/etk_scrolled_view_dragable_combined_bouncy.patch new file mode 100644 index 0000000000..75ef0f95ea --- /dev/null +++ b/recipes/efl1/etk/etk_scrolled_view_dragable_combined_bouncy.patch @@ -0,0 +1,496 @@ +Hi All, + The attached patch lets etk_scrolled_view been dragable with +pressing on the panel directly and drag. If you drag fast, after +releasing the panel will still scrolling until it stop slowly. + +Adding the following functions. +void etk_scrolled_view_dragable_set(Etk_Scrolled_View +*scrolled_view, Etk_Bool dragable); +Etk_Bool etk_scrolled_view_dragable_get(Etk_Scrolled_View *scrolled_view); + +additional functions for detail control. (Most user don't need them) +double +etk_scrolled_view_drag_sample_interval_magic_set(Etk_Scrolled_View +*scrolled_view,double interval); +double +etk_scrolled_view_drag_sample_interval_magic_get(Etk_Scrolled_View +*scrolled_view); +unsigned int etk_scrolled_view_drag_damping_magic_set(Etk_Scrolled_View +*scrolled_view,unsigned int damping); +unsigned int etk_scrolled_view_drag_damping_magic_get(Etk_Scrolled_View +*scrolled_view); + +You can test this with etk_test after patching and adding two line in +etk_test + +Signed-off: Tick @ openmoko.org + +Index: etk/src/lib/etk_scrolled_view.c +=================================================================== +--- etk.orig/src/lib/etk_scrolled_view.c 2008-04-02 11:53:32.000000000 +0800 ++++ etk/src/lib/etk_scrolled_view.c 2008-04-05 00:41:47.000000000 +0800 +@@ -37,7 +37,15 @@ + static Etk_Bool _etk_scrolled_view_child_added_cb(Etk_Object *object, void *child, void *data); + static Etk_Bool _etk_scrolled_view_child_removed_cb(Etk_Object *object, void *child, void *data); + static Etk_Bool _etk_scrolled_view_child_scroll_size_changed_cb(Etk_Object *object, void *data); ++static int _etk_scrolled_view_motive_bounce(void *data); + ++ ++static Etk_Bool _etk_scrolled_view_mouse_down(Etk_Object *object, Etk_Event_Mouse_Down *event, void *data); ++static Etk_Bool _etk_scrolled_view_mouse_up(Etk_Object *object, Etk_Event_Mouse_Up *event, void *data); ++static Etk_Bool _etk_scrolled_view_mouse_click(Etk_Object *object, Etk_Event_Mouse_Up *event, void *data); ++static Etk_Bool _etk_scrolled_view_mouse_move(Etk_Object *object, Etk_Event_Mouse_Move *event, void *data); ++ ++static Etk_Bool _etk_scrolled_view_bar_mouse_down(Etk_Object *object, Etk_Event_Mouse_Down *event, void *data); + /************************** + * + * Implementation +@@ -173,6 +181,106 @@ + *vpolicy = scrolled_view ? scrolled_view->vpolicy : ETK_POLICY_AUTO; + } + ++/** ++ * @brief Set the scrolled view dragable or not ++ * @param scrolled_view a scrolled view ++ * @param dragable The scrolled view is dragable or not? ++ */ ++void etk_scrolled_view_dragable_set(Etk_Scrolled_View *scrolled_view, Etk_Bool dragable) ++{ ++ if (!scrolled_view) ++ return; ++ scrolled_view->drag.dragable = dragable; ++} ++ ++/** ++ * @brief Get the scrolled view dragable flag ++ * @param scrolled_view a scrolled view ++ * @return Returns ETK_TURE if the scrolled view is dragable ++ */ ++Etk_Bool etk_scrolled_view_dragable_get(Etk_Scrolled_View *scrolled_view) ++{ ++ if (!scrolled_view) ++ return ETK_FALSE; ++ return scrolled_view->drag.dragable; ++} ++ ++/** ++ * @brief Set the scrolled view boucy or not. ++ * @param scrolled_view a scrolled view ++ * @param bouncy The scrolled view is bouncy or not (Default TRUE) ++ */ ++void etk_scrolled_view_drag_bouncy_set(Etk_Scrolled_View *scrolled_view, Etk_Bool bouncy) ++{ ++ if (!scrolled_view) ++ return; ++ scrolled_view->drag.bouncy = bouncy; ++} ++ ++/** ++ * @brief Get the scrolled view bouncy flag ++ * @param scrolled_view a scrolled view ++ * @return Returns ETK_TURE if the scrolled view is bouncy ++ */ ++Etk_Bool etk_scrolled_view_drag_bouncy_get(Etk_Scrolled_View *scrolled_view) ++{ ++ if (!scrolled_view) ++ return ETK_FALSE; ++ return scrolled_view->drag.bouncy; ++} ++ ++/** ++ * @brief Set the scrolled view sample interval to calculate the scrolling speed. ++ * @param scrolled_view a scrolled view ++ * @param interval The interval of sampling latest scrolling speed (minimial 0.2 second, default 0.5 second) ++ * @return Returns the actual sampling interval set. If scrolled_view is NULL returns 0.0f. ++ */ ++double etk_scrolled_view_drag_sample_interval_magic_set(Etk_Scrolled_View *scrolled_view,double interval) ++{ ++ if (!scrolled_view) ++ return 0.0f; ++ interval = interval >= 0.2f ? interval : 0.2f; ++ scrolled_view->drag.sample_magic = interval; ++ return scrolled_view->drag.sample_magic; ++} ++ ++/** ++ * @brief Get the scrolled view sample interval to calculate the scrolling speed. ++ * @param scrolled_view a scrolled view ++ * @return Returns the sampling interval. If scrolled_view is NULL return 0.0f. ++ */ ++double etk_scrolled_view_drag_sample_interval_magic_get(Etk_Scrolled_View *scrolled_view) ++{ ++ if (!scrolled_view) ++ return 0.0f; ++ return scrolled_view->drag.sample_magic; ++} ++ ++/** ++ * @brief Set the damping magic number of a dragable scrolled view ++ * @param scrolled_view a scrolled view ++ * @param damping The damping factor of the dragable scrolled view (default 100) ++ * @return Returns the actual damping factor set ++ */ ++unsigned int etk_scrolled_view_drag_damping_magic_set(Etk_Scrolled_View *scrolled_view,unsigned int damping) ++{ ++ if (!scrolled_view) ++ return 0; ++ scrolled_view->drag.damping_magic = damping; ++ return scrolled_view->drag.damping_magic; ++} ++ ++/** ++ * @brief Get the damping magic number of a dragable scrolled view ++ * @param scrolled_view a scrolled view ++ * @return Returns the actual damping factor ++ */ ++unsigned int etk_scrolled_view_drag_damping_magic_get(Etk_Scrolled_View *scrolled_view) ++{ ++ if (!scrolled_view) ++ return 0; ++ return scrolled_view->drag.damping_magic; ++} + + /************************** + * +@@ -189,6 +297,14 @@ + scrolled_view->hpolicy = ETK_POLICY_AUTO; + scrolled_view->vpolicy = ETK_POLICY_AUTO; + ++ scrolled_view->drag.bar_pressed = ETK_FALSE; ++ scrolled_view->drag.dragable = ETK_FALSE; ++ scrolled_view->drag.bouncy = ETK_TRUE; ++ ++ // FIXME This can be put in etk_config (Make whole system be configured) ++ etk_scrolled_view_drag_sample_interval_magic_set(scrolled_view,0.5f); ++ etk_scrolled_view_drag_damping_magic_set(scrolled_view,100); ++ + scrolled_view->hscrollbar = etk_hscrollbar_new(0.0, 0.0, 0.0, 12.0, 50.0, 0.0); + etk_widget_theme_parent_set(scrolled_view->hscrollbar, ETK_WIDGET(scrolled_view)); + etk_widget_parent_set(scrolled_view->hscrollbar, ETK_WIDGET(scrolled_view)); +@@ -205,11 +321,18 @@ + ETK_WIDGET(scrolled_view)->size_allocate = _etk_scrolled_view_size_allocate; + + etk_signal_connect_by_code(ETK_WIDGET_KEY_DOWN_SIGNAL, ETK_OBJECT(scrolled_view), ETK_CALLBACK(_etk_scrolled_view_key_down_cb), NULL); ++ etk_signal_connect_by_code(ETK_WIDGET_MOUSE_DOWN_SIGNAL, ETK_OBJECT(scrolled_view), ETK_CALLBACK(_etk_scrolled_view_mouse_down), &scrolled_view->drag); ++ etk_signal_connect_by_code(ETK_WIDGET_MOUSE_UP_SIGNAL, ETK_OBJECT(scrolled_view), ETK_CALLBACK(_etk_scrolled_view_mouse_up), &scrolled_view->drag); ++ etk_signal_connect_by_code(ETK_WIDGET_MOUSE_CLICK_SIGNAL, ETK_OBJECT(scrolled_view), ETK_CALLBACK(_etk_scrolled_view_mouse_click), &scrolled_view->drag); ++ etk_signal_connect_by_code(ETK_WIDGET_MOUSE_MOVE_SIGNAL, ETK_OBJECT(scrolled_view), ETK_CALLBACK(_etk_scrolled_view_mouse_move), &scrolled_view->drag); + etk_signal_connect_by_code(ETK_WIDGET_MOUSE_WHEEL_SIGNAL, ETK_OBJECT(scrolled_view), ETK_CALLBACK(_etk_scrolled_view_mouse_wheel), NULL); + etk_signal_connect_by_code(ETK_CONTAINER_CHILD_ADDED_SIGNAL, ETK_OBJECT(scrolled_view), ETK_CALLBACK(_etk_scrolled_view_child_added_cb), NULL); + etk_signal_connect_by_code(ETK_CONTAINER_CHILD_REMOVED_SIGNAL, ETK_OBJECT(scrolled_view), ETK_CALLBACK(_etk_scrolled_view_child_removed_cb), NULL); + etk_signal_connect_by_code(ETK_RANGE_VALUE_CHANGED_SIGNAL, ETK_OBJECT(scrolled_view->hscrollbar), ETK_CALLBACK(_etk_scrolled_view_hscrollbar_value_changed_cb), scrolled_view); ++ etk_signal_connect_by_code(ETK_WIDGET_MOUSE_DOWN_SIGNAL, ETK_OBJECT(scrolled_view->hscrollbar), ETK_CALLBACK(_etk_scrolled_view_bar_mouse_down), scrolled_view); + etk_signal_connect_by_code(ETK_RANGE_VALUE_CHANGED_SIGNAL, ETK_OBJECT(scrolled_view->vscrollbar), ETK_CALLBACK(_etk_scrolled_view_vscrollbar_value_changed_cb), scrolled_view); ++ etk_signal_connect_by_code(ETK_WIDGET_MOUSE_DOWN_SIGNAL, ETK_OBJECT(scrolled_view->vscrollbar), ETK_CALLBACK(_etk_scrolled_view_bar_mouse_down), scrolled_view); ++ + } + + /* Sets the property whose id is "property_id" to the value "value" */ +@@ -390,6 +513,94 @@ + etk_widget_size_allocate(child, child_geometry); + } + ++/* Check if reaching the boundary */ ++static inline double _etk_scrolled_view_bounce_check (Etk_Range * range, double delta,double v) ++{ ++ double pos = (range->value + delta); ++ if (pos <= range->lower) ++ { ++ pos = range->lower + (range->lower - pos); ++ v *= -1; ++ } ++ etk_range_value_set(range, pos); ++ if (pos > range->value) ++ v *= -1; ++ return v; ++} ++ ++/* Animator for inertial scrolling */ ++static int _etk_scrolled_view_motive_bounce(void *data) ++{ ++ Etk_Scrolled_View *scrolled_view = ETK_SCROLLED_VIEW(data); ++ struct Etk_Scrolled_View_Mouse_Drag *drag; ++ Etk_Range *vscrollbar_range; ++ Etk_Range *hscrollbar_range; ++ double delta_time; ++ double delta_V; ++ double delta_x; ++ double delta_y; ++ if (!scrolled_view) ++ return 0; ++ drag = &scrolled_view->drag; ++ if (drag->mouse_down) ++ return 0; ++ ++ // Using trapezoid method to calculate the distance. ++ delta_time = ecore_time_get() - drag->timestamp; ++ delta_V = delta_time * (drag->damping_magic + abs(drag->Vx)+ abs(drag->Vy))/2; ++ delta_time = delta_time < 0.01f ? 0.01f: delta_time; ++ ++ if (drag->Vx < delta_V && drag->Vx > -delta_V) ++ { ++ delta_x = 0; ++ drag->Vx = 0; ++ } ++ else if (drag->Vx > 0) ++ { ++ delta_x = ((drag->Vx * 2) - delta_V) * delta_time / 2; ++ drag->Vx = drag->Vx - delta_V; ++ } ++ else ++ { ++ delta_x = ((drag->Vx * 2) + delta_V) * delta_time / 2; ++ drag->Vx = drag->Vx + delta_V; ++ } ++ ++ if (drag->Vy < delta_V && drag->Vy > -delta_V) ++ { ++ drag->Vy = 0; ++ delta_y = 0; ++ } ++ else if(drag->Vy > 0) ++ { ++ delta_y = ((drag->Vy * 2) - delta_V) * delta_time / 2; ++ drag->Vy = drag->Vy - delta_V; ++ } else ++ { ++ delta_y = ((drag->Vy * 2) + delta_V) * delta_time / 2; ++ drag->Vy = drag->Vy + delta_V; ++ } ++ ++ if (drag->Vx == 0 && drag->Vy == 0) ++ return 0; ++ ++ vscrollbar_range = ETK_RANGE(scrolled_view->vscrollbar); ++ hscrollbar_range = ETK_RANGE(scrolled_view->hscrollbar); ++ if (drag->bouncy) ++ { ++ drag->Vx = _etk_scrolled_view_bounce_check(hscrollbar_range, delta_x, drag->Vx); ++ drag->Vy = _etk_scrolled_view_bounce_check(vscrollbar_range, delta_y, drag->Vy); ++ } ++ else ++ { ++ drag->Vx = drag->Vx == _etk_scrolled_view_bounce_check(hscrollbar_range, delta_x, drag->Vx) ? drag->Vx : 0.0f; ++ drag->Vy = drag->Vy == _etk_scrolled_view_bounce_check(vscrollbar_range, delta_y, drag->Vy) ? drag->Vy : 0.0f; ++ } ++ drag->timestamp = ecore_time_get(); ++ return 1; ++} ++ ++ + /************************** + * + * Callbacks and handlers +@@ -431,6 +642,135 @@ + return propagate; + } + ++/* Called when mouse button has been pressed down */ ++static Etk_Bool _etk_scrolled_view_mouse_down(Etk_Object *object, Etk_Event_Mouse_Down *event, void *data) ++{ ++ Etk_Scrolled_View *scrolled_view; ++ Etk_Range *vscrollbar_range; ++ Etk_Range *hscrollbar_range; ++ struct Etk_Scrolled_View_Mouse_Drag *drag = (struct Etk_Scrolled_View_Mouse_Drag *) data; ++ ++ if (!(scrolled_view = ETK_SCROLLED_VIEW(object))) ++ return ETK_FALSE; ++ ++ if (!drag->dragable) ++ return ETK_FALSE; ++ ++ if (!drag->mouse_down && event->button) ++ { ++ vscrollbar_range = ETK_RANGE(scrolled_view->vscrollbar); ++ hscrollbar_range = ETK_RANGE(scrolled_view->hscrollbar); ++ drag->mouse_down = ETK_TRUE; ++ drag->timestamp = ecore_time_get(); ++ drag->old_timestamp = 0.0f; ++ drag->position = event->widget; ++ drag->bar_position.x = hscrollbar_range->value; ++ drag->bar_position.y = vscrollbar_range->value; ++ } ++ return ETK_FALSE; ++} ++ ++/* Called when mouse is dragging */ ++static Etk_Bool _etk_scrolled_view_mouse_move(Etk_Object *object, Etk_Event_Mouse_Move *event, void *data) ++{ ++ Etk_Scrolled_View *scrolled_view; ++ Etk_Range *vscrollbar_range; ++ Etk_Range *hscrollbar_range; ++ double delta_time; ++ struct Etk_Scrolled_View_Mouse_Drag *drag = (struct Etk_Scrolled_View_Mouse_Drag *) data; ++ ++ if (!(scrolled_view = ETK_SCROLLED_VIEW(object))) ++ return ETK_FALSE; ++ ++ if (!drag->dragable) ++ return ETK_FALSE; ++ ++ if (!drag->mouse_down) ++ return ETK_FALSE; ++ ++ if (!event->buttons) ++ return ETK_FALSE; ++ ++ vscrollbar_range = ETK_RANGE(scrolled_view->vscrollbar); ++ hscrollbar_range = ETK_RANGE(scrolled_view->hscrollbar); ++ if (drag->scroll_flag == 0) ++ { ++ drag->scroll_flag = (event->cur.widget.y - drag->position.y)/vscrollbar_range->step_increment || (event->cur.widget.x - drag->position.x)/hscrollbar_range->step_increment; ++ } ++ ++ if (drag->scroll_flag) ++ { ++ if (drag->bar_pressed==ETK_FALSE) ++ { ++ etk_range_value_set(vscrollbar_range, vscrollbar_range->value - (event->cur.widget.y - drag->position.y)); ++ etk_range_value_set(hscrollbar_range, hscrollbar_range->value - (event->cur.widget.x - drag->position.x)); ++ } ++ drag->position = event->cur.widget; ++ delta_time = ecore_time_get() - drag->timestamp; ++ // in case delta_time is zero ++ delta_time = delta_time == 0.0f ? drag->sample_magic : delta_time; ++ if (delta_time > drag->sample_magic || drag->old_timestamp == 0) ++ { ++ drag->old_timestamp = drag->timestamp; ++ drag->timestamp = ecore_time_get(); ++ drag->Vx = (hscrollbar_range->value - drag->bar_position.x) / delta_time; ++ drag->Vy = (vscrollbar_range->value - drag->bar_position.y) / delta_time; ++ drag->bar_position.x = hscrollbar_range->value; ++ drag->bar_position.y = vscrollbar_range->value; ++ } ++ return ETK_TRUE; ++ } ++ return ETK_FALSE; ++} ++ ++/* Called when mouse button has been released */ ++static Etk_Bool _etk_scrolled_view_mouse_up(Etk_Object *object, Etk_Event_Mouse_Up *event, void *data) ++{ ++ Etk_Scrolled_View *scrolled_view; ++ struct Etk_Scrolled_View_Mouse_Drag *drag = (struct Etk_Scrolled_View_Mouse_Drag *) data; ++ ++ if (!(scrolled_view = ETK_SCROLLED_VIEW(object))) ++ return ETK_FALSE; ++ ++ if (!drag->dragable) ++ return ETK_FALSE; ++ ++ if (!drag->mouse_down) ++ return ETK_FALSE; ++ ++ if (drag->bar_pressed == ETK_TRUE) ++ { ++ drag->bar_pressed = ETK_FALSE; ++ return ETK_FALSE; ++ } ++ ++ drag->mouse_down = ETK_FALSE; ++ ++ if (drag->scroll_flag) ++ { ++ drag->timestamp = ecore_time_get(); ++ ecore_animator_add(&_etk_scrolled_view_motive_bounce, scrolled_view); ++ return ETK_TRUE; ++ } ++ return ETK_FALSE; ++} ++ ++/* Called when mouse button has been clicked */ ++static Etk_Bool _etk_scrolled_view_mouse_click (Etk_Object *object, Etk_Event_Mouse_Up *event, void *data) ++{ ++ Etk_Scrolled_View *scrolled_view; ++ struct Etk_Scrolled_View_Mouse_Drag *drag = (struct Etk_Scrolled_View_Mouse_Drag *) data; ++ if (!(scrolled_view = ETK_SCROLLED_VIEW(object))) ++ return ETK_TRUE; ++ ++ if (drag->scroll_flag) ++ { ++ drag->scroll_flag = 0; ++ return ETK_TRUE; ++ } ++ return ETK_FALSE; ++} ++ + /* Called when the user wants to scroll the scrolled view with the mouse wheel */ + static Etk_Bool _etk_scrolled_view_mouse_wheel(Etk_Object *object, Etk_Event_Mouse_Wheel *event, void *data) + { +@@ -458,6 +798,18 @@ + return ETK_TRUE; + } + ++/* Called when dragging on the scrollbar */ ++static Etk_Bool _etk_scrolled_view_bar_mouse_down(Etk_Object *object, Etk_Event_Mouse_Down *event, void *data) ++{ ++ Etk_Scrolled_View *scrolled_view; ++ Etk_Widget *child; ++ if (!(scrolled_view = ETK_SCROLLED_VIEW(data)) || !(child = ETK_BIN(scrolled_view)->child) || !child->scroll) ++ return ETK_FALSE; ++ scrolled_view->drag.bar_pressed = ETK_TRUE; ++ return ETK_FALSE; ++} ++ ++ + /* Called when the value of the vscrollbar has changed */ + static Etk_Bool _etk_scrolled_view_vscrollbar_value_changed_cb(Etk_Object *object, double value, void *data) + { +Index: etk/src/lib/etk_scrolled_view.h +=================================================================== +--- etk.orig/src/lib/etk_scrolled_view.h 2008-04-02 11:53:32.000000000 +0800 ++++ etk/src/lib/etk_scrolled_view.h 2008-04-05 00:03:31.000000000 +0800 +@@ -33,9 +33,24 @@ + ETK_POLICY_AUTO, /**< The scrollbar is shown and hidden automatically whether or not the child can fit + * entirely in the scrolled view */ + ETK_POLICY_SHOW, /**< The scrollbar is always visible */ +- ETK_POLICY_HIDE /**< The scrollbar is always hidden */ ++ ETK_POLICY_HIDE, /**< The scrollbar is always hidden */ + } Etk_Scrolled_View_Policy; + ++struct Etk_Scrolled_View_Mouse_Drag ++{ ++ Etk_Bool mouse_down; ++ Etk_Bool bar_pressed; ++ Etk_Bool dragable; ++ Etk_Bool bouncy; ++ int scroll_flag; ++ Etk_Position position; ++ Etk_Position bar_position; ++ double sample_magic; ++ unsigned int damping_magic; ++ double timestamp; ++ double old_timestamp; ++ double Vx,Vy; ++}; + + /** + * @brief @widget The structure of a scrolled view +@@ -52,9 +67,12 @@ + + Etk_Scrolled_View_Policy hpolicy; + Etk_Scrolled_View_Policy vpolicy; ++ ++ struct Etk_Scrolled_View_Mouse_Drag drag; + }; + + ++ + Etk_Type *etk_scrolled_view_type_get(void); + Etk_Widget *etk_scrolled_view_new(void); + +@@ -63,6 +81,14 @@ + void etk_scrolled_view_add_with_viewport(Etk_Scrolled_View *scrolled_view, Etk_Widget *child); + void etk_scrolled_view_policy_set(Etk_Scrolled_View *scrolled_view, Etk_Scrolled_View_Policy hpolicy, Etk_Scrolled_View_Policy vpolicy); + void etk_scrolled_view_policy_get(Etk_Scrolled_View *scrolled_view, Etk_Scrolled_View_Policy *hpolicy, Etk_Scrolled_View_Policy *vpolicy); ++void etk_scrolled_view_dragable_set(Etk_Scrolled_View *scrolled_view, Etk_Bool dragable); ++Etk_Bool etk_scrolled_view_dragable_get(Etk_Scrolled_View *scrolled_view); ++void etk_scrolled_view_drag_bouncy_set(Etk_Scrolled_View *scrolled_view, Etk_Bool bouncy); ++Etk_Bool etk_scrolled_view_drag_bouncy_get(Etk_Scrolled_View *scrolled_view); ++double etk_scrolled_view_drag_sample_interval_magic_set(Etk_Scrolled_View *scrolled_view,double interval); ++double etk_scrolled_view_drag_sample_interval_magic_get(Etk_Scrolled_View *scrolled_view); ++unsigned int etk_scrolled_view_drag_damping_magic_set(Etk_Scrolled_View *scrolled_view,unsigned int damping); ++unsigned int etk_scrolled_view_drag_damping_magic_get(Etk_Scrolled_View *scrolled_view); + + /** @} */ + diff --git a/recipes/efl1/etk_svn.bb b/recipes/efl1/etk_svn.bb new file mode 100644 index 0000000000..5c47c406d2 --- /dev/null +++ b/recipes/efl1/etk_svn.bb @@ -0,0 +1,33 @@ +DESCRIPTION = "Etk is an advanced widget toolkit based on the Enlightenment Foundation Libraries." +DEPENDS = "evas ecore edje" +LICENSE = "MIT" +PV = "0.1.0.042+svnr${SRCREV}" +PR = "r4" + +inherit efl + +RRECOMMENDS_${PN} = "\ + etk-engines-software-x11 \ + etk-engines-evas \ + etk-engines-fb \ + etk-engines-x11 \ + etk-engines-software-x11-16 \ +" + +PACKAGES += "etk-engines-software-x11" +FILES_${PN}-engines-software-x11 = "${libdir}/etk/engines/ecore_evas_software_x11.so" + +PACKAGES =+ "etk-engines-gl-x11" +FILES_${PN}-engines-gl-x11 = "${libdir}/etk/engines/ecore_evas_gl_x11.so" + +PACKAGES =+ "etk-engines-evas" +FILES_${PN}-engines-evas = "${libdir}/etk/engines/ecore_evas.so" + +PACKAGES =+ "etk-engines-fb" +FILES_${PN}-engines-fb = "${libdir}/etk/engines/ecore_fb.so" + +PACKAGES =+ "etk-engines-x11" +FILES_${PN}-engines-x11 = "${libdir}/etk/engines/ecore_evas_x11.so" + +PACKAGES =+ "etk-engines-software-x11-16" +FILES_${PN}-engines-software-x11-16 = "${libdir}/etk/engines/ecore_evas_software_x11_16.so" diff --git a/recipes/efl1/evas-native_svn.bb b/recipes/efl1/evas-native_svn.bb new file mode 100644 index 0000000000..dbd03f5257 --- /dev/null +++ b/recipes/efl1/evas-native_svn.bb @@ -0,0 +1,118 @@ +require evas.inc +inherit native +DEPENDS = "freetype-native libpng-native jpeg-native eet-native eina-native" +PR = "r0" + +EXTRA_OECONF = "\ + --x-includes=${STAGING_INCDIR}/X11 \ + --x-libraries=${STAGING_LIBDIR} \ + --enable-evas-magic-debug \ + \ + --enable-fb \ + --disable-directfb \ + --disable-sdl \ + --enable-buffer \ + --disable-software-ddraw \ + --disable-software-qtopia \ + --disable-software-x11 \ + --disable-software-16-x11 \ + --disable-software-xcb \ + --disable-gl-x11 \ + --disable-xrender-x11 \ + --disable-xrender-xcb \ + --disable-glitz-x11 \ + --enable-image-loader-eet \ + --disable-image-loader-edb \ + --disable-image-loader-gif \ + --enable-image-loader-png \ + --enable-image-loader-jpeg \ + --enable-image-loader-tiff \ + --enable-image-loader-xpm \ + --disable-image-loader-svg \ + --enable-cpu-c \ + --enable-fontconfig \ + --enable-font-loader-eet \ + --enable-scale-sample \ + --enable-scale-smooth \ + --enable-convert-yuv \ + --enable-small-dither-mask \ + --disable-no-dither-mask \ + --disable-convert-8-rgb-332 \ + --disable-convert-8-rgb-666 \ + --disable-convert-8-rgb-232 \ + --disable-convert-8-rgb-222 \ + --disable-convert-8-rgb-221 \ + --disable-convert-8-rgb-121 \ + --disable-convert-8-rgb-111 \ + --enable-convert-16-rgb-565 \ + --disable-convert-16-rgb-555 \ + --disable-convert-16-rgb-444 \ + --disable-convert-16-rgb-ipq \ + --enable-convert-16-rgb-rot-0 \ + --disable-convert-16-rgb-rot-90 \ + --enable-convert-16-rgb-rot-270 \ + --disable-convert-24-rgb-888 \ + --disable-convert-24-bgr-888 \ + --disable-convert-32-rgb-8888 \ + --disable-convert-32-rgbx-8888 \ + --disable-convert-32-bgr-8888 \ + --disable-convert-32-bgrx-8888 \ + --disable-convert-32-rgb-rot-0 \ + --disable-convert-32-rgb-rot-90 \ + --disable-convert-32-rgb-rot-270" + + +# evas needs a different oe_libinstall, so copy/paste autotools_stage_all +do_stage() { + rm -rf ${STAGE_TEMP} + mkdir -p ${STAGE_TEMP} + oe_runmake DESTDIR="${STAGE_TEMP}" install + autotools_stage_dir ${STAGE_TEMP}/${includedir} ${STAGING_INCDIR} + if [ "${BUILD_SYS}" = "${HOST_SYS}" ]; then + autotools_stage_dir ${STAGE_TEMP}/${bindir} ${STAGING_DIR_HOST}${layout_bindir} + autotools_stage_dir ${STAGE_TEMP}/${sbindir} ${STAGING_DIR_HOST}${layout_sbindir} + autotools_stage_dir ${STAGE_TEMP}/${base_bindir} ${STAGING_DIR_HOST}${layout_base_bindir} + autotools_stage_dir ${STAGE_TEMP}/${base_sbindir} ${STAGING_DIR_HOST}${layout_base_sbindir} + autotools_stage_dir ${STAGE_TEMP}/${libexecdir} ${STAGING_DIR_HOST}${layout_libexecdir} + fi + if [ -d ${STAGE_TEMP}/${libdir} ] + then + olddir=`pwd` + cd ${STAGE_TEMP}/${libdir} + las=$(find . -name \*.la -type f) + cd $olddir + echo "Found la files: $las" + if [ -n "$las" ]; then + # If there are .la files then libtool was used in the + # build, so install them with magic mangling. + for i in $las + do + dir=$(dirname $i) + echo "oe_libinstall -C ${STAGE_TEMP}/${libdir}/${dir} -so $(basename $i .la) ${STAGING_LIBDIR}/${dir}" + oe_libinstall -C ${STAGE_TEMP}/${libdir}/${dir} -so $(basename $i .la) ${STAGING_LIBDIR}/${dir} + done + else + # Otherwise libtool wasn't used, and lib/ can be copied + # directly. + echo "cp -fpPR ${STAGE_TEMP}/${libdir}/* ${STAGING_LIBDIR}" + cp -fpPR ${STAGE_TEMP}/${libdir}/* ${STAGING_LIBDIR} + fi + + fi + # Ok, this is nasty. pkgconfig.bbclass is usually used to install .pc files, + # however some packages rely on the presence of .pc files to enable/disable + # their configurataions in which case we better should not install everything + # unconditionally, but rather depend on the actual results of make install. + # The good news though: a) there are not many packages doing this and + # b) packaged staging will fix that anyways. :M: + if [ "${AUTOTOOLS_STAGE_PKGCONFIG}" = "1" ] + then + echo "cp -f ${STAGE_TEMP}/${libdir}/pkgconfig/*.pc ${STAGING_LIBDIR}/pkgconfig/" + cp -f ${STAGE_TEMP}/${libdir}/pkgconfig/*.pc ${STAGING_LIBDIR}/pkgconfig/ + fi + rm -rf ${STAGE_TEMP}/${mandir} || true + rm -rf ${STAGE_TEMP}/${infodir} || true + autotools_stage_dir ${STAGE_TEMP}/${datadir} ${STAGING_DATADIR} + rm -rf ${STAGE_TEMP} + +} diff --git a/recipes/efl1/evas.inc b/recipes/efl1/evas.inc new file mode 100644 index 0000000000..ff7a184fb2 --- /dev/null +++ b/recipes/efl1/evas.inc @@ -0,0 +1,53 @@ +DESCRIPTION = "Evas is the Enlightenment canvas API" +LICENSE = "MIT BSD" +# can also depend on valgrind, libsdl-x11, directfb +DEPENDS = "eina eet freetype jpeg libpng virtual/libx11 libxext libxrender fontconfig" +PV = "0.9.9.050+svnr${SRCREV}" + + +# disable thumb mode for arm +ARM_INSTRUCTION_SET = "arm" + +inherit efl + +FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/evas" +EXTRA_OECONF = "<override me>" + +python populate_packages_prepend () { + for plugin_type in "engines loaders savers".split(): + bb.note( "splitting packages for evas %s..." % plugin_type ) + basedir = bb.data.expand( '${libdir}/evas/modules/%s' % plugin_type, d ) + + do_split_packages(d, basedir, '^(.*)', + output_pattern = 'evas-' + plugin_type[:-1] + "-%s", + description = 'Evas module %s', + allow_dirs=True, recursive=False, extra_depends="" ) +} + +do_install_append() { + find "${D}" -name .debug -type d -exec rm -rf {} \; +} + +FILES_${PN}-dev += "${libdir}/evas/modules/*/*/*/*.a ${libdir}/evas/modules/*/*/*/*.la" +FILES_${PN}-dbg += "${libdir}/evas/modules/*/*/*/.debug/" + +PACKAGES_DYNAMIC = "libevas-engine-* libevas-loader-* libevas-saver-*" + +RRECOMMENDS_${PN} = "\ + libevas-engine-buffer \ + libevas-engine-fb \ + libevas-engine-software-generic \ + libevas-engine-software-x11 \ + libevas-engine-software-16 \ + libevas-engine-software-16-x11 \ + libevas-engine-xrender-x11 \ + \ + libevas-loader-png \ + libevas-loader-jpeg \ + libevas-loader-eet \ +" + +# disabling this, since (due to OE bugs) it drags in whole Gtk+ +#RRECOMMENDS_${PN} += "\ +# libevas-loader-svg \ +#" diff --git a/recipes/efl1/evas/.mtn2git_empty b/recipes/efl1/evas/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/recipes/efl1/evas/.mtn2git_empty diff --git a/recipes/efl1/evas_svn.bb b/recipes/efl1/evas_svn.bb new file mode 100644 index 0000000000..02d4cf446a --- /dev/null +++ b/recipes/efl1/evas_svn.bb @@ -0,0 +1,63 @@ +require evas.inc +PR = "r1" + +EXTRA_OECONF = "\ + --x-includes=${STAGING_INCDIR}/X11 \ + --x-libraries=${STAGING_LIBDIR} \ + --enable-evas-magic-debug \ + \ + --enable-fb \ + --disable-directfb \ + --disable-sdl \ + --enable-buffer \ + --disable-software-ddraw \ + --disable-software-qtopia \ + --enable-simple-x11 \ + --enable-software-x11 \ + --enable-software-16-x11 \ + --disable-software-xcb \ + --disable-gl-x11 \ + --enable-xrender-x11 \ + --disable-xrender-xcb \ + --disable-glitz-x11 \ + --enable-image-loader-eet \ + --disable-image-loader-edb \ + --disable-image-loader-gif \ + --enable-image-loader-png \ + --enable-image-loader-jpeg \ + --enable-image-loader-tiff \ + --enable-image-loader-xpm \ + --disable-image-loader-svg \ + --enable-cpu-c \ + --enable-fontconfig \ + --enable-font-loader-eet \ + --enable-scale-sample \ + --enable-scale-smooth \ + --enable-convert-yuv \ + --enable-small-dither-mask \ + --disable-no-dither-mask \ + --disable-convert-8-rgb-332 \ + --disable-convert-8-rgb-666 \ + --disable-convert-8-rgb-232 \ + --disable-convert-8-rgb-222 \ + --disable-convert-8-rgb-221 \ + --disable-convert-8-rgb-121 \ + --disable-convert-8-rgb-111 \ + --enable-convert-16-rgb-565 \ + --disable-convert-16-rgb-555 \ + --disable-convert-16-rgb-444 \ + --disable-convert-16-rgb-ipq \ + --enable-convert-16-rgb-rot-0 \ + --enable-convert-16-rgb-rot-90 \ + --disable-convert-16-rgb-rot-180 \ + --enable-convert-16-rgb-rot-270 \ + --enable-convert-24-rgb-888 \ + --enable-convert-24-bgr-888 \ + --enable-convert-32-rgb-8888 \ + --enable-convert-32-rgbx-8888 \ + --enable-convert-32-bgr-8888 \ + --enable-convert-32-bgrx-8888 \ + --enable-convert-32-rgb-rot-0 \ + --enable-convert-32-rgb-rot-90 \ + --disable-convert-32-rgb-rot-180 \ + --enable-convert-32-rgb-rot-270" diff --git a/recipes/efl1/evolve-native_svn.bb b/recipes/efl1/evolve-native_svn.bb new file mode 100644 index 0000000000..5d57075498 --- /dev/null +++ b/recipes/efl1/evolve-native_svn.bb @@ -0,0 +1,6 @@ +require evolve_svn.bb +inherit native +DEPENDS = "etk-native" + +# needs ecore-x :/ +BROKEN = "1" diff --git a/recipes/efl1/evolve_svn.bb b/recipes/efl1/evolve_svn.bb new file mode 100644 index 0000000000..e38df93e24 --- /dev/null +++ b/recipes/efl1/evolve_svn.bb @@ -0,0 +1,7 @@ +DESCRIPTION = "Evolve allows you to write ETK designs using a C-like language" +LICENSE = "MIT" +DEPENDS = "etk evolve-native" +PV = "0.0.0+svnr${SRCREV}" +PR = "r2" + +inherit efl diff --git a/recipes/efl1/ewl_svn.bb b/recipes/efl1/ewl_svn.bb new file mode 100644 index 0000000000..6425e865a3 --- /dev/null +++ b/recipes/efl1/ewl_svn.bb @@ -0,0 +1,32 @@ +DESCRIPTION = "The Enlightened Widget Library" +DEPENDS = "evas ecore edje emotion efreet epsilon" +LICENSE = "MIT BSD" +PV = "0.5.2.050+svnr${SRCREV}" +PR = "r1" + +inherit efl + +EXTRA_OECONF = "\ + --enable-software-x11 \ + --enable-software-16-x11 \ + --enable-xrender-x11 \ + --disable-opengl-x11 \ + --disable-software-xcb \ + --disable-software-sdl \ + --enable-framebuffer \ + --enable-software-buffer \ + --disable-opengl-glew \ +" + +# TODO package engines more granular +PACKAGES += "${PN}-plugins ${PN}-engines" + +FILES_${PN} += "${sysconfdir}/ewl/*" +FILES_${PN}-tests += "${libdir}/ewl/tests/*.so*" +FILES_${PN}-dev += "${libdir}/ewl/*/*.a ${libdir}/ewl/*/*.la" +FILES_${PN}-dbg += "${libdir}/ewl/*/.debug" + +FILES_${PN}-engines = "${libdir}/ewl/engines/*.so*" +FILES_${PN}-plugins = "${libdir}/ewl/plugins/*.so*" + +RRECOMMENDS_${PN} = "${PN}-engines ${PN}-plugins ewl-themes" diff --git a/recipes/efl1/exml_svn.bb b/recipes/efl1/exml_svn.bb new file mode 100644 index 0000000000..363a23d7f1 --- /dev/null +++ b/recipes/efl1/exml_svn.bb @@ -0,0 +1,8 @@ +DESCRIPTION = "Exml is a generic XML parser wrapper." +LICENSE = "MIT" +DEPENDS = "libxml2 libxslt ecore" +PV = "0.1.1+svnr${SRCREV}" +PR = "r2" + +inherit efl + diff --git a/recipes/efl1/imlib2/remove-local-includes-20080421.patch b/recipes/efl1/imlib2/remove-local-includes-20080421.patch new file mode 100644 index 0000000000..d28ba9ebf0 --- /dev/null +++ b/recipes/efl1/imlib2/remove-local-includes-20080421.patch @@ -0,0 +1,15 @@ +Index: imlib2/configure.in +=================================================================== +--- imlib2.orig/configure.in 2008-04-21 14:28:58.000000000 +0800 ++++ imlib2/configure.in 2008-04-21 14:30:07.000000000 +0800 +@@ -191,9 +191,7 @@ + + if test "x$have_x" = "xyes"; then + AC_PATH_XTRA +- x_dir=${x_dir:-/usr/X11R6} +- x_cflags=${x_cflags:--I${x_includes:-$x_dir/include}} +- x_libs="${x_libs:--L${x_libraries:-$x_dir/lib}} -lX11 -lXext" ++ x_libs="-lX11 -lXext" + AC_DEFINE(BUILD_X11, 1, [enabling X11 support]) + else + x_cflags="" diff --git a/recipes/efl1/imlib2_svn.bb b/recipes/efl1/imlib2_svn.bb new file mode 100644 index 0000000000..025a36add4 --- /dev/null +++ b/recipes/efl1/imlib2_svn.bb @@ -0,0 +1,26 @@ +DESCRIPTION = "A graphic library for file loading, saving, rendering, and manipulation." +LICENSE = "BSD" +# can also depend on tiff34, ungif or gif, z, bz2, id3tag +DEPENDS = "freetype libpng jpeg virtual/libx11 libxext" +PROVIDES = "virtual/imlib2" +PV = "1.4.2.001+svnr${SRCREV}" +PR = "r0" + +inherit efl + +EXTRA_OECONF = "--with-x" + +# TODO: Use more fine granular version +#OE_LT_RPATH_ALLOW=":${libdir}/imlib2/loaders:${libdir}/imlib2/filters:" +OE_LT_RPATH_ALLOW = "any" +OE_LT_RPATH_ALLOW[export]="1" + +PACKAGES =+ "imlib2-loaders-dbg imlib2-filters-dbg imlib2-loaders imlib2-filters" +FILES_${PN} = "${libdir}/lib*.so.* ${libdir}/imlib2/*/*.so" +FILES_${PN}-dbg = "${libdir}/.debug/ ${bindir}/.debug/" +FILES_${PN}-dev += "${bindir}/imlib2-config ${libdir}/*.so ${includedir}" +FILES_${PN}-bin = "${bindir}" +FILES_imlib2-loaders = "${libdir}/imlib2/loaders/*.so" +FILES_imlib2-filters = "${libdir}/imlib2/filters/*.so" +FILES_imlib2-loaders-dbg += "${libdir}/imlib2/loaders/.debug" +FILES_imlib2-filters-dbg += "${libdir}/imlib2/filters/.debug" diff --git a/recipes/efl1/libefso_svn.bb b/recipes/efl1/libefso_svn.bb new file mode 100644 index 0000000000..20d520cba5 --- /dev/null +++ b/recipes/efl1/libefso_svn.bb @@ -0,0 +1,17 @@ +DESCRIPTION = "EFL FSO wrapper library" +SECTION = "e/libs" +LICENSE = "GPLv2" +DEPENDS = "ecore edbus" +PV = "0.0.0+svnr${SRCREV}" +PR = "r2" + +SRC_URI = "svn://svn.om.vptt.ch/trunk/;proto=http;module=libefso" +S = "${WORKDIR}/libefso" + +inherit autotools pkgconfig + +do_stage () { + install -m 0644 src/lib/efso.h ${STAGING_INCDIR}/efso.h + oe_libinstall -a -so -C src/lib libefso ${STAGING_LIBDIR} + autotools_stage_all +} |