Modified folder structure of widget viewer dali and fixed build issue 67/146967/6 master accepted/tizen/4.0/unified/20170920.081503 accepted/tizen/unified/20170918.093931 accepted/tizen/unified/20170920.081213 submit/tizen/20170915.115150 submit/tizen/20170918.083101 submit/tizen_4.0/20170915.115230 submit/tizen_4.0/20170918.082934
authortaeyoon0.lee <taeyoon0.lee@samsung.com>
Thu, 31 Aug 2017 09:39:18 +0000 (18:39 +0900)
committertaeyoon0.lee <taeyoon0.lee@samsung.com>
Fri, 15 Sep 2017 06:16:42 +0000 (15:16 +0900)
Change-Id: Ia6257f12c0a508059569822bc894b61d95067bb1

136 files changed:
CMakeLists.txt [deleted file]
build/tizen/CMakeLists.txt [new file with mode: 0644]
build/tizen/po/CMakeLists.txt [new file with mode: 0644]
build/tizen/widget_viewer_dali.pc.in [new file with mode: 0644]
images/unknown.png [deleted file]
internal/widget_view/widget_view_impl.cpp [deleted file]
internal/widget_view/widget_view_impl.h [deleted file]
internal/widget_view_manager/widget_view_manager_impl.cpp [deleted file]
internal/widget_view_manager/widget_view_manager_impl.h [deleted file]
libwidget_viewer_dali.manifest [new file with mode: 0644]
packaging/widget-viewer-dali.spec [new file with mode: 0644]
po/CMakeLists.txt [deleted file]
po/ar.po [deleted file]
po/as.po [deleted file]
po/az.po [deleted file]
po/be_BY.po [deleted file]
po/bn.po [deleted file]
po/bn_BD.po [deleted file]
po/de.po [deleted file]
po/en.po [deleted file]
po/en_PH.po [deleted file]
po/en_US.po [deleted file]
po/es_ES.po [deleted file]
po/es_US.po [deleted file]
po/fa.po [deleted file]
po/fr.po [deleted file]
po/gu.po [deleted file]
po/hi.po [deleted file]
po/hy.po [deleted file]
po/id.po [deleted file]
po/it_IT.po [deleted file]
po/jv.po [deleted file]
po/ka.po [deleted file]
po/kk.po [deleted file]
po/km.po [deleted file]
po/kn.po [deleted file]
po/ko_KR.po [deleted file]
po/ky_KG.po [deleted file]
po/lo.po [deleted file]
po/ml.po [deleted file]
po/mn_MN.po [deleted file]
po/mr.po [deleted file]
po/ms.po [deleted file]
po/my_ZG.po [deleted file]
po/ne.po [deleted file]
po/or.po [deleted file]
po/pa.po [deleted file]
po/pt_BR.po [deleted file]
po/pt_PT.po [deleted file]
po/ru_RU.po [deleted file]
po/si.po [deleted file]
po/su_ID.po [deleted file]
po/ta.po [deleted file]
po/te.po [deleted file]
po/tg_TJ.po [deleted file]
po/th.po [deleted file]
po/tk_TM.po [deleted file]
po/tl.po [deleted file]
po/tr_TR.po [deleted file]
po/uk.po [deleted file]
po/ur.po [deleted file]
po/uz.po [deleted file]
po/vi.po [deleted file]
po/xh.po [deleted file]
po/zh_CN.po [deleted file]
po/zu.po [deleted file]
public_api/widget_view/widget_view.cpp [deleted file]
public_api/widget_view/widget_view.h [deleted file]
public_api/widget_view_manager/widget_view_manager.cpp [deleted file]
public_api/widget_view_manager/widget_view_manager.h [deleted file]
public_api/widget_viewer_dali.h [deleted file]
widget_viewer_dali.pc.in [deleted file]
widget_viewer_dali/images/unknown.png [new file with mode: 0644]
widget_viewer_dali/internal/widget_view/widget_view_impl.cpp [new file with mode: 0644]
widget_viewer_dali/internal/widget_view/widget_view_impl.h [new file with mode: 0644]
widget_viewer_dali/internal/widget_view_manager/widget_view_manager_impl.cpp [new file with mode: 0644]
widget_viewer_dali/internal/widget_view_manager/widget_view_manager_impl.h [new file with mode: 0644]
widget_viewer_dali/po/ar.po [new file with mode: 0755]
widget_viewer_dali/po/as.po [new file with mode: 0755]
widget_viewer_dali/po/az.po [new file with mode: 0755]
widget_viewer_dali/po/be_BY.po [new file with mode: 0755]
widget_viewer_dali/po/bn.po [new file with mode: 0755]
widget_viewer_dali/po/bn_BD.po [new file with mode: 0755]
widget_viewer_dali/po/de.po [new file with mode: 0755]
widget_viewer_dali/po/en.po [new file with mode: 0755]
widget_viewer_dali/po/en_PH.po [new file with mode: 0755]
widget_viewer_dali/po/en_US.po [new file with mode: 0755]
widget_viewer_dali/po/es_ES.po [new file with mode: 0755]
widget_viewer_dali/po/es_US.po [new file with mode: 0755]
widget_viewer_dali/po/fa.po [new file with mode: 0755]
widget_viewer_dali/po/fr.po [new file with mode: 0755]
widget_viewer_dali/po/gu.po [new file with mode: 0755]
widget_viewer_dali/po/hi.po [new file with mode: 0755]
widget_viewer_dali/po/hy.po [new file with mode: 0755]
widget_viewer_dali/po/id.po [new file with mode: 0755]
widget_viewer_dali/po/it_IT.po [new file with mode: 0755]
widget_viewer_dali/po/jv.po [new file with mode: 0755]
widget_viewer_dali/po/ka.po [new file with mode: 0755]
widget_viewer_dali/po/kk.po [new file with mode: 0755]
widget_viewer_dali/po/km.po [new file with mode: 0755]
widget_viewer_dali/po/kn.po [new file with mode: 0755]
widget_viewer_dali/po/ko_KR.po [new file with mode: 0755]
widget_viewer_dali/po/ky_KG.po [new file with mode: 0755]
widget_viewer_dali/po/lo.po [new file with mode: 0755]
widget_viewer_dali/po/ml.po [new file with mode: 0755]
widget_viewer_dali/po/mn_MN.po [new file with mode: 0755]
widget_viewer_dali/po/mr.po [new file with mode: 0755]
widget_viewer_dali/po/ms.po [new file with mode: 0755]
widget_viewer_dali/po/my_ZG.po [new file with mode: 0755]
widget_viewer_dali/po/ne.po [new file with mode: 0755]
widget_viewer_dali/po/or.po [new file with mode: 0755]
widget_viewer_dali/po/pa.po [new file with mode: 0755]
widget_viewer_dali/po/pt_BR.po [new file with mode: 0755]
widget_viewer_dali/po/pt_PT.po [new file with mode: 0755]
widget_viewer_dali/po/ru_RU.po [new file with mode: 0755]
widget_viewer_dali/po/si.po [new file with mode: 0755]
widget_viewer_dali/po/su_ID.po [new file with mode: 0755]
widget_viewer_dali/po/ta.po [new file with mode: 0755]
widget_viewer_dali/po/te.po [new file with mode: 0755]
widget_viewer_dali/po/tg_TJ.po [new file with mode: 0755]
widget_viewer_dali/po/th.po [new file with mode: 0755]
widget_viewer_dali/po/tk_TM.po [new file with mode: 0755]
widget_viewer_dali/po/tl.po [new file with mode: 0755]
widget_viewer_dali/po/tr_TR.po [new file with mode: 0755]
widget_viewer_dali/po/uk.po [new file with mode: 0755]
widget_viewer_dali/po/ur.po [new file with mode: 0755]
widget_viewer_dali/po/uz.po [new file with mode: 0755]
widget_viewer_dali/po/vi.po [new file with mode: 0755]
widget_viewer_dali/po/xh.po [new file with mode: 0755]
widget_viewer_dali/po/zh_CN.po [new file with mode: 0755]
widget_viewer_dali/po/zu.po [new file with mode: 0755]
widget_viewer_dali/public_api/widget_view/widget_view.cpp [new file with mode: 0644]
widget_viewer_dali/public_api/widget_view/widget_view.h [new file with mode: 0644]
widget_viewer_dali/public_api/widget_view_manager/widget_view_manager.cpp [new file with mode: 0644]
widget_viewer_dali/public_api/widget_view_manager/widget_view_manager.h [new file with mode: 0644]
widget_viewer_dali/public_api/widget_viewer_dali.h [new file with mode: 0644]

