$(adaptor_text_ubuntu_src_files) \
$(adaptor_resampler_src_files) \
$(adaptor_video_common_src_files) \
+ $(adaptor_web_engine_common_src_files) \
$(adaptor_window_system_common_src_files) \
$(adaptor_trace_common_src_files) \
$(adaptor_window_system_ubuntu_x11_src_files) \
$(adaptor_text_common_src_files) \
$(adaptor_resampler_src_files) \
$(adaptor_video_common_src_files) \
+ $(adaptor_web_engine_common_src_files) \
$(adaptor_window_system_common_src_files) \
$(adaptor_window_system_tizen_mobile_src_files) \
$(adaptor_window_system_tizen_src_files) \
$(adaptor_text_common_src_files) \
$(adaptor_resampler_src_files) \
$(adaptor_video_common_src_files) \
+ $(adaptor_web_engine_common_src_files) \
$(adaptor_window_system_common_src_files) \
$(adaptor_window_system_tizen_src_files) \
$(adaptor_window_system_tizen_wayland_src_files) \
$(adaptor_text_common_src_files) \
$(adaptor_resampler_src_files) \
$(adaptor_video_common_src_files) \
+ $(adaptor_web_engine_common_src_files) \
$(adaptor_window_system_common_src_files) \
$(adaptor_window_system_tizen_src_files) \
$(adaptor_window_system_tizen_wayland_src_files) \
$(adaptor_text_common_src_files) \
$(adaptor_resampler_src_files) \
$(adaptor_video_common_src_files) \
+ $(adaptor_web_engine_common_src_files) \
$(adaptor_window_system_common_src_files) \
$(adaptor_window_system_tizen_src_files) \
$(adaptor_window_system_tizen_wayland_src_files) \
$(adaptor_text_common_src_files) \
$(adaptor_resampler_src_files) \
$(adaptor_video_common_src_files) \
+ $(adaptor_web_engine_common_src_files) \
$(adaptor_window_system_common_src_files) \
$(adaptor_window_system_tizen_src_files) \
$(adaptor_window_system_tizen_wayland_src_files) \
adaptor_video_dir = ../../../dali/internal/video
include ../../../dali/internal/video/file.list
-# Module: window-system
+# Module: web-engine-lite
+adaptor_web_engine_dir = ../../../dali/internal/web-engine-lite
+include ../../../dali/internal/web-engine-lite/file.list
+
+# Module: window-system
adaptor_window_system_dir = ../../../dali/internal/window-system
include ../../../dali/internal/window-system/file.list
[enable_feedback=yes],
[enable_feedback=no])
+AC_ARG_ENABLE([web_engine_lite],
+ [AC_HELP_STRING([ --enable-web-engine-lite],
+ [Enable web engine lite plugin])],
+ [enable_web_engine_lite=yes],
+ [enable_web_engine_lite=no])
+
AC_CONFIG_SUBDIRS(adaptor)
-if test "x$enable_feedback" = "xyes"; then
+if test "x$enable_feedback" = "xyes"|| test "x$enable_web_engine_lite" = "xyes"; then
# build dali-adaptor & plugins
AC_CONFIG_SUBDIRS(plugins)
fi
lib_LTLIBRARIES += libdali-feedback-plugin.la
endif
+if USE_WEBENGINELITE
+lib_LTLIBRARIES += libdali-web-engine-lite-plugin.la
+endif
+
else # ENABLE_CXX03_ABI
if USE_FEEDBACK
lib_LTLIBRARIES += libdali-feedback-plugin-cxx11.la
endif
+if USE_WEBENGINELITE
+lib_LTLIBRARIES += libdali-web-engine-lite-plugin-cxx11.la
+endif
+
endif # ENABLE_CXX03_ABI
if USE_FEEDBACK
endif
+if USE_WEBENGINELITE
+LIBDALI_WEB_ENGINE_LITE_PLUGIN_LA_SOURCES = \
+ $(web_engine_lite_plugin_src_files)
+
+libdali_web_engine_lite_plugin_la_DEPENDENCIES =
+
+LIBDALI_WEB_ENGINE_LITE_PLUGIN_LA_CXXFLAGS = -DDALI_COMPILATION \
+ $(DLOG_CFLAGS) \
+ $(DALICORE_CFLAGS) \
+ $(WEB_ENGINE_LITE_CFLAGS) \
+ $(DALI_PROFILE_CFLAGS) \
+ $(DALI_ADAPTOR_CFLAGS) \
+ -I../../../adaptors/public-api \
+ -I../../../adaptors/integration-api \
+ -I../../../adaptors/public-api/adaptor-framework \
+ -I../../../adaptors/devel-api/adaptor-framework \
+ -I/usr/include/lightweight-web-engine \
+ -Werror -Wall
+
+LIBDALI_WEB_ENGINE_LITE_PLUGIN_LA_LIBADD = \
+ $(DALICORE_LIBS) \
+ $(DLOG_LIBS) \
+ -llightweight-web-engine
+
+LIBDALI_WEB_ENGINE_LITE_PLUGIN_LA_LDFLAGS = \
+ -rdynamic
+
+endif # WEB_ENGINE_LITE
+
if ENABLE_CXX03_ABI
if USE_FEEDBACK
endif
endif
+if USE_WEBENGINELITE
+libdali_web_engine_lite_plugin_la_SOURCES = $(LIBDALI_WEB_ENGINE_LITE_PLUGIN_LA_SOURCES)
+libdali_web_engine_lite_plugin_la_LIBADD = $(LIBDALI_WEB_ENGINE_LITE_PLUGIN_LA_LIBADD)
+libdali_web_engine_lite_plugin_la_CXXFLAGS = $(LIBDALI_WEB_ENGINE_LITE_PLUGIN_LA_CXXFLAGS)
+libdali_web_engine_lite_plugin_la_LDFLAGS = $(LIBDALI_WEB_ENGINE_LITE_PLUGIN_LA_LDFLAGS)
+
+if ENABLE_RENAME_SO
+#rename
+install: install-am
+ rm -rf $(libdir)/libdali_web_engine_lite_plugin.so
+ rm -rf $(libdir)/libdali_web_engine_lite_plugin-cxx03.so
+ ln -s $(libdir)/libdali_web_engine_lite_plugin.so.0.0.* $(libdir)/libdali_web_engine_lite_plugin-cxx03.so
+endif
+endif
+
else # CXX03
if USE_FEEDBACK
endif
endif
+if USE_WEBENGINELITE
+libdali_web_engine_lite_plugin_cxx11_la_SOURCES = $(LIBDALI_WEB_ENGINE_LITE_PLUGIN_LA_SOURCES)
+libdali_web_engine_lite_plugin_cxx11_la_LIBADD = $(LIBDALI_WEB_ENGINE_LITE_PLUGIN_LA_LIBADD)
+libdali_web_engine_lite_plugin_cxx11_la_CXXFLAGS = $(LIBDALI_WEB_ENGINE_LITE_PLUGIN_LA_CXXFLAGS)
+libdali_web_engine_lite_plugin_cxx11_la_LDFLAGS = $(LIBDALI_WEB_ENGINE_LITE_PLUGIN_LA_LDFLAGS)
+
+if ENABLE_RENAME_SO
+#rename
+install: install-am
+ rm -rf $(libdir)/libdali_web_engine_lite_plugin-cxx11.so
+ rm -rf $(libdir)/libdali_web_engine_lite_plugin.so
+ ln -s $(libdir)/libdali_web_engine_lite_plugin-cxx11.so.0.0.* $(libdir)/libdali_web_engine_lite_plugin.so
+endif
+endif
+
endif # CXX03
AM_CONDITIONAL([WAYLAND], [test x$enable_wayland = xyes])
AM_CONDITIONAL([USE_FEEDBACK], [test x$enable_feedback = xyes])
+AM_CONDITIONAL([USE_WEBENGINELITE], [test x$enable_web_engine_lite = xyes])
AM_CONDITIONAL([ENABLE_CXX03_ABI], [test x$enable_cxx03_abi = xyes])
AM_CONDITIONAL([ENABLE_RENAME_SO], [test x$enable_rename_so = xyes])
fi # check UNBUNTU
fi # enable_feedback
+if test "x$enable_web_engine_lite" = "xyes"; then
+if test "x$enable_profile" != "xUBUNTU"; then
+
+PKG_CHECK_MODULES(FEEDBACK, feedback)
+PKG_CHECK_MODULES(WEBENGINELITE, lightweight-web-engine)
+#PKG_CHECK_MODULES(MMFSOUND, mm-sound)
+
+fi # check UNBUNTU
+fi # enable_web_engine_lite
+
AC_CONFIG_FILES(Makefile)
AC_OUTPUT
--- /dev/null
+#ifndef __DALI_WEBENGINELITE_PLUGIN_H__
+#define __DALI_WEBENGINELITE_PLUGIN_H__
+
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// EXTERNAL INCLUDES
+#include <dali/public-api/signals/dali-signal.h>
+
+namespace Dali
+{
+
+/**
+ * @brief WebEngineLitePlugin is an abstract interface, used by dali-adaptor to access WebEngineLite plugin.
+ * A concrete implementation must be created for each platform and provided as dynamic library.
+ */
+class WebEngineLitePlugin
+{
+public:
+
+ typedef Signal< void () > WebEngineLiteSignalType;
+
+ /**
+ * @brief Constructor.
+ */
+ WebEngineLitePlugin(){}
+
+ /**
+ * @brief Destructor.
+ */
+ virtual ~WebEngineLitePlugin(){}
+
+ /**
+ * @brief Creates WebEngineLite instance.
+ *
+ * @param [in] width The width of Web
+ * @param [in] height The height of Web
+ * @param [in] windowX The x position of window
+ * @param [in] windowY The y position of window
+ * @param [in] locale The locale of Web
+ * @param [in] timezoneID The timezoneID of Web
+ */
+ virtual void CreateInstance(int width, int height, int windowX, int windowY, const std::string& locale, const std::string& timezoneID) = 0;
+
+ /**
+ * @brief Destroys WebEngineLite instance.
+ */
+ virtual void DestroyInstance() = 0;
+
+ /**
+ * @brief Loads a html.
+ *
+ * @param [in] path The path of Web
+ */
+ virtual void LoadHtml(const std::string& path) = 0;
+
+ /**
+ * @brief Connect to this signal to be notified when a web view has finished.
+ *
+ * @return A signal object to connect with.
+ */
+ virtual WebEngineLiteSignalType& FinishedSignal() = 0;
+
+};
+
+} // namespace Dali;
+
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// CLASS HEADER
+#include "web-engine-lite.h"
+
+// INTERNAL INCLUDES
+#include <dali/internal/web-engine-lite/common/web-engine-lite-impl.h>
+
+namespace Dali
+{
+
+WebEngineLite::WebEngineLite()
+{
+}
+
+WebEngineLite::WebEngineLite( Internal::Adaptor::WebEngineLite* internal )
+: BaseHandle( internal )
+{
+}
+
+WebEngineLite::~WebEngineLite()
+{
+}
+
+WebEngineLite WebEngineLite::New()
+{
+ Internal::Adaptor::WebEngineLitePtr webEngineLite = Internal::Adaptor::WebEngineLite::New();
+
+ if( webEngineLite )
+ {
+ webEngineLite->Initialize();
+ }
+
+ return WebEngineLite( webEngineLite.Get() );
+}
+
+WebEngineLite::WebEngineLite( const WebEngineLite& webEngineLite )
+: BaseHandle( webEngineLite )
+{
+}
+
+WebEngineLite& WebEngineLite::operator=( const WebEngineLite& webEngineLite )
+{
+ if( *this != webEngineLite )
+ {
+ BaseHandle::operator=( webEngineLite );
+ }
+ return *this;
+}
+
+WebEngineLite WebEngineLite::DownCast( BaseHandle handle )
+{
+ return WebEngineLite( dynamic_cast< Internal::Adaptor::WebEngineLite* >( handle.GetObjectPtr() ) );
+}
+
+void WebEngineLite::CreateInstance(int width, int height, int windowX, int windowY, const std::string& locale, const std::string& timezoneID)
+{
+ GetImplementation( *this ).CreateInstance(width, height, windowX, windowY, locale, timezoneID);
+}
+
+void WebEngineLite::DestroyInstance()
+{
+ GetImplementation( *this ).DestroyInstance();
+}
+
+void WebEngineLite::LoadHtml(const std::string& path)
+{
+ return GetImplementation( *this ).LoadHtml(path);
+}
+
+Dali::WebEngineLitePlugin::WebEngineLiteSignalType& WebEngineLite::FinishedSignal()
+{
+ return GetImplementation( *this ).FinishedSignal();
+}
+
+} // namespace Dali;
+
--- /dev/null
+#ifndef __DALI_WEBENGINELITE_H__
+#define __DALI_WEBENGINELITE_H__
+
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// EXTERNAL INCLUDES
+#include <dali/public-api/object/base-handle.h>
+
+//INTERNAL INCLUDES
+#include "web-engine-lite-plugin.h"
+
+namespace Dali
+{
+
+namespace Internal
+{
+
+namespace Adaptor
+{
+ class WebEngineLite;
+} // namespace Adaptor
+
+} // namespace Internal
+
+/**
+ * @brief WebEngineLite class is used for Web.
+ */
+class DALI_IMPORT_API WebEngineLite: public BaseHandle
+{
+public:
+
+ /**
+ * @brief Constructor.
+ */
+ WebEngineLite();
+
+ /**
+ * @brief Destructor.
+ */
+ ~WebEngineLite();
+
+ /**
+ * @brief Creates a new instance of a WebEngineLite.
+ */
+ static WebEngineLite New();
+
+ /**
+ * @brief Copy constructor.
+ *
+ * @param[in] webEngineLite WebEngineLite to copy. The copied webEngineLite will point at the same implementation
+ */
+ WebEngineLite( const WebEngineLite& webEngineLite );
+
+ /**
+ * @brief Assignment operator.
+ *
+ * @param[in] webEngineLite The WebEngineLite to assign from.
+ * @return The updated WebEngineLite.
+ */
+ WebEngineLite& operator=( const WebEngineLite& webEngineLite );
+
+ /**
+ * @brief Downcast a handle to WebEngineLite handle.
+ *
+ * If handle points to a WebEngineLite the downcast produces valid
+ * handle. If not the returned handle is left uninitialized.
+ *
+ * @param[in] handle Handle to an object
+ * @return Handle to a WebEngineLite or an uninitialized handle
+ */
+ static WebEngineLite DownCast( BaseHandle handle );
+
+ /**
+ * @brief Creates WebEngineLite instance.
+ *
+ * @param [in] width The width of Web
+ * @param [in] height The height of Web
+ * @param [in] windowX The x position of window
+ * @param [in] windowY The y position of window
+ * @param [in] locale The locale of Web
+ * @param [in] timezoneID The timezoneID of Web
+ */
+ void CreateInstance(int width, int height, int windowX, int windowY, const std::string& locale, const std::string& timezoneID);
+
+ /**
+ * @brief Destroys WebEngineLite instance.
+ */
+ void DestroyInstance();
+
+ /**
+ * @brief Loads a html.
+ *
+ * @param [in] path The path of Web
+ */
+ void LoadHtml(const std::string& path);
+
+ /**
+ * @brief Connect to this signal to be notified when a web view has finished.
+ *
+ * @return A signal object to connect with.
+ */
+ Dali::WebEngineLitePlugin::WebEngineLiteSignalType& FinishedSignal();
+
+private: // Not intended for application developers
+
+ /**
+ * @brief Internal constructor
+ */
+ explicit DALI_INTERNAL WebEngineLite( Internal::Adaptor::WebEngineLite* internal );
+};
+
+} // namespace Dali;
+
+#endif
+
$(adaptor_devel_api_dir)/adaptor-framework/tilt-sensor.cpp \
$(adaptor_devel_api_dir)/adaptor-framework/lifecycle-controller.cpp \
$(adaptor_devel_api_dir)/adaptor-framework/video-player.cpp \
- $(adaptor_devel_api_dir)/adaptor-framework/virtual-keyboard.cpp
+ $(adaptor_devel_api_dir)/adaptor-framework/virtual-keyboard.cpp \
+ $(adaptor_devel_api_dir)/adaptor-framework/web-engine-lite.cpp
devel_api_adaptor_framework_header_files = \
$(adaptor_devel_api_dir)/adaptor-framework/tilt-sensor.h \
$(adaptor_devel_api_dir)/adaptor-framework/video-player.h \
$(adaptor_devel_api_dir)/adaptor-framework/video-player-plugin.h \
+ $(adaptor_devel_api_dir)/adaptor-framework/web-engine-lite.h \
+ $(adaptor_devel_api_dir)/adaptor-framework/web-engine-lite-plugin.h \
$(adaptor_devel_api_dir)/adaptor-framework/key-extension-plugin.h \
$(adaptor_devel_api_dir)/adaptor-framework/virtual-keyboard.h \
$(adaptor_devel_api_dir)/adaptor-framework/physical-keyboard.h \
--- /dev/null
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// CLASS HEADER
+#include "web-engine-lite-impl.h"
+
+// EXTERNAL INCLUDES
+#include <dlfcn.h>
+#include <dali/integration-api/debug.h>
+#include <dali/public-api/object/type-registry.h>
+#include <dali/public-api/object/any.h>
+
+
+namespace Dali
+{
+
+namespace Internal
+{
+
+namespace Adaptor
+{
+
+namespace // unnamed namespace
+{
+const char* WEB_ENGINE_LITE_PLUGIN_SO( "libdali-web-engine-lite-plugin.so" );
+
+Dali::BaseHandle Create()
+{
+ return Dali::WebEngineLite::New();
+}
+
+Dali::TypeRegistration type( typeid( Dali::WebEngineLite ), typeid( Dali::BaseHandle ), Create );
+
+} // unnamed namespace
+
+WebEngineLitePtr WebEngineLite::New()
+{
+ WebEngineLitePtr webEngineLite = new WebEngineLite();
+ return webEngineLite;
+}
+
+WebEngineLite::WebEngineLite()
+: mPlugin( NULL ),
+ mHandle( NULL ),
+ mCreateWebEngineLitePtr( NULL ),
+ mDestroyWebEngineLitePtr( NULL )
+{
+}
+
+WebEngineLite::~WebEngineLite()
+{
+ if( mHandle != NULL )
+ {
+ if( mDestroyWebEngineLitePtr != NULL )
+ {
+ mDestroyWebEngineLitePtr( mPlugin );
+ }
+
+ dlclose( mHandle );
+ }
+}
+
+void WebEngineLite::Initialize()
+{
+ char* error = NULL;
+
+ mHandle = dlopen( WEB_ENGINE_LITE_PLUGIN_SO, RTLD_LAZY );
+
+ error = dlerror();
+ if( mHandle == NULL || error != NULL )
+ {
+ DALI_LOG_ERROR( "WebEngineLite::Initialize(), dlopen error: %s\n", error );
+ return;
+ }
+
+ mCreateWebEngineLitePtr = reinterpret_cast< CreateWebEngineLiteFunction >( dlsym( mHandle, "CreateWebEngineLitePlugin" ) );
+ if( mCreateWebEngineLitePtr == NULL )
+ {
+ DALI_LOG_ERROR( "Can't load symbol CreateWebEngineLitePlugin(), error: %s\n", error );
+ return;
+ }
+
+ mPlugin = mCreateWebEngineLitePtr();
+
+ if( mPlugin == NULL )
+ {
+ DALI_LOG_ERROR( "Can't create the WebEngineLitePlugin object\n" );
+ return;
+ }
+
+ mDestroyWebEngineLitePtr = reinterpret_cast< DestroyWebEngineLiteFunction >( dlsym( mHandle, "DestroyWebEngineLitePlugin" ) );
+ if( mDestroyWebEngineLitePtr == NULL )
+ {
+ DALI_LOG_ERROR( "Can't load symbol DestroyWebEngineLitePlugin(), error: %s\n", error );
+ return;
+ }
+
+}
+
+void WebEngineLite::CreateInstance(int width, int height, int windowX, int windowY, const std::string& locale, const std::string& timezoneID)
+{
+ if( mPlugin != NULL )
+ {
+ mPlugin->CreateInstance(width, height, windowX, windowY, locale, timezoneID);
+ }
+}
+
+void WebEngineLite::DestroyInstance()
+{
+ if( mPlugin != NULL )
+ {
+ mPlugin->DestroyInstance();
+ }
+}
+
+void WebEngineLite::LoadHtml(const std::string& path)
+{
+ if( mPlugin != NULL )
+ {
+ mPlugin->LoadHtml(path);
+ }
+}
+
+Dali::WebEngineLitePlugin::WebEngineLiteSignalType& WebEngineLite::FinishedSignal()
+{
+ if( mPlugin != NULL )
+ {
+ return mPlugin->FinishedSignal();
+ }
+
+ return mFinishedSignal;
+}
+
+} // namespace Adaptor;
+} // namespace Internal;
+} // namespace Dali;
+
--- /dev/null
+#ifndef __DALI_WEBENGINELITE_IMPL_H__
+#define __DALI_WEBENGINELITE_IMPL_H__
+
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// EXTERNAL INCLUDES
+#include <dali/public-api/object/base-object.h>
+
+// INTERNAL INCLUDES
+#include <dali/devel-api/adaptor-framework/web-engine-lite.h>
+#include <dali/devel-api/adaptor-framework/web-engine-lite-plugin.h>
+
+namespace Dali
+{
+class Any;
+
+namespace Internal
+{
+
+namespace Adaptor
+{
+
+class WebEngineLite;
+
+typedef IntrusivePtr< WebEngineLite > WebEngineLitePtr;
+
+/**
+ * @brief WebEngineLite class is used for Web.
+ */
+class WebEngineLite: public Dali::BaseObject
+{
+public:
+
+ /**
+ * @brief Creates a new WebEngineLite handle
+ *
+ * @return WebEngineLite pointer
+ */
+ static WebEngineLitePtr New();
+
+ /**
+ * @copydoc Dali::WebEngineLite::CreateInstance()
+ */
+ void CreateInstance(int width, int height, int windowX, int windowY, const std::string& locale, const std::string& timezoneID);
+
+ /**
+ * @copydoc Dali::WebEngineLite::DestroyInstance()
+ */
+ void DestroyInstance();
+
+ /**
+ * @copydoc Dali::WebEngineLite::LoadHtml()
+ */
+ void LoadHtml(const std::string& path);
+
+ /**
+ * @copydoc Dali::WebEngineLite::FinishedSignal()
+ */
+ Dali::WebEngineLitePlugin::WebEngineLiteSignalType& FinishedSignal();
+
+ /**
+ * @brief Initializes member data.
+ */
+ void Initialize();
+
+private:
+
+ /**
+ * @brief Constructor.
+ */
+ WebEngineLite();
+
+ /**
+ * @brief Destructor.
+ */
+ virtual ~WebEngineLite();
+
+ // Undefined copy constructor
+ WebEngineLite( const WebEngineLite& webEngineLite );
+
+ // Undefined assignment operator
+ WebEngineLite& operator=( const WebEngineLite& webEngineLite );
+
+private:
+
+ Dali::WebEngineLitePlugin* mPlugin; ///< WebEngineLite plugin handle
+ void* mHandle; ///< Handle for the loaded library
+
+ typedef Dali::WebEngineLitePlugin* (*CreateWebEngineLiteFunction)();
+ typedef void (*DestroyWebEngineLiteFunction)( Dali::WebEngineLitePlugin* plugin );
+
+ CreateWebEngineLiteFunction mCreateWebEngineLitePtr;
+ DestroyWebEngineLiteFunction mDestroyWebEngineLitePtr;
+
+ Dali::WebEngineLitePlugin::WebEngineLiteSignalType mFinishedSignal;
+};
+
+} // namespace Adaptor
+} // namespace Internal
+
+inline static Internal::Adaptor::WebEngineLite& GetImplementation( Dali::WebEngineLite& webEngineLite )
+{
+ DALI_ASSERT_ALWAYS( webEngineLite && "WebEngineLite handle is empty." );
+
+ BaseObject& handle = webEngineLite.GetBaseObject();
+
+ return static_cast< Internal::Adaptor::WebEngineLite& >( handle );
+}
+
+inline static const Internal::Adaptor::WebEngineLite& GetImplementation( const Dali::WebEngineLite& webEngineLite )
+{
+ DALI_ASSERT_ALWAYS( webEngineLite && "WebEngineLite handle is empty." );
+
+ const BaseObject& handle = webEngineLite.GetBaseObject();
+
+ return static_cast< const Internal::Adaptor::WebEngineLite& >( handle );
+}
+
+} // namespace Dali;
+
+#endif
+
--- /dev/null
+
+
+# module: web-engine, backend: common
+adaptor_web_engine_common_src_files=\
+ ${adaptor_web_engine_dir}/common/web-engine-lite-impl.cpp
BuildRequires: pkgconfig(feedback)
%endif
+# for Web Engine Lite Plugin
+%if 0%{?enable_web_engine_lite}
+BuildRequires: lightweight-web-engine
+BuildRequires: lightweight-web-engine-devel
+%endif
+
# for multiprofile
Requires: %{name}-compat = %{version}-%{release}
Recommends: %{name}-profile_common = %{version}-%{release}
%description dali-feedback-plugin
Feedback plugin to play haptic and audio feedback for Dali
+##############################
+# Dali WebEngineLite Plugin
+##############################
+
+%package dali-web-engine-lite-plugin
+Summary: Plugin WebEngineLite for Dali
+Group: System/Libraries
+%description dali-web-engine-lite-plugin
+WebEngineLite plugin for Dali
+
%if !0%{?disable_cxx03_build}
##############################
# Dali Feedback Plugin cxx03
%description dali-feedback-plugin-cxx03
Feedback plugin to play haptic and audio feedback for Dali
+##############################
+# Dali WebEngineLite Plugin
+##############################
+
+%package dali-web-engine-lite-plugin-cxx03
+Summary: Plugin WebEngineLite for Dali with cxx03 abi
+Group: System/Libraries
+%description dali-web-engine-lite-plugin-cxx03
+WebEngineLite plugin for Dali
%endif
##############################
%else
--enable-efl=yes \
%endif
+%if 0%{?enable_web_engine_lite}
+ --enable-web-engine-lite \
+%endif
%if 0%{?enable_debug}
--enable-debug \
%endif
%else
--enable-efl=yes \
%endif
+%if 0%{?enable_web_engine_lite}
+ --enable-web-engine-lite \
+%endif
%if 0%{?enable_debug}
--enable-debug \
%endif
%else
--enable-efl=yes \
%endif
+%if 0%{?enable_web_engine_lite}
+ --enable-web-engine-lite \
+%endif
%if 0%{?enable_debug}
--enable-debug \
%endif
%else
--enable-efl=yes \
%endif
+%if 0%{?enable_web_engine_lite}
+ --enable-web-engine-lite \
+%endif
%if 0%{?enable_debug}
--enable-debug \
%endif
%else
--enable-efl=yes \
%endif
+%if 0%{?enable_web_engine_lite}
+ --enable-web-engine-lite \
+%endif
%if 0%{?enable_debug}
--enable-debug \
%endif
%else
--enable-efl=yes \
%endif
+%if 0%{?enable_web_engine_lite}
+ --enable-web-engine-lite \
+%endif
%if 0%{?enable_debug}
--enable-debug \
%endif
%else
--enable-efl=yes \
%endif
+%if 0%{?enable_web_engine_lite}
+ --enable-web-engine-lite \
+%endif
%if 0%{?enable_debug}
--enable-debug \
%endif
%else
--enable-efl=yes \
%endif
+%if 0%{?enable_web_engine_lite}
+ --enable-web-engine-lite \
+%endif
%if 0%{?enable_debug}
--enable-debug \
%endif
%else
--enable-efl=yes \
%endif
+%if 0%{?enable_web_engine_lite}
+ --enable-web-engine-lite \
+%endif
%if 0%{?enable_debug}
--enable-debug \
%endif
%else
--enable-efl=yes \
%endif
+%if 0%{?enable_web_engine_lite}
+ --enable-web-engine-lite \
+%endif
%if 0%{?enable_debug}
--enable-debug \
%endif
/sbin/ldconfig
exit 0
+#%if %{with wayland}
+%post dali-web-engine-lite-plugin
+/sbin/ldconfig
+exit 0
+#%endif
+
##############################
# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
#%endif
%if 0%{?tizen_version_major} >= 3
+%if 0%{?enable_web_engine_lite}
+%files dali-web-engine-lite-plugin-cxx03
+%manifest dali-adaptor.manifest
+%defattr(-,root,root,-)
+%{_libdir}/libdali-web-engine-lite-plugin.so*
+%license LICENSE
+%endif
+
%files dali-feedback-plugin-cxx03
%manifest dali-adaptor.manifest
%defattr(-,root,root,-)
#################################################
%if 0%{?tizen_version_major} >= 3
+%if 0%{?enable_web_engine_lite}
+%files dali-web-engine-lite-plugin
+%manifest dali-adaptor.manifest
+%defattr(-,root,root,-)
+%{_libdir}/libdali-web-engine-lite-plugin-cxx11.so*
+%license LICENSE
+%endif
+
%files dali-feedback-plugin
%manifest dali-adaptor.manifest
%defattr(-,root,root,-)
feedback_plugin_src_files = \
$(plugin_src_dir)/dali-feedback.cpp
+
+web_engine_lite_plugin_src_files = \
+ $(plugin_src_dir)/tizen-web-engine-lite.cpp
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// CLASS HEADER
+#include "tizen-web-engine-lite.h"
+
+// The plugin factories
+extern "C" DALI_EXPORT_API Dali::WebEngineLitePlugin* CreateWebEngineLitePlugin( void )
+{
+ return new Dali::Plugin::TizenWebEngineLite;
+}
+
+extern "C" DALI_EXPORT_API void DestroyWebEngineLitePlugin( Dali::WebEngineLitePlugin* plugin )
+{
+ if( plugin != NULL )
+ {
+ delete plugin;
+ }
+}
+
+namespace Dali
+{
+
+namespace Plugin
+{
+
+namespace
+{
+} // unnamed namespace
+
+TizenWebEngineLite::TizenWebEngineLite()
+: mWebEngineLiteInstance( NULL )
+{
+}
+
+TizenWebEngineLite::~TizenWebEngineLite()
+{
+}
+
+void TizenWebEngineLite::CreateInstance(int width, int height, int windowX, int windowY, const std::string& locale, const std::string& timezoneID)
+{
+ mWebEngineLiteInstance = starfishCreate(NULL, width, height, windowX, windowY, locale.c_str(), timezoneID.c_str(), 1);
+}
+
+void TizenWebEngineLite::DestroyInstance()
+{
+ starfishRemove(mWebEngineLiteInstance);
+}
+
+void TizenWebEngineLite::LoadHtml(const std::string& path)
+{
+ starfishLoadHTMLDocument(mWebEngineLiteInstance, path.c_str());
+}
+
+Dali::WebEngineLitePlugin::WebEngineLiteSignalType& TizenWebEngineLite::FinishedSignal()
+{
+ return mFinishedSignal;
+}
+
+} // namespace Plugin
+} // namespace Dali;
--- /dev/null
+#ifndef __DALI_TIZEN_WebEngineLite_PLUGIN_H__
+#define __DALI_TIZEN_WebEngineLite_PLUGIN_H__
+
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// EXTERNAL INCLUDES
+#include <dali/devel-api/threading/mutex.h>
+#include <string>
+
+// INTERNAL INCLUDES
+#include "StarFishPublic.h"
+#include <dali/devel-api/adaptor-framework/web-engine-lite-plugin.h>
+#include <timer.h>
+
+namespace Dali
+{
+
+namespace Plugin
+{
+
+/**
+ * @brief Implementation of the Tizen WebEngineLite class which has Tizen platform dependency.
+ */
+class TizenWebEngineLite : public Dali::WebEngineLitePlugin, public Dali::ConnectionTracker
+{
+public:
+
+ /**
+ * @brief Constructor.
+ */
+ TizenWebEngineLite();
+
+ /**
+ * @brief Destructor.
+ */
+ virtual ~TizenWebEngineLite();
+
+ /**
+ * @copydoc Dali::WebEngineLitePlugin::CreateInstance()
+ */
+ virtual void CreateInstance(int width, int height, int windowX, int windowY, const std::string& locale, const std::string& timezoneID);
+
+ /**
+ * @copydoc Dali::WebEngineLitePlugin::DestroyInstance()
+ */
+ virtual void DestroyInstance();
+
+ /**
+ * @copydoc Dali::WebEngineLitePlugin::LoadHtml()
+ */
+ virtual void LoadHtml(const std::string& path);
+
+ /**
+ * @copydoc Dali::WebEngineLitePlugin::FinishedSignal()
+ */
+ virtual Dali::WebEngineLitePlugin::WebEngineLiteSignalType& FinishedSignal();
+
+private:
+ StarFishInstance* mWebEngineLiteInstance;
+
+public:
+
+ Dali::WebEngineLitePlugin::WebEngineLiteSignalType mFinishedSignal;
+};
+
+} // namespace Plugin
+} // namespace Dali;
+
+#endif