CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
ADD_SUBDIRECTORY(widget_viewer)
-ADD_SUBDIRECTORY(widget_viewer_dali)
ADD_SUBDIRECTORY(widget_viewer_evas)
ADD_SUBDIRECTORY(widget_viewer_sdk)
ADD_SUBDIRECTORY(watch-control)
License: Flora-1.1
Source0: %{name}-%{version}.tar.gz
Source1001: %{name}_evas.manifest
-Source1002: %{name}_dali.manifest
Source1003: org.tizen.widget_viewer_sdk.manifest
Source1004: watch-control.manifest
BuildRequires: cmake, gettext-tools, coreutils, edje-bin
BuildRequires: pkgconfig(wayland-client)
BuildRequires: pkgconfig(libtbm)
BuildRequires: pkgconfig(libtzplatform-config)
-BuildRequires: pkgconfig(dali-core)
-BuildRequires: pkgconfig(dali-adaptor)
-BuildRequires: pkgconfig(dali-toolkit)
BuildRequires: pkgconfig(cynara-client)
BuildRequires: pkgconfig(appsvc)
BuildRequires: pkgconfig(ecore-wayland)
%prep
%setup -q
cp %{SOURCE1001} .
-cp %{SOURCE1002} .
cp %{SOURCE1003} .
cp %{SOURCE1004} .
%post -n %{name}_evas -p /sbin/ldconfig
%postun -n %{name}_evas -p /sbin/ldconfig
-#################################################
-# libwidget_viewer_dali
-%package -n %{name}_dali
-Summary: Library for developing the widget viewer DALi
-Group: Applications/Core Applications
-License: Flora-1.1
-
-%description -n %{name}_dali
-Provider APIs to develop the widget viewer DALi application.
-
-%package -n %{name}_dali-devel
-Summary: Widget provider application development library (dev) (DALi version)
-Group: Development/Libraries
-Requires: %{name}_dali
-
-%description -n %{name}_dali-devel
-Header & package configuration files to support development of the widget viewer applications. (for DALi app)
-
-%post -n %{name}_dali -p /sbin/ldconfig
-%postun -n %{name}_dali -p /sbin/ldconfig
-
#################################################
# org.tizen.widget_viewer_sdk
%package -n org.tizen.widget_viewer_sdk
%{_libdir}/pkgconfig/widget_viewer_evas.pc
%attr(0644,root,root) %{_libdir}/%{name}_evas.so
-%files -n %{name}_dali
-%manifest %{name}_dali.manifest
-%attr(0644,root,root) %{_libdir}/%{name}_dali.so.*
-%license LICENSE
-/usr/share/widget_viewer_dali/images/*.png
-/usr/share/widget_viewer_dali/locale/*/LC_MESSAGES/*
-
-%files -n %{name}_dali-devel
-%{_includedir}/widget_viewer_dali/widget_viewer_dali.h
-%{_includedir}/widget_viewer_dali/public_api/*
-%{_libdir}/pkgconfig/widget_viewer_dali.pc
-%attr(0644,root,root) %{_libdir}/%{name}_dali.so
-
%files -n org.tizen.widget_viewer_sdk
%manifest org.tizen.widget_viewer_sdk.manifest
%{_datarootdir}/packages/org.tizen.widget_viewer_sdk.xml
+++ /dev/null
-<manifest>
- <request>
- <domain name="_" />
- </request>
-</manifest>
+++ /dev/null
-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)
+++ /dev/null
-Flora License
-
-Version 1.1, April, 2013
-
-http://floralicense.org/license/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-"License" shall mean the terms and conditions for use, reproduction,
-and distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by
-the copyright owner that is granting the License.
-
-"Legal Entity" shall mean the union of the acting entity and
-all other entities that control, are controlled by, or are
-under common control with that entity. For the purposes of
-this definition, "control" means (i) the power, direct or indirect,
-to cause the direction or management of such entity,
-whether by contract or otherwise, or (ii) ownership of fifty percent (50%)
-or more of the outstanding shares, or (iii) beneficial ownership of
-such entity.
-
-"You" (or "Your") shall mean an individual or Legal Entity
-exercising permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications,
-including but not limited to software source code, documentation source,
-and configuration files.
-
-"Object" form shall mean any form resulting from mechanical
-transformation or translation of a Source form, including but
-not limited to compiled object code, generated documentation,
-and conversions to other media types.
-
-"Work" shall mean the work of authorship, whether in Source or Object form,
-made available under the License, as indicated by a copyright notice
-that is included in or attached to the work (an example is provided
-in the Appendix below).
-
-"Derivative Works" shall mean any work, whether in Source or Object form,
-that is based on (or derived from) the Work and for which the editorial
-revisions, annotations, elaborations, or other modifications represent,
-as a whole, an original work of authorship. For the purposes of this License,
-Derivative Works shall not include works that remain separable from,
-or merely link (or bind by name) to the interfaces of, the Work and
-Derivative Works thereof.
-
-"Contribution" shall mean any work of authorship, including the original
-version of the Work and any modifications or additions to that Work or
-Derivative Works thereof, that is intentionally submitted to Licensor
-for inclusion in the Work by the copyright owner or by an individual or
-Legal Entity authorized to submit on behalf of the copyright owner.
-For the purposes of this definition, "submitted" means any form of
-electronic, verbal, or written communication sent to the Licensor or
-its representatives, including but not limited to communication on
-electronic mailing lists, source code control systems, and issue
-tracking systems that are managed by, or on behalf of, the Licensor
-for the purpose of discussing and improving the Work, but excluding
-communication that is conspicuously marked or otherwise designated
-in writing by the copyright owner as "Not a Contribution."
-
-"Contributor" shall mean Licensor and any individual or Legal Entity
-on behalf of whom a Contribution has been received by Licensor and
-subsequently incorporated within the Work.
-
-"Tizen Certified Platform" shall mean a software platform that complies
-with the standards set forth in the Tizen Compliance Specification
-and passes the Tizen Compliance Tests as defined from time to time
-by the Tizen Technical Steering Group and certified by the Tizen
-Association or its designated agent.
-
-2. Grant of Copyright License. Subject to the terms and conditions of
-this License, each Contributor hereby grants to You a perpetual,
-worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-copyright license to reproduce, prepare Derivative Works of,
-publicly display, publicly perform, sublicense, and distribute the
-Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of
-this License, each Contributor hereby grants to You a perpetual,
-worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-(except as stated in this section) patent license to make, have made,
-use, offer to sell, sell, import, and otherwise transfer the Work
-solely as incorporated into a Tizen Certified Platform, where such
-license applies only to those patent claims licensable by such
-Contributor that are necessarily infringed by their Contribution(s)
-alone or by combination of their Contribution(s) with the Work solely
-as incorporated into a Tizen Certified Platform to which such
-Contribution(s) was submitted. If You institute patent litigation
-against any entity (including a cross-claim or counterclaim
-in a lawsuit) alleging that the Work or a Contribution incorporated
-within the Work constitutes direct or contributory patent infringement,
-then any patent licenses granted to You under this License for that
-Work shall terminate as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the
-Work or Derivative Works thereof pursuant to the copyright license
-above, in any medium, with or without modifications, and in Source or
-Object form, provided that You meet the following conditions:
-
- 1. You must give any other recipients of the Work or Derivative Works
- a copy of this License; and
- 2. You must cause any modified files to carry prominent notices stating
- that You changed the files; and
- 3. You must retain, in the Source form of any Derivative Works that
- You distribute, all copyright, patent, trademark, and attribution
- notices from the Source form of the Work, excluding those notices
- that do not pertain to any part of the Derivative Works; and
- 4. If the Work includes a "NOTICE" text file as part of its distribution,
- then any Derivative Works that You distribute must include a readable
- copy of the attribution notices contained within such NOTICE file,
- excluding those notices that do not pertain to any part of
- the Derivative Works, in at least one of the following places:
- within a NOTICE text file distributed as part of the Derivative Works;
- within the Source form or documentation, if provided along with the
- Derivative Works; or, within a display generated by the Derivative Works,
- if and wherever such third-party notices normally appear.
- The contents of the NOTICE file are for informational purposes only
- and do not modify the License. You may add Your own attribution notices
- within Derivative Works that You distribute, alongside or as an addendum
- to the NOTICE text from the Work, provided that such additional attribution
- notices cannot be construed as modifying the License. You may add Your own
- copyright statement to Your modifications and may provide additional or
- different license terms and conditions for use, reproduction, or
- distribution of Your modifications, or for any such Derivative Works
- as a whole, provided Your use, reproduction, and distribution of
- the Work otherwise complies with the conditions stated in this License
- and your own copyright statement or terms and conditions do not conflict
- the conditions stated in the License including section 3.
-
-5. Submission of Contributions. Unless You explicitly state otherwise,
-any Contribution intentionally submitted for inclusion in the Work
-by You to the Licensor shall be under the terms and conditions of
-this License, without any additional terms or conditions.
-Notwithstanding the above, nothing herein shall supersede or modify
-the terms of any separate license agreement you may have executed
-with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade
-names, trademarks, service marks, or product names of the Licensor,
-except as required for reasonable and customary use in describing the
-origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or
-agreed to in writing, Licensor provides the Work (and each
-Contributor provides its Contributions) on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-implied, including, without limitation, any warranties or conditions
-of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-PARTICULAR PURPOSE. You are solely responsible for determining the
-appropriateness of using or redistributing the Work and assume any
-risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory,
-whether in tort (including negligence), contract, or otherwise,
-unless required by applicable law (such as deliberate and grossly
-negligent acts) or agreed to in writing, shall any Contributor be
-liable to You for damages, including any direct, indirect, special,
-incidental, or consequential damages of any character arising as a
-result of this License or out of the use or inability to use the
-Work (including but not limited to damages for loss of goodwill,
-work stoppage, computer failure or malfunction, or any and all
-other commercial damages or losses), even if such Contributor
-has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing
-the Work or Derivative Works thereof, You may choose to offer,
-and charge a fee for, acceptance of support, warranty, indemnity,
-or other liability obligations and/or rights consistent with this
-License. However, in accepting such obligations, You may act only
-on Your own behalf and on Your sole responsibility, not on behalf
-of any other Contributor, and only if You agree to indemnify,
-defend, and hold each Contributor harmless for any liability
-incurred by, or claims asserted against, such Contributor by reason
-of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
-APPENDIX: How to apply the Flora License to your work
-
-To apply the Flora License to your work, attach the following
-boilerplate notice, with the fields enclosed by brackets "[]"
-replaced with your own identifying information. (Don't include
-the brackets!) The text should be enclosed in the appropriate
-comment syntax for the file format. We also recommend that a
-file or class name and description of purpose be included on the
-same "printed page" as the copyright notice for easier
-identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- 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.
-
+++ /dev/null
-/*
- * Copyright 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.
- */
-
-/**
- * @defgroup dali_widget_view Widget Viewer Dali
- * @ingroup CAPI_WIDGET_FRAMEWORK
- * @brief API for widget viewer (widget screen, home screen, ...)
- * @section dali_widget_view_HEADER Required Header
- * \#include <widget_viewer_dali.h>
- * @section dali_widget_view_OVERVIEW Overview
- * Widget Viewer Dali supports development of a widget viewer application by DALi.
- * Widget Viewer Dali can be used as DALi controls in a DALi application for widget viewer.
- *
- */
+++ /dev/null
-/*
- * 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
+++ /dev/null
-#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__
+++ /dev/null
-/*
- * 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
+++ /dev/null
-#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__
+++ /dev/null
-# 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})
+++ /dev/null
-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 "انقر هنا لتحميل بيانات التطبيق المصغر"
-
+++ /dev/null
-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 "ৱিজেট ডাটা লোড কৰিবলৈ ইয়াত টিপক"
-
+++ /dev/null
-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"
-
+++ /dev/null
-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 "Націс.тут для загр.дан.відж."
-
+++ /dev/null
-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 "উইজেট তথ্য লোড করতে এখানে ট্যাপ করুন"
-
+++ /dev/null
-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 "উইজেটের তথ্য লোড করতে এখানে ট্যাপ করুন"
-
+++ /dev/null
-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."
-
+++ /dev/null
-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"
-
+++ /dev/null
-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"
-
+++ /dev/null
-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"
-
+++ /dev/null
-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"
-
+++ /dev/null
-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"
-
+++ /dev/null
-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 "برای بارگیری داده ویجت ضربه بزنید"
-
+++ /dev/null
-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"
-
+++ /dev/null
-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 "વિજેટ ડેટા લોડ કરવા માટે અહીં ટેપ કરો"
-
+++ /dev/null
-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 "विजेट डाटा लोड करने हेतु यहां टैप करें"
-
+++ /dev/null
-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 "Թակ այստեղ՝ պտկրգրի տվ. բեռ."
-
+++ /dev/null
-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"
-
+++ /dev/null
-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"
-
+++ /dev/null
-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"
-
+++ /dev/null
-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 "შეეხეთ აქ, ვიჯეტის მონაცემ."
-
+++ /dev/null
-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 "Виджет дер. жүк-у үшін түрту"
-
+++ /dev/null
-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 "ប៉ះទីនេះ ដើម្បីផ្ទុកទិន្នន័យវីដជីត"
-
+++ /dev/null
-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 "ವಿಜೆಟ್ ಡೇಟಾ ಲೋಡ್ಗೆ ಇಲ್ಲಿ ತಟ್ಟಿ"
-
+++ /dev/null
-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 "위젯 데이터를 불러오려면 여기를 누르세요"
-
+++ /dev/null
-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 "Видж. маал. жүкт. муну бас"
-
+++ /dev/null
-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 "ແຕະທີ່ນີ້ເພື່ອໂຫຼດຂໍ້ມູນວິດເຈັດ"
-
+++ /dev/null
-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 "വിജറ്റ് ഡാറ്റ ലോഡ് ചെയ്യാൻ ഇവിടെ സ്പർശിക്കുക"
-
+++ /dev/null
-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 "Тоног. өгөг. ачаал. энд товш"
-
+++ /dev/null
-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 "विजेट डेटा लोड करण्यास येथे टॅप करा"
-
+++ /dev/null
-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"
-
+++ /dev/null
-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 "ဝဒ္ဂ်က္ေဒတာကုိ ရယူရန္ ဤေနရာကုိ ႏွိပ္ပါ"
-
+++ /dev/null
-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 "विजेट डाटा लोड गर्न यहाँ ट्याप गर्नु"
-
+++ /dev/null
-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 "ୱିଜେ. ଡାଟା ଲୋଡ୍ କରି. ଏଠା. ଟ୍ୟାପ୍"
-
+++ /dev/null
-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 "ਵਿੱਜੇਟ ਡੈਟਾ ਲੋਡ ਕਰਨ ਲਈ ਇੱਥੇ ਟੈਪ ਕਰੋ"
-
+++ /dev/null
-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"
-
+++ /dev/null
-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"
-
+++ /dev/null
-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 "Нажм. для загрузки данных"
-
+++ /dev/null
-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 "විජෙ. දත්ත පූරණයට මෙතැන ත. ක."
-
+++ /dev/null
-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"
-
+++ /dev/null
-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 "விட்ஜெட் தரவை ஏற்ற, டேப் செய்."
-
+++ /dev/null
-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 "విడ్జెట్ డేటాను లోడ్ చేయడానికి ఇక్కడ ట్యాప్ చేయండి"
-
+++ /dev/null
-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 "Инҷо зарб з., итт.виҷ.бор к."
-
+++ /dev/null
-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"
-
+++ /dev/null
-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"
-
+++ /dev/null
-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"
-
+++ /dev/null
-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"
-
+++ /dev/null
-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 "Торкн. для зав. дан. відж."
-
+++ /dev/null
-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 "ویجیٹ کا ڈیٹا لوڈ کرنے کے لیے یہاں تھپکی دیں"
-
+++ /dev/null
-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"
-
+++ /dev/null
-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"
-
+++ /dev/null
-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"
-
+++ /dev/null
-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 "点击此处以载入小组件数据"
-
+++ /dev/null
-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"
-
+++ /dev/null
-/*
- * 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
+++ /dev/null
-#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__
+++ /dev/null
-/*
- * 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
+++ /dev/null
-#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__
+++ /dev/null
-#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__
+++ /dev/null
-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}