if test "x$want_elementary_ewebkit" != "xno"; then
PKG_CHECK_MODULES([ELEMENTARY_EWEBKIT],
[
- glib-2.0
- gobject-2.0
- gthread-2.0
+ ewebkit
],
[
AC_DEFINE(HAVE_ELEMENTARY_EWEBKIT, 1, [EWebKit support for Elementary])
],
[have_elementary_ewebkit="no"]
)
-#ewebkit
+ PKG_CHECK_MODULES([ELEMENTARY_EWEBKIT_SUPPORT],
+ [
+ glib-2.0
+ gobject-2.0
+ gthread-2.0
+ ],
+ [],
+ [have_elementary_ewebkit="no"]
+ )
+
else
have_elementary_ewebkit="no"
fi
echo " EFreet.............: ${have_elementary_efreet}"
echo " EWeather...........: ${have_elementary_eweather}"
echo " Ethumb.............: ${have_elementary_ethumb}"
+echo " EWebKit............: ${have_elementary_ewebkit}"
echo
echo " edje_cc..............: ${edje_cc}"
echo
test_anim.c \
test_webview.c
-elementary_test_LDADD = $(top_builddir)/src/lib/libelementary.la @ELEMENTARY_EWEATHER_LIBS@ @ELEMENTARY_EWEBKIT_LIBS@
+elementary_test_LDADD = $(top_builddir)/src/lib/libelementary.la @ELEMENTARY_EWEATHER_LIBS@
elementary_test_LDFLAGS =
elementary_config_SOURCES = \
config.c
-elementary_config_LDADD = $(top_builddir)/src/lib/libelementary.la @ELEMENTARY_EWEATHER_LIBS@ @ELEMENTARY_EWEBKIT_LIBS@
+elementary_config_LDADD = $(top_builddir)/src/lib/libelementary.la @ELEMENTARY_EWEATHER_LIBS@
elementary_config_LDFLAGS =
if BUILD_QUICKLAUNCH
elementary_quicklaunch_SOURCES = quicklaunch.c
-elementary_quicklaunch_LDADD = $(top_builddir)/src/lib/libelementary.la @ELEMENTARY_EWEATHER_LIBS@ @ELEMENTARY_EWEBKIT_LIBS@
+elementary_quicklaunch_LDADD = $(top_builddir)/src/lib/libelementary.la @ELEMENTARY_EWEATHER_LIBS@
elementary_quicklaunch_LDFLAGS =
if BUILD_RUN
#ifdef ELM_EWEBKIT
Evas_Object *win, *bg, *wv, *ic;
- g_type_init();
- g_thread_init(0);
-
printf("#### test_webkit\n");
win = elm_win_add(NULL, "box-horiz", ELM_WIN_BASIC);
elm_win_title_set(win, "Box Horiz");
@ELEMENTARY_EDBUS_CFLAGS@ \
@ELEMENTARY_EFREET_CFLAGS@ \
@ELEMENTARY_ETHUMB_CFLAGS@ \
-@ELEMENTARY_EWEBKIT_CFLAGS@
+@ELEMENTARY_EWEBKIT_CFLAGS@ \
+@ELEMENTARY_EWEBKIT_SUPPORT_CFLAGS@
if ELEMENTARY_WINDOWS_BUILD
AM_CPPFLAGS += -DELEMENTARY_BUILD
libelementary_la_CFLAGS =
-libelementary_la_LIBADD = @my_libs@ @dlopen_libs@ @ELEMENTARY_LIBS@ @ELEMENTARY_X_LIBS@ @ELEMENTARY_FB_LIBS@ @ELEMENTARY_SDL_LIBS@ @ELEMENTARY_WIN32_LIBS@ @ELEMENTARY_WINCE_LIBS@ @ELEMENTARY_EDBUS_LIBS@ @ELEMENTARY_EFREET_LIBS@ @ELEMENTARY_ETHUMB_LIBS@
+libelementary_la_LIBADD = @my_libs@ @dlopen_libs@ @ELEMENTARY_LIBS@ @ELEMENTARY_X_LIBS@ @ELEMENTARY_FB_LIBS@ @ELEMENTARY_SDL_LIBS@ @ELEMENTARY_WIN32_LIBS@ @ELEMENTARY_WINCE_LIBS@ @ELEMENTARY_EDBUS_LIBS@ @ELEMENTARY_EFREET_LIBS@ @ELEMENTARY_ETHUMB_LIBS@ @ELEMENTARY_EWEBKIT_SUPPORT_LIBS@
libelementary_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
+/*
+ *
+ * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
+ */
#include <Elementary.h>
#include "elm_priv.h"
struct _Widget_Data
{
Evas_Object *webkit;
+ Eina_Bool auto_fitting:1;
};
static const char *widtype = NULL;
elm_widget_data_set(obj, wd);
elm_widget_del_hook_set(obj, _del_hook);
- wd->webkit = _els_webview_add(obj, EINA_TRUE);
+ wd->webkit = _els_webview_add(obj, EINA_FALSE);
//TODO:evas_object_box_layout_set(wd->box, _layout, wd, NULL);
evas_object_event_callback_add(wd->webkit, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
_changed_size_hints, obj);
+/*
+ *
+ * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
+ */
#include <Elementary.h>
#include "elm_priv.h"
+#ifdef ELM_EWEBKIT
+#include <EWebKit.h>
+#include <glib-object.h>
+
+static Ewk_View_Smart_Class _parent_sc = EWK_VIEW_SMART_CLASS_INIT_NULL;
+#endif
+
Evas_Object*
_els_webview_add(Evas_Object *parent, Eina_Bool tiled)
{
#ifdef ELM_EWEBKIT
+ static Evas_Smart* smart = NULL;
Evas_Object *obj;
Evas *e;
int (*ewk_init)(void);
- Evas_Object *(*ewk_view_add)(Evas *);
- Eina_Bool (*ewk_view_uri_set)(Evas_Object *, const char *);
+ Eina_Bool (*ewk_view_single_smart_set)(Ewk_View_Smart_Class *);
+ Eina_Bool (*ewk_view_tiled_smart_set)(Ewk_View_Smart_Class *);
- /*
- ewk_init = (int (*)())dlsym(ewk_handle, "ewk_init");
- ewk_view_add = (Evas_Object *(*)(Evas *))dlsym(ewk_handle, "ewk_view_tiled_add");
- ewk_view_uri_set = (Eina_Bool (*)(Evas_Object *, const char *))dlsym(ewk_handle, "ewk_view_uri_set");
-
- e = evas_object_evas_get(parent);
- ewk_init();
- obj = ewk_view_add(e);
- ewk_view_uri_set(obj, "file:///a.html");
- evas_object_show(obj);
+ if (!smart)
+ {
+ g_type_init();
+ if (!g_thread_get_initialized())
+ g_thread_init(NULL);
+
+ void *ewk_handle = dlopen("/usr/lib/libewebkit.so", RTLD_LAZY);//FIXME
+ ewk_init = (int (*)())dlsym(ewk_handle, "ewk_init");
+ ewk_init();
+ static Ewk_View_Smart_Class api = EWK_VIEW_SMART_CLASS_INIT_NAME_VERSION("ELM_WEBVIEW");
+
+ if (tiled)
+ {
+ ewk_view_tiled_smart_set = (Eina_Bool (*)(Ewk_View_Smart_Class *))dlsym(ewk_handle, "ewk_view_tiled_smart_set");
+ ewk_view_tiled_smart_set(&api);
+ if (EINA_UNLIKELY(!_parent_sc.sc.add))
+ ewk_view_tiled_smart_set(&_parent_sc);
+ }
+ else
+ {
+ ewk_view_single_smart_set = (Eina_Bool (*)(Ewk_View_Smart_Class *))dlsym(ewk_handle, "ewk_view_single_smart_set");
+ ewk_view_single_smart_set(&api);
+ if (EINA_UNLIKELY(!_parent_sc.sc.add))
+ ewk_view_single_smart_set(&_parent_sc);
+ }
+ //TODO: add apis
+ dlclose(ewk_handle);
+ }
+
+ if (!smart)
+ return NULL;
+
+ obj = evas_object_smart_add(e, smart);
+ if (!obj)
+ return NULL;
+
+ /*TODO:
+ View_Smart_Data *sd = evas_object_smart_data_get(obj);
+ if (sd)
+ sd->tiled = tiled;
*/
+ /*
+ ewk_init = (int (*)())dlsym(ewk_handle, "ewk_init");
+ ewk_view_add = (Evas_Object *(*)(Evas *))dlsym(ewk_handle, "ewk_view_tiled_add");
+ ewk_view_uri_set = (Eina_Bool (*)(Evas_Object *, const char *))dlsym(ewk_handle, "ewk_view_uri_set");
+
+ e = evas_object_evas_get(parent);
+ ewk_init();
+ obj = ewk_view_add(e);
+ ewk_view_uri_set(obj, "file:///a.html");
+ evas_object_show(obj);
+ */
return obj;
#else
return NULL;