diff --git a/CMakeLists.txt b/CMakeLists.txt
deleted file mode 100644 (file)
index dcaa1d4..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(widget_viewer_dali CXX)
-
-SET(PREFIX "${CMAKE_INSTALL_PREFIX}")
-SET(EXEC_PREFIX "\${prefix}")
-SET(PROJECT_NAME "${PROJECT_NAME}")
-SET(LIBDIR ${LIB_INSTALL_DIR})
-SET(INCLUDEDIR "\${prefix}/include/${PROJECT_NAME}")
-SET(VERSION_MAJOR "${MAJORVER}")
-SET(VERSION "${FULLVER}")
-
-SET(IMAGE_DIR "${TZ_SYS_SHARE}/${PROJECT_NAME}/images")
-SET(LOCALE_DIR "${TZ_SYS_SHARE}/${PROJECT_NAME}/locale")
-
-INCLUDE(FindPkgConfig)
-pkg_check_modules(viewer_dali REQUIRED
-       dlog
-       widget_service
-       pkgmgr-info
-       capi-system-info
-       dali-core
-       dali-adaptor
-       dali-toolkit
-       cynara-client
-       ecore-wayland
-       ecore-input
-       tizen-remote-surface-client
-       screen_connector_watcher
-)
-
-SET(BUILD_SOURCE
-       public_api/widget_view/widget_view.cpp
-       public_api/widget_view_manager/widget_view_manager.cpp
-       internal/widget_view/widget_view_impl.cpp
-       internal/widget_view_manager/widget_view_manager_impl.cpp
-)
-
-FOREACH(flag ${viewer_dali_CFLAGS})
-       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -DHIDE_DALI_INTERNALS -Wall -Werror -Winline -g")
-
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
-SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}")
-SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
-SET(CMAKE_C_FLAGS_RELEASE "-O2")
-
-SET(LOCAL_PUBLIC_HEADER_DIR ${CMAKE_CURRENT_SOURCE_DIR}/public_api)
-SET(IMAGE_DIR "${TZ_SYS_SHARE}/${PROJECT_NAME}/images")
-ADD_DEFINITIONS("-DWIDGET_VIEW_RESOURCE_DEFAULT_IMG=\"${IMAGE_DIR}/unknown.png\"")
-
-ADD_DEFINITIONS("-DWIDGET_VIEWER_DALI_LOCALE=\"${LOCALE_DIR}\"")
-ADD_DEFINITIONS("-DPKGNAME=\"${PROJECT_NAME}\"")
-
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
-
-ADD_LIBRARY(${PROJECT_NAME} SHARED ${BUILD_SOURCE})
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION_MAJOR})
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION})
-
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${viewer_dali_LDFLAGS} "-lpthread")
-
-CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
-SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${PROJECT_NAME}.pc")
-
-INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR})
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/public_api/${PROJECT_NAME}.h DESTINATION include/${PROJECT_NAME})
-
-FILE(GLOB LOCAL_WIDGE_VIEW_HEADER_LIST RELATIVE "${LOCAL_PUBLIC_HEADER_DIR}" "${LOCAL_PUBLIC_HEADER_DIR}/widget_view/*.h")
-FOREACH(flag ${LOCAL_WIDGE_VIEW_HEADER_LIST})
-        INSTALL(FILES ${LOCAL_PUBLIC_HEADER_DIR}/${flag} DESTINATION include/${PROJECT_NAME}/public_api/widget_view)
-ENDFOREACH(flag)
-
-FILE(GLOB LOCAL_WIDGE_VIEW_MANAGER_HEADER_LIST RELATIVE "${LOCAL_PUBLIC_HEADER_DIR}" "${LOCAL_PUBLIC_HEADER_DIR}/widget_view_manager/*.h")
-FOREACH(flag ${LOCAL_WIDGE_VIEW_MANAGER_HEADER_LIST})
-        INSTALL(FILES ${LOCAL_PUBLIC_HEADER_DIR}/${flag} DESTINATION include/${PROJECT_NAME}/public_api/widget_view_manager)
-ENDFOREACH(flag)
-
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/images/unknown.png DESTINATION ${IMAGE_DIR})
-
-ADD_SUBDIRECTORY(po)
diff --git a/build/tizen/CMakeLists.txt b/build/tizen/CMakeLists.txt
new file mode 100644 (file)
index 0000000..a27a930
--- /dev/null
@@ -0,0 +1,82 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(widget_viewer_dali CXX)
+
+SET(PREFIX "${CMAKE_INSTALL_PREFIX}")
+SET(EXEC_PREFIX "\${prefix}")
+SET(PROJECT_NAME "${PROJECT_NAME}")
+SET(LIBDIR ${LIB_INSTALL_DIR})
+SET(INCLUDEDIR "\${prefix}/include/${PROJECT_NAME}")
+SET(VERSION_MAJOR "${MAJORVER}")
+SET(VERSION "${FULLVER}")
+
+SET(IMAGE_DIR "${TZ_SYS_SHARE}/${PROJECT_NAME}/images")
+SET(LOCALE_DIR "${TZ_SYS_SHARE}/${PROJECT_NAME}/locale")
+SET(ROOT_SRC_DIR ${CMAKE_SOURCE_DIR}/../..)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(viewer_dali REQUIRED
+       dlog
+       widget_service
+       capi-system-info
+       dali-core
+       dali-adaptor
+       dali-toolkit
+       cynara-client
+       ecore-wayland
+       ecore-input
+       tizen-remote-surface-client
+       screen_connector_watcher
+)
+
+SET(BUILD_SOURCE
+       ${ROOT_SRC_DIR}/widget_viewer_dali/public_api/widget_view/widget_view.cpp
+       ${ROOT_SRC_DIR}/widget_viewer_dali/public_api/widget_view_manager/widget_view_manager.cpp
+       ${ROOT_SRC_DIR}/widget_viewer_dali/internal/widget_view/widget_view_impl.cpp
+       ${ROOT_SRC_DIR}/widget_viewer_dali/internal/widget_view_manager/widget_view_manager_impl.cpp
+)
+
+FOREACH(flag ${viewer_dali_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -DHIDE_DALI_INTERNALS -Wall -Werror -Winline -g")
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
+SET(CMAKE_C_FLAGS_RELEASE "-O2")
+
+SET(LOCAL_PUBLIC_HEADER_DIR ${ROOT_SRC_DIR}/widget_viewer_dali/public_api)
+SET(IMAGE_DIR "${TZ_SYS_SHARE}/${PROJECT_NAME}/images")
+ADD_DEFINITIONS("-DWIDGET_VIEW_RESOURCE_DEFAULT_IMG=\"${IMAGE_DIR}/unknown.png\"")
+
+ADD_DEFINITIONS("-DWIDGET_VIEWER_DALI_LOCALE=\"${LOCALE_DIR}\"")
+ADD_DEFINITIONS("-DPKGNAME=\"${PROJECT_NAME}\"")
+
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR} ${ROOT_SRC_DIR})
+
+ADD_LIBRARY(${PROJECT_NAME} SHARED ${BUILD_SOURCE})
+SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION_MAJOR})
+SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION})
+
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${viewer_dali_LDFLAGS} "-lpthread")
+
+CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
+SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${PROJECT_NAME}.pc")
+
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR})
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
+INSTALL(FILES ${ROOT_SRC_DIR}/widget_viewer_dali/public_api/${PROJECT_NAME}.h DESTINATION include/${PROJECT_NAME})
+
+FILE(GLOB LOCAL_WIDGE_VIEW_HEADER_LIST RELATIVE "${LOCAL_PUBLIC_HEADER_DIR}" "${LOCAL_PUBLIC_HEADER_DIR}/widget_view/*.h")
+FOREACH(flag ${LOCAL_WIDGE_VIEW_HEADER_LIST})
+        INSTALL(FILES ${LOCAL_PUBLIC_HEADER_DIR}/${flag} DESTINATION include/${PROJECT_NAME}/public_api/widget_view)
+ENDFOREACH(flag)
+
+FILE(GLOB LOCAL_WIDGE_VIEW_MANAGER_HEADER_LIST RELATIVE "${LOCAL_PUBLIC_HEADER_DIR}" "${LOCAL_PUBLIC_HEADER_DIR}/widget_view_manager/*.h")
+FOREACH(flag ${LOCAL_WIDGE_VIEW_MANAGER_HEADER_LIST})
+        INSTALL(FILES ${LOCAL_PUBLIC_HEADER_DIR}/${flag} DESTINATION include/${PROJECT_NAME}/public_api/widget_view_manager)
+ENDFOREACH(flag)
+
+INSTALL(FILES ${ROOT_SRC_DIR}/widget_viewer_dali/images/unknown.png DESTINATION ${IMAGE_DIR})
+
+ADD_SUBDIRECTORY(po)
diff --git a/build/tizen/po/CMakeLists.txt b/build/tizen/po/CMakeLists.txt
new file mode 100644 (file)
index 0000000..53bdc1b
--- /dev/null
@@ -0,0 +1,77 @@
+# for i18n
+
+SET(POFILES
+        ar.po
+        as.po
+        az.po
+        be_BY.po
+        bn_BD.po
+        bn.po
+        de.po
+        en_PH.po
+        en_US.po
+        es_ES.po
+        es_US.po
+        en.po
+        fa.po
+        fr.po
+        gu.po
+        hi.po
+        hy.po
+        id.po
+        it_IT.po
+        jv.po
+        ka.po
+        kk.po
+        km.po
+        kn.po
+        ko_KR.po
+        ky_KG.po
+        lo.po
+        ml.po
+        mn_MN.po
+        mr.po
+        ms.po
+        my_ZG.po
+        ne.po
+        or.po
+        pa.po
+        pt_BR.po
+        pt_PT.po
+        ru_RU.po
+        si.po
+        su_ID.po
+        ta.po
+        te.po
+        tg_TJ.po
+        th.po
+        tk_TM.po
+        tl.po
+        tr_TR.po
+        uk.po
+        ur.po
+        uz.po
+        vi.po
+        xh.po
+        zh_CN.po
+        zu.po
+)
+
+SET(MSGFMT "/usr/bin/msgfmt")
+FOREACH(pofile ${POFILES})
+       SET(pofile ${ROOT_SRC_DIR}/widget_viewer_dali/po/${pofile})
+       MESSAGE(STATUS "  ${pofile}")
+       GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
+       GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
+       SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
+       ADD_CUSTOM_COMMAND(
+                       OUTPUT ${moFile}
+                       COMMAND ${MSGFMT} -o ${moFile} ${absPofile}
+                       DEPENDS ${absPofile}
+       )
+       INSTALL(FILES ${moFile}
+                       DESTINATION ${LOCALE_DIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo)
+       SET(moFiles ${moFiles} ${moFile})
+ENDFOREACH(pofile)
+
+ADD_CUSTOM_TARGET(locale ALL DEPENDS ${moFiles})
diff --git a/build/tizen/widget_viewer_dali.pc.in b/build/tizen/widget_viewer_dali.pc.in
new file mode 100644 (file)
index 0000000..64db29a
--- /dev/null
@@ -0,0 +1,12 @@
+prefix=@PREFIX@
+exec_prefix=@EXEC_PREFIX@
+libdir=@LIBDIR@
+includedir=@INCLUDEDIR@
+
+Name: widget_viewer_dali
+Description: Support development of the widget Viewer DALi Frontend library
+Version: @VERSION@
+Requires: widget_service
+Libs: -L${libdir} -lwidget_viewer_dali
+Cflags: -I${includedir}
+cppflags: -I${includedir}
diff --git a/images/unknown.png b/images/unknown.png
deleted file mode 100644 (file)
index 535db60..0000000
Binary files a/images/unknown.png and /dev/null differ
diff --git a/internal/widget_view/widget_view_impl.cpp b/internal/widget_view/widget_view_impl.cpp
deleted file mode 100644 (file)
index f1bfea4..0000000
+++ /dev/null
@@ -1,1466 +0,0 @@
-/*
- * Samsung API
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Flora License, Version 1.1 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * 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 <internal/widget_view/widget_view_impl.h>
-
-// INTERNAL INCLUDES
-
-// EXTERNAL INCLUDES
-#include <dali/public-api/common/stage.h>
-#include <dali/public-api/events/touch-data.h>
-#include <dali/public-api/events/key-event.h>
-#include <dali/public-api/events/wheel-event.h>
-#include <dali/public-api/images/native-image.h>
-#include <dali/public-api/object/type-registry.h>
-#include <dali/public-api/object/type-registry-helper.h>
-#include <dali-toolkit/public-api/visuals/visual-properties.h>
-#include <dali-toolkit/devel-api/visual-factory/visual-factory.h>
-#include <dali/integration-api/debug.h>
-#include <dali/devel-api/events/touch-event-devel.h>
-#include <dali/devel-api/events/key-event-devel.h>
-#include <string.h>
-#include <Ecore_Wayland.h>
-#include <Ecore_Input.h>
-#include <widget_service.h>
-#include <widget_instance.h>
-#include <tzplatform_config.h>
-#include <wayland-extension/tizen-extension-client-protocol.h>
-#include <tbm_surface_internal.h>
-#include <unistd.h>
-#include <libintl.h>
-#include <xkbcommon/xkbcommon.h>
-
-namespace Dali
-{
-
-namespace WidgetView
-{
-
-namespace Internal
-{
-
-namespace
-{
-
-const int DEFAULT_FONT_PIXEL_SIZE = 30; // Referred platform widget viewer evas
-
-#define GET_LOCALE_TEXT(string) dgettext(PKGNAME, string)
-
-#if defined(DEBUG_ENABLED)
-Integration::Log::Filter* gWidgetViewLogging  = Integration::Log::Filter::New( Debug::Verbose, false, "LOG_WIDGET_VIEW" );
-#endif
-
-BaseHandle Create()
-{
-  return Dali::BaseHandle();
-}
-
-// Setup properties, signals and actions using the type-registry.
-DALI_TYPE_REGISTRATION_BEGIN( Dali::WidgetView::WidgetView, Toolkit::Control, Create );
-DALI_PROPERTY_REGISTRATION( Dali::WidgetView, WidgetView, "widgetId", BOOLEAN, WIDGET_ID )
-DALI_PROPERTY_REGISTRATION( Dali::WidgetView, WidgetView, "instanceId", BOOLEAN, INSTANCE_ID )
-DALI_PROPERTY_REGISTRATION( Dali::WidgetView, WidgetView, "contentInfo", BOOLEAN, CONTENT_INFO )
-DALI_PROPERTY_REGISTRATION( Dali::WidgetView, WidgetView, "title", BOOLEAN, TITLE )
-DALI_PROPERTY_REGISTRATION( Dali::WidgetView, WidgetView, "updatePeriod", BOOLEAN, UPDATE_PERIOD )
-DALI_PROPERTY_REGISTRATION( Dali::WidgetView, WidgetView, "preview", MAP, PREVIEW )
-DALI_PROPERTY_REGISTRATION( Dali::WidgetView, WidgetView, "loadingText", MAP, LOADING_TEXT )
-DALI_PROPERTY_REGISTRATION( Dali::WidgetView, WidgetView, "widgetStateFaulted", BOOLEAN, WIDGET_STATE_FAULTED )
-DALI_PROPERTY_REGISTRATION( Dali::WidgetView, WidgetView, "permanentDelete", BOOLEAN, PERMANENT_DELETE )
-
-// Internal property
-// ToDo it should be changed public property.
-const int TERMINATE_WIDGET = Dali::WidgetView::WidgetView::Property::PERMANENT_DELETE+1;
-const int RETRY_TEXT = TERMINATE_WIDGET+1;
-const int WIDGET_IMAGE = RETRY_TEXT+1;
-
-Dali::PropertyRegistration internalProperty1( typeRegistration, "terminateWidget", TERMINATE_WIDGET, Property::BOOLEAN, Dali::WidgetView::Internal::WidgetView::SetProperty, Dali::WidgetView::Internal::WidgetView::GetProperty );
-Dali::PropertyRegistration internalProperty2( typeRegistration, "retryText", RETRY_TEXT, Property::MAP, Dali::WidgetView::Internal::WidgetView::SetProperty, Dali::WidgetView::Internal::WidgetView::GetProperty );
-Dali::PropertyRegistration internalProperty3( typeRegistration, "widgetImage", WIDGET_IMAGE, Property::MAP, Dali::WidgetView::Internal::WidgetView::SetProperty, Dali::WidgetView::Internal::WidgetView::GetProperty );
-
-// Signals
-DALI_SIGNAL_REGISTRATION( Dali::WidgetView, WidgetView, "widgetAdded", SIGNAL_WIDGET_ADDED )
-DALI_SIGNAL_REGISTRATION( Dali::WidgetView, WidgetView, "widgetDeleted", SIGNAL_WIDGET_DELETED )
-DALI_SIGNAL_REGISTRATION( Dali::WidgetView, WidgetView, "widgetCreationAborted", SIGNAL_WIDGET_CREATION_ABORTED )
-DALI_SIGNAL_REGISTRATION( Dali::WidgetView, WidgetView, "widgetContentUpdated", SIGNAL_WIDGET_CONTENT_UPDATED )
-DALI_SIGNAL_REGISTRATION( Dali::WidgetView, WidgetView, "widgetUpdatePeriodChanged", SIGNAL_WIDGET_UPDATE_PERIOD_CHANGED )
-DALI_SIGNAL_REGISTRATION( Dali::WidgetView, WidgetView, "widgetFaulted", SIGNAL_WIDGET_FAULTED )
-DALI_SIGNAL_REGISTRATION( Dali::WidgetView, WidgetView, "widgetTerminated", SIGNAL_WIDGET_TERMINATED )
-
-// Actions
-DALI_ACTION_REGISTRATION( Dali::WidgetView, WidgetView, "pauseWidget", ACTION_WIDGETVIEW_PAUSE_WIDGET );
-DALI_ACTION_REGISTRATION( Dali::WidgetView, WidgetView, "resumeWidget", ACTION_WIDGETVIEW_RESUME_WIDGET );
-DALI_ACTION_REGISTRATION( Dali::WidgetView, WidgetView, "cancelTouchEvent", ACTION_WIDGETVIEW_CANCEL_TOUCH_EVENT );
-DALI_ACTION_REGISTRATION( Dali::WidgetView, WidgetView, "activateFaultedWidget", ACTION_WIDGETVIEW_ACTIVATE_FAULTED_WIDGET );
-
-DALI_TYPE_REGISTRATION_END()
-
-struct wl_buffer* preBuffer;
-struct tizen_remote_surface* remoteSurface;
-
-const char* const STATE_TEXT( "stateText" );
-const char* const FONT_STYLE( "fontStyle" );
-const char* const TEXT_POINT_SIZE( "textPointSize" );
-const char* const TEXT_COLOR( "textColor" );
-const char* const TEXT_VISIBLE( "textVisible" ); //ToDo: it should be removed after retry text property is public one
-
-// ToDo: Now dali provides only dali key codes.
-// This funtion will be used to get platform specific key codes from key name
-struct KeyCodeMap
-{
-  xkb_keysym_t keySym;
-  xkb_keycode_t keyCode;
-  bool isKeyCode;
-};
-
-static void FindKeyCode( struct xkb_keymap* keyMap, xkb_keycode_t key, void* data )
-{
-  KeyCodeMap* foundKeyCode = static_cast< KeyCodeMap* >( data );
-  if( foundKeyCode->isKeyCode )
-  {
-    return;
-  }
-
-  xkb_keysym_t keySym = foundKeyCode->keySym;
-  int nsyms = 0;
-  const xkb_keysym_t* symsOut = NULL;
-
-  nsyms = xkb_keymap_key_get_syms_by_level( keyMap, key, 0, 0, &symsOut );
-
-  if( nsyms && symsOut )
-  {
-    if( *symsOut == keySym )
-    {
-      foundKeyCode->keyCode = key;
-      foundKeyCode->isKeyCode = true;
-    }
-  }
-}
-
-static bool GetKeyCode( std::string keyName, int32_t& keyCode )
-{
-  xkb_keymap* keyMap = NULL;
-  Ecore_Wl_Input* ecoreWlInput = NULL;
-  xkb_keysym_t sym = XKB_KEY_NoSymbol;
-  KeyCodeMap foundKeyCode;
-
-  ecoreWlInput = ecore_wl_input_get();
-  if( !ecoreWlInput )
-  {
-    DALI_LOG_ERROR( "Failed to get Ecore_Wl_Input in WidgetView\n" );
-    return false;
-  }
-
-  keyMap = ecore_wl_input_keymap_get( ecoreWlInput );
-  if( !keyMap )
-  {
-    DALI_LOG_ERROR( "Failed to get keymap in WidgetView\n" );
-    return false;
-  }
-
-  sym = xkb_keysym_from_name( keyName.c_str(), XKB_KEYSYM_NO_FLAGS );
-  if( sym == XKB_KEY_NoSymbol )
-  {
-    DALI_LOG_ERROR( "Failed to get keysym in WidgetView\n" );
-    return false;
-  }
-
-  foundKeyCode.keySym = sym;
-  foundKeyCode.isKeyCode = false;
-  xkb_keymap_key_for_each( keyMap, FindKeyCode, &foundKeyCode );
-  keyCode = static_cast< int32_t >( foundKeyCode.keyCode );
-  return true;
-}
-
-static void OnBufferUpdated( struct tizen_remote_surface *surface, uint32_t type, struct wl_buffer *buffer,
-                              int32_t img_file_fd, uint32_t img_file_size, uint32_t time, struct wl_array *keys,
-                              const char *appid, const char *instance_id, const int pid, void *data)
-{
-  Dali::WidgetView::Internal::WidgetView* widgetView = static_cast< Dali::WidgetView::Internal::WidgetView* >( data );
-
-  if( widgetView )
-  {
-    if( !widgetView->IsWidgetImageView() )
-    {
-      tizen_remote_surface_transfer_visibility( surface, TIZEN_REMOTE_SURFACE_VISIBILITY_TYPE_VISIBLE);
-
-      widgetView->CreateWidgetImageView();
-      widgetView->ConnectSignal( surface );
-    }
-
-    //get tbm surface from buffer
-    tbm_surface_h tbmSurface = static_cast< tbm_surface_h >( wl_buffer_get_user_data( buffer ) );
-    widgetView->UpdateImageSource( tbmSurface );
-  }
-
-  if( preBuffer != NULL && tizen_remote_surface_get_version( surface ) >= TIZEN_REMOTE_SURFACE_RELEASE_SINCE_VERSION )
-  {
-    tizen_remote_surface_release( surface, preBuffer );
-    tbm_surface_h preTbmSurface = (tbm_surface_h)wl_buffer_get_user_data( preBuffer );
-    tbm_surface_internal_unref( preTbmSurface );
-    wl_buffer_destroy( preBuffer );
-  }
-
-  remoteSurface = surface;
-  preBuffer = buffer;
-
-  close( img_file_fd );
-}
-
-static void OnBufferAdded( const char *appid, const char *instance_id, const int pid, void *data )
-{
-}
-
-static void OnSurfaceRemoved( const char *appid, const char *instance_id, const int pid, void *data )
-{
-  Dali::WidgetView::Internal::WidgetView* widgetView = static_cast< Dali::WidgetView::Internal::WidgetView* >( data );
-
-  if( widgetView && !widgetView->IsWidgetFaulted() )
-  {
-    widgetView->CloseRemoteSurface();
-    widgetView->RemoveWidgetImage();
-  }
-}
-
-} // unnamed namespace
-
-Dali::WidgetView::WidgetView WidgetView::New( const std::string& widgetId, const std::string& contentInfo, int width, int height, float updatePeriod )
-{
-  // Create the implementation, temporarily owned on stack
-  IntrusivePtr< WidgetView > internalWidgetView = new WidgetView( widgetId, contentInfo, width, height, updatePeriod );
-
-  // Pass ownership to CustomActor
-  Dali::WidgetView::WidgetView widgetView( *internalWidgetView );
-
-  // Second-phase init of the implementation
-  // This can only be done after the CustomActor connection has been made...
-  internalWidgetView->Initialize();
-
-  return widgetView;
-}
-
-WidgetView::WidgetView()
-: Control( ControlBehaviour( REQUIRES_TOUCH_EVENTS ) ),
-  mWidgetId(),
-  mInstanceId(),
-  mContentInfo(),
-  mTitle(),
-  mWidth( 0 ),
-  mHeight( 0 ),
-  mPid( 0 ),
-  mUpdatePeriod( 0.0 ),
-  mPreviewVisible( true ),
-  mLoadingTextVisible( true ),
-  mLoadingTextString(),
-  mRetryTextVisible( true ),
-  mRetryTextString(),
-  mRetryState( false ),
-  mPermanentDelete( false ),
-  mWatcherHandle( NULL ),
-  mRemoteSurface( NULL )
-{
-}
-
-WidgetView::WidgetView( const std::string& widgetId, const std::string& contentInfo, int width, int height, float updatePeriod )
-: Control( ControlBehaviour( REQUIRES_TOUCH_EVENTS ) ),
-  mWidgetId( widgetId ),
-  mInstanceId(),
-  mContentInfo( contentInfo ),
-  mTitle(),
-  mWidth( width ),
-  mHeight( height ),
-  mPid( 0 ),
-  mUpdatePeriod( updatePeriod ),
-  mPreviewVisible( true ),
-  mLoadingTextVisible( true ),
-  mLoadingTextString(),
-  mRetryTextVisible( true ),
-  mRetryTextString(),
-  mRetryState( false ),
-  mPermanentDelete( false ),
-  mWatcherHandle( NULL ),
-  mRemoteSurface( NULL )
-{
-}
-
-WidgetView::~WidgetView()
-{
-}
-
-bool WidgetView::PauseWidget()
-{
-  int ret = widget_instance_pause( mInstanceId.c_str() );
-  if( ret < 0 )
-  {
-    DALI_LOG_ERROR( "WidgetView::PauseWidget: Fail to pause widget(%s, %s) [%d]\n", mWidgetId.c_str(), mInstanceId.c_str(), ret );
-    return false;
-  }
-
-  DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::PauseWidget: Widget is paused (%s, %s)\n", mWidgetId.c_str(), mInstanceId.c_str() );
-
-  return true;
-}
-
-bool WidgetView::ResumeWidget()
-{
-  int ret = widget_instance_resume( mInstanceId.c_str() );
-  if( ret < 0 )
-  {
-    DALI_LOG_ERROR( "WidgetView::ResumeWidget: Fail to resume widget(%s, %s) [%d]\n", mWidgetId.c_str(), mInstanceId.c_str(), ret );
-    return false;
-  }
-
-  DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::ResumeWidget: Widget is resumed (%s, %s)\n", mWidgetId.c_str(), mInstanceId.c_str() );
-
-  return true;
-}
-
-const std::string& WidgetView::GetWidgetId() const
-{
-  return mWidgetId;
-}
-
-const std::string& WidgetView::GetInstanceId() const
-{
-  return mInstanceId;
-}
-
-const std::string& WidgetView::GetContentInfo()
-{
-  widget_instance_h instance;
-  char* contentInfo = NULL;
-
-  mContentInfo.clear();
-
-  if( mWidgetId.empty() || mInstanceId.empty() )
-  {
-    DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::GetContentInfo: Widget id (%s) or instance id (%s) is invalid.\n", mWidgetId.c_str(), mInstanceId.c_str() );
-    return mContentInfo;
-  }
-
-  instance = widget_instance_get_instance( mWidgetId.c_str(), mInstanceId.c_str() );
-  if( !instance )
-  {
-    DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::GetContentInfo: widget_instance_get_instance is failed. [%s]\n", mInstanceId.c_str() );
-    return mContentInfo;
-  }
-
-  if( widget_instance_get_content( instance, &contentInfo ) < 0 )
-  {
-    DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::GetContentInfo: Failed to get content of widget. [%s]\n", mInstanceId.c_str() );
-    return mContentInfo;
-  }
-
-  mContentInfo = reinterpret_cast< char* >( contentInfo );
-
-  return mContentInfo;
-}
-
-const std::string& WidgetView::GetTitle()
-{
-  //ToDo: We should add some codes by considering widget_viewer_evas
-  if( mTitle.empty() )
-  {
-    mTitle = widget_service_get_name( mWidgetId.c_str(), NULL );
-  }
-
-  DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::GetTitle: title = %s\n", mTitle.c_str() );
-
-  return mTitle;
-}
-
-float WidgetView::GetUpdatePeriod() const
-{
-  return mUpdatePeriod;
-}
-
-bool WidgetView::CancelTouchEvent()
-{
-  if( mRemoteSurface )
-  {
-    tizen_remote_surface_transfer_touch_cancel( mRemoteSurface );
-    return true;
-  }
-
-  return false;
-}
-
-void WidgetView::SetPreviewVisible( bool visible )
-{
-  if( mPreviewImage && mPreviewVisible != visible )
-  {
-    mPreviewVisible = visible;
-    mPreviewImage.SetVisible( visible );
-  }
-}
-
-bool WidgetView::IsPreviewVisible()
-{
-  return mPreviewVisible;
-}
-
-void WidgetView::SetLoadingTextVisible( bool visible )
-{
-  if( mLoadingText && mLoadingTextVisible != visible )
-  {
-    mLoadingTextVisible = visible;
-
-    if( visible )
-    {
-      mLoadingText.SetProperty( Toolkit::TextLabel::Property::TEXT,
-                                ( mLoadingTextString.empty() )? GET_LOCALE_TEXT( "IDS_ST_POP_LOADING_ING" ) : mLoadingTextString );
-    }
-    mLoadingText.SetVisible( visible );
-  }
-}
-
-void WidgetView::SetRetryTextVisible( bool visible )
-{
-  if( mRetryText && mRetryTextVisible != visible )
-  {
-    mRetryTextVisible = visible;
-
-    if( visible )
-    {
-      mRetryText.SetProperty( Toolkit::TextLabel::Property::TEXT,
-                              ( mRetryTextString.empty() )? GET_LOCALE_TEXT( "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" ) : mRetryTextString );
-    }
-    mRetryText.SetVisible( visible );
-  }
-}
-
-bool WidgetView::IsLoadingTextVisible()
-{
-  return mLoadingTextVisible;
-}
-
-bool WidgetView::IsRetryTextVisible()
-{
-  return mRetryTextVisible;
-}
-
-void WidgetView::ActivateFaultedWidget()
-{
-  if( mPid < 0 )
-  {
-    // Enable preview and loading text
-    ShowRetryState( false );
-    ShowLoadingState( true );
-
-    // launch widget again
-    mPid = widget_instance_launch( mInstanceId.c_str(), (char *)mContentInfo.c_str(), mWidth, mHeight );
-    if( mPid < 0)
-    {
-      DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::ActivateFaultedWidget: widget_instance_launch is failed. [%s]\n", mWidgetId.c_str() );
-
-      ShowLoadingState( false );
-      ShowRetryState( true );
-
-      // Emit signal
-      Dali::WidgetView::WidgetView handle( GetOwner() );
-      mWidgetCreationAbortedSignal.Emit( handle );
-
-      return;
-    }
-
-    screen_connector_toolkit_ops ops;
-    ops.updated_cb = OnBufferUpdated;
-    ops.removed_cb = OnSurfaceRemoved;
-    ops.added_cb = OnBufferAdded;
-    mWatcherHandle = screen_connector_toolkit_add(&ops, (char *)mInstanceId.c_str(), SCREEN_CONNECTOR_SCREEN_TYPE_WIDGET, this);
-
-    DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::ActivateFaultedWidget: widget_instance_launch is called. [%s, mPid = %d]\n", mWidgetId.c_str(), mPid );
-  }
-}
-
-bool WidgetView::IsWidgetFaulted()
-{
-  return mPid < 0 ? true : false;
-}
-
-void WidgetView::SetPermanentDelete( bool permanentDelete )
-{
-  mPermanentDelete = permanentDelete;
-}
-
-bool WidgetView::IsPermanentDelete()
-{
-  return mPermanentDelete;
-}
-
-void WidgetView::CreateWidgetImageView()
-{
-  Any source;
-  mImageSource = Dali::NativeImageSource::New( source );
-  Dali::NativeImage image = Dali::NativeImage::New( *mImageSource );
-
-  mWidgetImageView = Dali::Toolkit::ImageView::New( image );
-
-  mWidgetImageView.SetParentOrigin( ParentOrigin::CENTER );
-  mWidgetImageView.SetAnchorPoint( AnchorPoint::CENTER );
-  mWidgetImageView.SetSize( mWidth, mHeight );
-
-  if( !mWidgetImagePropertyMap.Empty() )
-  {
-    mWidgetImageView.SetProperty( Toolkit::ImageView::Property::IMAGE, mWidgetImagePropertyMap );
-  }
-
-  Self().Add( mWidgetImageView );
-
-  //EFL app should be pre multiplied image.
-  mWidgetImageView.SetProperty( Toolkit::ImageView::Property::PRE_MULTIPLIED_ALPHA, true );
-
-  // Disable preview and text
-  ShowLoadingState( false );
-
-  // Emit signal
-  Dali::WidgetView::WidgetView handle( GetOwner() );
-  mWidgetAddedSignal.Emit( handle );
-
-  DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::CreateWidgetImageView: Widget image is added.\n" );
-}
-
-void WidgetView::RemoveWidgetImage()
-{
-  if( mWidgetImageView )
-  {
-    mWidgetImageView.SetVisible( false );
-    mWidgetImageView.Reset();
-
-    ShowRetryState( true );
-
-    Dali::WidgetView::WidgetView handle( GetOwner() );
-    mWidgetDeletedSignal.Emit( handle );
-  }
-
-  DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::RemoveWidgetImage: Widget image is removed.\n" );
-}
-
-void WidgetView::TerminateWidget()
-{
-  if( !mWidgetId.empty() && !mInstanceId.empty() )
-  {
-    widget_instance_terminate( mInstanceId.c_str() );
-
-    if( mPermanentDelete )
-    {
-      widget_instance_destroy( mInstanceId.c_str() );
-    }
-
-    Dali::WidgetView::WidgetView handle( GetOwner() );
-    mWidgetTerminatedSignal.Emit( handle );
-    mWidgetDeletedSignal.Emit( handle );
-
-    mWidgetId.clear();
-    mInstanceId.clear();
-
-    CloseRemoteSurface();
-  }
-
-  DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::TerminateWidget: Widget is terminated/destroyed and deleted signal is emitted.\n" );
-
-}
-
-void WidgetView::SendWidgetEvent( int event )
-{
-  Dali::WidgetView::WidgetView handle( GetOwner() );
-
-  DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::SendWidgetEvent: event = %d widget = %s\n", event,  mWidgetId.c_str() );
-
-  // Emit signal
-  switch( event )
-  {
-    case WIDGET_INSTANCE_EVENT_UPDATE:
-    case WIDGET_INSTANCE_EVENT_EXTRA_UPDATED:
-    {
-      mWidgetContentUpdatedSignal.Emit( handle );
-      break;
-    }
-    case WIDGET_INSTANCE_EVENT_PERIOD_CHANGED:
-    {
-      mWidgetUpdatePeriodChangedSignal.Emit( handle );
-      break;
-    }
-    case WIDGET_INSTANCE_EVENT_FAULT:
-    {
-      mWidgetFaultedSignal.Emit( handle );
-      CloseRemoteSurface();
-      RemoveWidgetImage();
-      break;
-    }
-    default:
-    {
-      break;
-    }
-  }
-}
-
-bool WidgetView::DoConnectSignal( BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor )
-{
-  Dali::BaseHandle handle( object );
-
-  bool connected( true );
-  Dali::WidgetView::WidgetView widgetView = Dali::WidgetView::WidgetView::DownCast( handle );
-
-  if( strcmp( signalName.c_str(), SIGNAL_WIDGET_ADDED ) == 0 )
-  {
-    widgetView.WidgetAddedSignal().Connect( tracker, functor );
-  }
-  else if( strcmp( signalName.c_str(), SIGNAL_WIDGET_DELETED ) == 0 )
-  {
-    widgetView.WidgetDeletedSignal().Connect( tracker, functor );
-  }
-  else if( strcmp( signalName.c_str(), SIGNAL_WIDGET_CREATION_ABORTED ) == 0 )
-  {
-    widgetView.WidgetCreationAbortedSignal().Connect( tracker, functor );
-  }
-  else if( strcmp( signalName.c_str(), SIGNAL_WIDGET_CONTENT_UPDATED ) == 0 )
-  {
-    widgetView.WidgetContentUpdatedSignal().Connect( tracker, functor );
-  }
-  else if( strcmp( signalName.c_str(), SIGNAL_WIDGET_UPDATE_PERIOD_CHANGED ) == 0 )
-  {
-    widgetView.WidgetUpdatePeriodChangedSignal().Connect( tracker, functor );
-  }
-  else if( strcmp( signalName.c_str(), SIGNAL_WIDGET_FAULTED ) == 0 )
-  {
-    widgetView.WidgetFaultedSignal().Connect( tracker, functor );
-  }
-  else
-  {
-    // signalName does not match any signal
-    connected = false;
-  }
-
-  return connected;
-}
-
-bool WidgetView::DoAction( BaseObject* object, const std::string& actionName, const Property::Map& attributes )
-{
-  bool ret = true;
-
-  Dali::BaseHandle handle( object );
-  Dali::WidgetView::WidgetView widgetView = Dali::WidgetView::WidgetView::DownCast( handle );
-
-  if( !widgetView )
-  {
-    return false;
-  }
-
-  WidgetView& impl = GetImplementation( widgetView );
-
-  if( strcmp( actionName.c_str(), ACTION_WIDGETVIEW_PAUSE_WIDGET ) == 0 )
-  {
-    impl.PauseWidget();
-  }
-  else if( strcmp( actionName.c_str(), ACTION_WIDGETVIEW_RESUME_WIDGET ) == 0 )
-  {
-    impl.ResumeWidget();
-  }
-  else if( strcmp( actionName.c_str(), ACTION_WIDGETVIEW_CANCEL_TOUCH_EVENT ) == 0 )
-  {
-    impl.CancelTouchEvent();
-  }
-  else if( strcmp( actionName.c_str(), ACTION_WIDGETVIEW_ACTIVATE_FAULTED_WIDGET ) == 0 )
-  {
-    impl.ActivateFaultedWidget();
-  }
-  else
-  {
-    ret = false;
-  }
-
-  return ret;
-}
-
-void WidgetView::SetProperty( BaseObject* object, Property::Index index, const Property::Value& value )
-{
-  Dali::WidgetView::WidgetView widgetView = Dali::WidgetView::WidgetView::DownCast( Dali::BaseHandle( object ) );
-
-  if( widgetView )
-  {
-    WidgetView& impl = GetImplementation( widgetView );
-
-    switch( index )
-    {
-      case Dali::WidgetView::WidgetView::Property::PREVIEW:
-      {
-        bool previewEnabled;
-
-        if( value.Get( previewEnabled ) )
-        {
-          impl.SetPreviewVisible( previewEnabled );
-        }
-        break;
-      }
-      case Dali::WidgetView::WidgetView::Property::LOADING_TEXT:
-      {
-        bool textEnabled;
-        Property::Map map;
-
-        if( value.Get( textEnabled ) )
-        {
-          impl.SetLoadingTextVisible( textEnabled );
-        }
-        else if( value.Get( map ) )
-        {
-          impl.SetLoadingTextPropertyMap( map );
-        }
-        break;
-      }
-      case Dali::WidgetView::WidgetView::Property::PERMANENT_DELETE:
-      {
-        bool permanent;
-        if( value.Get( permanent ) )
-        {
-          impl.SetPermanentDelete( permanent );
-        }
-        break;
-      }
-      case TERMINATE_WIDGET:
-      {
-        bool del = false;
-        if( value.Get( del ) && del )
-        {
-          impl.TerminateWidget();
-        }
-        break;
-      }
-      case RETRY_TEXT:
-      {
-        Property::Map map;
-
-        if( value.Get( map ) )
-        {
-          impl.SetRetryTextPropertyMap( map );
-        }
-        break;
-      }
-      case WIDGET_IMAGE:
-      {
-        Property::Map map;
-        if( value.Get( map ) )
-        {
-          impl.SetWidgetImagePropertyMap( map );
-        }
-        break;
-      }
-    }
-  }
-}
-
-Property::Value WidgetView::GetProperty( BaseObject* object, Property::Index index )
-{
-  Property::Value value;
-  Dali::WidgetView::WidgetView widgetView = Dali::WidgetView::WidgetView::DownCast( Dali::BaseHandle( object ) );
-
-  if( widgetView )
-  {
-    WidgetView& impl = GetImplementation( widgetView );
-
-    switch( index )
-    {
-      case Dali::WidgetView::WidgetView::Property::WIDGET_ID:
-      {
-        value = impl.GetWidgetId();
-        break;
-      }
-      case Dali::WidgetView::WidgetView::Property::INSTANCE_ID:
-      {
-        value = impl.GetInstanceId();
-        break;
-      }
-      case Dali::WidgetView::WidgetView::Property::CONTENT_INFO:
-      {
-        value = impl.GetContentInfo();
-        break;
-      }
-      case Dali::WidgetView::WidgetView::Property::TITLE:
-      {
-        value = impl.GetTitle();
-        break;
-      }
-      case Dali::WidgetView::WidgetView::Property::UPDATE_PERIOD:
-      {
-        value = impl.GetUpdatePeriod();
-        break;
-      }
-      case Dali::WidgetView::WidgetView::Property::PREVIEW:
-      {
-        value = impl.IsPreviewVisible();
-        break;
-      }
-      case Dali::WidgetView::WidgetView::Property::LOADING_TEXT:
-      {
-        value = impl.IsLoadingTextVisible();
-        break;
-      }
-      case Dali::WidgetView::WidgetView::Property::WIDGET_STATE_FAULTED:
-      {
-        value = impl.IsWidgetFaulted();
-        break;
-      }
-      case Dali::WidgetView::WidgetView::Property::PERMANENT_DELETE:
-      {
-        value = impl.IsPermanentDelete();
-        break;
-      }
-    }
-  }
-
-  return value;
-}
-
-Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetView::WidgetAddedSignal()
-{
-  return mWidgetAddedSignal;
-}
-
-Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetView::WidgetDeletedSignal()
-{
-  return mWidgetDeletedSignal;
-}
-
-Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetView::WidgetCreationAbortedSignal()
-{
-  return mWidgetCreationAbortedSignal;
-}
-
-Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetView::WidgetContentUpdatedSignal()
-{
-  return mWidgetContentUpdatedSignal;
-}
-
-Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetView::WidgetUpdatePeriodChangedSignal()
-{
-  return mWidgetUpdatePeriodChangedSignal;
-}
-
-Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetView::WidgetFaultedSignal()
-{
-  return mWidgetFaultedSignal;
-}
-
-Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetView::WidgetTerminatedSignal()
-{
-  return mWidgetTerminatedSignal;
-}
-
-void WidgetView::OnInitialize()
-{
-  char* instanceId = NULL;
-  char* previewPath = NULL;
-  std::string previewImage;
-  widget_size_type_e sizeType;
-  screen_connector_toolkit_ops ops;
-
-  int ret = widget_instance_create( mWidgetId.c_str(), &instanceId );
-  if( ret < 0 || !instanceId )
-  {
-    DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::OnInitialize: widget_instance_create is failed [%s].\n", mWidgetId.c_str() );
-    return;
-  }
-
-  DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::OnInitialize: widget_instance_create is called. [widget id = %s, instance id = %s]\n",
-                 mWidgetId.c_str(), instanceId );
-
-  mInstanceId = instanceId;
-
-  // Preview image
-  widget_service_get_size_type( mWidth, mHeight, &sizeType );
-
-  previewPath = widget_service_get_preview_image_path( mWidgetId.c_str(), sizeType );
-  if( previewPath )
-  {
-    previewImage = previewPath;
-    free( previewPath );
-  }
-  else
-  {
-    previewImage = WIDGET_VIEW_RESOURCE_DEFAULT_IMG;
-  }
-
-  DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::OnInitialize: preview image path = %s\n", previewImage.c_str() );
-
-
-  mPreviewActor = Dali::Actor::New();
-  mPreviewActor.SetParentOrigin( ParentOrigin::CENTER );
-  mPreviewActor.SetAnchorPoint( AnchorPoint::CENTER );
-  mPreviewActor.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
-
-  mPreviewImage = Toolkit::ImageView::New( previewImage );
-  mPreviewImage.SetParentOrigin( ParentOrigin::CENTER );
-  mPreviewImage.SetAnchorPoint( AnchorPoint::CENTER );
-  mPreviewImage.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
-
-  Self().SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS );
-  Self().SetSize( mWidth, mHeight );
-
-  Self().Add( mPreviewActor );
-  mPreviewActor.Add( mPreviewImage );
-
-  mStateTextActor = Dali::Actor::New();
-  mStateTextActor.SetParentOrigin( ParentOrigin::CENTER );
-  mStateTextActor.SetAnchorPoint( AnchorPoint::CENTER );
-  mStateTextActor.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
-
-  // Loading text
-  mLoadingText = Toolkit::TextLabel::New( ( mLoadingTextString.empty() )? GET_LOCALE_TEXT( "IDS_ST_POP_LOADING_ING" ) : mLoadingTextString );
-  mLoadingText.SetParentOrigin( ParentOrigin::CENTER );
-  mLoadingText.SetAnchorPoint( AnchorPoint::CENTER );
-  mLoadingText.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
-  mLoadingText.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
-  mLoadingText.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Dali::Color::WHITE );
-  mLoadingText.SetProperty( Toolkit::TextLabel::Property::FONT_STYLE, "Bold" );
-  mLoadingText.SetProperty( Toolkit::TextLabel::Property::POINT_SIZE, TextPixelToPointSize( DEFAULT_FONT_PIXEL_SIZE ) );
-
-  mPreviewActor.Add( mStateTextActor );
-  mStateTextActor.Add( mLoadingText );
-
-  // Retry text
-  mRetryText = Toolkit::TextLabel::New( ( mRetryTextString.empty() )? GET_LOCALE_TEXT( "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" ) : mRetryTextString );
-  mRetryText.SetParentOrigin( ParentOrigin::CENTER );
-  mRetryText.SetAnchorPoint( AnchorPoint::CENTER );
-  mRetryText.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
-  mRetryText.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
-  mRetryText.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Dali::Color::WHITE );
-  mRetryText.SetProperty( Toolkit::TextLabel::Property::FONT_STYLE, "Bold" );
-  mRetryText.SetProperty( Toolkit::TextLabel::Property::POINT_SIZE, TextPixelToPointSize( DEFAULT_FONT_PIXEL_SIZE ) );
-
-  mStateTextActor.Add( mRetryText );
-  mRetryText.SetVisible( false );
-
-  // launch widget
-  mPid = widget_instance_launch( instanceId, (char *)mContentInfo.c_str(), mWidth, mHeight );
-  if( mPid < 0)
-  {
-
-    ShowLoadingState( false );
-    ShowRetryState( true );
-
-    DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::OnInitialize: widget_instance_launch is failed. [%s]\n", mWidgetId.c_str() );
-
-    // Emit signal
-    Dali::WidgetView::WidgetView handle( GetOwner() );
-    mWidgetCreationAbortedSignal.Emit( handle );
-
-    return;
-  }
-
-  ops.updated_cb = OnBufferUpdated;
-  ops.removed_cb = OnSurfaceRemoved;
-  ops.added_cb = OnBufferAdded;
-  mWatcherHandle = screen_connector_toolkit_add(&ops, (char *)instanceId, SCREEN_CONNECTOR_SCREEN_TYPE_WIDGET, this);
-  DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::OnInitialize: widget_instance_launch is called. [%s, mPid = %d]\n", mWidgetId.c_str(), mPid );
-
-}
-
-void WidgetView::OnStageConnection( int depth )
-{
-  Control::OnStageConnection( depth );
-}
-
-void WidgetView::OnStageDisconnection()
-{
-  Control::OnStageDisconnection();
-}
-
-void WidgetView::OnSizeSet( const Vector3& targetSize )
-{
-  if( mWidgetImageView )
-  {
-    mWidgetImageView.SetSize( targetSize );
-  }
-}
-
-bool WidgetView::IsWidgetImageView()
-{
-  return ( mWidgetImageView )? true: false;
-}
-
-void WidgetView::UpdateImageSource( tbm_surface_h source )
-{
-  mImageSource = Dali::NativeImageSource::New( source );
-  Dali::NativeImage image = Dali::NativeImage::New( *mImageSource );
-
-  if( mWidgetImageView )
-  {
-    mWidgetImageView.SetImage( image );
-    mWidgetImageView.SetProperty( Toolkit::ImageView::Property::PRE_MULTIPLIED_ALPHA, true );
-  }
-}
-
-void WidgetView::ConnectSignal( tizen_remote_surface* surface )
-{
-  if( mWidgetImageView && surface )
-  {
-    mRemoteSurface = surface;
-
-    Self().TouchSignal().Connect( this, &WidgetView::OnTouch );
-    Self().WheelEventSignal().Connect( this, &WidgetView::OnWheelEvent );
-  }
-}
-
-bool WidgetView::OnTouch( Dali::Actor actor, const Dali::TouchData& event )
-{
-  if( event.GetPointCount() == 0 )
-  {
-    return false;
-  }
-
-  if( mRemoteSurface == NULL )
-  {
-    return false;
-  }
-
-  DevelDevice::Class::Type deviceType = DevelTouchData::GetDeviceClass( event, 0 );
-  if( deviceType == DevelDevice::Class::MOUSE )
-  {
-    return MouseEvent( event );
-  }
-  else if( deviceType == DevelDevice::Class::TOUCH )
-  {
-    return TouchEvent( event );
-  }
-
-  return false;
-}
-
-bool WidgetView::OnWheelEvent( Dali::Actor actor, const Dali::WheelEvent& event )
-{
-  if( mRemoteSurface == NULL )
-  {
-    return false;
-  }
-  //ToDo: We should check TIZEN_INPUT_DEVICE_CLAS_MOUSE
-  tizen_remote_surface_transfer_mouse_wheel( mRemoteSurface,
-                                             event.direction,
-                                             event.z,
-                                             TIZEN_INPUT_DEVICE_CLAS_MOUSE,
-                                             TIZEN_INPUT_DEVICE_SUBCLAS_NONE,
-                                             "",
-                                             event.timeStamp
-                                           );
-  return false;
-}
-
-bool WidgetView::OnKeyEvent( const Dali::KeyEvent& event )
-{
-  if( mRemoteSurface == NULL )
-  {
-    return false;
-  }
-
-  tizen_remote_surface_event_type type = TIZEN_REMOTE_SURFACE_EVENT_TYPE_NONE;
-
-  switch( event.state )
-  {
-    case Dali::KeyEvent::Down:
-    {
-      type = TIZEN_REMOTE_SURFACE_EVENT_TYPE_KEY_DOWN;
-      break;
-    }
-    case Dali::KeyEvent::Up:
-    {
-      type = TIZEN_REMOTE_SURFACE_EVENT_TYPE_KEY_UP;
-      break;
-    }
-    case Dali::KeyEvent::Last:
-    {
-      break;
-    }
-    default:
-    {
-      return false;
-    }
-  }
-
-  int32_t keyCode;
-  if( GetKeyCode( event.keyPressedName, keyCode ) == false )
-  {
-    return false;
-  }
-
-  tizen_remote_surface_transfer_key_event( mRemoteSurface,
-                                           type,
-                                           keyCode,
-                                           Dali::DevelKeyEvent::GetDeviceClass( event ),
-                                           Dali::DevelKeyEvent::GetDeviceSubclass( event ),
-                                           "",
-                                           static_cast< uint32_t >( event.time )
-                                         );
-
-  return false;
-}
-
-Vector3 WidgetView::GetNaturalSize()
-{
-  Vector3 size;
-  size.x = mWidth;
-  size.y = mHeight;
-
-  if( size.x > 0 && size.y > 0 )
-  {
-    size.z = std::min( size.x, size.y );
-    return size;
-  }
-  else
-  {
-    return Control::GetNaturalSize();
-  }
-}
-
-float WidgetView::GetHeightForWidth( float width )
-{
-  if( mWidth > 0 && mHeight > 0 )
-  {
-    return GetHeightForWidthBase( width );
-  }
-  else
-  {
-    return Control::GetHeightForWidthBase( width );
-  }
-}
-
-float WidgetView::GetWidthForHeight( float height )
-{
-  if( mWidth > 0 && mHeight > 0 )
-  {
-    return GetWidthForHeightBase( height );
-  }
-  else
-  {
-    return Control::GetWidthForHeightBase( height );
-  }
-}
-
-void WidgetView::CloseRemoteSurface()
-{
-  if( mWatcherHandle != NULL )
-  {
-    if( remoteSurface != NULL && preBuffer != NULL && tizen_remote_surface_get_version( remoteSurface ) >= TIZEN_REMOTE_SURFACE_RELEASE_SINCE_VERSION )
-    {
-      tizen_remote_surface_release( remoteSurface, preBuffer );
-      tbm_surface_h preTbmSurface = (tbm_surface_h)wl_buffer_get_user_data( preBuffer );
-      tbm_surface_internal_unref( preTbmSurface );
-      wl_buffer_destroy( preBuffer );
-      preBuffer = NULL;
-    }
-
-    screen_connector_toolkit_remove( mWatcherHandle );
-    mWatcherHandle = NULL;
-    mRemoteSurface = NULL;
-    mPid = -1;
-  }
-}
-
-void WidgetView::ShowLoadingState( bool show )
-{
-  if( mPreviewImage && mPreviewVisible )
-  {
-    mPreviewImage.SetVisible( show );
-  }
-
-  if( mLoadingText && mLoadingTextVisible )
-  {
-    mLoadingText.SetProperty( Toolkit::TextLabel::Property::TEXT,
-                              ( mLoadingTextString.empty() )? GET_LOCALE_TEXT( "IDS_ST_POP_LOADING_ING" ) : mLoadingTextString );
-    mLoadingText.SetVisible( show );
-  }
-}
-
-void WidgetView::ShowRetryState( bool show )
-{
-  if( mPreviewImage && mPreviewVisible )
-  {
-    mPreviewImage.SetVisible( false );
-  }
-
-  if( mRetryText && mRetryTextVisible )
-  {
-    mRetryText.SetProperty( Toolkit::TextLabel::Property::TEXT,
-                            ( mRetryTextString.empty() )? GET_LOCALE_TEXT( "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" ) : mRetryTextString );
-    mRetryText.SetVisible( show );
-    mRetryState = show;
-  }
-}
-
-void WidgetView::SetLoadingTextPropertyMap( Property::Map map )
-{
-  if( mLoadingText )
-  {
-    Property::Value* loadingText = map.Find( STATE_TEXT );
-    std::string text;
-    if( loadingText && loadingText->Get( text ) )
-    {
-      mLoadingText.SetProperty( Toolkit::TextLabel::Property::TEXT, text );
-      mLoadingTextString = text;
-    }
-
-    Property::Value* fontStyle = map.Find( FONT_STYLE );
-    std::string style;
-
-    if( fontStyle && fontStyle->Get( style ) )
-    {
-      mLoadingText.SetProperty( Toolkit::TextLabel::Property::FONT_STYLE, style );
-    }
-
-    Property::Value* textPointSize = map.Find( TEXT_POINT_SIZE );
-    float size = 0.f;
-
-    if( textPointSize && textPointSize->Get( size ) )
-    {
-      mLoadingText.SetProperty( Toolkit::TextLabel::Property::POINT_SIZE, size );
-    }
-
-    Property::Value* textColor = map.Find( TEXT_COLOR );
-    Vector4 color;
-
-    if( textColor && textColor->Get( color ) )
-    {
-      mLoadingText.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, color );
-    }
-  }
-}
-
-void WidgetView::SetRetryTextPropertyMap( Property::Map map )
-{
-  if( mRetryText )
-  {
-    Property::Value* retryText = map.Find( STATE_TEXT );
-    std::string text;
-    if( retryText && retryText->Get( text ) )
-    {
-      mRetryText.SetProperty( Toolkit::TextLabel::Property::TEXT, text );
-      mRetryTextString = text;
-    }
-
-    Property::Value* fontStyle = map.Find( FONT_STYLE );
-    std::string style;
-
-    if( fontStyle && fontStyle->Get( style ) )
-    {
-      mRetryText.SetProperty( Toolkit::TextLabel::Property::FONT_STYLE, style );
-    }
-
-    Property::Value* textPointSize = map.Find( TEXT_POINT_SIZE );
-    float size = 0.f;
-
-    if( textPointSize && textPointSize->Get( size ) )
-    {
-      mRetryText.SetProperty( Toolkit::TextLabel::Property::POINT_SIZE, size );
-    }
-
-    Property::Value* textColor = map.Find( TEXT_COLOR );
-    Vector4 color;
-    if( textColor && textColor->Get( color ) )
-    {
-      mRetryText.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, color );
-    }
-
-    Property::Value* textVisible = map.Find( TEXT_VISIBLE );
-    bool visible = true;
-    if( textVisible && textVisible->Get( visible ) )
-    {
-      SetRetryTextVisible( visible );
-    }
-  }
-}
-
-void WidgetView::SetWidgetImagePropertyMap( Property::Map map )
-{
-  mWidgetImagePropertyMap = map;
-  if( mWidgetImageView )
-  {
-    mWidgetImageView.SetProperty( Toolkit::ImageView::Property::IMAGE, map );
-  }
-}
-
-float WidgetView::TextPixelToPointSize( int pixelSize )
-{
-  Dali::Vector2 dpi = Dali::Stage::GetCurrent().GetDpi();
-  float meanDpi = (dpi.height + dpi.width) / 2.0f;
-
-  return (pixelSize * 72.0f) / meanDpi;
-}
-
-void WidgetView::MouseIn( const Dali::TouchData& event )
-{
-  Vector2 localPos = event.GetLocalPosition( 0 );
-
-  tizen_remote_surface_transfer_mouse_event( mRemoteSurface,
-                                             TIZEN_REMOTE_SURFACE_EVENT_TYPE_MOUSE_IN,
-                                             0,
-                                             0,
-                                             (int)localPos.x,
-                                             (int)localPos.y,
-                                             0,
-                                             0,
-                                             0,
-                                             0,
-                                             TIZEN_INPUT_DEVICE_CLAS_MOUSE,
-                                             DevelTouchData::GetDeviceSubclass( event, 0 ),
-                                             "",
-                                             event.GetTime()
-                                           );
-}
-
-void WidgetView::MouseOut( const Dali::TouchData& event )
-{
-  tizen_remote_surface_transfer_mouse_event( mRemoteSurface,
-                                             TIZEN_REMOTE_SURFACE_EVENT_TYPE_MOUSE_OUT,
-                                             0,
-                                             0,
-                                             0,
-                                             0,
-                                             0,
-                                             0,
-                                             0,
-                                             0,
-                                             TIZEN_INPUT_DEVICE_CLAS_MOUSE,
-                                             DevelTouchData::GetDeviceSubclass( event, 0 ),
-                                             "",
-                                             event.GetTime()
-                                           );
-}
-
-bool WidgetView::MouseEvent( const Dali::TouchData& event )
-{
-  tizen_remote_surface_event_type type = TIZEN_REMOTE_SURFACE_EVENT_TYPE_NONE;
-  int button = 1;
-
-  switch( event.GetState( 0 ) )
-  {
-    case Dali::PointState::UP:
-    {
-      type = TIZEN_REMOTE_SURFACE_EVENT_TYPE_MOUSE_UP;
-
-      if( mRetryState )
-      {
-        ActivateFaultedWidget();
-        return false;
-      }
-
-      break;
-    }
-    case Dali::PointState::DOWN:
-    {
-      type = TIZEN_REMOTE_SURFACE_EVENT_TYPE_MOUSE_DOWN;
-      MouseIn( event );
-
-      break;
-    }
-    case Dali::PointState::MOTION:
-    {
-      type = TIZEN_REMOTE_SURFACE_EVENT_TYPE_MOUSE_MOVE;
-      button = 0 ;
-      break;
-    }
-    default:
-    {
-      return false;
-    }
-  }
-
-  Vector2 localPos = event.GetLocalPosition( 0 );
-
-  tizen_remote_surface_transfer_mouse_event( mRemoteSurface,
-                                             type,
-                                             0,
-                                             button,
-                                             (int)localPos.x,
-                                             (int)localPos.y,
-                                             wl_fixed_from_double( event.GetEllipseRadius( 0 ).x ),
-                                             wl_fixed_from_double( event.GetEllipseRadius( 0 ).y ),
-                                             wl_fixed_from_double( event.GetPressure( 0 ) ),
-                                             wl_fixed_from_double( event.GetAngle( 0 ).degree ),
-                                             TIZEN_INPUT_DEVICE_CLAS_MOUSE,
-                                             DevelTouchData::GetDeviceSubclass( event, 0 ),
-                                             "",
-                                             event.GetTime()
-                                           );
-
-  if( event.GetState( 0 ) == Dali::PointState::UP)
-  {
-    MouseOut( event );
-  }
-
-  return true;
-}
-
-bool WidgetView::TouchEvent( const Dali::TouchData& event )
-{
-  tizen_remote_surface_event_type type = TIZEN_REMOTE_SURFACE_EVENT_TYPE_NONE;
-  int button = 1;
-
-  switch( event.GetState( 0 ) )
-  {
-    case Dali::PointState::UP:
-    {
-      type = TIZEN_REMOTE_SURFACE_EVENT_TYPE_TOUCH_UP;
-
-      if( mRetryState )
-      {
-        ActivateFaultedWidget();
-        return false;
-      }
-
-      break;
-    }
-    case Dali::PointState::DOWN:
-    {
-      type = TIZEN_REMOTE_SURFACE_EVENT_TYPE_TOUCH_DOWN;
-
-      break;
-    }
-    case Dali::PointState::MOTION:
-    {
-      type = TIZEN_REMOTE_SURFACE_EVENT_TYPE_TOUCH_MOVE;
-      button = 0;
-      break;
-    }
-    default:
-    {
-      return false;
-    }
-  }
-
-  Vector2 localPos = event.GetLocalPosition( 0 );
-
-  tizen_remote_surface_transfer_touch_event( mRemoteSurface,
-                                             type,
-                                             0,
-                                             button,
-                                             (int)localPos.x,
-                                             (int)localPos.y,
-                                             wl_fixed_from_double( event.GetEllipseRadius( 0 ).x ),
-                                             wl_fixed_from_double( event.GetEllipseRadius( 0 ).y ),
-                                             wl_fixed_from_double( event.GetPressure( 0 ) ),
-                                             wl_fixed_from_double( event.GetAngle( 0 ).degree ),
-                                             TIZEN_INPUT_DEVICE_CLAS_TOUCHSCREEN,
-                                             DevelTouchData::GetDeviceSubclass( event, 0 ),
-                                             "",
-                                             event.GetTime()
-                                           );
-  return true;
-}
-
-} // namespace Internal
-
-} // namespace WidgetView
-
-} // namespace Dali
diff --git a/internal/widget_view/widget_view_impl.h b/internal/widget_view/widget_view_impl.h
deleted file mode 100644 (file)
index 8d66248..0000000
+++ /dev/null
@@ -1,346 +0,0 @@
-#ifndef __DALI_WIDGET_VIEW_INTERNAL_WIDGET_VIEW_H__
-#define __DALI_WIDGET_VIEW_INTERNAL_WIDGET_VIEW_H__
-
-/*
- * Samsung API
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Flora License, Version 1.1 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * 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.
- */
-
-// INTERNAL INCLUDES
-#include <public_api/widget_view/widget_view.h>
-
-// EXTERNAL INCLUDES
-#include <dali/public-api/adaptor-framework/native-image-source.h>
-#include <dali-toolkit/public-api/controls/control-impl.h>
-#include <dali-toolkit/public-api/controls/text-controls/text-label.h>
-#include <dali-toolkit/public-api/controls/image-view/image-view.h>
-#include <dali/public-api/object/property-map.h>
-#include <wayland-extension/tizen-remote-surface-client-protocol.h>
-#include <tbm_surface.h>
-#include <screen_connector_toolkit.h>
-
-namespace Dali
-{
-
-namespace WidgetView
-{
-
-namespace Internal
-{
-
-class WidgetView : public Toolkit::Internal::Control
-{
-public:
-
-  /**
-   * @copydoc Dali::WidgetView::WidgetView::New
-   */
-  static Dali::WidgetView::WidgetView New( const std::string& widgetId, const std::string& contentInfo, int width, int height, float updatePeriod );
-
-  /**
-   * @copydoc Dali::WidgetView::WidgetView::PauseWidget
-   */
-  bool PauseWidget();
-
-  /**
-   * @copydoc Dali::WidgetView::WidgetView::ResumeWidget
-   */
-  bool ResumeWidget();
-
-  /**
-   * @copydoc Dali::WidgetView::WidgetView::CancelTouchEvent
-   */
-  bool CancelTouchEvent();
-
-  /**
-   * @copydoc Dali::WidgetView::WidgetView::ActivateFaultedWidget
-   */
-  void ActivateFaultedWidget();
-
-  void SendWidgetEvent( int event );
-
-public: // Internal API
-
-  /**
-   * @brief Called when a property of an object of this type is set.
-   * @SINCE_1_1.38
-   * @param[in] object The object whose property is set.
-   * @param[in] index The property index.
-   * @param[in] value The new property value.
-   */
-  static void SetProperty( BaseObject* object, Property::Index index, const Property::Value& value );
-
-  /**
-   * @brief Called to retrieve a property of an object of this type.
-   * @SINCE_1_1.38
-   * @param[in] object The object whose property is to be retrieved.
-   * @param[in] index The property index.
-   * @return The current value of the property.
-   */
-  static Property::Value GetProperty( BaseObject* object, Property::Index propertyIndex );
-
-  /**
-   * @brief Performs actions as requested using the action name.
-   * @SINCE_1_1.38
-   * @param[in] object The object on which to perform the action.
-   * @param[in] actionName The action to perform.
-   * @param[in] attributes The attributes with which to perfrom this action.
-   * @return True if action has been accepted by this control
-   */
-  static bool DoAction( BaseObject* object, const std::string& actionName, const Property::Map& attributes );
-
-  static bool DoConnectSignal( BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor );
-
-  const std::string& GetWidgetId() const;
-
-  const std::string& GetInstanceId() const;
-
-  const std::string& GetContentInfo();
-
-  const std::string& GetTitle();
-
-  float GetUpdatePeriod() const;
-
-  void SetPreviewVisible( bool visible );
-
-  bool IsPreviewVisible();
-
-  void SetLoadingTextVisible( bool visible );
-
-  void SetRetryTextVisible( bool visible );
-
-  bool IsLoadingTextVisible();
-
-  bool IsRetryTextVisible();
-
-  bool IsWidgetFaulted();
-
-  void SetPermanentDelete( bool permanentDelete );
-
-  void RemoveWidgetImage();
-
-  bool IsPermanentDelete();
-
-  bool IsWidgetImageView();
-
-  void UpdateImageSource( tbm_surface_h source );
-
-  void CreateWidgetImageView();
-
-  void ConnectSignal( tizen_remote_surface* surface );
-
-  bool OnTouch( Dali::Actor actor, const Dali::TouchData& event );
-
-  bool OnWheelEvent( Dali::Actor actor, const Dali::WheelEvent& event );
-
-  void CloseRemoteSurface();
-
-  void SetLoadingTextPropertyMap( Dali::Property::Map map );
-
-  void SetRetryTextPropertyMap( Dali::Property::Map map );
-
-  void SetWidgetImagePropertyMap( Dali::Property::Map map );
-
-  void ShowLoadingState( bool show );
-
-  void ShowRetryState( bool show );
-
-  void TerminateWidget();
-
-  void MouseIn( const Dali::TouchData& event );
-
-  void MouseOut( const Dali::TouchData& event );
-
-  bool MouseEvent( const Dali::TouchData& event );
-
-  bool TouchEvent( const Dali::TouchData& event );
-
-public: //Signals
-
-  /**
-   * @copydoc Dali::WidgetView::WidgetView::WidgetAddedSignal
-   */
-  Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetAddedSignal();
-
-  /**
-   * @copydoc Dali::WidgetView::WidgetView::WidgetDeletedSignal
-   */
-  Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetDeletedSignal();
-
-  /**
-   * @copydoc Dali::WidgetView::WidgetView::WidgetCreationAbortedSignal
-   */
-  Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetCreationAbortedSignal();
-
-  /**
-   * @copydoc Dali::WidgetView::WidgetView::WidgetContentUpdatedSignal
-   */
-  Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetContentUpdatedSignal();
-
-  /**
-   * @copydoc Dali::WidgetView::WidgetView::WidgetUpdatePeriodChangedSignal
-   */
-  Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetUpdatePeriodChangedSignal();
-
-  /**
-   * @copydoc Dali::WidgetView::WidgetView::WidgetFaultedSignal
-   */
-  Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetFaultedSignal();
-
-  Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetTerminatedSignal();
-
-protected:
-
-  /**
-   * Construct a new WidgetView.
-   */
-  WidgetView();
-
-  /**
-   * Construct a new WidgetView.
-   */
-  WidgetView( const std::string& widgetId, const std::string& contentInfo, int width, int height, float updatePeriod );
-
-  /**
-   * A reference counted object may only be deleted by calling Unreference()
-   */
-  virtual ~WidgetView();
-
-  float TextPixelToPointSize( int pixelSize );
-
-private: // From Control
-
-  /**
-   * @copydoc Toolkit::Control::OnInitialize()
-   */
-  virtual void OnInitialize();
-
-  /**
-   * @copydoc Toolkit::Control::OnStageConnect()
-   */
-  virtual void OnStageConnection( int depth );
-
-  /**
-   * @copydoc Toolkit::Control::OnStageDisconnection()
-   */
-  virtual void OnStageDisconnection();
-
-  /**
-   * @copydoc Toolkit::Control::OnSizeSet()
-   */
-  virtual void OnSizeSet( const Vector3& targetSize );
-
-  /**
-   * @copydoc Toolkit::Control::OnKeyEvent()
-   */
-  virtual bool OnKeyEvent( const KeyEvent& event );
-
-  /**
-   * @copydoc Toolkit::Control::GetNaturalSize
-   */
-  virtual Vector3 GetNaturalSize();
-
-  /**
-   * @copydoc Toolkit::Control::GetHeightForWidth()
-   */
-  virtual float GetHeightForWidth( float width );
-
-  /**
-   * @copydoc Toolkit::Control::GetWidthForHeight()
-   */
-  virtual float GetWidthForHeight( float height );
-
-private:
-
-  // Undefined
-  WidgetView( const WidgetView& );
-
-  // Undefined
-  WidgetView& operator= ( const WidgetView& );
-
-private:
-
-  Toolkit::ImageView mWidgetImageView;     ///< Widget content
-  Toolkit::ImageView mPreviewImage;   ///< Preview image
-  Toolkit::TextLabel mLoadingText;      ///< Loading text
-  Toolkit::TextLabel mRetryText;      ///< Retry text
-  Dali::Actor mPreviewActor;
-  Dali::Actor mStateTextActor;
-  Dali::NativeImageSourcePtr mImageSource;
-
-  std::string mWidgetId;
-  std::string mInstanceId;
-  std::string mContentInfo;
-  std::string mTitle;
-
-  int mWidth;
-  int mHeight;
-  int mPid;
-  float mUpdatePeriod;
-
-  bool mPreviewVisible;
-
-  bool mLoadingTextVisible;
-  std::string mLoadingTextString;
-
-  bool mRetryTextVisible;
-  std::string mRetryTextString;
-  bool mRetryState;
-
-  bool mPermanentDelete;
-  screen_connector_toolkit_h mWatcherHandle;
-  tizen_remote_surface* mRemoteSurface;
-
-  Dali::Property::Map mWidgetImagePropertyMap;
-
-  // Signals
-  Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetAddedSignal;
-  Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetDeletedSignal;
-  Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetCreationAbortedSignal;
-  Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetContentUpdatedSignal;
-  Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetUpdatePeriodChangedSignal;
-  Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetFaultedSignal;
-
-  // Internal signal
-  Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetTerminatedSignal;
-};
-
-} // namespace Internal
-
-// Helpers for public-api forwarding methods
-
-inline Internal::WidgetView& GetImplementation( WidgetView& widgetView )
-{
-  DALI_ASSERT_ALWAYS( widgetView );
-
-  Dali::RefObject& handle = widgetView.GetImplementation();
-
-  return static_cast<Internal::WidgetView&>( handle );
-}
-
-inline const Internal::WidgetView& GetImplementation( const WidgetView& widgetView )
-{
-  DALI_ASSERT_ALWAYS( widgetView );
-
-  const Dali::RefObject& handle = widgetView.GetImplementation();
-
-  return static_cast<const Internal::WidgetView&>( handle );
-}
-
-} // namespace WidgetView
-
-} // namespace Dali
-
-#endif // __DALI_WIDGET_VIEW_INTERNAL_WIDGET_VIEW_H__
diff --git a/internal/widget_view_manager/widget_view_manager_impl.cpp b/internal/widget_view_manager/widget_view_manager_impl.cpp
deleted file mode 100644 (file)
index d03a6e1..0000000
+++ /dev/null
@@ -1,255 +0,0 @@
-/*
- * Samsung API
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Flora License, Version 1.1 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * 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 <internal/widget_view_manager/widget_view_manager_impl.h>
-
-// INTERNAL INCLUDES
-#include <internal/widget_view/widget_view_impl.h>
-
-// EXTERNAL INCLUDES
-#include <dali/public-api/object/type-registry.h>
-#include <dali/public-api/object/type-registry-helper.h>
-#include <dali/integration-api/debug.h>
-#include <system_info.h>
-#include <cynara-client.h>
-#include <stdio.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <widget_errno.h>
-#include <widget_instance.h>
-#include <screen_connector_toolkit.h>
-#include <libintl.h>
-
-namespace Dali
-{
-
-namespace WidgetView
-{
-
-namespace Internal
-{
-
-namespace
-{
-
-#define SMACK_LABEL_LENGTH 255
-
-#if defined(DEBUG_ENABLED)
-Integration::Log::Filter* gWidgetViewManagerLogging  = Integration::Log::Filter::New( Debug::Verbose, false, "LOG_WIDGET_VIEW_MANAGER" );
-#endif
-
-BaseHandle Create()
-{
-  return Dali::BaseHandle();
-}
-
-DALI_TYPE_REGISTRATION_BEGIN( Dali::WidgetView::WidgetViewManager, Dali::BaseHandle, Create );
-
-static bool IsWidgetFeatureEnabled()
-{
-  static bool feature = false;
-  static bool retrieved = false;
-  int ret;
-
-  if( retrieved == true )
-    return feature;
-
-  ret = system_info_get_platform_bool( "http://tizen.org/feature/shell.appwidget", &feature );
-  if( ret != SYSTEM_INFO_ERROR_NONE )
-  {
-    return false;
-  }
-
-  retrieved = true;
-
-  return feature;
-}
-
-static bool CheckPrivilege( const char* privilege )
-{
-  cynara* cynara;
-  int fd = 0;
-  int ret = 0;
-  char subjectLabel[SMACK_LABEL_LENGTH + 1] = "";
-  char uid[10] = { 0, };
-  const char* clientSession = "";
-
-  ret = cynara_initialize( &cynara, NULL );
-  if( ret != CYNARA_API_SUCCESS )
-  {
-    return false;
-  }
-
-  fd = open( "/proc/self/attr/current", O_RDONLY );
-  if( fd < 0 )
-  {
-    cynara_finish( cynara );
-    return false;
-  }
-
-  ret = read( fd, subjectLabel, SMACK_LABEL_LENGTH );
-  if( ret < 0 )
-  {
-    close( fd );
-    cynara_finish( cynara );
-    return false;
-  }
-
-  close( fd );
-
-  snprintf( uid, 10, "%d", getuid() );
-
-  ret = cynara_check( cynara, subjectLabel, clientSession, uid, privilege );
-  if( ret != CYNARA_API_ACCESS_ALLOWED )
-  {
-    cynara_finish( cynara );
-    return false;
-  }
-
-  cynara_finish( cynara );
-
-  return true;
-}
-
-} // unnamed namespace
-
-WidgetViewManagerPtr WidgetViewManager::New( Application application, const std::string& name )
-{
-  WidgetViewManagerPtr impl = new WidgetViewManager();
-
-  // Second-phase init of the implementation
-  if( impl->Initialize( application, name ) != WIDGET_ERROR_NONE )
-  {
-    DALI_LOG_INFO( gWidgetViewManagerLogging, Debug::Verbose, "WidgetViewManager::New: Fail to create WidgetViewManager.\n" );
-    return NULL;
-  }
-
-  return impl;
-}
-
-WidgetViewManager::WidgetViewManager()
-{
-}
-
-WidgetViewManager::~WidgetViewManager()
-{
-  screen_connector_toolkit_fini(SCREEN_CONNECTOR_SCREEN_TYPE_WIDGET);
-  widget_instance_unlisten_event( WidgetViewManager::WidgetEventCallback );
-  widget_instance_fini();
-}
-
-int WidgetViewManager::Initialize( Application application, const std::string& name )
-{
-  if( !IsWidgetFeatureEnabled() )
-  {
-    DALI_LOG_INFO( gWidgetViewManagerLogging, Debug::Verbose, "WidgetViewManager::Initialize: Widget feature is not enabled.\n" );
-    return WIDGET_ERROR_NOT_SUPPORTED;
-  }
-
-  if( !CheckPrivilege( "http://tizen.org/privilege/widget.viewer" ) )
-  {
-    DALI_LOG_INFO( gWidgetViewManagerLogging, Debug::Verbose, "WidgetViewManager::Initialize: Privilege error.\n" );
-    return WIDGET_ERROR_PERMISSION_DENIED;
-  }
-
-  if( !bindtextdomain( PKGNAME, WIDGET_VIEWER_DALI_LOCALE ) )
-  {
-    DALI_LOG_INFO( gWidgetViewManagerLogging, Debug::Verbose, "WidgetViewManager::Initialize: bindtextdomain error.\n" );
-  }
-
-  // Binds tizen remote surface manager & connects callback
-  if( screen_connector_toolkit_init(SCREEN_CONNECTOR_SCREEN_TYPE_WIDGET) < 0 )
-  {
-    return WIDGET_ERROR_FAULT;
-  }
-
-  // init widget service
-  widget_instance_init( name.c_str() );
-  widget_instance_listen_event( WidgetViewManager::WidgetEventCallback, this );
-
-  DALI_LOG_INFO( gWidgetViewManagerLogging, Debug::Verbose, "WidgetViewManager::Initialize: success.\n" );
-
-  return WIDGET_ERROR_NONE;
-}
-
-Dali::WidgetView::WidgetView WidgetViewManager::AddWidget( const std::string& widgetId, const std::string& contentInfo, int width, int height, float updatePeriod )
-{
-  // Add a new widget view
-  Dali::WidgetView::WidgetView widgetView = Dali::WidgetView::WidgetView::New( widgetId, contentInfo, width, height, updatePeriod );
-
-  std::string instanceId;
-  Property::Value value = widgetView.GetProperty( Dali::WidgetView::WidgetView::Property::INSTANCE_ID );
-  value.Get( instanceId );
-
-  if( !instanceId.empty() )
-  {
-    Dali::WidgetView::GetImplementation( widgetView ).WidgetTerminatedSignal().Connect( this, &WidgetViewManager::OnTerminatedWidget );
-
-    // Add to map
-    mWidgetViewContainer.insert( std::pair<std::string, Dali::WidgetView::WidgetView>( instanceId, widgetView ) );
-  }
-
-  DALI_LOG_INFO( gWidgetViewManagerLogging, Debug::Verbose, "WidgetViewManager::AddWidget: success [%s]\n", widgetId.c_str() );
-
-  return widgetView;
-}
-
-void WidgetViewManager::OnTerminatedWidget( Dali::WidgetView::WidgetView widgetView )
-{
-  std::string instanceId;
-  Dali::Property::Value value = widgetView.GetProperty( Dali::WidgetView::WidgetView::Property::INSTANCE_ID );
-
-  if( value.Get( instanceId ) && !instanceId.empty() && mWidgetViewContainer.size() > 0 )
-  {
-    WidgetViewIter iter = mWidgetViewContainer.find( instanceId );
-    if( iter != mWidgetViewContainer.end() )
-    {
-      mWidgetViewContainer.erase( iter );
-    }
-  }
-
-  DALI_LOG_INFO( gWidgetViewManagerLogging, Debug::Verbose, "WidgetViewManager::OnTerminatedWidget: Widget is deleted!\n" );
-}
-
-int WidgetViewManager::WidgetEventCallback( const char* widgetId, const char* instanceId, int event, void* data )
-{
-  WidgetViewManager* widgetViewManager = static_cast< WidgetViewManager* >( data );
-
-  if( widgetViewManager->mWidgetViewContainer.size() > 0)
-  {
-    WidgetViewIter iter = widgetViewManager->mWidgetViewContainer.find( std::string( instanceId ) );
-    if( iter != widgetViewManager->mWidgetViewContainer.end() )
-    {
-      Dali::WidgetView::WidgetView widgetView = iter->second;
-
-      Dali::WidgetView::GetImplementation( widgetView ).SendWidgetEvent( event );
-
-      return 0;
-    }
-  }
-
-  DALI_LOG_INFO( gWidgetViewManagerLogging, Debug::Verbose, "WidgetViewManager::WidgetEventCallback: WidgetView is not found! [%s, %s]\n", widgetId, instanceId );
-
-  return 0;
-}
-
-} // namespace Internal
-
-} // namespace WidgetView
-
-} // namespace Dali
diff --git a/internal/widget_view_manager/widget_view_manager_impl.h b/internal/widget_view_manager/widget_view_manager_impl.h
deleted file mode 100644 (file)
index 24f79df..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-#ifndef __DALI_WIDGET_VIEW_INTERNAL_WIDGET_VIEW_MANAGER_H__
-#define __DALI_WIDGET_VIEW_INTERNAL_WIDGET_VIEW_MANAGER_H__
-
-/*
- * Samsung API
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Flora License, Version 1.1 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * 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.
- */
-
-// INTERNAL INCLUDES
-#include <public_api/widget_view/widget_view.h>
-#include <public_api/widget_view_manager/widget_view_manager.h>
-
-// EXTERNAL INCLUDES
-#include <dali/public-api/object/base-object.h>
-#include <map>
-
-namespace Dali
-{
-
-namespace WidgetView
-{
-
-namespace Internal
-{
-
-class WidgetViewManager;
-typedef IntrusivePtr<WidgetViewManager> WidgetViewManagerPtr;
-
-class WidgetViewManager : public BaseObject, public ConnectionTracker
-{
-public:
-
-  /**
-   * @copydoc Dali::WidgetView::WidgetViewManager::New()
-   */
-  static WidgetViewManagerPtr New( Application application, const std::string& name );
-
-  /**
-   * @copydoc Dali::WidgetView::WidgetViewManager::AddWidget()
-   */
-  Dali::WidgetView::WidgetView AddWidget( const std::string& widgetId, const std::string& contentInfo, int width, int height, float updatePeriod );
-
-private:
-
-  /**
-   * Construct a new WidgetViewManager.
-   */
-  WidgetViewManager();
-
-  /**
-   * A reference counted object may only be deleted by calling Unreference()
-   */
-  virtual ~WidgetViewManager();
-
-  /**
-   * Initialize the WidgetViewManager
-   */
-  int Initialize( Application application, const std::string& name );
-
-  static int WidgetEventCallback( const char* widgetId, const char* instanceId, int event, void* data );
-
-  /**
-   * The widgetView is removed from WidgetViewContainer
-   */
-  void OnTerminatedWidget( Dali::WidgetView::WidgetView widgetView );
-
-private:
-
-  // Undefined
-  WidgetViewManager( const WidgetViewManager& );
-
-  // Undefined
-  WidgetViewManager& operator= ( const WidgetViewManager& );
-
-private:
-
-  typedef std::map<std::string, Dali::WidgetView::WidgetView> WidgetViewContainer;
-  typedef WidgetViewContainer::iterator WidgetViewIter;
-
-  WidgetViewContainer mWidgetViewContainer;
-};
-
-} // namespace Internal
-
-// Helpers for public-api forwarding methods
-
-inline Internal::WidgetViewManager& GetImplementation( WidgetViewManager& obj )
-{
-  DALI_ASSERT_ALWAYS( obj );
-
-  Dali::BaseObject& handle = obj.GetBaseObject();
-
-  return static_cast<Internal::WidgetViewManager&>( handle );
-}
-
-inline const Internal::WidgetViewManager& GetImplementation( const WidgetViewManager& obj )
-{
-  DALI_ASSERT_ALWAYS( obj );
-
-  const Dali::BaseObject& handle = obj.GetBaseObject();
-
-  return static_cast<const Internal::WidgetViewManager&>( handle );
-}
-
-} // namespace WidgetView
-
-} // namespace Dali
-
-#endif // __DALI_WIDGET_VIEW_INTERNAL_WIDGET_VIEW_MANAGER_H__
diff --git a/libwidget_viewer_dali.manifest b/libwidget_viewer_dali.manifest
new file mode 100644 (file)
index 0000000..a76fdba
--- /dev/null
@@ -0,0 +1,5 @@
+<manifest>
+       <request>
+               <domain name="_" />
+       </request>
+</manifest>
diff --git a/packaging/widget-viewer-dali.spec b/packaging/widget-viewer-dali.spec
new file mode 100644 (file)
index 0000000..ebfc6f5
--- /dev/null
@@ -0,0 +1,111 @@
+%bcond_with wayland
+
+Name:    libwidget_viewer_dali
+Summary: Library for developing the application
+Version: 1.4.11
+Release: 1
+Group:   System/Libraries
+License: Flora-1.1
+Source0: %{name}-%{version}.tar.gz
+BuildRequires: cmake
+BuildRequires: gettext-tools
+BuildRequires: pkgconfig
+BuildRequires: pkgconfig(dlog)
+BuildRequires: pkgconfig(widget_service)
+BuildRequires: pkgconfig(capi-appfw-application)
+BuildRequires: pkgconfig(capi-system-info)
+BuildRequires: pkgconfig(libtbm)
+BuildRequires: pkgconfig(dali-core)
+BuildRequires: pkgconfig(dali-adaptor)
+BuildRequires: pkgconfig(dali-toolkit)
+BuildRequires: pkgconfig(cynara-client)
+BuildRequires: pkgconfig(ecore-wayland)
+BuildRequires: pkgconfig(wayland-tbm-client)
+BuildRequires: pkgconfig(screen_connector_watcher)
+
+%description
+API for creating a new instance of the widget and managing its life-cycle.
+
+##############################
+# devel
+##############################
+%package devel
+Summary: Development Library for widget Viewer Dali Application
+Group: Development/Building
+Requires: %{name} = %{version}-%{release}
+
+%description devel
+Header and package configuration files for the widget viewer development
+
+##############################
+# Preparation
+##############################
+%prep
+%setup -q
+
+##############################
+# Build
+##############################
+%build
+PREFIX="/usr"
+CXXFLAGS+=" -Wall -g -O2"
+LDFLAGS+=" -Wl,--rpath=$PREFIX/lib -Wl,--as-needed"
+
+%ifarch %{arm}
+CXXFLAGS+=" -D_ARCH_ARM_"
+%endif
+
+cd %{_builddir}/%{name}-%{version}/build/tizen
+
+MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
+%cmake -DWIDGET_ENABLED=On \
+          -DTZ_SYS_SHARE=/usr/share \
+       -DFULLVER=%{version} \
+       -DMAJORVER=${MAJORVER} \
+       .
+
+make %{?jobs:-j%jobs}
+
+##############################
+# Installation
+##############################
+
+%install
+rm -rf %{buildroot}
+pushd build/tizen
+%make_install
+
+##############################
+# Post Install
+##############################
+
+%post
+/sbin/ldconfig
+exit 0
+
+##############################
+# Post Uninstall
+##############################
+
+%postun
+/sbin/ldconfig
+exit 0
+
+##############################
+# Files in Binary Packages
+##############################
+
+%files
+%manifest %{name}.manifest
+%defattr(-,root,root,-)
+%{_libdir}/%{name}.so*
+%license LICENSE
+/usr/share/widget_viewer_dali/images/*.png
+/usr/share/widget_viewer_dali/locale/*/LC_MESSAGES/*
+
+%files devel
+%defattr(-,root,root,-)
+%{_includedir}/widget_viewer_dali/*
+%{_libdir}/pkgconfig/widget_viewer_dali.pc
+
+# End of a file
diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
deleted file mode 100644 (file)
index 3e1f684..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-# for i18n
-
-SET(POFILES
-        ar.po
-        as.po
-        az.po
-        be_BY.po
-        bn_BD.po
-        bn.po
-        de.po
-        en_PH.po
-        en_US.po
-        es_ES.po
-        es_US.po
-        en.po
-        fa.po
-        fr.po
-        gu.po
-        hi.po
-        hy.po
-        id.po
-        it_IT.po
-        jv.po
-        ka.po
-        kk.po
-        km.po
-        kn.po
-        ko_KR.po
-        ky_KG.po
-        lo.po
-        ml.po
-        mn_MN.po
-        mr.po
-        ms.po
-        my_ZG.po
-        ne.po
-        or.po
-        pa.po
-        pt_BR.po
-        pt_PT.po
-        ru_RU.po
-        si.po
-        su_ID.po
-        ta.po
-        te.po
-        tg_TJ.po
-        th.po
-        tk_TM.po
-        tl.po
-        tr_TR.po
-        uk.po
-        ur.po
-        uz.po
-        vi.po
-        xh.po
-        zh_CN.po
-        zu.po
-)
-
-SET(MSGFMT "/usr/bin/msgfmt")
-FOREACH(pofile ${POFILES})
-       SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile})
-       MESSAGE(STATUS "  ${pofile}")
-       GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
-       GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
-       SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
-       ADD_CUSTOM_COMMAND(
-                       OUTPUT ${moFile}
-                       COMMAND ${MSGFMT} -o ${moFile} ${absPofile}
-                       DEPENDS ${absPofile}
-       )
-       INSTALL(FILES ${moFile}
-                       DESTINATION ${LOCALE_DIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo)
-       SET(moFiles ${moFiles} ${moFile})
-ENDFOREACH(pofile)
-
-ADD_CUSTOM_TARGET(locale ALL DEPENDS ${moFiles})
diff --git a/po/ar.po b/po/ar.po
deleted file mode 100755 (executable)
index 62bcd4c..0000000
--- a/po/ar.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "جارٍ التحميل..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "يتعذر تحميل البيانات. انقر لإعادة المحاولة."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "انقر هنا لتحميل بيانات التطبيق المصغر"
-
diff --git a/po/as.po b/po/as.po
deleted file mode 100755 (executable)
index 4f14965..0000000
--- a/po/as.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "লোড হৈ আছে..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "ডাটা লোড কৰিবলৈ অক্ষম৷ পুনঃচেষ্টা কৰিবৰ বাবে টিপক।"
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "ৱিজেট ডাটা লোড কৰিবলৈ ইয়াত টিপক"
-
diff --git a/po/az.po b/po/az.po
deleted file mode 100755 (executable)
index ae47346..0000000
--- a/po/az.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Yüklənir..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Məlumatları yükləmək mümkün deyil. Yenidən cəhd etmək üçün vurun"
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Piktoq məl yükl üçün vur"
-
diff --git a/po/be_BY.po b/po/be_BY.po
deleted file mode 100755 (executable)
index dc565b9..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Загрузка..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Unable to load data. Tap to retry."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Націс.тут для загр.дан.відж."
-
diff --git a/po/bn.po b/po/bn.po
deleted file mode 100755 (executable)
index 09d105d..0000000
--- a/po/bn.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "লোড হচ্ছে..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "তথ্য লোড করতে অক্ষম৷ পুনরায় চেষ্টা করতে ট্যাপ করুন৷"
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "উইজেট তথ্য লোড করতে এখানে ট্যাপ করুন"
-
diff --git a/po/bn_BD.po b/po/bn_BD.po
deleted file mode 100755 (executable)
index cdea8b3..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "লোড হচ্ছে..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "তথ্য লোড করতে অক্ষম। পুনরায় চেষ্টা করতে ট্যাপ করুন।"
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "উইজেটের তথ্য লোড করতে এখানে ট্যাপ করুন"
-
diff --git a/po/de.po b/po/de.po
deleted file mode 100755 (executable)
index 882b394..0000000
--- a/po/de.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Lädt..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Daten konnten nicht geladen werden. Für erneuten Versuch tippen"
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Tippen und Widget-Daten laden."
-
diff --git a/po/en.po b/po/en.po
deleted file mode 100755 (executable)
index 3030f61..0000000
--- a/po/en.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Loading..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Unable to load data. Tap to retry."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Tap here to load widget data"
-
diff --git a/po/en_PH.po b/po/en_PH.po
deleted file mode 100755 (executable)
index 3030f61..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Loading..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Unable to load data. Tap to retry."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Tap here to load widget data"
-
diff --git a/po/en_US.po b/po/en_US.po
deleted file mode 100755 (executable)
index 3030f61..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Loading..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Unable to load data. Tap to retry."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Tap here to load widget data"
-
diff --git a/po/es_ES.po b/po/es_ES.po
deleted file mode 100755 (executable)
index 9a1f90f..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Cargando..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "No se pueden cargar datos. Pulse para volver a intentarlo."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Cargue aquí datos de widgets"
-
diff --git a/po/es_US.po b/po/es_US.po
deleted file mode 100755 (executable)
index 4877ea8..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Cargando..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "No es posible cargar los datos. Pulse para intentarlo de nuevo."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Pulse para cargar datos widget"
-
diff --git a/po/fa.po b/po/fa.po
deleted file mode 100755 (executable)
index 23d685e..0000000
--- a/po/fa.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "در حال دانلود..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "بارگیری داده ممکن نیست. برای امتحان مجدد ضربه بزنید."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "برای بارگیری داده ویجت ضربه بزنید"
-
diff --git a/po/fr.po b/po/fr.po
deleted file mode 100755 (executable)
index 5a2b7e2..0000000
--- a/po/fr.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Chargement en cours."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Impossible de charger les données. Appuyez pour réessayer."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "App. pr charger donn. widget"
-
diff --git a/po/gu.po b/po/gu.po
deleted file mode 100755 (executable)
index 6aca674..0000000
--- a/po/gu.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "લોડિંગ..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "ડેટા લોડ કરવામાં અસમર્થ. ફરીથી પ્રયાસ કરવા માટે ટેપ કરો."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "વિજેટ ડેટા લોડ કરવા માટે અહીં ટેપ કરો"
-
diff --git a/po/hi.po b/po/hi.po
deleted file mode 100755 (executable)
index 3dc0197..0000000
--- a/po/hi.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "लोड हो रहा है..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "डाटा लोड करने में अक्षम। फिर से प्रयास करने हेतु टैप करें।"
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "विजेट डाटा लोड करने हेतु यहां टैप करें"
-
diff --git a/po/hy.po b/po/hy.po
deleted file mode 100755 (executable)
index fe15a4b..0000000
--- a/po/hy.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Բեռնում է..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Անհնար է տվյալներ բեռնել: Թակեք՝ նորից փորձելու համար"
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Թակ այստեղ՝ պտկրգրի տվ. բեռ."
-
diff --git a/po/id.po b/po/id.po
deleted file mode 100755 (executable)
index 62f3708..0000000
--- a/po/id.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Meloading…"
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Tidak dapat memuat data. Ketuk untuk mencoba lagi."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Ktuk sini utk muat dta wdgt"
-
diff --git a/po/it_IT.po b/po/it_IT.po
deleted file mode 100755 (executable)
index 910a09f..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Caricamento..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Impossibile caricare i dati. Toccate per riprovare."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Toc. qui per caric. dati widget"
-
diff --git a/po/jv.po b/po/jv.po
deleted file mode 100755 (executable)
index 03d9b69..0000000
--- a/po/jv.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Lagi muat..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Ora bisa ngamot data. Tutul kanggo nyoba maneh."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Ttl iki nggo amot dt widget"
-
diff --git a/po/ka.po b/po/ka.po
deleted file mode 100755 (executable)
index c69f879..0000000
--- a/po/ka.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "იტვირთება..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "მონაცემთა ჩატვირთვა შეუძლებელია. შეეხეთ და გაიმეორეთ მცდელობა"
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "შეეხეთ აქ, ვიჯეტის მონაცემ."
-
diff --git a/po/kk.po b/po/kk.po
deleted file mode 100755 (executable)
index 08c0a8f..0000000
--- a/po/kk.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Жазылуда..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Деректерді жүктеу мүмкін емес. Қайталау үшін түртіңіз"
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Виджет дер. жүк-у үшін түрту"
-
diff --git a/po/km.po b/po/km.po
deleted file mode 100755 (executable)
index 2050a75..0000000
--- a/po/km.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "កំពុង​ផ្ទុក..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "មិន​អាច​ផ្ទុក​ទិន្នន័យ។ ប៉ះ​ដើម្បី​សាកល្បង​ម្ដងទៀត។"
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "ប៉ះ​ទីនេះ ដើម្បី​ផ្ទុក​ទិន្នន័យ​វីដជីត"
-
diff --git a/po/kn.po b/po/kn.po
deleted file mode 100755 (executable)
index 5a8a768..0000000
--- a/po/kn.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "ಲೋಡಿಂಗ್..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "ಡೇಟಾ ಲೋಡ್ ಮಾಡಲು ಅಸಮರ್ಥ. ಮರುಪ್ರಯತ್ನಿಸಲು ಒತ್ತಿ."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "ವಿಜೆಟ್ ಡೇಟಾ ಲೋಡ್‌ಗೆ ಇಲ್ಲಿ ತಟ್ಟಿ"
-
diff --git a/po/ko_KR.po b/po/ko_KR.po
deleted file mode 100755 (executable)
index ea79661..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "불러오는 중..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "데이터를 불러올 수 없습니다. 다시 시도하려면 누르세요."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "위젯 데이터를 불러오려면 여기를 누르세요"
-
diff --git a/po/ky_KG.po b/po/ky_KG.po
deleted file mode 100755 (executable)
index 21a7b60..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Жүктөлүүдө..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Unable to load data. Tap to retry."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Видж. маал. жүкт. муну бас"
-
diff --git a/po/lo.po b/po/lo.po
deleted file mode 100755 (executable)
index 05943b1..0000000
--- a/po/lo.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "ກຳລັງໂຫຼດ..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "ບໍ່ສາມາດໂຫຼດຂໍ້ມູນໄດ້. ເຄາະເພື່ອລອງໃໝ່."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "ແຕະທີ່ນີ້ເພື່ອໂຫຼດຂໍ້ມູນວິດເຈັດ"
-
diff --git a/po/ml.po b/po/ml.po
deleted file mode 100755 (executable)
index e65be75..0000000
--- a/po/ml.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "ലോഡ്‌ ചെയ്യുന്നു..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "ഡാറ്റ ലോഡുചെയ്യാന്‍ കഴിയുന്നില്ല. വീണ്ടും ശ്രമിക്കുന്നതിന് ടാപ്പുചെയ്യുക"
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "വിജറ്റ് ഡാറ്റ ലോഡ് ചെയ്യാൻ ഇവിടെ സ്പർശിക്കുക"
-
diff --git a/po/mn_MN.po b/po/mn_MN.po
deleted file mode 100755 (executable)
index 0d515f7..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Ачаалж байна..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Өгөгдөл ачаалах боломжгүй. Товшиж дахин оролд"
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Тоног. өгөг. ачаал. энд товш"
-
diff --git a/po/mr.po b/po/mr.po
deleted file mode 100755 (executable)
index 3bcf03b..0000000
--- a/po/mr.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "लोड होत आहे..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "डेटा लोड करण्यामध्‍ये अक्षम. पुनर्प्रयत्न करण्‍यासाठी टॅप करा."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "विजेट डेटा लोड करण्‍यास येथे टॅप करा"
-
diff --git a/po/ms.po b/po/ms.po
deleted file mode 100755 (executable)
index 413d227..0000000
--- a/po/ms.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Memuat…"
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Tidak dapat memuatkan data. Ketik untuk mencuba semula."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Ketik utk muat data widget"
-
diff --git a/po/my_ZG.po b/po/my_ZG.po
deleted file mode 100755 (executable)
index c2f558d..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "အခ်က္အလက္ျဖည့္သြင္းေနပါသည္…"
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "ေဒတာ တင္ရန္ မရႏိုင္ပါ။ ျပန္ၾကိဳးစားရန္ ႏွိပ္ပါ။"
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "ဝဒ္ဂ်က္ေဒတာကုိ ရယူရန္ ဤေနရာကုိ ႏွိပ္ပါ"
-
diff --git a/po/ne.po b/po/ne.po
deleted file mode 100755 (executable)
index dd751d8..0000000
--- a/po/ne.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "लोड हुँदै छ..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "डाटा लोड गर्न सकेन। पुन: प्रयास गर्नुहोस् मा ट्याप गर्नुहोस्।"
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "विजेट डाटा लोड गर्न यहाँ ट्याप गर्नु"
-
diff --git a/po/or.po b/po/or.po
deleted file mode 100755 (executable)
index 95e255a..0000000
--- a/po/or.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "ଲୋଡ୍ ହେଉଛି..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "ଡାଟା ଲୋଡ୍ କରିବାକୁ ଅସମର୍ଥ। ପୁନଃଚେଷ୍ଟା କରିବାକୁ ଟ୍ୟାପ୍ କରନ୍ତୁ।"
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "ୱିଜେ. ଡାଟା ଲୋଡ୍‍ କରି. ଏଠା. ଟ୍ୟାପ୍"
-
diff --git a/po/pa.po b/po/pa.po
deleted file mode 100755 (executable)
index dde5618..0000000
--- a/po/pa.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "ਲੋਡ ਹੋ ਰਿਹਾ ਹੈ..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "ਡੈਟਾ ਨੂੰ ਲੋਡ ਕਰਨ ਵਿੱਚ ਅਸਮਰੱਥ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ।"
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "ਵਿੱਜੇਟ ਡੈਟਾ ਲੋਡ ਕਰਨ ਲਈ ਇੱਥੇ ਟੈਪ ਕਰੋ"
-
diff --git a/po/pt_BR.po b/po/pt_BR.po
deleted file mode 100755 (executable)
index f2fb3b5..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Carregando..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Não é possível carregar os dados. Toque para tentar novamente."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Tocar carreg. dados widget"
-
diff --git a/po/pt_PT.po b/po/pt_PT.po
deleted file mode 100755 (executable)
index b953672..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "A carregar..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Impossível carregar dados. Toque para tentar novamente."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Toque p/ carregar dados widget"
-
diff --git a/po/ru_RU.po b/po/ru_RU.po
deleted file mode 100755 (executable)
index e69de9b..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Загрузка..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Не удалось загрузить данные. Коснитесь для повтора"
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Нажм. для загрузки данных"
-
diff --git a/po/si.po b/po/si.po
deleted file mode 100755 (executable)
index 8a85b10..0000000
--- a/po/si.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "ප්‍රෙව්ශනය කරමින්..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "දත්ත ප්‍රවේශනය කිරීමට නොහැකිය. යළි උත්සාහ කිරීමට තට්ටු කරන්න"
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "විජෙ. දත්ත පූරණයට මෙතැන ත. ක."
-
diff --git a/po/su_ID.po b/po/su_ID.po
deleted file mode 100755 (executable)
index 623411e..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Ngamuat..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Teu tiasa ngamuat data. Ketok pikeun nyobi deui."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Ketok di dieu pikeun muka data widget"
-
diff --git a/po/ta.po b/po/ta.po
deleted file mode 100755 (executable)
index 2770de9..0000000
--- a/po/ta.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "லோடிங்..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "தரவை ஏற்ற இயலவில்லை. மீண்டும் முயலவென டேப் செய்க."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "விட்ஜெட் தரவை ஏற்ற, டேப் செய்."
-
diff --git a/po/te.po b/po/te.po
deleted file mode 100755 (executable)
index 0998bb6..0000000
--- a/po/te.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "లోడ్ అవుతోంది..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "డేటాను లోడ్ చేయడం సాధ్యం కాదు. మళ్లీ ప్రయత్నించడానికి ట్యాప్ చేయండి."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "విడ్జెట్ డేటాను లోడ్ చేయడానికి ఇక్కడ ట్యాప్ చేయండి"
-
diff --git a/po/tg_TJ.po b/po/tg_TJ.po
deleted file mode 100755 (executable)
index ff4285d..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Боркунӣ..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Unable to load data. Tap to retry."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Инҷо зарб з., итт.виҷ.бор к."
-
diff --git a/po/th.po b/po/th.po
deleted file mode 100755 (executable)
index dc80e32..0000000
--- a/po/th.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "กำลังประมวลผล..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "ไม่สามารถโหลดข้อมูลได้ แตะเพื่อลองอีกครั้ง"
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "แตะที่นี่เพื่อโหลดข้อมูล Widget"
-
diff --git a/po/tk_TM.po b/po/tk_TM.po
deleted file mode 100755 (executable)
index e9946e6..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Ýükleýär..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Unable to load data. Tap to retry."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Wijet magl ýükl üçn şuňa bas"
-
diff --git a/po/tl.po b/po/tl.po
deleted file mode 100755 (executable)
index 846ba71..0000000
--- a/po/tl.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Naglo-load..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Hindi ma-load ang data. I-tap upang subukang muli."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "I-tap dito para i-load ang data ng widget"
-
diff --git a/po/tr_TR.po b/po/tr_TR.po
deleted file mode 100755 (executable)
index eac167c..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Yükleniyor..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Veri yüklenemiyor. Tekrar denemek için dokunun."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Widget vrlrni yklmk içn dknn"
-
diff --git a/po/uk.po b/po/uk.po
deleted file mode 100755 (executable)
index b4f1910..0000000
--- a/po/uk.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Завантаження..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Неможливо завантажити дані. Натисніть, щоб спробувати ще раз"
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Торкн. для зав. дан. відж."
-
diff --git a/po/ur.po b/po/ur.po
deleted file mode 100755 (executable)
index 9b90a3c..0000000
--- a/po/ur.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "لوڈنگ..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "ڈیٹا لوڈ کرنے سے قاصر۔ پھرکوشش کرنے کے لئے تھپتھپائیں۔"
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "ویجیٹ کا ڈیٹا لوڈ کرنے کے لیے یہاں تھپکی دیں"
-
diff --git a/po/uz.po b/po/uz.po
deleted file mode 100755 (executable)
index 4413533..0000000
--- a/po/uz.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Yuklanmoqda..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Ma’lumotni yuklab bo‘lmaydi. Qayta urinib ko‘rish uchun cherting"
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Vidjet ma’l. yuklash u-n teg"
-
diff --git a/po/vi.po b/po/vi.po
deleted file mode 100755 (executable)
index 080962c..0000000
--- a/po/vi.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Đang tải…"
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Không thể tải dữ liệu. Hãy chạm để thử lại."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Chạm để tải dữ liệu widget"
-
diff --git a/po/xh.po b/po/xh.po
deleted file mode 100755 (executable)
index 73194f4..0000000
--- a/po/xh.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Kufakwa iinkcukacha..."
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Ayikwazi kulayisha ingcombolo. Thepa ukuze uzame kwakhona."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Betha apha ukongeza idatha ye-widget"
-
diff --git a/po/zh_CN.po b/po/zh_CN.po
deleted file mode 100755 (executable)
index fe8d886..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "载入中…"
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "无法载入数据。轻敲以重试。"
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "点击此处以载入小组件数据"
-
diff --git a/po/zu.po b/po/zu.po
deleted file mode 100755 (executable)
index 9cbbc5c..0000000
--- a/po/zu.po
+++ /dev/null
@@ -1,9 +0,0 @@
-msgid "IDS_ST_POP_LOADING_ING"
-msgstr "Iyalayisha…"
-
-msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
-msgstr "Ayikwazi ukulayisha idatha. Thepha ukuze uzame futhi."
-
-msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
-msgstr "Thepha lapha ukuze ulayishe ulwazi lwewijethi"
-
diff --git a/public_api/widget_view/widget_view.cpp b/public_api/widget_view/widget_view.cpp
deleted file mode 100644 (file)
index ed91fe2..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Samsung API
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Flora License, Version 1.1 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * 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 <public_api/widget_view/widget_view.h>
-
-// INTERNAL INCLUDES
-#include <internal/widget_view/widget_view_impl.h>
-
-namespace Dali
-{
-
-namespace WidgetView
-{
-
-WidgetView WidgetView::New( const std::string& widgetId, const std::string& contentInfo, int width, int height, float updatePeriod )
-{
-  return Internal::WidgetView::New( widgetId, contentInfo, width, height, updatePeriod );
-}
-
-WidgetView WidgetView::DownCast( BaseHandle handle )
-{
-  return Toolkit::Control::DownCast<WidgetView, Internal::WidgetView>( handle );
-}
-
-WidgetView::WidgetView()
-{
-}
-
-WidgetView::WidgetView( const WidgetView& handle )
-: Toolkit::Control( handle )
-{
-}
-
-WidgetView& WidgetView::operator=( const WidgetView& handle )
-{
-  if( &handle != this )
-  {
-    Control::operator=( handle );
-  }
-  return *this;
-}
-
-WidgetView::~WidgetView()
-{
-}
-
-bool WidgetView::PauseWidget()
-{
-  return Dali::WidgetView::GetImplementation( *this ).PauseWidget();
-}
-
-bool WidgetView::ResumeWidget()
-{
-  return Dali::WidgetView::GetImplementation( *this ).ResumeWidget();
-}
-
-bool WidgetView::CancelTouchEvent()
-{
-  return Dali::WidgetView::GetImplementation( *this ).CancelTouchEvent();
-}
-
-void WidgetView::ActivateFaultedWidget()
-{
-  return Dali::WidgetView::GetImplementation( *this ).ActivateFaultedWidget();
-}
-
-WidgetView::WidgetViewSignalType& WidgetView::WidgetAddedSignal()
-{
-  return Dali::WidgetView::GetImplementation(*this).WidgetAddedSignal();
-}
-
-WidgetView::WidgetViewSignalType& WidgetView::WidgetDeletedSignal()
-{
-  return Dali::WidgetView::GetImplementation(*this).WidgetDeletedSignal();
-}
-
-WidgetView::WidgetViewSignalType& WidgetView::WidgetCreationAbortedSignal()
-{
-  return Dali::WidgetView::GetImplementation(*this).WidgetCreationAbortedSignal();
-}
-
-WidgetView::WidgetViewSignalType& WidgetView::WidgetContentUpdatedSignal()
-{
-  return Dali::WidgetView::GetImplementation(*this).WidgetContentUpdatedSignal();
-}
-
-WidgetView::WidgetViewSignalType& WidgetView::WidgetUpdatePeriodChangedSignal()
-{
-  return Dali::WidgetView::GetImplementation(*this).WidgetUpdatePeriodChangedSignal();
-}
-
-WidgetView::WidgetViewSignalType& WidgetView::WidgetFaultedSignal()
-{
-  return Dali::WidgetView::GetImplementation(*this).WidgetFaultedSignal();
-}
-
-WidgetView::WidgetView( Internal::WidgetView& implementation )
-: Control( implementation )
-{
-}
-
-WidgetView::WidgetView( Dali::Internal::CustomActor* internal )
-: Control( internal )
-{
-  VerifyCustomActorPointer<Internal::WidgetView>( internal );
-}
-
-} // namespace WidgetView
-
-} // namespace Dali
diff --git a/public_api/widget_view/widget_view.h b/public_api/widget_view/widget_view.h
deleted file mode 100644 (file)
index 2ac21f3..0000000
+++ /dev/null
@@ -1,338 +0,0 @@
-#ifndef __DALI_WIDGET_VIEW_WIDGET_VIEW_H__
-#define __DALI_WIDGET_VIEW_WIDGET_VIEW_H__
-
-/*
- * Samsung API
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Flora License, Version 1.1 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * 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-toolkit/public-api/controls/control.h>
-
-namespace Dali
-{
-
-namespace WidgetView
-{
-
-namespace Internal DALI_INTERNAL
-{
-class WidgetView;
-}
-
-/**
- * @addtogroup dali_widget_view
- * @{
- */
-
-/**
- * @brief WidgetView is a class for displaying the widget image and controlling the widget.
- * Input events that WidgetView gets are delivered to the widget.
- *
- * Signals
- * | %Signal Name                | Method                                 |
- * |-----------------------------|----------------------------------------|
- * | widgetAdded                 | @ref WidgetAddedSignal()               |
- * | widgetDeleted               | @ref WidgetDeletedSignal()             |
- * | widgetCreationAborted       | @ref WidgetCreationAbortedSignal()     |
- * | widgetContentUpdated        | @ref WidgetContentUpdatedSignal()      |
- * | widgetUpdatePeriodChanged   | @ref WidgetUpdatePeriodChangedSignal() |
- * | widgetFaulted               | @ref WidgetFaultedSignal()             |
- *
- * @since_tizen 3.0
- */
-class DALI_IMPORT_API WidgetView : public Toolkit::Control
-{
-public:
-
-  /**
-   * @brief The start and end property ranges for this control.
-   * @SINCE_1_0.0
-   */
-  enum PropertyRange
-  {
-    PROPERTY_START_INDEX = Control::CONTROL_PROPERTY_END_INDEX + 1,  ///< @SINCE_1_0.0
-    PROPERTY_END_INDEX =   PROPERTY_START_INDEX + 1000,              ///< Reserve property indices @SINCE_1_0.0
-  };
-
-  /**
-   * @brief An enumeration of properties belonging to the WidgetView class.
-   * @privlevel public
-   * @privilege %http://tizen.org/privilege/widget.viewer
-   * @SINCE_1_0.0
-   */
-  struct Property
-  {
-    /**
-     * @brief An enumeration of properties belonging to the WidgetView class.
-     * @privlevel public
-     * @privilege %http://tizen.org/privilege/widget.viewer
-     * @SINCE_1_0.0
-     */
-    enum
-    {
-      // Event side properties
-
-      /**
-       * @brief name "widgetId", Get the id of the widget, type string, read-only
-       * @SINCE_1_0.0
-       */
-      WIDGET_ID = PROPERTY_START_INDEX,
-
-      /**
-       * @brief name "instanceId", type string, read-only
-       * @SINCE_1_0.0
-       */
-      INSTANCE_ID,
-
-      /**
-       * @brief name "contentInfo", type string, read-only
-       * @SINCE_1_0.0
-       */
-      CONTENT_INFO,
-
-      /**
-       * @brief name "title", type string, read-only
-       * @SINCE_1_0.0
-       */
-      TITLE,
-
-      /**
-       * @brief name "updatePeriod", type float, read-only
-       * @SINCE_1_0.0
-       */
-      UPDATE_PERIOD,
-
-      /**
-       * @brief name "preview", type boolean if it is a show/hide flag, map otherwise
-       * @SINCE_1_0.0
-       */
-      PREVIEW,
-
-      /**
-       * @brief name "loadingText", type boolean if it is a show/hide flag, map otherwise
-       * @SINCE_1_0.0
-       */
-      LOADING_TEXT,
-
-      /**
-       * @brief name "widgetStateFaulted", type boolean
-       * @SINCE_1_0.0
-       */
-      WIDGET_STATE_FAULTED,
-
-      /**
-       * @brief name "permanentDelete", type boolean
-       * @SINCE_1_0.0
-       */
-      PERMANENT_DELETE,
-
-    };
-  };
-
-
-  /**
-   * @brief Create widget view.
-   *
-   * @since_tizen 3.0
-   * @privlevel public
-   * @privilege %http://tizen.org/privilege/widget.viewer
-   * @param[in] widgetId The widget id.
-   * @param[in] contentInfo Contents that will be given to the widget instance.
-   * @param[in] width The widget width.
-   * @param[in] height The widget height.
-   * @param[in] updatePeriod The period of updating contents of the widget.
-   * @return A handle to WidgetView.
-   */
-  static WidgetView New( const std::string& widgetId, const std::string& contentInfo, int width, int height, float updatePeriod );
-
-  /**
-   * @brief Downcast a handle to WidgetView handle.
-   *
-   * If the BaseHandle points is a WidgetView the downcast returns a valid handle.
-   * If not the returned handle is left empty.
-   *
-   * @since_tizen 3.0
-   * @param[in] handle Handle to an object
-   * @return handle to a WidgetView or an empty handle
-   */
-  static WidgetView DownCast( BaseHandle handle );
-
-  /**
-   * @brief Creates an empty handle.
-   * @since_tizen 3.0
-   */
-  WidgetView();
-
-  /**
-   * @brief Copy constructor.
-   *
-   * @since_tizen 3.0
-   * @param[in] handle The handle to copy from.
-   */
-  WidgetView( const WidgetView& handle );
-
-  /**
-   * @brief Assignment operator.
-   *
-   * @since_tizen 3.0
-   * @param[in] handle The handle to copy from.
-   * @return A reference to this.
-   */
-  WidgetView& operator=( const WidgetView& handle );
-
-  /**
-   * @brief Destructor
-   *
-   * This is non-virtual since derived Handle types must not contain data or virtual methods.
-   * @since_tizen 3.0
-   */
-  ~WidgetView();
-
-  /**
-   * @brief Pauses a given widget.
-   *
-   * @since_tizen 3.0
-   * @privlevel public
-   * @privilege %http://tizen.org/privilege/widget.viewer
-   * @return true on success, false otherwise.
-   */
-  bool PauseWidget();
-
-  /**
-   * @brief Resume a given widget.
-   *
-   * @since_tizen 3.0
-   * @privlevel public
-   * @privilege %http://tizen.org/privilege/widget.viewer
-   * @return true on success, false otherwise.
-   */
-  bool ResumeWidget();
-
-  /**
-   * @brief Cancels touch event procedure.
-   * If you call this function after feed the touch down event, the widget will get ON_HOLD events.
-   * If a widget gets ON_HOLD event, it will not do anything even if you feed touch up event.
-   *
-   * @since_tizen 3.0
-   * @privlevel public
-   * @privilege %http://tizen.org/privilege/widget.viewer
-   * @return true on success, false otherwise.
-   */
-  bool CancelTouchEvent();
-
-  /**
-   * @brief Activate a widget in faulted state.
-   * A widget in faulted state MUST be activated before adding the widget.
-   *
-   * @since_tizen 3.0
-   * @privlevel public
-   * @privilege %http://tizen.org/privilege/widget.viewer
-   */
-  void ActivateFaultedWidget();
-
-public: //Signals
-
-  typedef Signal< void ( WidgetView ) > WidgetViewSignalType;   ///< WidgetView signal type @since_tizen 3.0
-
-  /**
-   * @brief This signal is emitted when the widget is added.
-   *
-   * @since_tizen 3.0
-   * @privlevel public
-   * @privilege %http://tizen.org/privilege/widget.viewer
-   * @return The signal to connect to.
-   */
-  WidgetViewSignalType& WidgetAddedSignal();
-
-  /**
-   * @brief This signal is emitted when the widget is deleted.
-   *
-   * @since_tizen 3.0
-   * @privlevel public
-   * @privilege %http://tizen.org/privilege/widget.viewer
-   * @return The signal to connect to.
-   */
-  WidgetViewSignalType& WidgetDeletedSignal();
-
-  /**
-   * @brief This signal is emitted when the widget creation is aborted.
-   *
-   * @since_tizen 3.0
-   * @privlevel public
-   * @privilege %http://tizen.org/privilege/widget.viewer
-   * @return The signal to connect to.
-   */
-  WidgetViewSignalType& WidgetCreationAbortedSignal();
-
-  /**
-   * @brief This signal is emitted when the widget content is updated.
-   *
-   * @since_tizen 3.0
-   * @privlevel public
-   * @privilege %http://tizen.org/privilege/widget.viewer
-   * @return The signal to connect to.
-   */
-  WidgetViewSignalType& WidgetContentUpdatedSignal();
-
-  /**
-   * @brief This signal is emitted when the widget update period is changed.
-   *
-   * @since_tizen 3.0
-   * @privlevel public
-   * @privilege %http://tizen.org/privilege/widget.viewer
-   * @return The signal to connect to.
-   */
-  WidgetViewSignalType& WidgetUpdatePeriodChangedSignal();
-
-  /**
-   * @brief This signal is emitted when the widget process is not running.
-   *
-   * @since_tizen 3.0
-   * @privlevel public
-   * @privilege %http://tizen.org/privilege/widget.viewer
-   * @return The signal to connect to.
-   */
-  WidgetViewSignalType& WidgetFaultedSignal();
-
-public: // Not intended for application developers
-
-  /**
-   * @internal
-   * @brief Creates a handle using the WidgetView::Internal implementation.
-   *
-   * @since_tizen 3.0
-   * @param[in] implementation The WidgetView implementation.
-   */
-  DALI_INTERNAL WidgetView( Internal::WidgetView& implementation );
-
-  /**
-   * @internal
-   * @brief Allows the creation of this control from an Internal::CustomActor pointer.
-   *
-   * @since_tizen 3.0
-   * @param[in] internal A pointer to the internal CustomActor.
-   */
-  DALI_INTERNAL WidgetView( Dali::Internal::CustomActor* internal );
-};
-
-/**
- * @}
- */
-} // namespace WidgetView
-
-} // namespace Dali
-
-#endif // __DALI_WIDGET_VIEW_WIDGET_VIEW_H__
diff --git a/public_api/widget_view_manager/widget_view_manager.cpp b/public_api/widget_view_manager/widget_view_manager.cpp
deleted file mode 100644 (file)
index a3aaa57..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Samsung API
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Flora License, Version 1.1 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * 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 <public_api/widget_view_manager/widget_view_manager.h>
-
-// EXTERNAL INCLUDES
-
-// INTERNAL INCLUDES
-#include <internal/widget_view_manager/widget_view_manager_impl.h>
-
-namespace Dali
-{
-
-namespace WidgetView
-{
-
-WidgetViewManager WidgetViewManager::New( Application application, const std::string& appId )
-{
-  Internal::WidgetViewManagerPtr internal = Internal::WidgetViewManager::New( application, appId );
-
-  return WidgetViewManager( internal.Get() );
-}
-
-WidgetViewManager WidgetViewManager::DownCast( BaseHandle handle )
-{
-  return WidgetViewManager( dynamic_cast< Internal::WidgetViewManager* >( handle.GetObjectPtr() ) );
-}
-
-WidgetViewManager::WidgetViewManager()
-{
-}
-
-WidgetViewManager::WidgetViewManager( const WidgetViewManager& handle )
-: BaseHandle(handle)
-{
-}
-
-WidgetViewManager& WidgetViewManager::operator=( const WidgetViewManager& handle )
-{
-  BaseHandle::operator=(handle);
-  return *this;
-}
-
-WidgetViewManager::~WidgetViewManager()
-{
-}
-
-WidgetViewManager::WidgetViewManager( Internal::WidgetViewManager* implementation )
-: BaseHandle( implementation )
-{
-}
-
-WidgetView WidgetViewManager::AddWidget( const std::string& widgetId, const std::string& contentInfo, int width, int height, float updatePeriod )
-{
-  return GetImplementation(*this).AddWidget( widgetId, contentInfo, width, height, updatePeriod );
-}
-
-} // namespace WidgetView
-
-} // namespace Dali
diff --git a/public_api/widget_view_manager/widget_view_manager.h b/public_api/widget_view_manager/widget_view_manager.h
deleted file mode 100644 (file)
index c00ac94..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-#ifndef __DALI_WIDGET_VIEW_WIDGET_VIEW_MANAGER_H__
-#define __DALI_WIDGET_VIEW_WIDGET_VIEW_MANAGER_H__
-
-/*
- * Samsung API
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Flora License, Version 1.1 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * 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>
-#include <dali/public-api/adaptor-framework/application.h>
-
-namespace Dali
-{
-
-namespace WidgetView
-{
-
-class WidgetView;
-
-namespace Internal DALI_INTERNAL
-{
-class WidgetViewManager;
-}
-
-/**
- * @addtogroup dali_widget_view
- * @{
- */
-
-/**
- * @brief WidgetViewManager manages addition of WidgetView controls.
- *
- * This class provides the functionality of adding the widget views and controlling the widgets.
- *
- * @since_tizen 3.0
- */
-class DALI_IMPORT_API WidgetViewManager : public BaseHandle
-{
-public:
-
-  /**
-   * @brief Create widget view manager.
-   *
-   * @since_tizen 3.0
-   * @privlevel public
-   * @privilege %http://tizen.org/privilege/widget.viewer
-   * @param[in] application Application class for the widget view manager.
-   * @param[in] appId App ID of app with widget viewer dali.
-   * @return A handle to WidgetViewManager.
-   */
-  static WidgetViewManager New( Application application, const std::string& appId );
-
-  /**
-   * @brief Downcast a handle to WidgetViewManager handle.
-   *
-   * If the BaseHandle points is a WidgetViewManager the downcast returns a valid handle.
-   * If not the returned handle is left empty.
-   *
-   * @since_tizen 3.0
-   * @param[in] handle Handle to an object
-   * @return handle to a WidgetViewManager or an empty handle
-   */
-  static WidgetViewManager DownCast( BaseHandle handle );
-
-  /**
-   * @brief Creates an WidgetViewManager handle.
-   *
-   * Calling member functions with an uninitialised handle is not allowed.
-   * @since_tizen 3.0
-   */
-  WidgetViewManager();
-
-  /**
-   * @brief Copy constructor.
-   *
-   * @since_tizen 3.0
-   * @param[in] handle The handle to copy from.
-   */
-  WidgetViewManager( const WidgetViewManager& handle );
-
-  /**
-   * @brief Assignment operator.
-   *
-   * @since_tizen 3.0
-   * @param[in] handle The handle to copy from.
-   * @return A reference to this.
-   */
-  WidgetViewManager& operator=( const WidgetViewManager& handle );
-
-  /**
-   * @brief Destructor
-   *
-   * This is non-virtual since derived Handle types must not contain data or virtual methods.
-   * @since_tizen 3.0
-   */
-  ~WidgetViewManager();
-
-  /**
-   * @brief Creates a new widget view object
-   *
-   * @since_tizen 3.0
-   * @privlevel public
-   * @privilege %http://tizen.org/privilege/widget.viewer
-   * @param[in] widgetId The widget id.
-   * @param[in] contentInfo Contents that will be given to the widget instance.
-   * @param[in] width The widget width.
-   * @param[in] height The widget height.
-   * @param[in] updatePeriod The period of updating contents of the widget.
-   * @return A handle to WidgetView.
-   */
-  WidgetView AddWidget( const std::string& widgetId, const std::string& contentInfo, int width, int height, float updatePeriod );
-
-public: // Not intended for application developers
-
-  /**
-   * @internal
-   * @brief Creates a handle using the WidgetView::Internal implementation.
-   *
-   * @since_tizen 3.0
-   * @param[in] implementation The WidgetViewManager implementation.
-   */
-  explicit DALI_INTERNAL WidgetViewManager( Internal::WidgetViewManager* implementation );
-};
-
-/**
- * @}
- */
-
-} // namespace WidgetView
-
-} // namespace Dali
-
-#endif // __DALI_WIDGET_VIEW_WIDGET_VIEW_MANAGER_H__
diff --git a/public_api/widget_viewer_dali.h b/public_api/widget_viewer_dali.h
deleted file mode 100644 (file)
index 858784b..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef __WIDGET_VIEWER_DALI_H__
-#define __WIDGET_VIEWER_DALI_H__
-
-/*
- * Samsung API
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Flora License, Version 1.1 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * 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.
- */
-
-#include <widget_viewer_dali/public_api/widget_view/widget_view.h>
-#include <widget_viewer_dali/public_api/widget_view_manager/widget_view_manager.h>
-
-#endif  // __WIDGET_VIEWER_DALI_H__
diff --git a/widget_viewer_dali.pc.in b/widget_viewer_dali.pc.in
deleted file mode 100644 (file)
index 64db29a..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-prefix=@PREFIX@
-exec_prefix=@EXEC_PREFIX@
-libdir=@LIBDIR@
-includedir=@INCLUDEDIR@
-
-Name: widget_viewer_dali
-Description: Support development of the widget Viewer DALi Frontend library
-Version: @VERSION@
-Requires: widget_service
-Libs: -L${libdir} -lwidget_viewer_dali
-Cflags: -I${includedir}
-cppflags: -I${includedir}
diff --git a/widget_viewer_dali/images/unknown.png b/widget_viewer_dali/images/unknown.png
new file mode 100644 (file)
index 0000000..535db60
Binary files /dev/null and b/widget_viewer_dali/images/unknown.png differ
diff --git a/widget_viewer_dali/internal/widget_view/widget_view_impl.cpp b/widget_viewer_dali/internal/widget_view/widget_view_impl.cpp
new file mode 100644 (file)
index 0000000..422fb16
--- /dev/null
@@ -0,0 +1,1466 @@
+/*
+ * Samsung API
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Flora License, Version 1.1 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://floralicense.org/license/
+ *
+ * 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 <widget_viewer_dali/internal/widget_view/widget_view_impl.h>
+
+// INTERNAL INCLUDES
+
+// EXTERNAL INCLUDES
+#include <dali/public-api/common/stage.h>
+#include <dali/public-api/events/touch-data.h>
+#include <dali/public-api/events/key-event.h>
+#include <dali/public-api/events/wheel-event.h>
+#include <dali/public-api/images/native-image.h>
+#include <dali/public-api/object/type-registry.h>
+#include <dali/public-api/object/type-registry-helper.h>
+#include <dali-toolkit/public-api/visuals/visual-properties.h>
+#include <dali-toolkit/devel-api/visual-factory/visual-factory.h>
+#include <dali/integration-api/debug.h>
+#include <dali/devel-api/events/touch-event-devel.h>
+#include <dali/devel-api/events/key-event-devel.h>
+#include <string.h>
+#include <Ecore_Wayland.h>
+#include <Ecore_Input.h>
+#include <widget_service.h>
+#include <widget_instance.h>
+#include <tzplatform_config.h>
+#include <wayland-extension/tizen-extension-client-protocol.h>
+#include <tbm_surface_internal.h>
+#include <unistd.h>
+#include <libintl.h>
+#include <xkbcommon/xkbcommon.h>
+
+namespace Dali
+{
+
+namespace WidgetView
+{
+
+namespace Internal
+{
+
+namespace
+{
+
+const int DEFAULT_FONT_PIXEL_SIZE = 30; // Referred platform widget viewer evas
+
+#define GET_LOCALE_TEXT(string) dgettext(PKGNAME, string)
+
+#if defined(DEBUG_ENABLED)
+Integration::Log::Filter* gWidgetViewLogging  = Integration::Log::Filter::New( Debug::Verbose, false, "LOG_WIDGET_VIEW" );
+#endif
+
+BaseHandle Create()
+{
+  return Dali::BaseHandle();
+}
+
+// Setup properties, signals and actions using the type-registry.
+DALI_TYPE_REGISTRATION_BEGIN( Dali::WidgetView::WidgetView, Toolkit::Control, Create );
+DALI_PROPERTY_REGISTRATION( Dali::WidgetView, WidgetView, "widgetId", BOOLEAN, WIDGET_ID )
+DALI_PROPERTY_REGISTRATION( Dali::WidgetView, WidgetView, "instanceId", BOOLEAN, INSTANCE_ID )
+DALI_PROPERTY_REGISTRATION( Dali::WidgetView, WidgetView, "contentInfo", BOOLEAN, CONTENT_INFO )
+DALI_PROPERTY_REGISTRATION( Dali::WidgetView, WidgetView, "title", BOOLEAN, TITLE )
+DALI_PROPERTY_REGISTRATION( Dali::WidgetView, WidgetView, "updatePeriod", BOOLEAN, UPDATE_PERIOD )
+DALI_PROPERTY_REGISTRATION( Dali::WidgetView, WidgetView, "preview", MAP, PREVIEW )
+DALI_PROPERTY_REGISTRATION( Dali::WidgetView, WidgetView, "loadingText", MAP, LOADING_TEXT )
+DALI_PROPERTY_REGISTRATION( Dali::WidgetView, WidgetView, "widgetStateFaulted", BOOLEAN, WIDGET_STATE_FAULTED )
+DALI_PROPERTY_REGISTRATION( Dali::WidgetView, WidgetView, "permanentDelete", BOOLEAN, PERMANENT_DELETE )
+
+// Internal property
+// ToDo it should be changed public property.
+const int TERMINATE_WIDGET = Dali::WidgetView::WidgetView::Property::PERMANENT_DELETE+1;
+const int RETRY_TEXT = TERMINATE_WIDGET+1;
+const int WIDGET_IMAGE = RETRY_TEXT+1;
+
+Dali::PropertyRegistration internalProperty1( typeRegistration, "terminateWidget", TERMINATE_WIDGET, Property::BOOLEAN, Dali::WidgetView::Internal::WidgetView::SetProperty, Dali::WidgetView::Internal::WidgetView::GetProperty );
+Dali::PropertyRegistration internalProperty2( typeRegistration, "retryText", RETRY_TEXT, Property::MAP, Dali::WidgetView::Internal::WidgetView::SetProperty, Dali::WidgetView::Internal::WidgetView::GetProperty );
+Dali::PropertyRegistration internalProperty3( typeRegistration, "widgetImage", WIDGET_IMAGE, Property::MAP, Dali::WidgetView::Internal::WidgetView::SetProperty, Dali::WidgetView::Internal::WidgetView::GetProperty );
+
+// Signals
+DALI_SIGNAL_REGISTRATION( Dali::WidgetView, WidgetView, "widgetAdded", SIGNAL_WIDGET_ADDED )
+DALI_SIGNAL_REGISTRATION( Dali::WidgetView, WidgetView, "widgetDeleted", SIGNAL_WIDGET_DELETED )
+DALI_SIGNAL_REGISTRATION( Dali::WidgetView, WidgetView, "widgetCreationAborted", SIGNAL_WIDGET_CREATION_ABORTED )
+DALI_SIGNAL_REGISTRATION( Dali::WidgetView, WidgetView, "widgetContentUpdated", SIGNAL_WIDGET_CONTENT_UPDATED )
+DALI_SIGNAL_REGISTRATION( Dali::WidgetView, WidgetView, "widgetUpdatePeriodChanged", SIGNAL_WIDGET_UPDATE_PERIOD_CHANGED )
+DALI_SIGNAL_REGISTRATION( Dali::WidgetView, WidgetView, "widgetFaulted", SIGNAL_WIDGET_FAULTED )
+DALI_SIGNAL_REGISTRATION( Dali::WidgetView, WidgetView, "widgetTerminated", SIGNAL_WIDGET_TERMINATED )
+
+// Actions
+DALI_ACTION_REGISTRATION( Dali::WidgetView, WidgetView, "pauseWidget", ACTION_WIDGETVIEW_PAUSE_WIDGET );
+DALI_ACTION_REGISTRATION( Dali::WidgetView, WidgetView, "resumeWidget", ACTION_WIDGETVIEW_RESUME_WIDGET );
+DALI_ACTION_REGISTRATION( Dali::WidgetView, WidgetView, "cancelTouchEvent", ACTION_WIDGETVIEW_CANCEL_TOUCH_EVENT );
+DALI_ACTION_REGISTRATION( Dali::WidgetView, WidgetView, "activateFaultedWidget", ACTION_WIDGETVIEW_ACTIVATE_FAULTED_WIDGET );
+
+DALI_TYPE_REGISTRATION_END()
+
+struct wl_buffer* preBuffer;
+struct tizen_remote_surface* remoteSurface;
+
+const char* const STATE_TEXT( "stateText" );
+const char* const FONT_STYLE( "fontStyle" );
+const char* const TEXT_POINT_SIZE( "textPointSize" );
+const char* const TEXT_COLOR( "textColor" );
+const char* const TEXT_VISIBLE( "textVisible" ); //ToDo: it should be removed after retry text property is public one
+
+// ToDo: Now dali provides only dali key codes.
+// This funtion will be used to get platform specific key codes from key name
+struct KeyCodeMap
+{
+  xkb_keysym_t keySym;
+  xkb_keycode_t keyCode;
+  bool isKeyCode;
+};
+
+static void FindKeyCode( struct xkb_keymap* keyMap, xkb_keycode_t key, void* data )
+{
+  KeyCodeMap* foundKeyCode = static_cast< KeyCodeMap* >( data );
+  if( foundKeyCode->isKeyCode )
+  {
+    return;
+  }
+
+  xkb_keysym_t keySym = foundKeyCode->keySym;
+  int nsyms = 0;
+  const xkb_keysym_t* symsOut = NULL;
+
+  nsyms = xkb_keymap_key_get_syms_by_level( keyMap, key, 0, 0, &symsOut );
+
+  if( nsyms && symsOut )
+  {
+    if( *symsOut == keySym )
+    {
+      foundKeyCode->keyCode = key;
+      foundKeyCode->isKeyCode = true;
+    }
+  }
+}
+
+static bool GetKeyCode( std::string keyName, int32_t& keyCode )
+{
+  xkb_keymap* keyMap = NULL;
+  Ecore_Wl_Input* ecoreWlInput = NULL;
+  xkb_keysym_t sym = XKB_KEY_NoSymbol;
+  KeyCodeMap foundKeyCode;
+
+  ecoreWlInput = ecore_wl_input_get();
+  if( !ecoreWlInput )
+  {
+    DALI_LOG_ERROR( "Failed to get Ecore_Wl_Input in WidgetView\n" );
+    return false;
+  }
+
+  keyMap = ecore_wl_input_keymap_get( ecoreWlInput );
+  if( !keyMap )
+  {
+    DALI_LOG_ERROR( "Failed to get keymap in WidgetView\n" );
+    return false;
+  }
+
+  sym = xkb_keysym_from_name( keyName.c_str(), XKB_KEYSYM_NO_FLAGS );
+  if( sym == XKB_KEY_NoSymbol )
+  {
+    DALI_LOG_ERROR( "Failed to get keysym in WidgetView\n" );
+    return false;
+  }
+
+  foundKeyCode.keySym = sym;
+  foundKeyCode.isKeyCode = false;
+  xkb_keymap_key_for_each( keyMap, FindKeyCode, &foundKeyCode );
+  keyCode = static_cast< int32_t >( foundKeyCode.keyCode );
+  return true;
+}
+
+static void OnBufferUpdated( struct tizen_remote_surface *surface, uint32_t type, struct wl_buffer *buffer,
+                              int32_t img_file_fd, uint32_t img_file_size, uint32_t time, struct wl_array *keys,
+                              const char *appid, const char *instance_id, const int pid, void *data)
+{
+  Dali::WidgetView::Internal::WidgetView* widgetView = static_cast< Dali::WidgetView::Internal::WidgetView* >( data );
+
+  if( widgetView )
+  {
+    if( !widgetView->IsWidgetImageView() )
+    {
+      tizen_remote_surface_transfer_visibility( surface, TIZEN_REMOTE_SURFACE_VISIBILITY_TYPE_VISIBLE);
+
+      widgetView->CreateWidgetImageView();
+      widgetView->ConnectSignal( surface );
+    }
+
+    //get tbm surface from buffer
+    tbm_surface_h tbmSurface = static_cast< tbm_surface_h >( wl_buffer_get_user_data( buffer ) );
+    widgetView->UpdateImageSource( tbmSurface );
+  }
+
+  if( preBuffer != NULL && tizen_remote_surface_get_version( surface ) >= TIZEN_REMOTE_SURFACE_RELEASE_SINCE_VERSION )
+  {
+    tizen_remote_surface_release( surface, preBuffer );
+    tbm_surface_h preTbmSurface = (tbm_surface_h)wl_buffer_get_user_data( preBuffer );
+    tbm_surface_internal_unref( preTbmSurface );
+    wl_buffer_destroy( preBuffer );
+  }
+
+  remoteSurface = surface;
+  preBuffer = buffer;
+
+  close( img_file_fd );
+}
+
+static void OnBufferAdded( const char *appid, const char *instance_id, const int pid, void *data )
+{
+}
+
+static void OnSurfaceRemoved( const char *appid, const char *instance_id, const int pid, void *data )
+{
+  Dali::WidgetView::Internal::WidgetView* widgetView = static_cast< Dali::WidgetView::Internal::WidgetView* >( data );
+
+  if( widgetView && !widgetView->IsWidgetFaulted() )
+  {
+    widgetView->CloseRemoteSurface();
+    widgetView->RemoveWidgetImage();
+  }
+}
+
+} // unnamed namespace
+
+Dali::WidgetView::WidgetView WidgetView::New( const std::string& widgetId, const std::string& contentInfo, int width, int height, float updatePeriod )
+{
+  // Create the implementation, temporarily owned on stack
+  IntrusivePtr< WidgetView > internalWidgetView = new WidgetView( widgetId, contentInfo, width, height, updatePeriod );
+
+  // Pass ownership to CustomActor
+  Dali::WidgetView::WidgetView widgetView( *internalWidgetView );
+
+  // Second-phase init of the implementation
+  // This can only be done after the CustomActor connection has been made...
+  internalWidgetView->Initialize();
+
+  return widgetView;
+}
+
+WidgetView::WidgetView()
+: Control( ControlBehaviour( REQUIRES_TOUCH_EVENTS ) ),
+  mWidgetId(),
+  mInstanceId(),
+  mContentInfo(),
+  mTitle(),
+  mWidth( 0 ),
+  mHeight( 0 ),
+  mPid( 0 ),
+  mUpdatePeriod( 0.0 ),
+  mPreviewVisible( true ),
+  mLoadingTextVisible( true ),
+  mLoadingTextString(),
+  mRetryTextVisible( true ),
+  mRetryTextString(),
+  mRetryState( false ),
+  mPermanentDelete( false ),
+  mWatcherHandle( NULL ),
+  mRemoteSurface( NULL )
+{
+}
+
+WidgetView::WidgetView( const std::string& widgetId, const std::string& contentInfo, int width, int height, float updatePeriod )
+: Control( ControlBehaviour( REQUIRES_TOUCH_EVENTS ) ),
+  mWidgetId( widgetId ),
+  mInstanceId(),
+  mContentInfo( contentInfo ),
+  mTitle(),
+  mWidth( width ),
+  mHeight( height ),
+  mPid( 0 ),
+  mUpdatePeriod( updatePeriod ),
+  mPreviewVisible( true ),
+  mLoadingTextVisible( true ),
+  mLoadingTextString(),
+  mRetryTextVisible( true ),
+  mRetryTextString(),
+  mRetryState( false ),
+  mPermanentDelete( false ),
+  mWatcherHandle( NULL ),
+  mRemoteSurface( NULL )
+{
+}
+
+WidgetView::~WidgetView()
+{
+}
+
+bool WidgetView::PauseWidget()
+{
+  int ret = widget_instance_pause( mInstanceId.c_str() );
+  if( ret < 0 )
+  {
+    DALI_LOG_ERROR( "WidgetView::PauseWidget: Fail to pause widget(%s, %s) [%d]\n", mWidgetId.c_str(), mInstanceId.c_str(), ret );
+    return false;
+  }
+
+  DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::PauseWidget: Widget is paused (%s, %s)\n", mWidgetId.c_str(), mInstanceId.c_str() );
+
+  return true;
+}
+
+bool WidgetView::ResumeWidget()
+{
+  int ret = widget_instance_resume( mInstanceId.c_str() );
+  if( ret < 0 )
+  {
+    DALI_LOG_ERROR( "WidgetView::ResumeWidget: Fail to resume widget(%s, %s) [%d]\n", mWidgetId.c_str(), mInstanceId.c_str(), ret );
+    return false;
+  }
+
+  DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::ResumeWidget: Widget is resumed (%s, %s)\n", mWidgetId.c_str(), mInstanceId.c_str() );
+
+  return true;
+}
+
+const std::string& WidgetView::GetWidgetId() const
+{
+  return mWidgetId;
+}
+
+const std::string& WidgetView::GetInstanceId() const
+{
+  return mInstanceId;
+}
+
+const std::string& WidgetView::GetContentInfo()
+{
+  widget_instance_h instance;
+  char* contentInfo = NULL;
+
+  mContentInfo.clear();
+
+  if( mWidgetId.empty() || mInstanceId.empty() )
+  {
+    DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::GetContentInfo: Widget id (%s) or instance id (%s) is invalid.\n", mWidgetId.c_str(), mInstanceId.c_str() );
+    return mContentInfo;
+  }
+
+  instance = widget_instance_get_instance( mWidgetId.c_str(), mInstanceId.c_str() );
+  if( !instance )
+  {
+    DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::GetContentInfo: widget_instance_get_instance is failed. [%s]\n", mInstanceId.c_str() );
+    return mContentInfo;
+  }
+
+  if( widget_instance_get_content( instance, &contentInfo ) < 0 )
+  {
+    DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::GetContentInfo: Failed to get content of widget. [%s]\n", mInstanceId.c_str() );
+    return mContentInfo;
+  }
+
+  mContentInfo = reinterpret_cast< char* >( contentInfo );
+
+  return mContentInfo;
+}
+
+const std::string& WidgetView::GetTitle()
+{
+  //ToDo: We should add some codes by considering widget_viewer_evas
+  if( mTitle.empty() )
+  {
+    mTitle = widget_service_get_name( mWidgetId.c_str(), NULL );
+  }
+
+  DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::GetTitle: title = %s\n", mTitle.c_str() );
+
+  return mTitle;
+}
+
+float WidgetView::GetUpdatePeriod() const
+{
+  return mUpdatePeriod;
+}
+
+bool WidgetView::CancelTouchEvent()
+{
+  if( mRemoteSurface )
+  {
+    tizen_remote_surface_transfer_touch_cancel( mRemoteSurface );
+    return true;
+  }
+
+  return false;
+}
+
+void WidgetView::SetPreviewVisible( bool visible )
+{
+  if( mPreviewImage && mPreviewVisible != visible )
+  {
+    mPreviewVisible = visible;
+    mPreviewImage.SetVisible( visible );
+  }
+}
+
+bool WidgetView::IsPreviewVisible()
+{
+  return mPreviewVisible;
+}
+
+void WidgetView::SetLoadingTextVisible( bool visible )
+{
+  if( mLoadingText && mLoadingTextVisible != visible )
+  {
+    mLoadingTextVisible = visible;
+
+    if( visible )
+    {
+      mLoadingText.SetProperty( Toolkit::TextLabel::Property::TEXT,
+                                ( mLoadingTextString.empty() )? GET_LOCALE_TEXT( "IDS_ST_POP_LOADING_ING" ) : mLoadingTextString );
+    }
+    mLoadingText.SetVisible( visible );
+  }
+}
+
+void WidgetView::SetRetryTextVisible( bool visible )
+{
+  if( mRetryText && mRetryTextVisible != visible )
+  {
+    mRetryTextVisible = visible;
+
+    if( visible )
+    {
+      mRetryText.SetProperty( Toolkit::TextLabel::Property::TEXT,
+                              ( mRetryTextString.empty() )? GET_LOCALE_TEXT( "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" ) : mRetryTextString );
+    }
+    mRetryText.SetVisible( visible );
+  }
+}
+
+bool WidgetView::IsLoadingTextVisible()
+{
+  return mLoadingTextVisible;
+}
+
+bool WidgetView::IsRetryTextVisible()
+{
+  return mRetryTextVisible;
+}
+
+void WidgetView::ActivateFaultedWidget()
+{
+  if( mPid < 0 )
+  {
+    // Enable preview and loading text
+    ShowRetryState( false );
+    ShowLoadingState( true );
+
+    // launch widget again
+    mPid = widget_instance_launch( mInstanceId.c_str(), (char *)mContentInfo.c_str(), mWidth, mHeight );
+    if( mPid < 0)
+    {
+      DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::ActivateFaultedWidget: widget_instance_launch is failed. [%s]\n", mWidgetId.c_str() );
+
+      ShowLoadingState( false );
+      ShowRetryState( true );
+
+      // Emit signal
+      Dali::WidgetView::WidgetView handle( GetOwner() );
+      mWidgetCreationAbortedSignal.Emit( handle );
+
+      return;
+    }
+
+    screen_connector_toolkit_ops ops;
+    ops.updated_cb = OnBufferUpdated;
+    ops.removed_cb = OnSurfaceRemoved;
+    ops.added_cb = OnBufferAdded;
+    mWatcherHandle = screen_connector_toolkit_add(&ops, (char *)mInstanceId.c_str(), SCREEN_CONNECTOR_SCREEN_TYPE_WIDGET, this);
+
+    DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::ActivateFaultedWidget: widget_instance_launch is called. [%s, mPid = %d]\n", mWidgetId.c_str(), mPid );
+  }
+}
+
+bool WidgetView::IsWidgetFaulted()
+{
+  return mPid < 0 ? true : false;
+}
+
+void WidgetView::SetPermanentDelete( bool permanentDelete )
+{
+  mPermanentDelete = permanentDelete;
+}
+
+bool WidgetView::IsPermanentDelete()
+{
+  return mPermanentDelete;
+}
+
+void WidgetView::CreateWidgetImageView()
+{
+  Any source;
+  mImageSource = Dali::NativeImageSource::New( source );
+  Dali::NativeImage image = Dali::NativeImage::New( *mImageSource );
+
+  mWidgetImageView = Dali::Toolkit::ImageView::New( image );
+
+  mWidgetImageView.SetParentOrigin( ParentOrigin::CENTER );
+  mWidgetImageView.SetAnchorPoint( AnchorPoint::CENTER );
+  mWidgetImageView.SetSize( mWidth, mHeight );
+
+  if( !mWidgetImagePropertyMap.Empty() )
+  {
+    mWidgetImageView.SetProperty( Toolkit::ImageView::Property::IMAGE, mWidgetImagePropertyMap );
+  }
+
+  Self().Add( mWidgetImageView );
+
+  //EFL app should be pre multiplied image.
+  mWidgetImageView.SetProperty( Toolkit::ImageView::Property::PRE_MULTIPLIED_ALPHA, true );
+
+  // Disable preview and text
+  ShowLoadingState( false );
+
+  // Emit signal
+  Dali::WidgetView::WidgetView handle( GetOwner() );
+  mWidgetAddedSignal.Emit( handle );
+
+  DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::CreateWidgetImageView: Widget image is added.\n" );
+}
+
+void WidgetView::RemoveWidgetImage()
+{
+  if( mWidgetImageView )
+  {
+    mWidgetImageView.SetVisible( false );
+    mWidgetImageView.Reset();
+
+    ShowRetryState( true );
+
+    Dali::WidgetView::WidgetView handle( GetOwner() );
+    mWidgetDeletedSignal.Emit( handle );
+  }
+
+  DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::RemoveWidgetImage: Widget image is removed.\n" );
+}
+
+void WidgetView::TerminateWidget()
+{
+  if( !mWidgetId.empty() && !mInstanceId.empty() )
+  {
+    widget_instance_terminate( mInstanceId.c_str() );
+
+    if( mPermanentDelete )
+    {
+      widget_instance_destroy( mInstanceId.c_str() );
+    }
+
+    Dali::WidgetView::WidgetView handle( GetOwner() );
+    mWidgetTerminatedSignal.Emit( handle );
+    mWidgetDeletedSignal.Emit( handle );
+
+    mWidgetId.clear();
+    mInstanceId.clear();
+
+    CloseRemoteSurface();
+  }
+
+  DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::TerminateWidget: Widget is terminated/destroyed and deleted signal is emitted.\n" );
+
+}
+
+void WidgetView::SendWidgetEvent( int event )
+{
+  Dali::WidgetView::WidgetView handle( GetOwner() );
+
+  DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::SendWidgetEvent: event = %d widget = %s\n", event,  mWidgetId.c_str() );
+
+  // Emit signal
+  switch( event )
+  {
+    case WIDGET_INSTANCE_EVENT_UPDATE:
+    case WIDGET_INSTANCE_EVENT_EXTRA_UPDATED:
+    {
+      mWidgetContentUpdatedSignal.Emit( handle );
+      break;
+    }
+    case WIDGET_INSTANCE_EVENT_PERIOD_CHANGED:
+    {
+      mWidgetUpdatePeriodChangedSignal.Emit( handle );
+      break;
+    }
+    case WIDGET_INSTANCE_EVENT_FAULT:
+    {
+      mWidgetFaultedSignal.Emit( handle );
+      CloseRemoteSurface();
+      RemoveWidgetImage();
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+}
+
+bool WidgetView::DoConnectSignal( BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor )
+{
+  Dali::BaseHandle handle( object );
+
+  bool connected( true );
+  Dali::WidgetView::WidgetView widgetView = Dali::WidgetView::WidgetView::DownCast( handle );
+
+  if( strcmp( signalName.c_str(), SIGNAL_WIDGET_ADDED ) == 0 )
+  {
+    widgetView.WidgetAddedSignal().Connect( tracker, functor );
+  }
+  else if( strcmp( signalName.c_str(), SIGNAL_WIDGET_DELETED ) == 0 )
+  {
+    widgetView.WidgetDeletedSignal().Connect( tracker, functor );
+  }
+  else if( strcmp( signalName.c_str(), SIGNAL_WIDGET_CREATION_ABORTED ) == 0 )
+  {
+    widgetView.WidgetCreationAbortedSignal().Connect( tracker, functor );
+  }
+  else if( strcmp( signalName.c_str(), SIGNAL_WIDGET_CONTENT_UPDATED ) == 0 )
+  {
+    widgetView.WidgetContentUpdatedSignal().Connect( tracker, functor );
+  }
+  else if( strcmp( signalName.c_str(), SIGNAL_WIDGET_UPDATE_PERIOD_CHANGED ) == 0 )
+  {
+    widgetView.WidgetUpdatePeriodChangedSignal().Connect( tracker, functor );
+  }
+  else if( strcmp( signalName.c_str(), SIGNAL_WIDGET_FAULTED ) == 0 )
+  {
+    widgetView.WidgetFaultedSignal().Connect( tracker, functor );
+  }
+  else
+  {
+    // signalName does not match any signal
+    connected = false;
+  }
+
+  return connected;
+}
+
+bool WidgetView::DoAction( BaseObject* object, const std::string& actionName, const Property::Map& attributes )
+{
+  bool ret = true;
+
+  Dali::BaseHandle handle( object );
+  Dali::WidgetView::WidgetView widgetView = Dali::WidgetView::WidgetView::DownCast( handle );
+
+  if( !widgetView )
+  {
+    return false;
+  }
+
+  WidgetView& impl = GetImplementation( widgetView );
+
+  if( strcmp( actionName.c_str(), ACTION_WIDGETVIEW_PAUSE_WIDGET ) == 0 )
+  {
+    impl.PauseWidget();
+  }
+  else if( strcmp( actionName.c_str(), ACTION_WIDGETVIEW_RESUME_WIDGET ) == 0 )
+  {
+    impl.ResumeWidget();
+  }
+  else if( strcmp( actionName.c_str(), ACTION_WIDGETVIEW_CANCEL_TOUCH_EVENT ) == 0 )
+  {
+    impl.CancelTouchEvent();
+  }
+  else if( strcmp( actionName.c_str(), ACTION_WIDGETVIEW_ACTIVATE_FAULTED_WIDGET ) == 0 )
+  {
+    impl.ActivateFaultedWidget();
+  }
+  else
+  {
+    ret = false;
+  }
+
+  return ret;
+}
+
+void WidgetView::SetProperty( BaseObject* object, Property::Index index, const Property::Value& value )
+{
+  Dali::WidgetView::WidgetView widgetView = Dali::WidgetView::WidgetView::DownCast( Dali::BaseHandle( object ) );
+
+  if( widgetView )
+  {
+    WidgetView& impl = GetImplementation( widgetView );
+
+    switch( index )
+    {
+      case Dali::WidgetView::WidgetView::Property::PREVIEW:
+      {
+        bool previewEnabled;
+
+        if( value.Get( previewEnabled ) )
+        {
+          impl.SetPreviewVisible( previewEnabled );
+        }
+        break;
+      }
+      case Dali::WidgetView::WidgetView::Property::LOADING_TEXT:
+      {
+        bool textEnabled;
+        Property::Map map;
+
+        if( value.Get( textEnabled ) )
+        {
+          impl.SetLoadingTextVisible( textEnabled );
+        }
+        else if( value.Get( map ) )
+        {
+          impl.SetLoadingTextPropertyMap( map );
+        }
+        break;
+      }
+      case Dali::WidgetView::WidgetView::Property::PERMANENT_DELETE:
+      {
+        bool permanent;
+        if( value.Get( permanent ) )
+        {
+          impl.SetPermanentDelete( permanent );
+        }
+        break;
+      }
+      case TERMINATE_WIDGET:
+      {
+        bool del = false;
+        if( value.Get( del ) && del )
+        {
+          impl.TerminateWidget();
+        }
+        break;
+      }
+      case RETRY_TEXT:
+      {
+        Property::Map map;
+
+        if( value.Get( map ) )
+        {
+          impl.SetRetryTextPropertyMap( map );
+        }
+        break;
+      }
+      case WIDGET_IMAGE:
+      {
+        Property::Map map;
+        if( value.Get( map ) )
+        {
+          impl.SetWidgetImagePropertyMap( map );
+        }
+        break;
+      }
+    }
+  }
+}
+
+Property::Value WidgetView::GetProperty( BaseObject* object, Property::Index index )
+{
+  Property::Value value;
+  Dali::WidgetView::WidgetView widgetView = Dali::WidgetView::WidgetView::DownCast( Dali::BaseHandle( object ) );
+
+  if( widgetView )
+  {
+    WidgetView& impl = GetImplementation( widgetView );
+
+    switch( index )
+    {
+      case Dali::WidgetView::WidgetView::Property::WIDGET_ID:
+      {
+        value = impl.GetWidgetId();
+        break;
+      }
+      case Dali::WidgetView::WidgetView::Property::INSTANCE_ID:
+      {
+        value = impl.GetInstanceId();
+        break;
+      }
+      case Dali::WidgetView::WidgetView::Property::CONTENT_INFO:
+      {
+        value = impl.GetContentInfo();
+        break;
+      }
+      case Dali::WidgetView::WidgetView::Property::TITLE:
+      {
+        value = impl.GetTitle();
+        break;
+      }
+      case Dali::WidgetView::WidgetView::Property::UPDATE_PERIOD:
+      {
+        value = impl.GetUpdatePeriod();
+        break;
+      }
+      case Dali::WidgetView::WidgetView::Property::PREVIEW:
+      {
+        value = impl.IsPreviewVisible();
+        break;
+      }
+      case Dali::WidgetView::WidgetView::Property::LOADING_TEXT:
+      {
+        value = impl.IsLoadingTextVisible();
+        break;
+      }
+      case Dali::WidgetView::WidgetView::Property::WIDGET_STATE_FAULTED:
+      {
+        value = impl.IsWidgetFaulted();
+        break;
+      }
+      case Dali::WidgetView::WidgetView::Property::PERMANENT_DELETE:
+      {
+        value = impl.IsPermanentDelete();
+        break;
+      }
+    }
+  }
+
+  return value;
+}
+
+Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetView::WidgetAddedSignal()
+{
+  return mWidgetAddedSignal;
+}
+
+Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetView::WidgetDeletedSignal()
+{
+  return mWidgetDeletedSignal;
+}
+
+Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetView::WidgetCreationAbortedSignal()
+{
+  return mWidgetCreationAbortedSignal;
+}
+
+Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetView::WidgetContentUpdatedSignal()
+{
+  return mWidgetContentUpdatedSignal;
+}
+
+Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetView::WidgetUpdatePeriodChangedSignal()
+{
+  return mWidgetUpdatePeriodChangedSignal;
+}
+
+Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetView::WidgetFaultedSignal()
+{
+  return mWidgetFaultedSignal;
+}
+
+Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetView::WidgetTerminatedSignal()
+{
+  return mWidgetTerminatedSignal;
+}
+
+void WidgetView::OnInitialize()
+{
+  char* instanceId = NULL;
+  char* previewPath = NULL;
+  std::string previewImage;
+  widget_size_type_e sizeType;
+  screen_connector_toolkit_ops ops;
+
+  int ret = widget_instance_create( mWidgetId.c_str(), &instanceId );
+  if( ret < 0 || !instanceId )
+  {
+    DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::OnInitialize: widget_instance_create is failed [%s].\n", mWidgetId.c_str() );
+    return;
+  }
+
+  DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::OnInitialize: widget_instance_create is called. [widget id = %s, instance id = %s]\n",
+                 mWidgetId.c_str(), instanceId );
+
+  mInstanceId = instanceId;
+
+  // Preview image
+  widget_service_get_size_type( mWidth, mHeight, &sizeType );
+
+  previewPath = widget_service_get_preview_image_path( mWidgetId.c_str(), sizeType );
+  if( previewPath )
+  {
+    previewImage = previewPath;
+    free( previewPath );
+  }
+  else
+  {
+    previewImage = WIDGET_VIEW_RESOURCE_DEFAULT_IMG;
+  }
+
+  DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::OnInitialize: preview image path = %s\n", previewImage.c_str() );
+
+
+  mPreviewActor = Dali::Actor::New();
+  mPreviewActor.SetParentOrigin( ParentOrigin::CENTER );
+  mPreviewActor.SetAnchorPoint( AnchorPoint::CENTER );
+  mPreviewActor.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
+
+  mPreviewImage = Toolkit::ImageView::New( previewImage );
+  mPreviewImage.SetParentOrigin( ParentOrigin::CENTER );
+  mPreviewImage.SetAnchorPoint( AnchorPoint::CENTER );
+  mPreviewImage.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
+
+  Self().SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS );
+  Self().SetSize( mWidth, mHeight );
+
+  Self().Add( mPreviewActor );
+  mPreviewActor.Add( mPreviewImage );
+
+  mStateTextActor = Dali::Actor::New();
+  mStateTextActor.SetParentOrigin( ParentOrigin::CENTER );
+  mStateTextActor.SetAnchorPoint( AnchorPoint::CENTER );
+  mStateTextActor.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
+
+  // Loading text
+  mLoadingText = Toolkit::TextLabel::New( ( mLoadingTextString.empty() )? GET_LOCALE_TEXT( "IDS_ST_POP_LOADING_ING" ) : mLoadingTextString );
+  mLoadingText.SetParentOrigin( ParentOrigin::CENTER );
+  mLoadingText.SetAnchorPoint( AnchorPoint::CENTER );
+  mLoadingText.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
+  mLoadingText.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
+  mLoadingText.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Dali::Color::WHITE );
+  mLoadingText.SetProperty( Toolkit::TextLabel::Property::FONT_STYLE, "Bold" );
+  mLoadingText.SetProperty( Toolkit::TextLabel::Property::POINT_SIZE, TextPixelToPointSize( DEFAULT_FONT_PIXEL_SIZE ) );
+
+  mPreviewActor.Add( mStateTextActor );
+  mStateTextActor.Add( mLoadingText );
+
+  // Retry text
+  mRetryText = Toolkit::TextLabel::New( ( mRetryTextString.empty() )? GET_LOCALE_TEXT( "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" ) : mRetryTextString );
+  mRetryText.SetParentOrigin( ParentOrigin::CENTER );
+  mRetryText.SetAnchorPoint( AnchorPoint::CENTER );
+  mRetryText.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
+  mRetryText.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
+  mRetryText.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Dali::Color::WHITE );
+  mRetryText.SetProperty( Toolkit::TextLabel::Property::FONT_STYLE, "Bold" );
+  mRetryText.SetProperty( Toolkit::TextLabel::Property::POINT_SIZE, TextPixelToPointSize( DEFAULT_FONT_PIXEL_SIZE ) );
+
+  mStateTextActor.Add( mRetryText );
+  mRetryText.SetVisible( false );
+
+  // launch widget
+  mPid = widget_instance_launch( instanceId, (char *)mContentInfo.c_str(), mWidth, mHeight );
+  if( mPid < 0)
+  {
+
+    ShowLoadingState( false );
+    ShowRetryState( true );
+
+    DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::OnInitialize: widget_instance_launch is failed. [%s]\n", mWidgetId.c_str() );
+
+    // Emit signal
+    Dali::WidgetView::WidgetView handle( GetOwner() );
+    mWidgetCreationAbortedSignal.Emit( handle );
+
+    return;
+  }
+
+  ops.updated_cb = OnBufferUpdated;
+  ops.removed_cb = OnSurfaceRemoved;
+  ops.added_cb = OnBufferAdded;
+  mWatcherHandle = screen_connector_toolkit_add(&ops, (char *)instanceId, SCREEN_CONNECTOR_SCREEN_TYPE_WIDGET, this);
+  DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::OnInitialize: widget_instance_launch is called. [%s, mPid = %d]\n", mWidgetId.c_str(), mPid );
+
+}
+
+void WidgetView::OnStageConnection( int depth )
+{
+  Control::OnStageConnection( depth );
+}
+
+void WidgetView::OnStageDisconnection()
+{
+  Control::OnStageDisconnection();
+}
+
+void WidgetView::OnSizeSet( const Vector3& targetSize )
+{
+  if( mWidgetImageView )
+  {
+    mWidgetImageView.SetSize( targetSize );
+  }
+}
+
+bool WidgetView::IsWidgetImageView()
+{
+  return ( mWidgetImageView )? true: false;
+}
+
+void WidgetView::UpdateImageSource( tbm_surface_h source )
+{
+  mImageSource = Dali::NativeImageSource::New( source );
+  Dali::NativeImage image = Dali::NativeImage::New( *mImageSource );
+
+  if( mWidgetImageView )
+  {
+    mWidgetImageView.SetImage( image );
+    mWidgetImageView.SetProperty( Toolkit::ImageView::Property::PRE_MULTIPLIED_ALPHA, true );
+  }
+}
+
+void WidgetView::ConnectSignal( tizen_remote_surface* surface )
+{
+  if( mWidgetImageView && surface )
+  {
+    mRemoteSurface = surface;
+
+    Self().TouchSignal().Connect( this, &WidgetView::OnTouch );
+    Self().WheelEventSignal().Connect( this, &WidgetView::OnWheelEvent );
+  }
+}
+
+bool WidgetView::OnTouch( Dali::Actor actor, const Dali::TouchData& event )
+{
+  if( event.GetPointCount() == 0 )
+  {
+    return false;
+  }
+
+  if( mRemoteSurface == NULL )
+  {
+    return false;
+  }
+
+  DevelDevice::Class::Type deviceType = DevelTouchData::GetDeviceClass( event, 0 );
+  if( deviceType == DevelDevice::Class::MOUSE )
+  {
+    return MouseEvent( event );
+  }
+  else if( deviceType == DevelDevice::Class::TOUCH )
+  {
+    return TouchEvent( event );
+  }
+
+  return false;
+}
+
+bool WidgetView::OnWheelEvent( Dali::Actor actor, const Dali::WheelEvent& event )
+{
+  if( mRemoteSurface == NULL )
+  {
+    return false;
+  }
+  //ToDo: We should check TIZEN_INPUT_DEVICE_CLAS_MOUSE
+  tizen_remote_surface_transfer_mouse_wheel( mRemoteSurface,
+                                             event.direction,
+                                             event.z,
+                                             TIZEN_INPUT_DEVICE_CLAS_MOUSE,
+                                             TIZEN_INPUT_DEVICE_SUBCLAS_NONE,
+                                             "",
+                                             event.timeStamp
+                                           );
+  return false;
+}
+
+bool WidgetView::OnKeyEvent( const Dali::KeyEvent& event )
+{
+  if( mRemoteSurface == NULL )
+  {
+    return false;
+  }
+
+  tizen_remote_surface_event_type type = TIZEN_REMOTE_SURFACE_EVENT_TYPE_NONE;
+
+  switch( event.state )
+  {
+    case Dali::KeyEvent::Down:
+    {
+      type = TIZEN_REMOTE_SURFACE_EVENT_TYPE_KEY_DOWN;
+      break;
+    }
+    case Dali::KeyEvent::Up:
+    {
+      type = TIZEN_REMOTE_SURFACE_EVENT_TYPE_KEY_UP;
+      break;
+    }
+    case Dali::KeyEvent::Last:
+    {
+      break;
+    }
+    default:
+    {
+      return false;
+    }
+  }
+
+  int32_t keyCode;
+  if( GetKeyCode( event.keyPressedName, keyCode ) == false )
+  {
+    return false;
+  }
+
+  tizen_remote_surface_transfer_key_event( mRemoteSurface,
+                                           type,
+                                           keyCode,
+                                           Dali::DevelKeyEvent::GetDeviceClass( event ),
+                                           Dali::DevelKeyEvent::GetDeviceSubclass( event ),
+                                           "",
+                                           static_cast< uint32_t >( event.time )
+                                         );
+
+  return false;
+}
+
+Vector3 WidgetView::GetNaturalSize()
+{
+  Vector3 size;
+  size.x = mWidth;
+  size.y = mHeight;
+
+  if( size.x > 0 && size.y > 0 )
+  {
+    size.z = std::min( size.x, size.y );
+    return size;
+  }
+  else
+  {
+    return Control::GetNaturalSize();
+  }
+}
+
+float WidgetView::GetHeightForWidth( float width )
+{
+  if( mWidth > 0 && mHeight > 0 )
+  {
+    return GetHeightForWidthBase( width );
+  }
+  else
+  {
+    return Control::GetHeightForWidthBase( width );
+  }
+}
+
+float WidgetView::GetWidthForHeight( float height )
+{
+  if( mWidth > 0 && mHeight > 0 )
+  {
+    return GetWidthForHeightBase( height );
+  }
+  else
+  {
+    return Control::GetWidthForHeightBase( height );
+  }
+}
+
+void WidgetView::CloseRemoteSurface()
+{
+  if( mWatcherHandle != NULL )
+  {
+    if( remoteSurface != NULL && preBuffer != NULL && tizen_remote_surface_get_version( remoteSurface ) >= TIZEN_REMOTE_SURFACE_RELEASE_SINCE_VERSION )
+    {
+      tizen_remote_surface_release( remoteSurface, preBuffer );
+      tbm_surface_h preTbmSurface = (tbm_surface_h)wl_buffer_get_user_data( preBuffer );
+      tbm_surface_internal_unref( preTbmSurface );
+      wl_buffer_destroy( preBuffer );
+      preBuffer = NULL;
+    }
+
+    screen_connector_toolkit_remove( mWatcherHandle );
+    mWatcherHandle = NULL;
+    mRemoteSurface = NULL;
+    mPid = -1;
+  }
+}
+
+void WidgetView::ShowLoadingState( bool show )
+{
+  if( mPreviewImage && mPreviewVisible )
+  {
+    mPreviewImage.SetVisible( show );
+  }
+
+  if( mLoadingText && mLoadingTextVisible )
+  {
+    mLoadingText.SetProperty( Toolkit::TextLabel::Property::TEXT,
+                              ( mLoadingTextString.empty() )? GET_LOCALE_TEXT( "IDS_ST_POP_LOADING_ING" ) : mLoadingTextString );
+    mLoadingText.SetVisible( show );
+  }
+}
+
+void WidgetView::ShowRetryState( bool show )
+{
+  if( mPreviewImage && mPreviewVisible )
+  {
+    mPreviewImage.SetVisible( false );
+  }
+
+  if( mRetryText && mRetryTextVisible )
+  {
+    mRetryText.SetProperty( Toolkit::TextLabel::Property::TEXT,
+                            ( mRetryTextString.empty() )? GET_LOCALE_TEXT( "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" ) : mRetryTextString );
+    mRetryText.SetVisible( show );
+    mRetryState = show;
+  }
+}
+
+void WidgetView::SetLoadingTextPropertyMap( Property::Map map )
+{
+  if( mLoadingText )
+  {
+    Property::Value* loadingText = map.Find( STATE_TEXT );
+    std::string text;
+    if( loadingText && loadingText->Get( text ) )
+    {
+      mLoadingText.SetProperty( Toolkit::TextLabel::Property::TEXT, text );
+      mLoadingTextString = text;
+    }
+
+    Property::Value* fontStyle = map.Find( FONT_STYLE );
+    std::string style;
+
+    if( fontStyle && fontStyle->Get( style ) )
+    {
+      mLoadingText.SetProperty( Toolkit::TextLabel::Property::FONT_STYLE, style );
+    }
+
+    Property::Value* textPointSize = map.Find( TEXT_POINT_SIZE );
+    float size = 0.f;
+
+    if( textPointSize && textPointSize->Get( size ) )
+    {
+      mLoadingText.SetProperty( Toolkit::TextLabel::Property::POINT_SIZE, size );
+    }
+
+    Property::Value* textColor = map.Find( TEXT_COLOR );
+    Vector4 color;
+
+    if( textColor && textColor->Get( color ) )
+    {
+      mLoadingText.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, color );
+    }
+  }
+}
+
+void WidgetView::SetRetryTextPropertyMap( Property::Map map )
+{
+  if( mRetryText )
+  {
+    Property::Value* retryText = map.Find( STATE_TEXT );
+    std::string text;
+    if( retryText && retryText->Get( text ) )
+    {
+      mRetryText.SetProperty( Toolkit::TextLabel::Property::TEXT, text );
+      mRetryTextString = text;
+    }
+
+    Property::Value* fontStyle = map.Find( FONT_STYLE );
+    std::string style;
+
+    if( fontStyle && fontStyle->Get( style ) )
+    {
+      mRetryText.SetProperty( Toolkit::TextLabel::Property::FONT_STYLE, style );
+    }
+
+    Property::Value* textPointSize = map.Find( TEXT_POINT_SIZE );
+    float size = 0.f;
+
+    if( textPointSize && textPointSize->Get( size ) )
+    {
+      mRetryText.SetProperty( Toolkit::TextLabel::Property::POINT_SIZE, size );
+    }
+
+    Property::Value* textColor = map.Find( TEXT_COLOR );
+    Vector4 color;
+    if( textColor && textColor->Get( color ) )
+    {
+      mRetryText.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, color );
+    }
+
+    Property::Value* textVisible = map.Find( TEXT_VISIBLE );
+    bool visible = true;
+    if( textVisible && textVisible->Get( visible ) )
+    {
+      SetRetryTextVisible( visible );
+    }
+  }
+}
+
+void WidgetView::SetWidgetImagePropertyMap( Property::Map map )
+{
+  mWidgetImagePropertyMap = map;
+  if( mWidgetImageView )
+  {
+    mWidgetImageView.SetProperty( Toolkit::ImageView::Property::IMAGE, map );
+  }
+}
+
+float WidgetView::TextPixelToPointSize( int pixelSize )
+{
+  Dali::Vector2 dpi = Dali::Stage::GetCurrent().GetDpi();
+  float meanDpi = (dpi.height + dpi.width) / 2.0f;
+
+  return (pixelSize * 72.0f) / meanDpi;
+}
+
+void WidgetView::MouseIn( const Dali::TouchData& event )
+{
+  Vector2 localPos = event.GetLocalPosition( 0 );
+
+  tizen_remote_surface_transfer_mouse_event( mRemoteSurface,
+                                             TIZEN_REMOTE_SURFACE_EVENT_TYPE_MOUSE_IN,
+                                             0,
+                                             0,
+                                             (int)localPos.x,
+                                             (int)localPos.y,
+                                             0,
+                                             0,
+                                             0,
+                                             0,
+                                             TIZEN_INPUT_DEVICE_CLAS_MOUSE,
+                                             DevelTouchData::GetDeviceSubclass( event, 0 ),
+                                             "",
+                                             event.GetTime()
+                                           );
+}
+
+void WidgetView::MouseOut( const Dali::TouchData& event )
+{
+  tizen_remote_surface_transfer_mouse_event( mRemoteSurface,
+                                             TIZEN_REMOTE_SURFACE_EVENT_TYPE_MOUSE_OUT,
+                                             0,
+                                             0,
+                                             0,
+                                             0,
+                                             0,
+                                             0,
+                                             0,
+                                             0,
+                                             TIZEN_INPUT_DEVICE_CLAS_MOUSE,
+                                             DevelTouchData::GetDeviceSubclass( event, 0 ),
+                                             "",
+                                             event.GetTime()
+                                           );
+}
+
+bool WidgetView::MouseEvent( const Dali::TouchData& event )
+{
+  tizen_remote_surface_event_type type = TIZEN_REMOTE_SURFACE_EVENT_TYPE_NONE;
+  int button = 1;
+
+  switch( event.GetState( 0 ) )
+  {
+    case Dali::PointState::UP:
+    {
+      type = TIZEN_REMOTE_SURFACE_EVENT_TYPE_MOUSE_UP;
+
+      if( mRetryState )
+      {
+        ActivateFaultedWidget();
+        return false;
+      }
+
+      break;
+    }
+    case Dali::PointState::DOWN:
+    {
+      type = TIZEN_REMOTE_SURFACE_EVENT_TYPE_MOUSE_DOWN;
+      MouseIn( event );
+
+      break;
+    }
+    case Dali::PointState::MOTION:
+    {
+      type = TIZEN_REMOTE_SURFACE_EVENT_TYPE_MOUSE_MOVE;
+      button = 0 ;
+      break;
+    }
+    default:
+    {
+      return false;
+    }
+  }
+
+  Vector2 localPos = event.GetLocalPosition( 0 );
+
+  tizen_remote_surface_transfer_mouse_event( mRemoteSurface,
+                                             type,
+                                             0,
+                                             button,
+                                             (int)localPos.x,
+                                             (int)localPos.y,
+                                             wl_fixed_from_double( event.GetEllipseRadius( 0 ).x ),
+                                             wl_fixed_from_double( event.GetEllipseRadius( 0 ).y ),
+                                             wl_fixed_from_double( event.GetPressure( 0 ) ),
+                                             wl_fixed_from_double( event.GetAngle( 0 ).degree ),
+                                             TIZEN_INPUT_DEVICE_CLAS_MOUSE,
+                                             DevelTouchData::GetDeviceSubclass( event, 0 ),
+                                             "",
+                                             event.GetTime()
+                                           );
+
+  if( event.GetState( 0 ) == Dali::PointState::UP)
+  {
+    MouseOut( event );
+  }
+
+  return true;
+}
+
+bool WidgetView::TouchEvent( const Dali::TouchData& event )
+{
+  tizen_remote_surface_event_type type = TIZEN_REMOTE_SURFACE_EVENT_TYPE_NONE;
+  int button = 1;
+
+  switch( event.GetState( 0 ) )
+  {
+    case Dali::PointState::UP:
+    {
+      type = TIZEN_REMOTE_SURFACE_EVENT_TYPE_TOUCH_UP;
+
+      if( mRetryState )
+      {
+        ActivateFaultedWidget();
+        return false;
+      }
+
+      break;
+    }
+    case Dali::PointState::DOWN:
+    {
+      type = TIZEN_REMOTE_SURFACE_EVENT_TYPE_TOUCH_DOWN;
+
+      break;
+    }
+    case Dali::PointState::MOTION:
+    {
+      type = TIZEN_REMOTE_SURFACE_EVENT_TYPE_TOUCH_MOVE;
+      button = 0;
+      break;
+    }
+    default:
+    {
+      return false;
+    }
+  }
+
+  Vector2 localPos = event.GetLocalPosition( 0 );
+
+  tizen_remote_surface_transfer_touch_event( mRemoteSurface,
+                                             type,
+                                             0,
+                                             button,
+                                             (int)localPos.x,
+                                             (int)localPos.y,
+                                             wl_fixed_from_double( event.GetEllipseRadius( 0 ).x ),
+                                             wl_fixed_from_double( event.GetEllipseRadius( 0 ).y ),
+                                             wl_fixed_from_double( event.GetPressure( 0 ) ),
+                                             wl_fixed_from_double( event.GetAngle( 0 ).degree ),
+                                             TIZEN_INPUT_DEVICE_CLAS_TOUCHSCREEN,
+                                             DevelTouchData::GetDeviceSubclass( event, 0 ),
+                                             "",
+                                             event.GetTime()
+                                           );
+  return true;
+}
+
+} // namespace Internal
+
+} // namespace WidgetView
+
+} // namespace Dali
diff --git a/widget_viewer_dali/internal/widget_view/widget_view_impl.h b/widget_viewer_dali/internal/widget_view/widget_view_impl.h
new file mode 100644 (file)
index 0000000..8aedda1
--- /dev/null
@@ -0,0 +1,346 @@
+#ifndef __DALI_WIDGET_VIEW_INTERNAL_WIDGET_VIEW_H__
+#define __DALI_WIDGET_VIEW_INTERNAL_WIDGET_VIEW_H__
+
+/*
+ * Samsung API
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Flora License, Version 1.1 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://floralicense.org/license/
+ *
+ * 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.
+ */
+
+// INTERNAL INCLUDES
+#include <widget_viewer_dali/public_api/widget_view/widget_view.h>
+
+// EXTERNAL INCLUDES
+#include <dali/public-api/adaptor-framework/native-image-source.h>
+#include <dali-toolkit/public-api/controls/control-impl.h>
+#include <dali-toolkit/public-api/controls/text-controls/text-label.h>
+#include <dali-toolkit/public-api/controls/image-view/image-view.h>
+#include <dali/public-api/object/property-map.h>
+#include <wayland-extension/tizen-remote-surface-client-protocol.h>
+#include <tbm_surface.h>
+#include <screen_connector_toolkit.h>
+
+namespace Dali
+{
+
+namespace WidgetView
+{
+
+namespace Internal
+{
+
+class WidgetView : public Toolkit::Internal::Control
+{
+public:
+
+  /**
+   * @copydoc Dali::WidgetView::WidgetView::New
+   */
+  static Dali::WidgetView::WidgetView New( const std::string& widgetId, const std::string& contentInfo, int width, int height, float updatePeriod );
+
+  /**
+   * @copydoc Dali::WidgetView::WidgetView::PauseWidget
+   */
+  bool PauseWidget();
+
+  /**
+   * @copydoc Dali::WidgetView::WidgetView::ResumeWidget
+   */
+  bool ResumeWidget();
+
+  /**
+   * @copydoc Dali::WidgetView::WidgetView::CancelTouchEvent
+   */
+  bool CancelTouchEvent();
+
+  /**
+   * @copydoc Dali::WidgetView::WidgetView::ActivateFaultedWidget
+   */
+  void ActivateFaultedWidget();
+
+  void SendWidgetEvent( int event );
+
+public: // Internal API
+
+  /**
+   * @brief Called when a property of an object of this type is set.
+   * @SINCE_1_1.38
+   * @param[in] object The object whose property is set.
+   * @param[in] index The property index.
+   * @param[in] value The new property value.
+   */
+  static void SetProperty( BaseObject* object, Property::Index index, const Property::Value& value );
+
+  /**
+   * @brief Called to retrieve a property of an object of this type.
+   * @SINCE_1_1.38
+   * @param[in] object The object whose property is to be retrieved.
+   * @param[in] index The property index.
+   * @return The current value of the property.
+   */
+  static Property::Value GetProperty( BaseObject* object, Property::Index propertyIndex );
+
+  /**
+   * @brief Performs actions as requested using the action name.
+   * @SINCE_1_1.38
+   * @param[in] object The object on which to perform the action.
+   * @param[in] actionName The action to perform.
+   * @param[in] attributes The attributes with which to perfrom this action.
+   * @return True if action has been accepted by this control
+   */
+  static bool DoAction( BaseObject* object, const std::string& actionName, const Property::Map& attributes );
+
+  static bool DoConnectSignal( BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor );
+
+  const std::string& GetWidgetId() const;
+
+  const std::string& GetInstanceId() const;
+
+  const std::string& GetContentInfo();
+
+  const std::string& GetTitle();
+
+  float GetUpdatePeriod() const;
+
+  void SetPreviewVisible( bool visible );
+
+  bool IsPreviewVisible();
+
+  void SetLoadingTextVisible( bool visible );
+
+  void SetRetryTextVisible( bool visible );
+
+  bool IsLoadingTextVisible();
+
+  bool IsRetryTextVisible();
+
+  bool IsWidgetFaulted();
+
+  void SetPermanentDelete( bool permanentDelete );
+
+  void RemoveWidgetImage();
+
+  bool IsPermanentDelete();
+
+  bool IsWidgetImageView();
+
+  void UpdateImageSource( tbm_surface_h source );
+
+  void CreateWidgetImageView();
+
+  void ConnectSignal( tizen_remote_surface* surface );
+
+  bool OnTouch( Dali::Actor actor, const Dali::TouchData& event );
+
+  bool OnWheelEvent( Dali::Actor actor, const Dali::WheelEvent& event );
+
+  void CloseRemoteSurface();
+
+  void SetLoadingTextPropertyMap( Dali::Property::Map map );
+
+  void SetRetryTextPropertyMap( Dali::Property::Map map );
+
+  void SetWidgetImagePropertyMap( Dali::Property::Map map );
+
+  void ShowLoadingState( bool show );
+
+  void ShowRetryState( bool show );
+
+  void TerminateWidget();
+
+  void MouseIn( const Dali::TouchData& event );
+
+  void MouseOut( const Dali::TouchData& event );
+
+  bool MouseEvent( const Dali::TouchData& event );
+
+  bool TouchEvent( const Dali::TouchData& event );
+
+public: //Signals
+
+  /**
+   * @copydoc Dali::WidgetView::WidgetView::WidgetAddedSignal
+   */
+  Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetAddedSignal();
+
+  /**
+   * @copydoc Dali::WidgetView::WidgetView::WidgetDeletedSignal
+   */
+  Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetDeletedSignal();
+
+  /**
+   * @copydoc Dali::WidgetView::WidgetView::WidgetCreationAbortedSignal
+   */
+  Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetCreationAbortedSignal();
+
+  /**
+   * @copydoc Dali::WidgetView::WidgetView::WidgetContentUpdatedSignal
+   */
+  Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetContentUpdatedSignal();
+
+  /**
+   * @copydoc Dali::WidgetView::WidgetView::WidgetUpdatePeriodChangedSignal
+   */
+  Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetUpdatePeriodChangedSignal();
+
+  /**
+   * @copydoc Dali::WidgetView::WidgetView::WidgetFaultedSignal
+   */
+  Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetFaultedSignal();
+
+  Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetTerminatedSignal();
+
+protected:
+
+  /**
+   * Construct a new WidgetView.
+   */
+  WidgetView();
+
+  /**
+   * Construct a new WidgetView.
+   */
+  WidgetView( const std::string& widgetId, const std::string& contentInfo, int width, int height, float updatePeriod );
+
+  /**
+   * A reference counted object may only be deleted by calling Unreference()
+   */
+  virtual ~WidgetView();
+
+  float TextPixelToPointSize( int pixelSize );
+
+private: // From Control
+
+  /**
+   * @copydoc Toolkit::Control::OnInitialize()
+   */
+  virtual void OnInitialize();
+
+  /**
+   * @copydoc Toolkit::Control::OnStageConnect()
+   */
+  virtual void OnStageConnection( int depth );
+
+  /**
+   * @copydoc Toolkit::Control::OnStageDisconnection()
+   */
+  virtual void OnStageDisconnection();
+
+  /**
+   * @copydoc Toolkit::Control::OnSizeSet()
+   */
+  virtual void OnSizeSet( const Vector3& targetSize );
+
+  /**
+   * @copydoc Toolkit::Control::OnKeyEvent()
+   */
+  virtual bool OnKeyEvent( const KeyEvent& event );
+
+  /**
+   * @copydoc Toolkit::Control::GetNaturalSize
+   */
+  virtual Vector3 GetNaturalSize();
+
+  /**
+   * @copydoc Toolkit::Control::GetHeightForWidth()
+   */
+  virtual float GetHeightForWidth( float width );
+
+  /**
+   * @copydoc Toolkit::Control::GetWidthForHeight()
+   */
+  virtual float GetWidthForHeight( float height );
+
+private:
+
+  // Undefined
+  WidgetView( const WidgetView& );
+
+  // Undefined
+  WidgetView& operator= ( const WidgetView& );
+
+private:
+
+  Toolkit::ImageView mWidgetImageView;     ///< Widget content
+  Toolkit::ImageView mPreviewImage;   ///< Preview image
+  Toolkit::TextLabel mLoadingText;      ///< Loading text
+  Toolkit::TextLabel mRetryText;      ///< Retry text
+  Dali::Actor mPreviewActor;
+  Dali::Actor mStateTextActor;
+  Dali::NativeImageSourcePtr mImageSource;
+
+  std::string mWidgetId;
+  std::string mInstanceId;
+  std::string mContentInfo;
+  std::string mTitle;
+
+  int mWidth;
+  int mHeight;
+  int mPid;
+  float mUpdatePeriod;
+
+  bool mPreviewVisible;
+
+  bool mLoadingTextVisible;
+  std::string mLoadingTextString;
+
+  bool mRetryTextVisible;
+  std::string mRetryTextString;
+  bool mRetryState;
+
+  bool mPermanentDelete;
+  screen_connector_toolkit_h mWatcherHandle;
+  tizen_remote_surface* mRemoteSurface;
+
+  Dali::Property::Map mWidgetImagePropertyMap;
+
+  // Signals
+  Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetAddedSignal;
+  Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetDeletedSignal;
+  Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetCreationAbortedSignal;
+  Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetContentUpdatedSignal;
+  Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetUpdatePeriodChangedSignal;
+  Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetFaultedSignal;
+
+  // Internal signal
+  Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetTerminatedSignal;
+};
+
+} // namespace Internal
+
+// Helpers for public-api forwarding methods
+
+inline Internal::WidgetView& GetImplementation( WidgetView& widgetView )
+{
+  DALI_ASSERT_ALWAYS( widgetView );
+
+  Dali::RefObject& handle = widgetView.GetImplementation();
+
+  return static_cast<Internal::WidgetView&>( handle );
+}
+
+inline const Internal::WidgetView& GetImplementation( const WidgetView& widgetView )
+{
+  DALI_ASSERT_ALWAYS( widgetView );
+
+  const Dali::RefObject& handle = widgetView.GetImplementation();
+
+  return static_cast<const Internal::WidgetView&>( handle );
+}
+
+} // namespace WidgetView
+
+} // namespace Dali
+
+#endif // __DALI_WIDGET_VIEW_INTERNAL_WIDGET_VIEW_H__
diff --git a/widget_viewer_dali/internal/widget_view_manager/widget_view_manager_impl.cpp b/widget_viewer_dali/internal/widget_view_manager/widget_view_manager_impl.cpp
new file mode 100644 (file)
index 0000000..930fd9e
--- /dev/null
@@ -0,0 +1,255 @@
+/*
+ * Samsung API
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Flora License, Version 1.1 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://floralicense.org/license/
+ *
+ * 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 <widget_viewer_dali/internal/widget_view_manager/widget_view_manager_impl.h>
+
+// INTERNAL INCLUDES
+#include <widget_viewer_dali/internal/widget_view/widget_view_impl.h>
+
+// EXTERNAL INCLUDES
+#include <dali/public-api/object/type-registry.h>
+#include <dali/public-api/object/type-registry-helper.h>
+#include <dali/integration-api/debug.h>
+#include <system_info.h>
+#include <cynara-client.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <widget_errno.h>
+#include <widget_instance.h>
+#include <screen_connector_toolkit.h>
+#include <libintl.h>
+
+namespace Dali
+{
+
+namespace WidgetView
+{
+
+namespace Internal
+{
+
+namespace
+{
+
+#define SMACK_LABEL_LENGTH 255
+
+#if defined(DEBUG_ENABLED)
+Integration::Log::Filter* gWidgetViewManagerLogging  = Integration::Log::Filter::New( Debug::Verbose, false, "LOG_WIDGET_VIEW_MANAGER" );
+#endif
+
+BaseHandle Create()
+{
+  return Dali::BaseHandle();
+}
+
+DALI_TYPE_REGISTRATION_BEGIN( Dali::WidgetView::WidgetViewManager, Dali::BaseHandle, Create );
+
+static bool IsWidgetFeatureEnabled()
+{
+  static bool feature = false;
+  static bool retrieved = false;
+  int ret;
+
+  if( retrieved == true )
+    return feature;
+
+  ret = system_info_get_platform_bool( "http://tizen.org/feature/shell.appwidget", &feature );
+  if( ret != SYSTEM_INFO_ERROR_NONE )
+  {
+    return false;
+  }
+
+  retrieved = true;
+
+  return feature;
+}
+
+static bool CheckPrivilege( const char* privilege )
+{
+  cynara* cynara;
+  int fd = 0;
+  int ret = 0;
+  char subjectLabel[SMACK_LABEL_LENGTH + 1] = "";
+  char uid[10] = { 0, };
+  const char* clientSession = "";
+
+  ret = cynara_initialize( &cynara, NULL );
+  if( ret != CYNARA_API_SUCCESS )
+  {
+    return false;
+  }
+
+  fd = open( "/proc/self/attr/current", O_RDONLY );
+  if( fd < 0 )
+  {
+    cynara_finish( cynara );
+    return false;
+  }
+
+  ret = read( fd, subjectLabel, SMACK_LABEL_LENGTH );
+  if( ret < 0 )
+  {
+    close( fd );
+    cynara_finish( cynara );
+    return false;
+  }
+
+  close( fd );
+
+  snprintf( uid, 10, "%d", getuid() );
+
+  ret = cynara_check( cynara, subjectLabel, clientSession, uid, privilege );
+  if( ret != CYNARA_API_ACCESS_ALLOWED )
+  {
+    cynara_finish( cynara );
+    return false;
+  }
+
+  cynara_finish( cynara );
+
+  return true;
+}
+
+} // unnamed namespace
+
+WidgetViewManagerPtr WidgetViewManager::New( Application application, const std::string& name )
+{
+  WidgetViewManagerPtr impl = new WidgetViewManager();
+
+  // Second-phase init of the implementation
+  if( impl->Initialize( application, name ) != WIDGET_ERROR_NONE )
+  {
+    DALI_LOG_INFO( gWidgetViewManagerLogging, Debug::Verbose, "WidgetViewManager::New: Fail to create WidgetViewManager.\n" );
+    return NULL;
+  }
+
+  return impl;
+}
+
+WidgetViewManager::WidgetViewManager()
+{
+}
+
+WidgetViewManager::~WidgetViewManager()
+{
+  screen_connector_toolkit_fini(SCREEN_CONNECTOR_SCREEN_TYPE_WIDGET);
+  widget_instance_unlisten_event( WidgetViewManager::WidgetEventCallback );
+  widget_instance_fini();
+}
+
+int WidgetViewManager::Initialize( Application application, const std::string& name )
+{
+  if( !IsWidgetFeatureEnabled() )
+  {
+    DALI_LOG_INFO( gWidgetViewManagerLogging, Debug::Verbose, "WidgetViewManager::Initialize: Widget feature is not enabled.\n" );
+    return WIDGET_ERROR_NOT_SUPPORTED;
+  }
+
+  if( !CheckPrivilege( "http://tizen.org/privilege/widget.viewer" ) )
+  {
+    DALI_LOG_INFO( gWidgetViewManagerLogging, Debug::Verbose, "WidgetViewManager::Initialize: Privilege error.\n" );
+    return WIDGET_ERROR_PERMISSION_DENIED;
+  }
+
+  if( !bindtextdomain( PKGNAME, WIDGET_VIEWER_DALI_LOCALE ) )
+  {
+    DALI_LOG_INFO( gWidgetViewManagerLogging, Debug::Verbose, "WidgetViewManager::Initialize: bindtextdomain error.\n" );
+  }
+
+  // Binds tizen remote surface manager & connects callback
+  if( screen_connector_toolkit_init(SCREEN_CONNECTOR_SCREEN_TYPE_WIDGET) < 0 )
+  {
+    return WIDGET_ERROR_FAULT;
+  }
+
+  // init widget service
+  widget_instance_init( name.c_str() );
+  widget_instance_listen_event( WidgetViewManager::WidgetEventCallback, this );
+
+  DALI_LOG_INFO( gWidgetViewManagerLogging, Debug::Verbose, "WidgetViewManager::Initialize: success.\n" );
+
+  return WIDGET_ERROR_NONE;
+}
+
+Dali::WidgetView::WidgetView WidgetViewManager::AddWidget( const std::string& widgetId, const std::string& contentInfo, int width, int height, float updatePeriod )
+{
+  // Add a new widget view
+  Dali::WidgetView::WidgetView widgetView = Dali::WidgetView::WidgetView::New( widgetId, contentInfo, width, height, updatePeriod );
+
+  std::string instanceId;
+  Property::Value value = widgetView.GetProperty( Dali::WidgetView::WidgetView::Property::INSTANCE_ID );
+  value.Get( instanceId );
+
+  if( !instanceId.empty() )
+  {
+    Dali::WidgetView::GetImplementation( widgetView ).WidgetTerminatedSignal().Connect( this, &WidgetViewManager::OnTerminatedWidget );
+
+    // Add to map
+    mWidgetViewContainer.insert( std::pair<std::string, Dali::WidgetView::WidgetView>( instanceId, widgetView ) );
+  }
+
+  DALI_LOG_INFO( gWidgetViewManagerLogging, Debug::Verbose, "WidgetViewManager::AddWidget: success [%s]\n", widgetId.c_str() );
+
+  return widgetView;
+}
+
+void WidgetViewManager::OnTerminatedWidget( Dali::WidgetView::WidgetView widgetView )
+{
+  std::string instanceId;
+  Dali::Property::Value value = widgetView.GetProperty( Dali::WidgetView::WidgetView::Property::INSTANCE_ID );
+
+  if( value.Get( instanceId ) && !instanceId.empty() && mWidgetViewContainer.size() > 0 )
+  {
+    WidgetViewIter iter = mWidgetViewContainer.find( instanceId );
+    if( iter != mWidgetViewContainer.end() )
+    {
+      mWidgetViewContainer.erase( iter );
+    }
+  }
+
+  DALI_LOG_INFO( gWidgetViewManagerLogging, Debug::Verbose, "WidgetViewManager::OnTerminatedWidget: Widget is deleted!\n" );
+}
+
+int WidgetViewManager::WidgetEventCallback( const char* widgetId, const char* instanceId, int event, void* data )
+{
+  WidgetViewManager* widgetViewManager = static_cast< WidgetViewManager* >( data );
+
+  if( widgetViewManager->mWidgetViewContainer.size() > 0)
+  {
+    WidgetViewIter iter = widgetViewManager->mWidgetViewContainer.find( std::string( instanceId ) );
+    if( iter != widgetViewManager->mWidgetViewContainer.end() )
+    {
+      Dali::WidgetView::WidgetView widgetView = iter->second;
+
+      Dali::WidgetView::GetImplementation( widgetView ).SendWidgetEvent( event );
+
+      return 0;
+    }
+  }
+
+  DALI_LOG_INFO( gWidgetViewManagerLogging, Debug::Verbose, "WidgetViewManager::WidgetEventCallback: WidgetView is not found! [%s, %s]\n", widgetId, instanceId );
+
+  return 0;
+}
+
+} // namespace Internal
+
+} // namespace WidgetView
+
+} // namespace Dali
diff --git a/widget_viewer_dali/internal/widget_view_manager/widget_view_manager_impl.h b/widget_viewer_dali/internal/widget_view_manager/widget_view_manager_impl.h
new file mode 100644 (file)
index 0000000..94a3211
--- /dev/null
@@ -0,0 +1,121 @@
+#ifndef __DALI_WIDGET_VIEW_INTERNAL_WIDGET_VIEW_MANAGER_H__
+#define __DALI_WIDGET_VIEW_INTERNAL_WIDGET_VIEW_MANAGER_H__
+
+/*
+ * Samsung API
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Flora License, Version 1.1 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://floralicense.org/license/
+ *
+ * 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.
+ */
+
+// INTERNAL INCLUDES
+#include <widget_viewer_dali/public_api/widget_view/widget_view.h>
+#include <widget_viewer_dali/public_api/widget_view_manager/widget_view_manager.h>
+
+// EXTERNAL INCLUDES
+#include <dali/public-api/object/base-object.h>
+#include <map>
+
+namespace Dali
+{
+
+namespace WidgetView
+{
+
+namespace Internal
+{
+
+class WidgetViewManager;
+typedef IntrusivePtr<WidgetViewManager> WidgetViewManagerPtr;
+
+class WidgetViewManager : public BaseObject, public ConnectionTracker
+{
+public:
+
+  /**
+   * @copydoc Dali::WidgetView::WidgetViewManager::New()
+   */
+  static WidgetViewManagerPtr New( Application application, const std::string& name );
+
+  /**
+   * @copydoc Dali::WidgetView::WidgetViewManager::AddWidget()
+   */
+  Dali::WidgetView::WidgetView AddWidget( const std::string& widgetId, const std::string& contentInfo, int width, int height, float updatePeriod );
+
+private:
+
+  /**
+   * Construct a new WidgetViewManager.
+   */
+  WidgetViewManager();
+
+  /**
+   * A reference counted object may only be deleted by calling Unreference()
+   */
+  virtual ~WidgetViewManager();
+
+  /**
+   * Initialize the WidgetViewManager
+   */
+  int Initialize( Application application, const std::string& name );
+
+  static int WidgetEventCallback( const char* widgetId, const char* instanceId, int event, void* data );
+
+  /**
+   * The widgetView is removed from WidgetViewContainer
+   */
+  void OnTerminatedWidget( Dali::WidgetView::WidgetView widgetView );
+
+private:
+
+  // Undefined
+  WidgetViewManager( const WidgetViewManager& );
+
+  // Undefined
+  WidgetViewManager& operator= ( const WidgetViewManager& );
+
+private:
+
+  typedef std::map<std::string, Dali::WidgetView::WidgetView> WidgetViewContainer;
+  typedef WidgetViewContainer::iterator WidgetViewIter;
+
+  WidgetViewContainer mWidgetViewContainer;
+};
+
+} // namespace Internal
+
+// Helpers for public-api forwarding methods
+
+inline Internal::WidgetViewManager& GetImplementation( WidgetViewManager& obj )
+{
+  DALI_ASSERT_ALWAYS( obj );
+
+  Dali::BaseObject& handle = obj.GetBaseObject();
+
+  return static_cast<Internal::WidgetViewManager&>( handle );
+}
+
+inline const Internal::WidgetViewManager& GetImplementation( const WidgetViewManager& obj )
+{
+  DALI_ASSERT_ALWAYS( obj );
+
+  const Dali::BaseObject& handle = obj.GetBaseObject();
+
+  return static_cast<const Internal::WidgetViewManager&>( handle );
+}
+
+} // namespace WidgetView
+
+} // namespace Dali
+
+#endif // __DALI_WIDGET_VIEW_INTERNAL_WIDGET_VIEW_MANAGER_H__
diff --git a/widget_viewer_dali/po/ar.po b/widget_viewer_dali/po/ar.po
new file mode 100755 (executable)
index 0000000..62bcd4c
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "جارٍ التحميل..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "يتعذر تحميل البيانات. انقر لإعادة المحاولة."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "انقر هنا لتحميل بيانات التطبيق المصغر"
+
diff --git a/widget_viewer_dali/po/as.po b/widget_viewer_dali/po/as.po
new file mode 100755 (executable)
index 0000000..4f14965
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "লোড হৈ আছে..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "ডাটা লোড কৰিবলৈ অক্ষম৷ পুনঃচেষ্টা কৰিবৰ বাবে টিপক।"
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "ৱিজেট ডাটা লোড কৰিবলৈ ইয়াত টিপক"
+
diff --git a/widget_viewer_dali/po/az.po b/widget_viewer_dali/po/az.po
new file mode 100755 (executable)
index 0000000..ae47346
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Yüklənir..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Məlumatları yükləmək mümkün deyil. Yenidən cəhd etmək üçün vurun"
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Piktoq məl yükl üçün vur"
+
diff --git a/widget_viewer_dali/po/be_BY.po b/widget_viewer_dali/po/be_BY.po
new file mode 100755 (executable)
index 0000000..dc565b9
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Загрузка..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Unable to load data. Tap to retry."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Націс.тут для загр.дан.відж."
+
diff --git a/widget_viewer_dali/po/bn.po b/widget_viewer_dali/po/bn.po
new file mode 100755 (executable)
index 0000000..09d105d
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "লোড হচ্ছে..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "তথ্য লোড করতে অক্ষম৷ পুনরায় চেষ্টা করতে ট্যাপ করুন৷"
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "উইজেট তথ্য লোড করতে এখানে ট্যাপ করুন"
+
diff --git a/widget_viewer_dali/po/bn_BD.po b/widget_viewer_dali/po/bn_BD.po
new file mode 100755 (executable)
index 0000000..cdea8b3
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "লোড হচ্ছে..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "তথ্য লোড করতে অক্ষম। পুনরায় চেষ্টা করতে ট্যাপ করুন।"
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "উইজেটের তথ্য লোড করতে এখানে ট্যাপ করুন"
+
diff --git a/widget_viewer_dali/po/de.po b/widget_viewer_dali/po/de.po
new file mode 100755 (executable)
index 0000000..882b394
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Lädt..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Daten konnten nicht geladen werden. Für erneuten Versuch tippen"
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Tippen und Widget-Daten laden."
+
diff --git a/widget_viewer_dali/po/en.po b/widget_viewer_dali/po/en.po
new file mode 100755 (executable)
index 0000000..3030f61
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Loading..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Unable to load data. Tap to retry."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Tap here to load widget data"
+
diff --git a/widget_viewer_dali/po/en_PH.po b/widget_viewer_dali/po/en_PH.po
new file mode 100755 (executable)
index 0000000..3030f61
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Loading..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Unable to load data. Tap to retry."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Tap here to load widget data"
+
diff --git a/widget_viewer_dali/po/en_US.po b/widget_viewer_dali/po/en_US.po
new file mode 100755 (executable)
index 0000000..3030f61
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Loading..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Unable to load data. Tap to retry."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Tap here to load widget data"
+
diff --git a/widget_viewer_dali/po/es_ES.po b/widget_viewer_dali/po/es_ES.po
new file mode 100755 (executable)
index 0000000..9a1f90f
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Cargando..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "No se pueden cargar datos. Pulse para volver a intentarlo."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Cargue aquí datos de widgets"
+
diff --git a/widget_viewer_dali/po/es_US.po b/widget_viewer_dali/po/es_US.po
new file mode 100755 (executable)
index 0000000..4877ea8
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Cargando..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "No es posible cargar los datos. Pulse para intentarlo de nuevo."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Pulse para cargar datos widget"
+
diff --git a/widget_viewer_dali/po/fa.po b/widget_viewer_dali/po/fa.po
new file mode 100755 (executable)
index 0000000..23d685e
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "در حال دانلود..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "بارگیری داده ممکن نیست. برای امتحان مجدد ضربه بزنید."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "برای بارگیری داده ویجت ضربه بزنید"
+
diff --git a/widget_viewer_dali/po/fr.po b/widget_viewer_dali/po/fr.po
new file mode 100755 (executable)
index 0000000..5a2b7e2
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Chargement en cours."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Impossible de charger les données. Appuyez pour réessayer."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "App. pr charger donn. widget"
+
diff --git a/widget_viewer_dali/po/gu.po b/widget_viewer_dali/po/gu.po
new file mode 100755 (executable)
index 0000000..6aca674
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "લોડિંગ..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "ડેટા લોડ કરવામાં અસમર્થ. ફરીથી પ્રયાસ કરવા માટે ટેપ કરો."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "વિજેટ ડેટા લોડ કરવા માટે અહીં ટેપ કરો"
+
diff --git a/widget_viewer_dali/po/hi.po b/widget_viewer_dali/po/hi.po
new file mode 100755 (executable)
index 0000000..3dc0197
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "लोड हो रहा है..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "डाटा लोड करने में अक्षम। फिर से प्रयास करने हेतु टैप करें।"
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "विजेट डाटा लोड करने हेतु यहां टैप करें"
+
diff --git a/widget_viewer_dali/po/hy.po b/widget_viewer_dali/po/hy.po
new file mode 100755 (executable)
index 0000000..fe15a4b
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Բեռնում է..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Անհնար է տվյալներ բեռնել: Թակեք՝ նորից փորձելու համար"
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Թակ այստեղ՝ պտկրգրի տվ. բեռ."
+
diff --git a/widget_viewer_dali/po/id.po b/widget_viewer_dali/po/id.po
new file mode 100755 (executable)
index 0000000..62f3708
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Meloading…"
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Tidak dapat memuat data. Ketuk untuk mencoba lagi."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Ktuk sini utk muat dta wdgt"
+
diff --git a/widget_viewer_dali/po/it_IT.po b/widget_viewer_dali/po/it_IT.po
new file mode 100755 (executable)
index 0000000..910a09f
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Caricamento..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Impossibile caricare i dati. Toccate per riprovare."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Toc. qui per caric. dati widget"
+
diff --git a/widget_viewer_dali/po/jv.po b/widget_viewer_dali/po/jv.po
new file mode 100755 (executable)
index 0000000..03d9b69
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Lagi muat..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Ora bisa ngamot data. Tutul kanggo nyoba maneh."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Ttl iki nggo amot dt widget"
+
diff --git a/widget_viewer_dali/po/ka.po b/widget_viewer_dali/po/ka.po
new file mode 100755 (executable)
index 0000000..c69f879
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "იტვირთება..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "მონაცემთა ჩატვირთვა შეუძლებელია. შეეხეთ და გაიმეორეთ მცდელობა"
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "შეეხეთ აქ, ვიჯეტის მონაცემ."
+
diff --git a/widget_viewer_dali/po/kk.po b/widget_viewer_dali/po/kk.po
new file mode 100755 (executable)
index 0000000..08c0a8f
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Жазылуда..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Деректерді жүктеу мүмкін емес. Қайталау үшін түртіңіз"
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Виджет дер. жүк-у үшін түрту"
+
diff --git a/widget_viewer_dali/po/km.po b/widget_viewer_dali/po/km.po
new file mode 100755 (executable)
index 0000000..2050a75
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "កំពុង​ផ្ទុក..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "មិន​អាច​ផ្ទុក​ទិន្នន័យ។ ប៉ះ​ដើម្បី​សាកល្បង​ម្ដងទៀត។"
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "ប៉ះ​ទីនេះ ដើម្បី​ផ្ទុក​ទិន្នន័យ​វីដជីត"
+
diff --git a/widget_viewer_dali/po/kn.po b/widget_viewer_dali/po/kn.po
new file mode 100755 (executable)
index 0000000..5a8a768
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "ಲೋಡಿಂಗ್..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "ಡೇಟಾ ಲೋಡ್ ಮಾಡಲು ಅಸಮರ್ಥ. ಮರುಪ್ರಯತ್ನಿಸಲು ಒತ್ತಿ."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "ವಿಜೆಟ್ ಡೇಟಾ ಲೋಡ್‌ಗೆ ಇಲ್ಲಿ ತಟ್ಟಿ"
+
diff --git a/widget_viewer_dali/po/ko_KR.po b/widget_viewer_dali/po/ko_KR.po
new file mode 100755 (executable)
index 0000000..ea79661
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "불러오는 중..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "데이터를 불러올 수 없습니다. 다시 시도하려면 누르세요."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "위젯 데이터를 불러오려면 여기를 누르세요"
+
diff --git a/widget_viewer_dali/po/ky_KG.po b/widget_viewer_dali/po/ky_KG.po
new file mode 100755 (executable)
index 0000000..21a7b60
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Жүктөлүүдө..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Unable to load data. Tap to retry."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Видж. маал. жүкт. муну бас"
+
diff --git a/widget_viewer_dali/po/lo.po b/widget_viewer_dali/po/lo.po
new file mode 100755 (executable)
index 0000000..05943b1
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "ກຳລັງໂຫຼດ..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "ບໍ່ສາມາດໂຫຼດຂໍ້ມູນໄດ້. ເຄາະເພື່ອລອງໃໝ່."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "ແຕະທີ່ນີ້ເພື່ອໂຫຼດຂໍ້ມູນວິດເຈັດ"
+
diff --git a/widget_viewer_dali/po/ml.po b/widget_viewer_dali/po/ml.po
new file mode 100755 (executable)
index 0000000..e65be75
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "ലോഡ്‌ ചെയ്യുന്നു..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "ഡാറ്റ ലോഡുചെയ്യാന്‍ കഴിയുന്നില്ല. വീണ്ടും ശ്രമിക്കുന്നതിന് ടാപ്പുചെയ്യുക"
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "വിജറ്റ് ഡാറ്റ ലോഡ് ചെയ്യാൻ ഇവിടെ സ്പർശിക്കുക"
+
diff --git a/widget_viewer_dali/po/mn_MN.po b/widget_viewer_dali/po/mn_MN.po
new file mode 100755 (executable)
index 0000000..0d515f7
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Ачаалж байна..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Өгөгдөл ачаалах боломжгүй. Товшиж дахин оролд"
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Тоног. өгөг. ачаал. энд товш"
+
diff --git a/widget_viewer_dali/po/mr.po b/widget_viewer_dali/po/mr.po
new file mode 100755 (executable)
index 0000000..3bcf03b
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "लोड होत आहे..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "डेटा लोड करण्यामध्‍ये अक्षम. पुनर्प्रयत्न करण्‍यासाठी टॅप करा."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "विजेट डेटा लोड करण्‍यास येथे टॅप करा"
+
diff --git a/widget_viewer_dali/po/ms.po b/widget_viewer_dali/po/ms.po
new file mode 100755 (executable)
index 0000000..413d227
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Memuat…"
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Tidak dapat memuatkan data. Ketik untuk mencuba semula."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Ketik utk muat data widget"
+
diff --git a/widget_viewer_dali/po/my_ZG.po b/widget_viewer_dali/po/my_ZG.po
new file mode 100755 (executable)
index 0000000..c2f558d
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "အခ်က္အလက္ျဖည့္သြင္းေနပါသည္…"
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "ေဒတာ တင္ရန္ မရႏိုင္ပါ။ ျပန္ၾကိဳးစားရန္ ႏွိပ္ပါ။"
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "ဝဒ္ဂ်က္ေဒတာကုိ ရယူရန္ ဤေနရာကုိ ႏွိပ္ပါ"
+
diff --git a/widget_viewer_dali/po/ne.po b/widget_viewer_dali/po/ne.po
new file mode 100755 (executable)
index 0000000..dd751d8
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "लोड हुँदै छ..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "डाटा लोड गर्न सकेन। पुन: प्रयास गर्नुहोस् मा ट्याप गर्नुहोस्।"
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "विजेट डाटा लोड गर्न यहाँ ट्याप गर्नु"
+
diff --git a/widget_viewer_dali/po/or.po b/widget_viewer_dali/po/or.po
new file mode 100755 (executable)
index 0000000..95e255a
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "ଲୋଡ୍ ହେଉଛି..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "ଡାଟା ଲୋଡ୍ କରିବାକୁ ଅସମର୍ଥ। ପୁନଃଚେଷ୍ଟା କରିବାକୁ ଟ୍ୟାପ୍ କରନ୍ତୁ।"
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "ୱିଜେ. ଡାଟା ଲୋଡ୍‍ କରି. ଏଠା. ଟ୍ୟାପ୍"
+
diff --git a/widget_viewer_dali/po/pa.po b/widget_viewer_dali/po/pa.po
new file mode 100755 (executable)
index 0000000..dde5618
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "ਲੋਡ ਹੋ ਰਿਹਾ ਹੈ..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "ਡੈਟਾ ਨੂੰ ਲੋਡ ਕਰਨ ਵਿੱਚ ਅਸਮਰੱਥ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ।"
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "ਵਿੱਜੇਟ ਡੈਟਾ ਲੋਡ ਕਰਨ ਲਈ ਇੱਥੇ ਟੈਪ ਕਰੋ"
+
diff --git a/widget_viewer_dali/po/pt_BR.po b/widget_viewer_dali/po/pt_BR.po
new file mode 100755 (executable)
index 0000000..f2fb3b5
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Carregando..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Não é possível carregar os dados. Toque para tentar novamente."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Tocar carreg. dados widget"
+
diff --git a/widget_viewer_dali/po/pt_PT.po b/widget_viewer_dali/po/pt_PT.po
new file mode 100755 (executable)
index 0000000..b953672
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "A carregar..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Impossível carregar dados. Toque para tentar novamente."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Toque p/ carregar dados widget"
+
diff --git a/widget_viewer_dali/po/ru_RU.po b/widget_viewer_dali/po/ru_RU.po
new file mode 100755 (executable)
index 0000000..e69de9b
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Загрузка..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Не удалось загрузить данные. Коснитесь для повтора"
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Нажм. для загрузки данных"
+
diff --git a/widget_viewer_dali/po/si.po b/widget_viewer_dali/po/si.po
new file mode 100755 (executable)
index 0000000..8a85b10
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "ප්‍රෙව්ශනය කරමින්..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "දත්ත ප්‍රවේශනය කිරීමට නොහැකිය. යළි උත්සාහ කිරීමට තට්ටු කරන්න"
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "විජෙ. දත්ත පූරණයට මෙතැන ත. ක."
+
diff --git a/widget_viewer_dali/po/su_ID.po b/widget_viewer_dali/po/su_ID.po
new file mode 100755 (executable)
index 0000000..623411e
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Ngamuat..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Teu tiasa ngamuat data. Ketok pikeun nyobi deui."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Ketok di dieu pikeun muka data widget"
+
diff --git a/widget_viewer_dali/po/ta.po b/widget_viewer_dali/po/ta.po
new file mode 100755 (executable)
index 0000000..2770de9
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "லோடிங்..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "தரவை ஏற்ற இயலவில்லை. மீண்டும் முயலவென டேப் செய்க."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "விட்ஜெட் தரவை ஏற்ற, டேப் செய்."
+
diff --git a/widget_viewer_dali/po/te.po b/widget_viewer_dali/po/te.po
new file mode 100755 (executable)
index 0000000..0998bb6
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "లోడ్ అవుతోంది..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "డేటాను లోడ్ చేయడం సాధ్యం కాదు. మళ్లీ ప్రయత్నించడానికి ట్యాప్ చేయండి."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "విడ్జెట్ డేటాను లోడ్ చేయడానికి ఇక్కడ ట్యాప్ చేయండి"
+
diff --git a/widget_viewer_dali/po/tg_TJ.po b/widget_viewer_dali/po/tg_TJ.po
new file mode 100755 (executable)
index 0000000..ff4285d
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Боркунӣ..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Unable to load data. Tap to retry."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Инҷо зарб з., итт.виҷ.бор к."
+
diff --git a/widget_viewer_dali/po/th.po b/widget_viewer_dali/po/th.po
new file mode 100755 (executable)
index 0000000..dc80e32
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "กำลังประมวลผล..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "ไม่สามารถโหลดข้อมูลได้ แตะเพื่อลองอีกครั้ง"
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "แตะที่นี่เพื่อโหลดข้อมูล Widget"
+
diff --git a/widget_viewer_dali/po/tk_TM.po b/widget_viewer_dali/po/tk_TM.po
new file mode 100755 (executable)
index 0000000..e9946e6
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Ýükleýär..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Unable to load data. Tap to retry."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Wijet magl ýükl üçn şuňa bas"
+
diff --git a/widget_viewer_dali/po/tl.po b/widget_viewer_dali/po/tl.po
new file mode 100755 (executable)
index 0000000..846ba71
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Naglo-load..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Hindi ma-load ang data. I-tap upang subukang muli."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "I-tap dito para i-load ang data ng widget"
+
diff --git a/widget_viewer_dali/po/tr_TR.po b/widget_viewer_dali/po/tr_TR.po
new file mode 100755 (executable)
index 0000000..eac167c
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Yükleniyor..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Veri yüklenemiyor. Tekrar denemek için dokunun."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Widget vrlrni yklmk içn dknn"
+
diff --git a/widget_viewer_dali/po/uk.po b/widget_viewer_dali/po/uk.po
new file mode 100755 (executable)
index 0000000..b4f1910
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Завантаження..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Неможливо завантажити дані. Натисніть, щоб спробувати ще раз"
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Торкн. для зав. дан. відж."
+
diff --git a/widget_viewer_dali/po/ur.po b/widget_viewer_dali/po/ur.po
new file mode 100755 (executable)
index 0000000..9b90a3c
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "لوڈنگ..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "ڈیٹا لوڈ کرنے سے قاصر۔ پھرکوشش کرنے کے لئے تھپتھپائیں۔"
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "ویجیٹ کا ڈیٹا لوڈ کرنے کے لیے یہاں تھپکی دیں"
+
diff --git a/widget_viewer_dali/po/uz.po b/widget_viewer_dali/po/uz.po
new file mode 100755 (executable)
index 0000000..4413533
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Yuklanmoqda..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Ma’lumotni yuklab bo‘lmaydi. Qayta urinib ko‘rish uchun cherting"
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Vidjet ma’l. yuklash u-n teg"
+
diff --git a/widget_viewer_dali/po/vi.po b/widget_viewer_dali/po/vi.po
new file mode 100755 (executable)
index 0000000..080962c
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Đang tải…"
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Không thể tải dữ liệu. Hãy chạm để thử lại."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Chạm để tải dữ liệu widget"
+
diff --git a/widget_viewer_dali/po/xh.po b/widget_viewer_dali/po/xh.po
new file mode 100755 (executable)
index 0000000..73194f4
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Kufakwa iinkcukacha..."
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Ayikwazi kulayisha ingcombolo. Thepa ukuze uzame kwakhona."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Betha apha ukongeza idatha ye-widget"
+
diff --git a/widget_viewer_dali/po/zh_CN.po b/widget_viewer_dali/po/zh_CN.po
new file mode 100755 (executable)
index 0000000..fe8d886
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "载入中…"
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "无法载入数据。轻敲以重试。"
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "点击此处以载入小组件数据"
+
diff --git a/widget_viewer_dali/po/zu.po b/widget_viewer_dali/po/zu.po
new file mode 100755 (executable)
index 0000000..9cbbc5c
--- /dev/null
@@ -0,0 +1,9 @@
+msgid "IDS_ST_POP_LOADING_ING"
+msgstr "Iyalayisha…"
+
+msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"
+msgstr "Ayikwazi ukulayisha idatha. Thepha ukuze uzame futhi."
+
+msgid "IDS_HS_NPBODY_TAP_HERE_TO_LOAD_WIDGET_DATA_ABB"
+msgstr "Thepha lapha ukuze ulayishe ulwazi lwewijethi"
+
diff --git a/widget_viewer_dali/public_api/widget_view/widget_view.cpp b/widget_viewer_dali/public_api/widget_view/widget_view.cpp
new file mode 100644 (file)
index 0000000..064b7cd
--- /dev/null
@@ -0,0 +1,125 @@
+/*
+ * Samsung API
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Flora License, Version 1.1 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://floralicense.org/license/
+ *
+ * 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 <widget_viewer_dali/public_api/widget_view/widget_view.h>
+
+// INTERNAL INCLUDES
+#include <widget_viewer_dali/internal/widget_view/widget_view_impl.h>
+
+namespace Dali
+{
+
+namespace WidgetView
+{
+
+WidgetView WidgetView::New( const std::string& widgetId, const std::string& contentInfo, int width, int height, float updatePeriod )
+{
+  return Internal::WidgetView::New( widgetId, contentInfo, width, height, updatePeriod );
+}
+
+WidgetView WidgetView::DownCast( BaseHandle handle )
+{
+  return Toolkit::Control::DownCast<WidgetView, Internal::WidgetView>( handle );
+}
+
+WidgetView::WidgetView()
+{
+}
+
+WidgetView::WidgetView( const WidgetView& handle )
+: Toolkit::Control( handle )
+{
+}
+
+WidgetView& WidgetView::operator=( const WidgetView& handle )
+{
+  if( &handle != this )
+  {
+    Control::operator=( handle );
+  }
+  return *this;
+}
+
+WidgetView::~WidgetView()
+{
+}
+
+bool WidgetView::PauseWidget()
+{
+  return Dali::WidgetView::GetImplementation( *this ).PauseWidget();
+}
+
+bool WidgetView::ResumeWidget()
+{
+  return Dali::WidgetView::GetImplementation( *this ).ResumeWidget();
+}
+
+bool WidgetView::CancelTouchEvent()
+{
+  return Dali::WidgetView::GetImplementation( *this ).CancelTouchEvent();
+}
+
+void WidgetView::ActivateFaultedWidget()
+{
+  return Dali::WidgetView::GetImplementation( *this ).ActivateFaultedWidget();
+}
+
+WidgetView::WidgetViewSignalType& WidgetView::WidgetAddedSignal()
+{
+  return Dali::WidgetView::GetImplementation(*this).WidgetAddedSignal();
+}
+
+WidgetView::WidgetViewSignalType& WidgetView::WidgetDeletedSignal()
+{
+  return Dali::WidgetView::GetImplementation(*this).WidgetDeletedSignal();
+}
+
+WidgetView::WidgetViewSignalType& WidgetView::WidgetCreationAbortedSignal()
+{
+  return Dali::WidgetView::GetImplementation(*this).WidgetCreationAbortedSignal();
+}
+
+WidgetView::WidgetViewSignalType& WidgetView::WidgetContentUpdatedSignal()
+{
+  return Dali::WidgetView::GetImplementation(*this).WidgetContentUpdatedSignal();
+}
+
+WidgetView::WidgetViewSignalType& WidgetView::WidgetUpdatePeriodChangedSignal()
+{
+  return Dali::WidgetView::GetImplementation(*this).WidgetUpdatePeriodChangedSignal();
+}
+
+WidgetView::WidgetViewSignalType& WidgetView::WidgetFaultedSignal()
+{
+  return Dali::WidgetView::GetImplementation(*this).WidgetFaultedSignal();
+}
+
+WidgetView::WidgetView( Internal::WidgetView& implementation )
+: Control( implementation )
+{
+}
+
+WidgetView::WidgetView( Dali::Internal::CustomActor* internal )
+: Control( internal )
+{
+  VerifyCustomActorPointer<Internal::WidgetView>( internal );
+}
+
+} // namespace WidgetView
+
+} // namespace Dali
diff --git a/widget_viewer_dali/public_api/widget_view/widget_view.h b/widget_viewer_dali/public_api/widget_view/widget_view.h
new file mode 100644 (file)
index 0000000..2ac21f3
--- /dev/null
@@ -0,0 +1,338 @@
+#ifndef __DALI_WIDGET_VIEW_WIDGET_VIEW_H__
+#define __DALI_WIDGET_VIEW_WIDGET_VIEW_H__
+
+/*
+ * Samsung API
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Flora License, Version 1.1 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://floralicense.org/license/
+ *
+ * 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-toolkit/public-api/controls/control.h>
+
+namespace Dali
+{
+
+namespace WidgetView
+{
+
+namespace Internal DALI_INTERNAL
+{
+class WidgetView;
+}
+
+/**
+ * @addtogroup dali_widget_view
+ * @{
+ */
+
+/**
+ * @brief WidgetView is a class for displaying the widget image and controlling the widget.
+ * Input events that WidgetView gets are delivered to the widget.
+ *
+ * Signals
+ * | %Signal Name                | Method                                 |
+ * |-----------------------------|----------------------------------------|
+ * | widgetAdded                 | @ref WidgetAddedSignal()               |
+ * | widgetDeleted               | @ref WidgetDeletedSignal()             |
+ * | widgetCreationAborted       | @ref WidgetCreationAbortedSignal()     |
+ * | widgetContentUpdated        | @ref WidgetContentUpdatedSignal()      |
+ * | widgetUpdatePeriodChanged   | @ref WidgetUpdatePeriodChangedSignal() |
+ * | widgetFaulted               | @ref WidgetFaultedSignal()             |
+ *
+ * @since_tizen 3.0
+ */
+class DALI_IMPORT_API WidgetView : public Toolkit::Control
+{
+public:
+
+  /**
+   * @brief The start and end property ranges for this control.
+   * @SINCE_1_0.0
+   */
+  enum PropertyRange
+  {
+    PROPERTY_START_INDEX = Control::CONTROL_PROPERTY_END_INDEX + 1,  ///< @SINCE_1_0.0
+    PROPERTY_END_INDEX =   PROPERTY_START_INDEX + 1000,              ///< Reserve property indices @SINCE_1_0.0
+  };
+
+  /**
+   * @brief An enumeration of properties belonging to the WidgetView class.
+   * @privlevel public
+   * @privilege %http://tizen.org/privilege/widget.viewer
+   * @SINCE_1_0.0
+   */
+  struct Property
+  {
+    /**
+     * @brief An enumeration of properties belonging to the WidgetView class.
+     * @privlevel public
+     * @privilege %http://tizen.org/privilege/widget.viewer
+     * @SINCE_1_0.0
+     */
+    enum
+    {
+      // Event side properties
+
+      /**
+       * @brief name "widgetId", Get the id of the widget, type string, read-only
+       * @SINCE_1_0.0
+       */
+      WIDGET_ID = PROPERTY_START_INDEX,
+
+      /**
+       * @brief name "instanceId", type string, read-only
+       * @SINCE_1_0.0
+       */
+      INSTANCE_ID,
+
+      /**
+       * @brief name "contentInfo", type string, read-only
+       * @SINCE_1_0.0
+       */
+      CONTENT_INFO,
+
+      /**
+       * @brief name "title", type string, read-only
+       * @SINCE_1_0.0
+       */
+      TITLE,
+
+      /**
+       * @brief name "updatePeriod", type float, read-only
+       * @SINCE_1_0.0
+       */
+      UPDATE_PERIOD,
+
+      /**
+       * @brief name "preview", type boolean if it is a show/hide flag, map otherwise
+       * @SINCE_1_0.0
+       */
+      PREVIEW,
+
+      /**
+       * @brief name "loadingText", type boolean if it is a show/hide flag, map otherwise
+       * @SINCE_1_0.0
+       */
+      LOADING_TEXT,
+
+      /**
+       * @brief name "widgetStateFaulted", type boolean
+       * @SINCE_1_0.0
+       */
+      WIDGET_STATE_FAULTED,
+
+      /**
+       * @brief name "permanentDelete", type boolean
+       * @SINCE_1_0.0
+       */
+      PERMANENT_DELETE,
+
+    };
+  };
+
+
+  /**
+   * @brief Create widget view.
+   *
+   * @since_tizen 3.0
+   * @privlevel public
+   * @privilege %http://tizen.org/privilege/widget.viewer
+   * @param[in] widgetId The widget id.
+   * @param[in] contentInfo Contents that will be given to the widget instance.
+   * @param[in] width The widget width.
+   * @param[in] height The widget height.
+   * @param[in] updatePeriod The period of updating contents of the widget.
+   * @return A handle to WidgetView.
+   */
+  static WidgetView New( const std::string& widgetId, const std::string& contentInfo, int width, int height, float updatePeriod );
+
+  /**
+   * @brief Downcast a handle to WidgetView handle.
+   *
+   * If the BaseHandle points is a WidgetView the downcast returns a valid handle.
+   * If not the returned handle is left empty.
+   *
+   * @since_tizen 3.0
+   * @param[in] handle Handle to an object
+   * @return handle to a WidgetView or an empty handle
+   */
+  static WidgetView DownCast( BaseHandle handle );
+
+  /**
+   * @brief Creates an empty handle.
+   * @since_tizen 3.0
+   */
+  WidgetView();
+
+  /**
+   * @brief Copy constructor.
+   *
+   * @since_tizen 3.0
+   * @param[in] handle The handle to copy from.
+   */
+  WidgetView( const WidgetView& handle );
+
+  /**
+   * @brief Assignment operator.
+   *
+   * @since_tizen 3.0
+   * @param[in] handle The handle to copy from.
+   * @return A reference to this.
+   */
+  WidgetView& operator=( const WidgetView& handle );
+
+  /**
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
+   * @since_tizen 3.0
+   */
+  ~WidgetView();
+
+  /**
+   * @brief Pauses a given widget.
+   *
+   * @since_tizen 3.0
+   * @privlevel public
+   * @privilege %http://tizen.org/privilege/widget.viewer
+   * @return true on success, false otherwise.
+   */
+  bool PauseWidget();
+
+  /**
+   * @brief Resume a given widget.
+   *
+   * @since_tizen 3.0
+   * @privlevel public
+   * @privilege %http://tizen.org/privilege/widget.viewer
+   * @return true on success, false otherwise.
+   */
+  bool ResumeWidget();
+
+  /**
+   * @brief Cancels touch event procedure.
+   * If you call this function after feed the touch down event, the widget will get ON_HOLD events.
+   * If a widget gets ON_HOLD event, it will not do anything even if you feed touch up event.
+   *
+   * @since_tizen 3.0
+   * @privlevel public
+   * @privilege %http://tizen.org/privilege/widget.viewer
+   * @return true on success, false otherwise.
+   */
+  bool CancelTouchEvent();
+
+  /**
+   * @brief Activate a widget in faulted state.
+   * A widget in faulted state MUST be activated before adding the widget.
+   *
+   * @since_tizen 3.0
+   * @privlevel public
+   * @privilege %http://tizen.org/privilege/widget.viewer
+   */
+  void ActivateFaultedWidget();
+
+public: //Signals
+
+  typedef Signal< void ( WidgetView ) > WidgetViewSignalType;   ///< WidgetView signal type @since_tizen 3.0
+
+  /**
+   * @brief This signal is emitted when the widget is added.
+   *
+   * @since_tizen 3.0
+   * @privlevel public
+   * @privilege %http://tizen.org/privilege/widget.viewer
+   * @return The signal to connect to.
+   */
+  WidgetViewSignalType& WidgetAddedSignal();
+
+  /**
+   * @brief This signal is emitted when the widget is deleted.
+   *
+   * @since_tizen 3.0
+   * @privlevel public
+   * @privilege %http://tizen.org/privilege/widget.viewer
+   * @return The signal to connect to.
+   */
+  WidgetViewSignalType& WidgetDeletedSignal();
+
+  /**
+   * @brief This signal is emitted when the widget creation is aborted.
+   *
+   * @since_tizen 3.0
+   * @privlevel public
+   * @privilege %http://tizen.org/privilege/widget.viewer
+   * @return The signal to connect to.
+   */
+  WidgetViewSignalType& WidgetCreationAbortedSignal();
+
+  /**
+   * @brief This signal is emitted when the widget content is updated.
+   *
+   * @since_tizen 3.0
+   * @privlevel public
+   * @privilege %http://tizen.org/privilege/widget.viewer
+   * @return The signal to connect to.
+   */
+  WidgetViewSignalType& WidgetContentUpdatedSignal();
+
+  /**
+   * @brief This signal is emitted when the widget update period is changed.
+   *
+   * @since_tizen 3.0
+   * @privlevel public
+   * @privilege %http://tizen.org/privilege/widget.viewer
+   * @return The signal to connect to.
+   */
+  WidgetViewSignalType& WidgetUpdatePeriodChangedSignal();
+
+  /**
+   * @brief This signal is emitted when the widget process is not running.
+   *
+   * @since_tizen 3.0
+   * @privlevel public
+   * @privilege %http://tizen.org/privilege/widget.viewer
+   * @return The signal to connect to.
+   */
+  WidgetViewSignalType& WidgetFaultedSignal();
+
+public: // Not intended for application developers
+
+  /**
+   * @internal
+   * @brief Creates a handle using the WidgetView::Internal implementation.
+   *
+   * @since_tizen 3.0
+   * @param[in] implementation The WidgetView implementation.
+   */
+  DALI_INTERNAL WidgetView( Internal::WidgetView& implementation );
+
+  /**
+   * @internal
+   * @brief Allows the creation of this control from an Internal::CustomActor pointer.
+   *
+   * @since_tizen 3.0
+   * @param[in] internal A pointer to the internal CustomActor.
+   */
+  DALI_INTERNAL WidgetView( Dali::Internal::CustomActor* internal );
+};
+
+/**
+ * @}
+ */
+} // namespace WidgetView
+
+} // namespace Dali
+
+#endif // __DALI_WIDGET_VIEW_WIDGET_VIEW_H__
diff --git a/widget_viewer_dali/public_api/widget_view_manager/widget_view_manager.cpp b/widget_viewer_dali/public_api/widget_view_manager/widget_view_manager.cpp
new file mode 100644 (file)
index 0000000..26ed61e
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+ * Samsung API
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Flora License, Version 1.1 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://floralicense.org/license/
+ *
+ * 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 <widget_viewer_dali/public_api/widget_view_manager/widget_view_manager.h>
+
+// EXTERNAL INCLUDES
+
+// INTERNAL INCLUDES
+#include <widget_viewer_dali/internal/widget_view_manager/widget_view_manager_impl.h>
+
+namespace Dali
+{
+
+namespace WidgetView
+{
+
+WidgetViewManager WidgetViewManager::New( Application application, const std::string& appId )
+{
+  Internal::WidgetViewManagerPtr internal = Internal::WidgetViewManager::New( application, appId );
+
+  return WidgetViewManager( internal.Get() );
+}
+
+WidgetViewManager WidgetViewManager::DownCast( BaseHandle handle )
+{
+  return WidgetViewManager( dynamic_cast< Internal::WidgetViewManager* >( handle.GetObjectPtr() ) );
+}
+
+WidgetViewManager::WidgetViewManager()
+{
+}
+
+WidgetViewManager::WidgetViewManager( const WidgetViewManager& handle )
+: BaseHandle(handle)
+{
+}
+
+WidgetViewManager& WidgetViewManager::operator=( const WidgetViewManager& handle )
+{
+  BaseHandle::operator=(handle);
+  return *this;
+}
+
+WidgetViewManager::~WidgetViewManager()
+{
+}
+
+WidgetViewManager::WidgetViewManager( Internal::WidgetViewManager* implementation )
+: BaseHandle( implementation )
+{
+}
+
+WidgetView WidgetViewManager::AddWidget( const std::string& widgetId, const std::string& contentInfo, int width, int height, float updatePeriod )
+{
+  return GetImplementation(*this).AddWidget( widgetId, contentInfo, width, height, updatePeriod );
+}
+
+} // namespace WidgetView
+
+} // namespace Dali
diff --git a/widget_viewer_dali/public_api/widget_view_manager/widget_view_manager.h b/widget_viewer_dali/public_api/widget_view_manager/widget_view_manager.h
new file mode 100644 (file)
index 0000000..c00ac94
--- /dev/null
@@ -0,0 +1,146 @@
+#ifndef __DALI_WIDGET_VIEW_WIDGET_VIEW_MANAGER_H__
+#define __DALI_WIDGET_VIEW_WIDGET_VIEW_MANAGER_H__
+
+/*
+ * Samsung API
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Flora License, Version 1.1 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://floralicense.org/license/
+ *
+ * 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>
+#include <dali/public-api/adaptor-framework/application.h>
+
+namespace Dali
+{
+
+namespace WidgetView
+{
+
+class WidgetView;
+
+namespace Internal DALI_INTERNAL
+{
+class WidgetViewManager;
+}
+
+/**
+ * @addtogroup dali_widget_view
+ * @{
+ */
+
+/**
+ * @brief WidgetViewManager manages addition of WidgetView controls.
+ *
+ * This class provides the functionality of adding the widget views and controlling the widgets.
+ *
+ * @since_tizen 3.0
+ */
+class DALI_IMPORT_API WidgetViewManager : public BaseHandle
+{
+public:
+
+  /**
+   * @brief Create widget view manager.
+   *
+   * @since_tizen 3.0
+   * @privlevel public
+   * @privilege %http://tizen.org/privilege/widget.viewer
+   * @param[in] application Application class for the widget view manager.
+   * @param[in] appId App ID of app with widget viewer dali.
+   * @return A handle to WidgetViewManager.
+   */
+  static WidgetViewManager New( Application application, const std::string& appId );
+
+  /**
+   * @brief Downcast a handle to WidgetViewManager handle.
+   *
+   * If the BaseHandle points is a WidgetViewManager the downcast returns a valid handle.
+   * If not the returned handle is left empty.
+   *
+   * @since_tizen 3.0
+   * @param[in] handle Handle to an object
+   * @return handle to a WidgetViewManager or an empty handle
+   */
+  static WidgetViewManager DownCast( BaseHandle handle );
+
+  /**
+   * @brief Creates an WidgetViewManager handle.
+   *
+   * Calling member functions with an uninitialised handle is not allowed.
+   * @since_tizen 3.0
+   */
+  WidgetViewManager();
+
+  /**
+   * @brief Copy constructor.
+   *
+   * @since_tizen 3.0
+   * @param[in] handle The handle to copy from.
+   */
+  WidgetViewManager( const WidgetViewManager& handle );
+
+  /**
+   * @brief Assignment operator.
+   *
+   * @since_tizen 3.0
+   * @param[in] handle The handle to copy from.
+   * @return A reference to this.
+   */
+  WidgetViewManager& operator=( const WidgetViewManager& handle );
+
+  /**
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
+   * @since_tizen 3.0
+   */
+  ~WidgetViewManager();
+
+  /**
+   * @brief Creates a new widget view object
+   *
+   * @since_tizen 3.0
+   * @privlevel public
+   * @privilege %http://tizen.org/privilege/widget.viewer
+   * @param[in] widgetId The widget id.
+   * @param[in] contentInfo Contents that will be given to the widget instance.
+   * @param[in] width The widget width.
+   * @param[in] height The widget height.
+   * @param[in] updatePeriod The period of updating contents of the widget.
+   * @return A handle to WidgetView.
+   */
+  WidgetView AddWidget( const std::string& widgetId, const std::string& contentInfo, int width, int height, float updatePeriod );
+
+public: // Not intended for application developers
+
+  /**
+   * @internal
+   * @brief Creates a handle using the WidgetView::Internal implementation.
+   *
+   * @since_tizen 3.0
+   * @param[in] implementation The WidgetViewManager implementation.
+   */
+  explicit DALI_INTERNAL WidgetViewManager( Internal::WidgetViewManager* implementation );
+};
+
+/**
+ * @}
+ */
+
+} // namespace WidgetView
+
+} // namespace Dali
+
+#endif // __DALI_WIDGET_VIEW_WIDGET_VIEW_MANAGER_H__
diff --git a/widget_viewer_dali/public_api/widget_viewer_dali.h b/widget_viewer_dali/public_api/widget_viewer_dali.h
new file mode 100644 (file)
index 0000000..858784b
--- /dev/null
@@ -0,0 +1,24 @@
+#ifndef __WIDGET_VIEWER_DALI_H__
+#define __WIDGET_VIEWER_DALI_H__
+
+/*
+ * Samsung API
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Flora License, Version 1.1 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://floralicense.org/license/
+ *
+ * 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.
+ */
+
+#include <widget_viewer_dali/public_api/widget_view/widget_view.h>
+#include <widget_viewer_dali/public_api/widget_view_manager/widget_view_manager.h>
+
+#endif  // __WIDGET_VIEWER_DALI_H__