From d940e900bc3832bc9408a0947ff488ecfcc9a8e6 Mon Sep 17 00:00:00 2001 From: Kim Kibum Date: Mon, 9 Apr 2012 12:12:28 +0900 Subject: [PATCH] Tizen release 1.0 --- CMakeLists.txt | 43 + COPYRIGHT | 27 + NOTICE | 1 + debian/changelog | 519 ++++++++++ debian/compat | 1 + debian/control | 19 + debian/copyright | 0 debian/dirs | 2 + debian/docs | 1 + debian/libug-setting-theme-efl.install.in | 5 + debian/libug-setting-theme-efl.postinst | 56 ++ debian/rules | 127 +++ packaging/libug-setting-theme-efl.spec | 101 ++ po/CMakeLists.txt | 24 + po/POTFILES.in | 2 + po/de.po | 16 + po/el.po | 17 + po/en_GB.po | 39 + po/en_US.po | 14 + po/es.po | 15 + po/fr.po | 15 + po/it.po | 15 + po/ja.po | 15 + po/ko.po | 16 + po/nl.po | 15 + po/pt.po | 15 + po/ru.po | 15 + po/tr_TR.po | 15 + po/ug-setting-theme-efl.pot | 37 + po/update-po.sh | 60 ++ po/zh_CN.po | 15 + po/zh_HK.po | 15 + po/zh_TW.po | 15 + resources/images/tizen-black.png | Bin 0 -> 12942 bytes resources/images/tizen.png | Bin 0 -> 15461 bytes setting-theme-efl.c | 1485 +++++++++++++++++++++++++++++ setting-theme-efl.edc | 45 + setting-theme-efl.h | 84 ++ 38 files changed, 2906 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 COPYRIGHT create mode 100644 NOTICE create mode 100755 debian/changelog create mode 100755 debian/compat create mode 100644 debian/control create mode 100755 debian/copyright create mode 100755 debian/dirs create mode 100755 debian/docs create mode 100755 debian/libug-setting-theme-efl.install.in create mode 100755 debian/libug-setting-theme-efl.postinst create mode 100755 debian/rules create mode 100644 packaging/libug-setting-theme-efl.spec create mode 100644 po/CMakeLists.txt create mode 100644 po/POTFILES.in create mode 100644 po/de.po create mode 100644 po/el.po create mode 100644 po/en_GB.po create mode 100644 po/en_US.po create mode 100644 po/es.po create mode 100644 po/fr.po create mode 100644 po/it.po create mode 100644 po/ja.po create mode 100644 po/ko.po create mode 100644 po/nl.po create mode 100644 po/pt.po create mode 100644 po/ru.po create mode 100644 po/tr_TR.po create mode 100644 po/ug-setting-theme-efl.pot create mode 100755 po/update-po.sh create mode 100644 po/zh_CN.po create mode 100644 po/zh_HK.po create mode 100644 po/zh_TW.po create mode 100644 resources/images/tizen-black.png create mode 100644 resources/images/tizen.png create mode 100755 setting-theme-efl.c create mode 100644 setting-theme-efl.edc create mode 100755 setting-theme-efl.h diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..1cef8c2 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,43 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +PROJECT(ug-setting-theme-efl C) + +SET(PREFIX ${CMAKE_INSTALL_PREFIX}) +SET(EXEC_PREFIX "\${prefix}") +SET(LIBDIR "\${prefix}/lib") +SET(INCLUDEDIR "\${prefix}/include") +SET(VERSION 0.1.0) + +SET(SRCS setting-theme-efl.c) + +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include) + +INCLUDE(FindPkgConfig) +pkg_check_modules(pkgs REQUIRED elementary ui-gadget x11 vconf aul efreet-mime eina) + +FOREACH(flag ${pkgs_CFLAGS}) + SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${flag}") +ENDFOREACH(flag) + +SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} -fvisibility=hidden -Wall") +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXXFLAGS}") +SET(CMAKE_C_FLAGS ${CMAKE_CXX_FLAGS}) + +ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"") + +ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS}) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION 0.1.0) +TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS}) + +ADD_CUSTOM_TARGET(setting-theme-efl.edj + COMMAND edje_cc + ${CMAKE_SOURCE_DIR}/setting-theme-efl.edc ${CMAKE_BINARY_DIR}/setting-theme-efl.edj + DEPENDS ${CMAKE_SOURCE_DIR}/setting-theme-efl.edc +) + +ADD_DEPENDENCIES(${PROJECT_NAME} setting-theme-efl.edj) + +INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib) +INSTALL(FILES ${CMAKE_BINARY_DIR}/setting-theme-efl.edj DESTINATION /opt/ug/res/edje/ug-setting-theme-efl) +INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/resources/images/ DESTINATION /opt/ug/res/images/ug-setting-theme-efl FILES_MATCHING PATTERN "*.png") + +ADD_SUBDIRECTORY(po) diff --git a/COPYRIGHT b/COPYRIGHT new file mode 100644 index 0000000..0363c81 --- /dev/null +++ b/COPYRIGHT @@ -0,0 +1,27 @@ +/* + + Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved + + This file is part of libug-setting-theme-efl + Written by Shinwoo Kim , + ChunEon Park , + Woohyun Jung , + Jaehwan Kim , + Juyung Seo , + + PROPRIETARY/CONFIDENTIAL + + This software is the confidential and proprietary information of + SAMSUNG ELECTRONICS ("Confidential Information"). You shall not + disclose such Confidential Information and shall use it only in + accordance with the terms of the license agreement you entered + into with SAMSUNG ELECTRONICS. + + SAMSUNG make no representations or warranties about the suitability + of the software, either express or implied, including but not limited + to the implied warranties of merchantability, fitness for a particular + purpose, or non-infringement. SAMSUNG shall not be liable for any + damages suffered by licensee as a result of using, modifying or + distributing this software or its derivatives. + +*/ diff --git a/NOTICE b/NOTICE new file mode 100644 index 0000000..4297ee3 --- /dev/null +++ b/NOTICE @@ -0,0 +1 @@ +Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. diff --git a/debian/changelog b/debian/changelog new file mode 100755 index 0000000..ee233fa --- /dev/null +++ b/debian/changelog @@ -0,0 +1,519 @@ +libug-setting-theme-efl (0.1.0-65) unstable; urgency=low + + * Package Upload + * Git: slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-65 + + -- Shinwoo Kim Tue, 13 Mar 2012 19:30:48 +0900 + +libug-setting-theme-efl (0.1.0-64) unstable; urgency=low + + * Package Upload + * Git: slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-64 + + -- Shinwoo Kim Thu, 16 Feb 2012 17:21:37 +0900 + +libug-setting-theme-efl (0.1.0-63) unstable; urgency=low + + * Package Upload + * Git: slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-63 + + -- Shinwoo Kim Thu, 12 Jan 2012 16:24:28 +0900 + +libug-setting-theme-efl (0.1.0-62) unstable; urgency=low + + * Package Upload + * Git: slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-62 + + -- Shinwoo Kim Mon, 19 Dec 2011 14:01:50 +0900 + +libug-setting-theme-efl (0.1.0-61) unstable; urgency=low + + * Package Upload + * Git: slp-scm.sec.samsung.net:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-61 + + -- Shinwoo Kim Mon, 14 Nov 2011 16:46:50 +0900 + +libug-setting-theme-efl (0.1.0-60) unstable; urgency=low + + * Package Upload + * Git: slp-scm.sec.samsung.net:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-60 + + -- Shinwoo Kim Mon, 07 Nov 2011 20:16:58 +0900 + +libug-setting-theme-efl (0.1.0-59) unstable; urgency=low + + * Package Upload + * Git: slp-scm.sec.samsung.net:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-59 + + -- Shinwoo Kim Thu, 03 Nov 2011 20:41:41 +0900 + +libug-setting-theme-efl (0.1.0-58) unstable; urgency=low + + * Package Upload + * Git: slp-scm.sec.samsung.net:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-58 + + -- ChunEon Park Sat, 15 Oct 2011 12:38:55 +0900 + +libug-setting-theme-efl (0.1.0-57) unstable; urgency=low + + * Package Upload + * Git: slp-scm.sec.samsung.net:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-57 + + -- Shinwoo Kim Fri, 14 Oct 2011 16:46:45 +0900 + +libug-setting-theme-efl (0.1.0-56) unstable; urgency=low + + * Package Upload + * Git: slp-scm.sec.samsung.net:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-56 + + -- Shinwoo Kim Fri, 14 Oct 2011 10:19:14 +0900 + +libug-setting-theme-efl (0.1.0-55) unstable; urgency=low + + * Package Reupload + * Git: slp-scm.sec.samsung.net:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-55 + + -- Shinwoo Kim Fri, 14 Oct 2011 09:46:57 +0900 + +libug-setting-theme-efl (0.1.0-54) unstable; urgency=low + + * Package Reupload + * Git: slp-scm.sec.samsung.net:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-54 + + -- Shinwoo Kim Thu, 13 Oct 2011 20:50:05 +0900 + +libug-setting-theme-efl (0.1.0-53) unstable; urgency=low + + * Package Upload + * Git: slp-scm.sec.samsung.net:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-53 + + -- Shinwoo Kim Thu, 13 Oct 2011 20:45:29 +0900 + +libug-setting-theme-efl (0.1.0-52) unstable; urgency=low + + * Package Upload + * Git: slp-scm.sec.samsung.net:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-52 + + -- Shinwoo Kim Fri, 07 Oct 2011 17:36:43 +0900 + +libug-setting-theme-efl (0.1.0-51) unstable; urgency=low + + * Package Reupload + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-51 + + -- Shinwoo Kim Wed, 05 Oct 2011 21:01:28 +0900 + +libug-setting-theme-efl (0.1.0-50) unstable; urgency=low + + * Package Upload + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-50 + + -- Shinwoo Kim Wed, 05 Oct 2011 20:51:30 +0900 + +libug-setting-theme-efl (0.1.0-49) unstable; urgency=low + + * Package Upload + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-49 + + -- ChunEon Park Fri, 23 Sep 2011 13:18:57 +0900 + +libug-setting-theme-efl (0.1.0-48) unstable; urgency=low + + * Package Upload + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-48 + + -- ChunEon Park Tue, 20 Sep 2011 11:04:33 +0900 + +libug-setting-theme-efl (0.1.0-47) unstable; urgency=low + + * Package Upload + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-47 + + -- Shinwoo Kim Mon, 19 Sep 2011 20:38:56 +0900 + +libug-setting-theme-efl (0.1.0-46) unstable; urgency=low + + * Package Reupload + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-46 + + -- Shinwoo Kim Wed, 07 Sep 2011 20:11:30 +0900 + +libug-setting-theme-efl (0.1.0-45) unstable; urgency=low + + * Package Reupload + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-45 + + -- Shinwoo Kim Wed, 07 Sep 2011 10:29:38 +0900 + +libug-setting-theme-efl (0.1.0-44) unstable; urgency=low + + * Package Reupload + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-44 + + -- Shinwoo Kim Tue, 06 Sep 2011 09:51:44 +0900 + +libug-setting-theme-efl (0.1.0-43) unstable; urgency=low + + * Package Reupload + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-43 + + -- Shinwoo Kim Thu, 01 Sep 2011 19:27:25 +0900 + +libug-setting-theme-efl (0.1.0-42) unstable; urgency=low + + * Package Reupload + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-42 + + -- Shinwoo Kim Wed, 31 Aug 2011 19:50:09 +0900 + +libug-setting-theme-efl (0.1.0-41) unstable; urgency=low + + * Package Reupload + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-41 + + -- Shinwoo Kim Wed, 17 Aug 2011 20:15:26 +0900 + +libug-setting-theme-efl (0.1.0-40) unstable; urgency=low + + * Package Upload + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-40 + + -- Shinwoo Kim Wed, 17 Aug 2011 19:37:21 +0900 + +libug-setting-theme-efl (0.1.0-39) unstable; urgency=low + + * Package Upload: remove unnecessary code - setting default bg + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-39 + + -- Shinwoo Kim Thu, 14 Jul 2011 22:09:24 +0900 + +libug-setting-theme-efl (0.1.0-38) unstable; urgency=low + + * Package Upload: save some runnig application from termination, check null + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-38 + + -- Shinwoo Kim Wed, 13 Jul 2011 12:15:04 +0900 + +libug-setting-theme-efl (0.1.0-37) unstable; urgency=low + + * Package Upload: remove prefix deb + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-37 + + -- Shinwoo Kim Tue, 12 Jul 2011 17:59:19 +0900 + +libug-setting-theme-efl (0.1.0-36) unstable; urgency=low + + * Package Upload: align radio button + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-36 + + -- Shinwoo Kim Wed, 06 Jul 2011 22:52:42 +0900 + +libug-setting-theme-efl (0.1.0-35) unstable; urgency=low + + * Package Upload: change navigationbar back button + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-35 + + -- Shinwoo Kim Mon, 27 Jun 2011 14:35:51 +0900 + +libug-setting-theme-efl (0.1.0-34) unstable; urgency=low + + * Package Upload + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-34 + + -- Shinwoo Kim Mon, 20 Jun 2011 21:28:50 +0900 + +libug-setting-theme-efl (0.1.0-33) unstable; urgency=low + + * Package Upload + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-33 + + -- Shinwoo Kim Tue, 19 Apr 2011 15:02:31 +0900 + +libug-setting-theme-efl (0.1.0-32) unstable; urgency=low + + * Package Upload + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-32 + + -- Shinwoo Kim Sat, 02 Apr 2011 13:01:38 +0900 + +libug-setting-theme-efl (0.1.0-31) unstable; urgency=low + + * version up + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-31 + + -- Hyoyoung Chang Tue, 22 Mar 2011 22:21:35 +0900 + +libug-setting-theme-efl (0.1.0-30) unstable; urgency=low + + * filter out beat theme + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-30 + + -- Hyoyoung Chang Tue, 22 Mar 2011 21:40:02 +0900 + +libug-setting-theme-efl (0.1.0-29) unstable; urgency=low + + * change default theme to nbeat + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-29 + + -- Hyoyoung Chang Tue, 22 Mar 2011 20:18:11 +0900 + +libug-setting-theme-efl (0.1.0-28) unstable; urgency=low + + * revert theme change + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-28 + + -- Hyoyoung Chang Mon, 21 Mar 2011 17:05:43 +0900 + +libug-setting-theme-efl (0.1.0-27) unstable; urgency=low + + * revert theme change + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-27 + + -- Hyoyoung Chang Mon, 21 Mar 2011 17:01:13 +0900 + +libug-setting-theme-efl (0.1.0-26) unstable; urgency=low + + * change default theme from beat to nbeat + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-26 + + -- Hyoyoung Chang Mon, 21 Mar 2011 16:47:45 +0900 + +libug-setting-theme-efl (0.1.0-25) unstable; urgency=low + + * fixed a problem popup raised up twice when clicked radio button + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-25 + + -- ChunEon Park Fri, 11 Mar 2011 19:02:12 +0900 + +libug-setting-theme-efl (0.1.0-24) unstable; urgency=low + + * Fix Elementary Widget vconf path issue + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-24 + + -- Junghyun Kim Tue, 08 Feb 2011 11:06:45 +0900 + +libug-setting-theme-efl (0.1.0-23) unstable; urgency=low + + * Fix bug about change ICON theme + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-23 + + -- Junghyun Kim Mon, 07 Feb 2011 13:18:13 +0900 + +libug-setting-theme-efl (0.1.0-22) unstable; urgency=low + + * Apply VCONF DAC for meuscreen + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-22 + + -- Junghyun Kim Fri, 28 Jan 2011 16:04:18 +0900 + +libug-setting-theme-efl (0.1.0-21) unstable; urgency=low + + * fix the postinst + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-21 + + -- ChunEon Park Thu, 27 Jan 2011 13:19:55 +0900 + +libug-setting-theme-efl (0.1.0-20) unstable; urgency=low + + * fix the postinst + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-20 + + -- ChunEon Park Mon, 24 Jan 2011 21:28:56 +0900 + +libug-setting-theme-efl (0.1.0-19) unstable; urgency=low + + * modified for security policy and install path + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-19 + + -- ChunEon Park Wed, 19 Jan 2011 19:55:26 +0900 + +libug-setting-theme-efl (0.1.0-18) unstable; urgency=low + + * added a line to fliter "default-desktop.edj" + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-18 + + -- ChunEon Park Tue, 18 Jan 2011 22:28:32 +0900 + +libug-setting-theme-efl (0.1.0-17) unstable; urgency=low + + * applied end key event + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-17 + + -- ChunEon Park Thu, 13 Jan 2011 16:04:56 +0900 + +libug-setting-theme-efl (0.1.0-16) unstable; urgency=low + + * fixed for the downloadble theme files + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-16 + + -- ChunEon Park Tue, 11 Jan 2011 21:31:38 +0900 + +libucg-setting-theme-efl (0.1.0-15) unstable; urgency=low + + * added evas_object_del callback for the base layout + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-15 + + -- ChunEon Park Thu, 30 Dec 2010 17:28:35 +0900 + +libug-setting-theme-efl (0.1.0-14) unstable; urgency=low + + * Fix code for prevent to terminate menu-screen + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-14 + + -- Junghyun Kim Thu, 23 Dec 2010 17:50:17 +0900 + +libug-setting-theme-efl (0.1.0-13) unstable; urgency=low + + * modified to delete_me. in back button callback + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-13 + + -- ChunEon Park Tue, 21 Dec 2010 13:38:41 +0900 + +libug-setting-theme-efl (0.1.0-12) unstable; urgency=low + + * modified cancel -> back and applied multi-language + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-12 + + -- ChunEon Park Thu, 09 Dec 2010 20:49:41 +0900 + +libug-setting-theme-efl (0.1.0-11) unstable; urgency=low + + * applied second patch by jh1114.kim@samsung.com + * Git: 165.213.180.234:slp/pkgs/l/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-11 + + -- ChunEon Park Thu, 09 Dec 2010 16:59:21 +0900 + +libug-setting-theme-efl (0.1.0-10) unstable; urgency=low + + * fixed popup description spelling. + * Git: 165.213.180.234:/git/slp/pkgs/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-10 + + -- ChunEon Park Fri, 12 Nov 2010 11:27:56 +0900 + +libug-setting-theme-efl (0.1.0-9) unstable; urgency=low + + * fixed popup description spelling. + * Git: 165.213.180.234:/git/slp/pkgs/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-9 + + -- ChunEon Park Sat, 30 Oct 2010 17:51:23 +0900 + +libug-setting-theme-efl (0.1.0-8) unstable; urgency=low + + * updated multi language + * Git: 165.213.180.234:/git/slp/pkgs/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-8 + + -- ChunEon Park Thu, 28 Oct 2010 19:09:49 +0900 + +libug-setting-theme-efl (0.1.0-7) unstable; urgency=low + + * added a function for deleting idle images + * Git: 165.213.180.234:/git/slp/pkgs/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-7 + + -- ChunEon Park Mon, 25 Oct 2010 17:38:43 +0900 + +libug-setting-theme-efl (0.1.0-6) unstable; urgency=low + + * added a function for deleting idle images + * Git: 165.213.180.234:/git/slp/pkgs/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-6 + + -- ChunEon Park Fri, 22 Oct 2010 21:05:15 +0900 + +libug-setting-theme-efl (0.1.0-5) unstable; urgency=low + + * fixed THEME title in navigation bar + * Git: 165.213.180.234:/git/slp/pkgs/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-5 + + -- ChunEon Park Mon, 18 Oct 2010 13:09:57 +0900 + +libug-setting-theme-efl (0.1.0-4) unstable; urgency=low + + * fixed radio position bug. + * Git: 165.213.180.234:/git/slp/pkgs/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-4 + + -- ChunEon Park Fri, 15 Oct 2010 19:17:07 +0900 + +libug-setting-theme-efl (0.1.0-3) unstable; urgency=low + + * fixed radio position bug. + * Git: 165.213.180.234:/git/slp/pkgs/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-3 + + -- ChunEon Park Tue, 12 Oct 2010 14:20:27 +0900 + +libug-setting-theme-efl (0.1.0-2) unstable; urgency=low + + * repackaging. + * Git: 165.213.180.234:/git/slp/pkgs/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-2 + + -- ChunEon Park Mon, 11 Oct 2010 14:23:15 +0900 + +libug-setting-theme-efl (0.1.0-1) unstable; urgency=low + + * Initial Upload + * Git: 165.213.180.234:/git/slp/pkgs/libug-setting-theme-efl + * Tag: libug-setting-theme-efl_0.1.0-1 + + -- ChunEon Park Sat, 09 Oct 2010 20:19:49 +0900 diff --git a/debian/compat b/debian/compat new file mode 100755 index 0000000..7ed6ff8 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +5 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..404eb76 --- /dev/null +++ b/debian/control @@ -0,0 +1,19 @@ +Source: libug-setting-theme-efl +Section: misc +Priority: extra +Maintainer: Shinwoo Kim , ChunEon Park , Woohyun Jung , Jaehwan Kim , Juyung Seo +Uploaders: Shinwoo Kim +Build-Depends: debhelper (>= 5), autotools-dev, libelm-dev, libslp-setting-dev, libui-gadget-dev, libbundle-dev, libaul-1-dev, libefreet-dev, libeina-dev +Standards-Version: 0.1.0 + +Package: libug-setting-theme-efl +Section: misc +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Setting Theme UI gadget + +Package: libug-setting-theme-efl-dbg +Section: debug +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, libug-setting-theme-efl (= ${binary:Version}) +Description: Setting Theme UI gadget (debugging symbols) diff --git a/debian/copyright b/debian/copyright new file mode 100755 index 0000000..e69de29 diff --git a/debian/dirs b/debian/dirs new file mode 100755 index 0000000..ca882bb --- /dev/null +++ b/debian/dirs @@ -0,0 +1,2 @@ +usr/bin +usr/sbin diff --git a/debian/docs b/debian/docs new file mode 100755 index 0000000..a0f0008 --- /dev/null +++ b/debian/docs @@ -0,0 +1 @@ +CMakeLists.txt diff --git a/debian/libug-setting-theme-efl.install.in b/debian/libug-setting-theme-efl.install.in new file mode 100755 index 0000000..370479a --- /dev/null +++ b/debian/libug-setting-theme-efl.install.in @@ -0,0 +1,5 @@ +@PREFIX@/lib/* +@PREFIX@/res/locale/* +@PREFIX@/res/edje/* +@PREFIX@/res/images/* + diff --git a/debian/libug-setting-theme-efl.postinst b/debian/libug-setting-theme-efl.postinst new file mode 100755 index 0000000..10be877 --- /dev/null +++ b/debian/libug-setting-theme-efl.postinst @@ -0,0 +1,56 @@ +#!/bin/sh +#This is setting postinst file + +GOPTION="" +if [ ${USER} == "root" ] +then + GOPTION="-g 6514" +fi + +WIDGET_THEME="" +SELECTED_THEME="" +EDJ_SEPARATOR=":" +THEME_PATH="/usr/share/elementary/themes/" +GREY_HD="grey-hd" +BLACK_HD="tizen-black-hd" +WHITE_HD="tizen-hd" +EDJ_EXT=".edj" +EDJ_GREY_HD=$THEME_PATH$GREY_HD$EDJ_EXT +EDJ_BLACK_HD=$THEME_PATH$BLACK_HD$EDJ_EXT +EDJ_WHITE_HD=$THEME_PATH$WHITE_HD$EDJ_EXT + +if [ -e $EDJ_GREY_HD ] +then + WIDGET_THEME=$EDJ_GREY_HD + SELECTED_THEME=$GREY_HD +fi + +if [ -e $EDJ_BLACK_HD ] +then + if [ $WIDGET_THEME ] + then + WIDGET_THEME=$WIDGET_THEME$EDJ_SEPARATOR$EDJ_BLACK_HD + else + WIDGET_THEME=$EDJ_BLACK_HD + SELECTED_THEME=$BLACK_HD + fi +fi + +if [ -e $EDJ_WHITE_HD ] +then + if [ $WIDGET_THEME ] + then + WIDGET_THEME=$WIDGET_THEME$EDJ_SEPARATOR$EDJ_WHITE_HD + else + WIDGET_THEME=$EDJ_WHITE_HD + SELECTED_THEME=$WHITE_HD + fi +fi + +if [ $WIDGET_THEME ] +then + vconftool $GOPTION set -t string db/setting/widget_theme $WIDGET_THEME + vconftool $GOPTION set -t string db/setting/selected_theme $SELECTED_THEME +fi + +vconftool $GOPTION set -t string db/setting/theme "default" diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..de045bb --- /dev/null +++ b/debian/rules @@ -0,0 +1,127 @@ +#!/usr/bin/make -f +# -*- makefile -*- +# Sample debian/rules that uses debhelper. +# This file was originally written by Joey Hess and Craig Small. +# As a special exception, when this file is copied by dh-make into a +# dh-make output file, you may use that output file without restriction. +# This special exception was added by Craig Small in version 0.37 of dh-make. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +CFLAGS ?= -Wall -g +CXXFLAGS ?= -Wall -g +LDFLAGS ?= +PREFIX ?= /opt/ug +DATADIR ?= /opt/ug/res + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 + CXXFLAGS += -O0 +else + CFLAGS += -O2 + CXXFLAGS += -O2 +endif + +LDFLAGS += -Wl,--rpath=$(PREFIX)/lib -Wl,--as-needed + +CMAKE_TMP_DIR = $(CURDIR)/cmake_tmp + + +configure: configure-stamp +configure-stamp: + dh_testdir + # Add here commands to configure the package. + mkdir -p $(CMAKE_TMP_DIR); + cd $(CMAKE_TMP_DIR); CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" cmake .. -DCMAKE_INSTALL_PREFIX=$(PREFIX) + + touch configure-stamp + +build: build-stamp + +build-stamp: configure-stamp + dh_testdir + + # Add here commands to compile the package. + cd $(CMAKE_TMP_DIR) && $(MAKE) + #docbook-to-man debian/wavplayer.sgml > wavplayer.1 + + for f in `find $(CURDIR)/debian/ -name "*.in"`; do \ + cat $$f > $${f%.in}; \ + sed -i -e "s#@PREFIX@#$(PREFIX)#g" $${f%.in}; \ + sed -i -e "s#@DATADIR@#$(DATADIR)#g" $${f%.in}; \ + done + + + touch $@ + +clean: + dh_testdir + dh_testroot + rm -f build-stamp configure-stamp + + # Add here commands to clean up after the build process. + -cd $(CMAKE_TMP_DIR) && $(MAKE) clean + rm -rf $(CMAKE_TMP_DIR) + + rm -rf CMakeCache.txt + rm -rf CMakeFiles + rm -rf cmake_install.cmake + rm -rf Makefile + rm -rf install_manifest.txt + rm -rf *.so + + for f in `find $(CURDIR)/debian/ -name "*.in"`; do \ + rm -f $${f%.in}; \ + done + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + # Add here commands to install the package into debian/wavplayer. + cd $(CMAKE_TMP_DIR) && $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install + + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do by default. + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + dh_installchangelogs +# dh_installdocs + dh_installexamples + dh_install --sourcedir=debian/tmp +# dh_installmenu +# dh_installdebconf +# dh_installlogrotate +# dh_installemacsen +# dh_installpam +# dh_installmime +# dh_python +# dh_installinit +# dh_installcron +# dh_installinfo + dh_installman + dh_link +# dh_strip + dh_strip --dbg-package=libug-setting-theme-efl-dbg + dh_compress + dh_fixperms +# dh_perl + dh_makeshlibs + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install configure diff --git a/packaging/libug-setting-theme-efl.spec b/packaging/libug-setting-theme-efl.spec new file mode 100644 index 0000000..d0a3eba --- /dev/null +++ b/packaging/libug-setting-theme-efl.spec @@ -0,0 +1,101 @@ +%define PREFIX /opt/ug + +Name: libug-setting-theme-efl +Summary: ug theme setting efl library +Version: 0.1.0 +Release: 2 +Group: TBD +License: Samsung +Source0: %{name}-%{version}.tar.gz +BuildRequires: pkgconfig(elementary) +BuildRequires: pkgconfig(ui-gadget) +BuildRequires: pkgconfig(x11) +BuildRequires: pkgconfig(vconf) +BuildRequires: pkgconfig(aul) +BuildRequires: pkgconfig(efreet-mime) +BuildRequires: pkgconfig(eina) +BuildRequires: cmake +BuildRequires: gettext-tools +BuildRequires: edje-tools +Requires(post): /sbin/ldconfig +Requires(post): /usr/bin/vconftool +requires(postun): /sbin/ldconfig +%description +ug theme setting efl library. + + +%prep +%setup -q + +%build +LDFLAGS+="-Wl,--rpath=%{PREFIX}/lib -Wl,--as-needed";export LDFLAGS +cmake . -DCMAKE_INSTALL_PREFIX=%{PREFIX} +make %{?jobs:-j%jobs} + +%install +%make_install + + +%find_lang ug-setting-theme-efl + +%post +/sbin/ldconfig + +GOPTION="-g 6514" +WIDGET_THEME="" +SELECTED_THEME="" +EDJ_SEPARATOR=":" +THEME_PATH="/usr/share/elementary/themes/" +GREY_HD="grey-hd" +BLACK_HD="tizen-black-hd" +WHITE_HD="tizen-hd" +EDJ_EXT=".edj" +EDJ_GREY_HD=$THEME_PATH$GREY_HD$EDJ_EXT +EDJ_BLACK_HD=$THEME_PATH$BLACK_HD$EDJ_EXT +EDJ_WHITE_HD=$THEME_PATH$WHITE_HD$EDJ_EXT + +if [ -e $EDJ_GREY_HD ] +then + WIDGET_THEME=$EDJ_GREY_HD + SELECTED_THEME=$GREY_HD +fi + +if [ -e $EDJ_BLACK_HD ] +then + if [ $WIDGET_THEME ] + then + WIDGET_THEME=$WIDGET_THEME$EDJ_SEPARATOR$EDJ_BLACK_HD + else + WIDGET_THEME=$EDJ_BLACK_HD + SELECTED_THEME=$BLACK_HD + fi +fi + +if [ -e $EDJ_WHITE_HD ] +then + if [ $WIDGET_THEME ] + then + WIDGET_THEME=$WIDGET_THEME$EDJ_SEPARATOR$EDJ_WHITE_HD + else + WIDGET_THEME=$EDJ_WHITE_HD + SELECTED_THEME=$WHITE_HD + fi +fi + +if [ $WIDGET_THEME ] +then + vconftool $GOPTION set -t string db/setting/widget_theme $WIDGET_THEME + vconftool $GOPTION set -t string db/setting/selected_theme $SELECTED_THEME +fi + +vconftool $GOPTION set -t string db/setting/theme "default" + + +%postun -p /sbin/ldconfig + +%files -f ug-setting-theme-efl.lang +/opt/ug/lib/libug-setting-theme-efl.so +/opt/ug/lib/libug-setting-theme-efl.so.0.1.0 +/opt/ug/res/edje/ug-setting-theme-efl/setting-theme-efl.edj +/opt/ug/res/images/ug-setting-theme-efl/tizen-black.png +/opt/ug/res/images/ug-setting-theme-efl/tizen.png diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt new file mode 100644 index 0000000..2ebbf44 --- /dev/null +++ b/po/CMakeLists.txt @@ -0,0 +1,24 @@ +# for i18n + +SET(POFILES de.po el.po en_GB.po en_US.po es.po fr.po it.po ja.po ko.po nl.po pt.po ru.po tr_TR.po zh_CN.po zh_HK.po zh_TW.po) + +SET(MSGFMT "/usr/bin/msgfmt") + +FOREACH(pofile ${POFILES}) + SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile}) + MESSAGE("PO: ${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 res/locale/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo) + SET(moFiles ${moFiles} ${moFile}) +ENDFOREACH(pofile) + +MESSAGE(".mo files: ${moFiles}") +ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles}) diff --git a/po/POTFILES.in b/po/POTFILES.in new file mode 100644 index 0000000..4f34346 --- /dev/null +++ b/po/POTFILES.in @@ -0,0 +1,2 @@ +# List of source files containing translatable strings. +setting-theme-efl.c diff --git a/po/de.po b/po/de.po new file mode 100644 index 0000000..36b6d67 --- /dev/null +++ b/po/de.po @@ -0,0 +1,16 @@ +msgid "IDS_ST_BODY_THEME" +msgstr "Winset" + +msgid "IDS_COM_POP_CANCEL" +msgstr "Abbrechen" + +msgid "IDS_COM_POP_YES" +msgstr "Ja" + +msgid "IDS_COM_POP_NO" +msgstr "Nein" + +msgid "IDS_COM_BODY_BACK" +msgstr "Zurück" + + diff --git a/po/el.po b/po/el.po new file mode 100644 index 0000000..6db03b9 --- /dev/null +++ b/po/el.po @@ -0,0 +1,17 @@ +msgid "IDS_ST_BODY_THEME" +msgstr "Θέμα" + +msgid "IDS_COM_POP_CANCEL" +msgstr "Ακύρωση" + +msgid "IDS_COM_POP_YES" +msgstr "Ναι" + +msgid "IDS_COM_POP_NO" +msgstr "Όχι" + +msgid "IDS_COM_BODY_BACK" +msgstr "Назад" + + + diff --git a/po/en_GB.po b/po/en_GB.po new file mode 100644 index 0000000..84d3374 --- /dev/null +++ b/po/en_GB.po @@ -0,0 +1,39 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-10-28 16:43+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: setting-theme-efl.c:306 +msgid "All Apps will bel closed
to change theme" +msgstr "" + +#: setting-theme-efl.c:475 +msgid "IDS_ST_BODY_THEME" +msgstr "Winset" + +msgid "IDS_COM_POP_YES" +msgstr "Yes" + +msgid "IDS_COM_POP_NO" +msgstr "No" + +msgid "IDS_COM_POP_CANCEL" +msgstr "Cancel" + +msgid "IDS_COM_BODY_BACK" +msgstr "Back" + + diff --git a/po/en_US.po b/po/en_US.po new file mode 100644 index 0000000..ffa9828 --- /dev/null +++ b/po/en_US.po @@ -0,0 +1,14 @@ +msgid "IDS_ST_BODY_THEME" +msgstr "Winset" + +msgid "IDS_COM_POP_CANCEL" +msgstr "Cancel" + +msgid "IDS_COM_POP_YES" +msgstr "Yes" + +msgid "IDS_COM_POP_NO" +msgstr "No" + +msgid "IDS_COM_BODY_BACK" +msgstr "Back" diff --git a/po/es.po b/po/es.po new file mode 100644 index 0000000..2aac59d --- /dev/null +++ b/po/es.po @@ -0,0 +1,15 @@ +msgid "IDS_ST_BODY_THEME" +msgstr "Tema" + +msgid "IDS_COM_POP_CANCEL" +msgstr "Cancelar" + +msgid "IDS_COM_POP_YES" +msgstr "Sí" + +msgid "IDS_COM_POP_NO" +msgstr "No" + +msgid "IDS_COM_BODY_BACK" +msgstr "Atrás" + diff --git a/po/fr.po b/po/fr.po new file mode 100644 index 0000000..83b4a57 --- /dev/null +++ b/po/fr.po @@ -0,0 +1,15 @@ +msgid "IDS_ST_BODY_THEME" +msgstr "Thème" + +msgid "IDS_COM_POP_CANCEL" +msgstr "Annuler" + +msgid "IDS_COM_POP_YES" +msgstr "Oui" + +msgid "IDS_COM_POP_NO" +msgstr "Non" + +msgid "IDS_COM_BODY_BACK" +msgstr "Retour" + diff --git a/po/it.po b/po/it.po new file mode 100644 index 0000000..334b799 --- /dev/null +++ b/po/it.po @@ -0,0 +1,15 @@ +msgid "IDS_ST_BODY_THEME" +msgstr "Tema" + +msgid "IDS_COM_POP_CANCEL" +msgstr "Annulla" + +msgid "IDS_COM_POP_YES" +msgstr "Sì" + +msgid "IDS_COM_POP_NO" +msgstr "No" + +msgid "IDS_COM_BODY_BACK" +msgstr "Indietro" + diff --git a/po/ja.po b/po/ja.po new file mode 100644 index 0000000..891ef9a --- /dev/null +++ b/po/ja.po @@ -0,0 +1,15 @@ +msgid "IDS_ST_BODY_THEME" +msgstr "テーマ" + +msgid "IDS_COM_POP_CANCEL" +msgstr "キャンセル" + +msgid "IDS_COM_POP_YES" +msgstr "OK" + +msgid "IDS_COM_POP_NO" +msgstr "キャンセル" + +msgid "IDS_COM_BODY_BACK" +msgstr "戻る" + diff --git a/po/ko.po b/po/ko.po new file mode 100644 index 0000000..62008d9 --- /dev/null +++ b/po/ko.po @@ -0,0 +1,16 @@ +msgid "IDS_ST_BODY_THEME" +msgstr "테마" + +msgid "IDS_COM_POP_CANCEL" +msgstr "취소" + +msgid "IDS_COM_POP_YES" +msgstr "예" + +msgid "IDS_COM_POP_NO" +msgstr "아니요" + +msgid "IDS_COM_BODY_BACK" +msgstr "이전" + + diff --git a/po/nl.po b/po/nl.po new file mode 100644 index 0000000..e426716 --- /dev/null +++ b/po/nl.po @@ -0,0 +1,15 @@ +msgid "IDS_ST_BODY_THEME" +msgstr "Thema" + +msgid "IDS_COM_POP_CANCEL" +msgstr "Annuleer" + +msgid "IDS_COM_POP_YES" +msgstr "Ja" + +msgid "IDS_COM_POP_NO" +msgstr "Nee" + +msgid "IDS_COM_BODY_BACK" +msgstr "Terug" + diff --git a/po/pt.po b/po/pt.po new file mode 100644 index 0000000..d9a724a --- /dev/null +++ b/po/pt.po @@ -0,0 +1,15 @@ +msgid "IDS_ST_BODY_THEME" +msgstr "Tema" + +msgid "IDS_COM_POP_CANCEL" +msgstr "Cancelar" + +msgid "IDS_COM_POP_YES" +msgstr "Sim" + +msgid "IDS_COM_POP_NO" +msgstr "Não" + +msgid "IDS_COM_BODY_BACK" +msgstr "Voltar" + diff --git a/po/ru.po b/po/ru.po new file mode 100644 index 0000000..60600f0 --- /dev/null +++ b/po/ru.po @@ -0,0 +1,15 @@ +msgid "IDS_ST_BODY_THEME" +msgstr "Тема" + +msgid "IDS_COM_POP_CANCEL" +msgstr "Отмена" + +msgid "IDS_COM_POP_YES" +msgstr "Да" + +msgid "IDS_COM_POP_NO" +msgstr "Нет" + +msgid "IDS_COM_BODY_BACK" +msgstr "Назад" + diff --git a/po/tr_TR.po b/po/tr_TR.po new file mode 100644 index 0000000..a26e9d2 --- /dev/null +++ b/po/tr_TR.po @@ -0,0 +1,15 @@ +msgid "IDS_ST_BODY_THEME" +msgstr "Tema" + +msgid "IDS_COM_POP_CANCEL" +msgstr "İptal" + +msgid "IDS_COM_POP_YES" +msgstr "Evet" + +msgid "IDS_COM_POP_NO" +msgstr "Hayır" + +msgid "IDS_COM_BODY_BACK" +msgstr "Geri" + diff --git a/po/ug-setting-theme-efl.pot b/po/ug-setting-theme-efl.pot new file mode 100644 index 0000000..d61bf9f --- /dev/null +++ b/po/ug-setting-theme-efl.pot @@ -0,0 +1,37 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-10-28 16:56+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: setting-theme-efl.c:306 +msgid "All Apps will bel closed
to change theme" +msgstr "" + +#: setting-theme-efl.c:307 +msgid "Yes" +msgstr "" + +#: setting-theme-efl.c:307 +msgid "No" +msgstr "" + +#: setting-theme-efl.c:461 +msgid "Cancel" +msgstr "" + +#: setting-theme-efl.c:475 +msgid "IDS_ST_BODY_THEME" +msgstr "" diff --git a/po/update-po.sh b/po/update-po.sh new file mode 100755 index 0000000..3bc90fd --- /dev/null +++ b/po/update-po.sh @@ -0,0 +1,60 @@ +#!/bin/sh + +PACKAGE=ug-setting-theme-efl +SRCROOT=.. +POTFILES=POTFILES.in + +#ALL_LINGUAS= am az be ca cs da de el en_CA en_GB es et fi fr hr hu it ja ko lv mk ml ms nb ne nl pa pl pt pt_BR ru rw sk sl sr sr@Latn sv ta tr uk vi zh_CN zh_TW +ALL_LINGUAS="de el en_GB en_US es fr it ja ko nl pt ru tk zh_CN zh_HK zh_TW" + +XGETTEXT=/usr/bin/xgettext +MSGMERGE=/usr/bin/msgmerge + +echo -n "Make ${PACKAGE}.pot " +if [ ! -e $POTFILES ] ; then + echo "$POTFILES not found" + exit 1 +fi + +$XGETTEXT --default-domain=${PACKAGE} --directory=${SRCROOT} \ + --add-comments --keyword=_ --keyword=N_ --files-from=$POTFILES +if [ $? -ne 0 ]; then + echo "xgettext error" + exit 1 +fi + +if [ ! -f ${PACKAGE}.po ]; then + echo "No such file: ${PACKAGE}.po" + exit 1 +fi + +rm -f ${PACKAGE}.pot && mv ${PACKAGE}.po ${PACKAGE}.pot +echo "done" + +for LANG in $ALL_LINGUAS; do + echo "$LANG : " + + if [ ! -e $LANG.po ] ; then + sed 's/CHARSET/UTF-8/g' ${PACKAGE}.pot > ${LANG}.po + echo "${LANG}.po created" + else + if $MSGMERGE ${LANG}.po ${PACKAGE}.pot -o ${LANG}.new.po ; then + if cmp ${LANG}.po ${LANG}.new.po > /dev/null 2>&1; then + rm -f ${LANG}.new.po + else + if mv -f ${LANG}.new.po ${LANG}.po; then + echo "" + else + echo "msgmerge for $LANG.po failed: cannot move $LANG.new.po to $LANG.po" 1>&2 + rm -f ${LANG}.new.po + exit 1 + fi + fi + else + echo "msgmerge for $LANG failed!" + rm -f ${LANG}.new.po + fi + fi + echo "" +done + diff --git a/po/zh_CN.po b/po/zh_CN.po new file mode 100644 index 0000000..6f29d1e --- /dev/null +++ b/po/zh_CN.po @@ -0,0 +1,15 @@ +msgid "IDS_ST_BODY_THEME" +msgstr "主题" + +msgid "IDS_COM_POP_CANCEL" +msgstr "取消" + +msgid "IDS_COM_POP_YES" +msgstr "是 " + +msgid "IDS_COM_POP_NO" +msgstr "否" + +msgid "IDS_COM_BODY_BACK" +msgstr "返回" + diff --git a/po/zh_HK.po b/po/zh_HK.po new file mode 100644 index 0000000..a4fb085 --- /dev/null +++ b/po/zh_HK.po @@ -0,0 +1,15 @@ +msgid "IDS_ST_BODY_THEME" +msgstr "主題" + +msgid "IDS_COM_POP_CANCEL" +msgstr "取消" + +msgid "IDS_COM_POP_YES" +msgstr "是 " + +msgid "IDS_COM_POP_NO" +msgstr "否" + +msgid "IDS_COM_BODY_BACK" +msgstr "返回" + diff --git a/po/zh_TW.po b/po/zh_TW.po new file mode 100644 index 0000000..1c8cd17 --- /dev/null +++ b/po/zh_TW.po @@ -0,0 +1,15 @@ +msgid "IDS_ST_BODY_THEME" +msgstr "主題" + +msgid "IDS_COM_POP_CANCEL" +msgstr "取消" + +msgid "IDS_COM_POP_YES" +msgstr "是" + +msgid "IDS_COM_POP_NO" +msgstr "否" + +msgid "IDS_COM_BODY_BACK" +msgstr "上一步" + diff --git a/resources/images/tizen-black.png b/resources/images/tizen-black.png new file mode 100644 index 0000000000000000000000000000000000000000..028c051bc5a2bbc04842925b8b461c8b536d88e3 GIT binary patch literal 12942 zcmbW7byQVtxAw6GMFb=yL}^KBBo#MEcc*lBH!2cR64LQd(jeUp8<7T)?vn1VZ}Pn7 zJ>#73yzlwrtT7ypu{JE$UhAIMysqE8{iP+}qN5R@p`f6kiwGlRQBbbY!N0w`*Wt`v z8{c>E-!)s=w*n~n-9*bMC{IyD5U=H(M%O1i)#Vi~__tVC0-L@45W;8(zo$<_Ngrck z9&7jc2kL9E)El%E(YcTAtyZ-}sWy|4=%@^_@*~?ANl2ptC3XXD$6$3}Jqrz>qj`-$ zU>B~r4f`Xl38qq*chBc?4J{pSlY3q|@seCH9mXHlE_K%)cD+1QpQlNA;u3wWVKBAj z8OkfH>rYXyp@`h|BEN}3{;XkPo^6?({22(Zg)=9i1H_$0?`=nM5*<5EvzHkCczDXHi=W#-N|t?2a-C~R|C7tC+~Qc9(=c%D=3{Gv`MZwW>2O6H!P z(-L%5oNoBrsIKyP)Px+G^G%jZB(d*Hde(;{0-2PQy5cS!#S}+ncTvTZg}>u-tYBe_ zmY-e3S=OI-Xoci1qcQ8BvkFU}x zxywK|urDi_t$wT%U+rXo#MN0+{Yd_|2v;kmZhA!`r7kuKIHHO z<_rcEUkkpg?cwCxrOV9K0LH2DT0CC@k-OdJItm-_HS}FCq}8`X`=}4S35U)X4^6e4 zxK26vHMU;pu2mW)EiM@LB-RS%=m*w*sei`IW4AEy*dyFB36p^N8@DWl&?{kqcY#c0 z=|}sQ3H!yjL@wDyJ2$oHFPd{0FYVq-2I{7l##+x^Y^`)mxt*?mUK$!*KUh-Y!}gr2 zT{7p;GnpP{Afxqr?M5G~u+RmPw*k(<$ zWlEcOQNm@9Mfq-AdtnK;rA3WE@^q4AUllX*XvHgW%V2M{#%()L@L@$mliL>yqc7?^Td(@0Qu1m;nWn`Squsgodze4rV(HkkN@U2+8v1$Ig z*HU*;gax2%pj>7Q?93-0lA;!P+CC|pdi=iGEAe6e^=g4eQW75fonOX|Bmll?O$2NW~1Unxa7~&8wYS*LULOi zathpc@df8bKZl7z>4_E+!2i~08-p4ag3sIw8MQ(Fm!Tm9LK8LO@39iPxpw>aSUVB+B! z-#%Uv7O3cNmI+_*j>@27{=)Q4HjA{m$%<%Nlqwm^GXiURh4R0NgC>^)_hp8jc%I&Y zZNPm`7vky9=a1bSmG+khGO!JAcGlS1=q@QSFfiPyK9L;5NnMYTt)$yv2vK8w>w4#b zd!Oe@=ZMUQ%^0rZt*G1alCPxx#H+RoSP=4$^{lFBm^En(C^DXuyMB|bJCxjXX4$|u z{yOqL9OEpBBAmDFa?YD=H(6!VfbpW8H#wEH(B^_)OK>k^De7YRIGwWqmZ7U8#u%Gu zE8}9@?{a&ECnqh2DW|&uOP@|8MwOj=o%^#Ra_kO0^m#O;k1=)4dS>zm`GY%zqbrxT z49VCE_v$AbD{t<3lgUwQy74S`Rn@n2MVC>mW-!tvMqN6rb4#>+b9#A6s7=A|sTby} zwrIM!-706;oj<9;-z~V1?J(m$(SJ&YsCVr7)qZwE*X)!L*Uu(i^%a(=O|Qk~X*UFs(C#9`5XfLIe2fgL)2{(B@&iL-W zC30A9h|_a1)SY~FJS%PD0&HdYV8UwzzZTltKSXRT-uG{y+OIGK$e@nrN+-%Ow77+_u&ctc8xLZ65N_<76&9NQj!ZfY}=iM)gZ@m(Gh zJLOkdcc|`&k#iW^;&nVh9JzY-UZfkuSB*K%1_tB^WD(2>u`*;Q7dI;{;Gg$g-k%nD zzv{;MbNKt{phda+*?zgNOMM}&0@~Mv$_koC{C|BRp~gnvlYH4DUN;*B@Jq5P}k1u|E0_2T@r;ME%m35hpL4`uA^_7;p<2L=XANDFvP^h z#;%W*V~1)MT)w8g_-l1cj~O#mH7^o3wrjDfii`Z&_^%HiKKM~HF>POG_)Svsd0^Un ztSm;H@~h}4a__h(&4Q&NBT2~zm=cL+1$d2b1qCr>oSZ7CN2=^;G4ivro}prX`SRrz zVm7~^pg=0pn;^&_B0)q#;_D<+S!wCEO@d^b+6*C_STGm)m~Q?Ib;d;iFD-7niD< z+LGv2;>w3`tIf&UVBWleZ*y~VySuyoMpjl|E}1HPe0)BCM$2gAK|Q99Ff}u?8^zsh z5B0Xnv%cs)@%Hx4lFML5J|N9RJG2S|^&4rsSpRMgX#LvchbyQSUUF<~FyDg_j z;WBCxJ$ke^RDWR~5p*aznegb*qxrq%9|?|={=4WyPnSH;%8QD^n7$2~uwfO{UvSkY z*j9Z`N}BpZ-xdFIpzw>~Q_R7kp^ogL;^N1;A$%v)n~@(seoQZ&oSfuJknCL8J3I`? zZuZ6CHedY_O2#>5#VgTn=itB<>FD4<5F~_*R?VYK>Fn%en!Kq>hda_xkeMkw{$u;y zh@QBe9V@1Sg2MK-Y_olMDX^9TW->!ULNd`%QLRT6<>epwq*}R8D_!1WteI9Wb=fyr z#_7ECp606wyoa;*)pV%m=jX>d+S<=B{ZFfkikL}f2jT(?;n8{YQ10|jOw`ubPw5o; z1xNY)&e!OuuJiIj*>*J#7Wwg!mWIaZSr1nqE_Cu6LaEjfTDUkNXt;FB4J72MdA}#B z9ShVeWnErpq@}TPaEOWhGO^dvBB|d%zx_s2GtsPLe}BK<*Y(z|TSe7v@84hBK9b28 z5TP>A6QMQ_@JqW|imIs<(O(s46l7&(O-)xD8XBSrWk_zN$4mYPP%g2as=;-Qx z{P3afbc4HA({t~SOdE=)=cSjIS7PFmkBwH7WgAti3~=V+!XqQ@Dun#Y!;4lpG&I5<3n6~|3MaqG^VY0>G;!$5v2CMN6U{&b<#P{02Eeq_<7 zv^4UOYHnxLVEP6OVF49wsK^nsCv*2WLcLLR(}-OEWF&c1*)DZYPrs{+j=MT&#cK3B zBAJkpbSgzgeWb|YorMlt8ylw=jO|@r3l!?As;Vj~DjFIZ&d!za#YMU2zW&KFkT*9$pz48QsSL z-_p{C&C0kpDn1@ss^&Q~ez?URCy_I_gY`+kdb;7g?-Li{)IK9tf;>fVk|R*{rKo3{k=ouL?sP0?vFr@wh=~H*Z)opEQX&D_I4X`{a9nw4leA`^&2<* z|E!l!NrEI%w6?aU9CUF^i3#I+8-9$F$QtISu81;#hw=FTrbG($~x!3ph?Aco>DU3~=4DlEp<`^qQ6y9gHYb|E%V@Vf#8CsVo zL$$TFHQ)2|HwxRH=mviJ^y&H6pCDXwZ6N^)od&x-9tXvnb*GZ5JMC0S!W=mR%SYzV zdK#uK4$6PL`d?P^zx~K-HDaX(v#_x6`Sa)3u3ZCNfQ7`VhoTgmk+JkmBJK}S&Y-Hg zIuFu5PcdiEq?X84zf|>bVRolB4flQ@NlbXTAWGUI% zH1SU>8qJ5lzxQKiVM$ngrK(C0_HcTKnIH&}Ci}8dmlgm1*RNl7m`F)eYHDig>gp;g zIC**9)5w1ru`Vw!gHWiInfV6=;Vk^!Rx3fh`cee#?d{>AfbA>7g-SWtm{3zudHnF< zbhI}nCML*AF!z_ZxN4I@8l4m!S*hLB~u16*R`jR8Ule1rO4U9g2^V@$DN{Xyd!#@7iw^6(d`9W*SMejvlN{ z){ZSd08Q9AN_`tL8{dQ;?X9V)iHJx@pciGg7^mLAPgl!?>deZrc67vZe}oDBK+aoV zUw=CrY)6dvx0)KBy5W%#5yZeZiMar4Yik}cXRP3o8{hyeVa*T*2^k;Wwc@2n?lU6d z6-t(d>M|Db@Te2!3H7F+pa?z|N8kpu8kbp4R4I(c**iFhnhu(j3O9v1Jf)`oQ#2WI zU0wBOC=D`%WV3{ajm`f2WS{2iPmA*Es;aV*lC6#jJ?5?$mNuq~zPBU`&zZ=RMnx^HuByq&vDmNtiqi5p z9xl{{s;|7fIGysmbXPempYq_=Zt}KY{jD*4QCU?LEKlJuJ>B>b?wV{JrNMp~Y|$(W zgXG(6SZ;xZ8yglQPL?A@`oYaI7bS1l`>NnK>D9^tS&7Vzj2;p)#dYh0=f#i3AkMG|edE@u(8)X~${rmSzl<8;{bHC^_ zlNbgkdb@GSt5&<8I)r+|9fUo!AUe|w@FO53baiz-Hk?FfMuvrlJB!H4VJDTSS3A&S z=4sZdM&5Yx-?M6|{=mw|7A95EtGJp`z)c;MeZnohDu$HfD{Dj*hOh zUE<0^$G{j`w(BPr78Pw$`FAc9r2ubpPKo&t6Z16!Dm^PJi;ay9A+M;2%vtPCFfCQRbLY-Le?Ry`J?0p{A45Y* zk=}iMeYZa*mzLV^%(rtsw;G_(hIX$U_PwY`wv6=hyVJG~>CWMyqv~q(JS;uv7X9Sn z;^O3gtI~st!pcB-CX4Zk!rXe>CCQA1Gsfo!`}^%banL?ZSQrMn?++^V@2stvO=6?r z;NYAdZhEd2wpoRtH1}aJ)QYCta50hnhJ}c4L&?XN=xaV%;~e4tm~^zTdfa`x7EfXZE!mPlL1r|0oz8gD75s)}DjLrIR+N$v-ab;To*YULIW4@Gl8Pqkdv*$RgT z2Ac8JiVe_p*IMzkTAV+`!Slb32|2+!M^RbXs8lsbh)j#9mP#+se6*z9q|~HT6&bCV z)78;|U20joA8D7_UfuQQkI~|mA1OJxw;%XxYoX~y;s`7mU0q#EOUBFiurOvM`QFyn zQ_`Hl(aFi~JCPu=H9v=j4ttZ|Ab!D07#Vq9d&}NUnLl!g0%eG?)tStWOG8;Xx>aYS z(l(=2=QtT1At)%3$WvKcd%jvwzqp$sDovUS3|IR3=JFA=M{WD-@JI ziW`+!tE<{(L6nq+mbO}cosxnAGZgGMbtCQjnQUn;diRUtC1~(FP4^gyxa@>g!SZ+G zyUvHc%|8pS+xbZwSU6H_I2Ye2p&h~Z`tJg|dY5FxtSfe08N9Lr0s>M}Ar-Z2tEivV*QR37$k0g5@^JhLhNvhKgk+c?ldUYEP!uK zqR$BetVlXqWuG%#Vde{0)5XG)k&p-)*tDOVG1AZ=#;mNa-fbNpS0{~qX-mm~Q6V5Q zJT=Ad(pjY6;U}yYtZd!-8K+3kDp0+`D%tPXvRw^#*aY^)>B}6&ywM{4ds7r1+_CZT zYti2C-@h+%z+==jV~#mHKNlRXb3a8UdLy95)AH8F$}PceSMW^t+dR&i{jFw6?B11| zONShWtdsu9^K6c!xTxr2m;X`@7wj>8P;O?X)6tA?dZ-l7wzt`7zwt0Ol_byMxNSk* z35}K;R85I0Jm=cejp`^mm7VF27|h5B(c|-VFx=1xc6W9V?Y+GZbvvh~v_|PeQovTG zr6H(TeXnGj#?OV5AN}lfuFE23M z^ZWdnK%c|L#s+@08GG|rmYk&ShmRkr#G@bL;!@I=jF`dK))jC1{{6-B3VR&7(tUNC zZo{|7gOnW<8$leCR*sG&PoD6(9evkb&s8Z7CVI)t!$U{U11IM49)&y#SRy_b#lgel zzdYNuu&}7%kKkJkKk3lAkX2AfKjzC*9P90Uf%KVlULqc;I_t)sF1m+~&K4tnEs)SfsMlj{*z7e0dnqDyyl~`uA&k%Y@?$y`{&RbH$bqA5S-26;2^v#wDuoArdhC|>}t}! zfA2LZg&2z|r>sn!ugl2DxJhsSZa*;JS_2Up_bi3+p8VqrR86ZwIUEk&%Rs=C+}SMGV~K?cPhvqEd}*1+i7cS;|Az2bti!9 zVtUHV+&?rl^zH=_w?n5zc}P(f^tQjl<^|Y6&3TWU!4=3jGc(#3_|kcb{CmA`?qEEz zi>-w?1&eZRdD%Mt;w9r(Q8v#DH_{VWib9tT|5gNFFbnGFkOI{Hw?{))$G|{%J+)j- z()WrAr?pi`;m}p@S=44_iPRi_@zdM9U+1=dU7dDzZqEOQ8G8W7(Bk|&=;5|#S6{p4 z@8gd^HXh38>r-gS=M2Wg#LQ~cL=|W}d;VPHU{cmAr}xgm-X4AsGCCUH*cpMii3uP} zcN=llV8;gsSKOxV9e`>`K2n@{4&K4CGwz9X^4@`Jz zD^zuYEyXi4H^*W=$|@6(1?}nle3Ep-)<+%KLUeFjS~~2dXZjx zieLb~ZbuYjPgmF14Nq0o*f|b#G&C&jICgWmdV|8PD3p3sJJodf3hweCw|m_Z83QlZ zLjh2=s4e z4`vpiwKT~LmbfmLT0UOhgdreUKy-Gv`$6!bT1R>#Hj}HXtL>~8J7a=jx_Xv=P_&sY zO$}&(i<=v=nqU9@o{Kun2;XeY&DzV*bL( z(!%%D)YKrp(Te#%>)zPd2qirhtkG?IFmeFM1s3|7Hy{7Bk&=-)D~O1+1NuyF6pLag zRi;DxBruvk@S?6q(vgqn>KJE2eS7kaC+Y2|rxz2bw9eVlc51;(_Y*s0^n^te?vs}` z2==IEvazwTw;|)jh9PEoP!k>nI3y%V5fOW273Y-|uSgaieh zU0u0P}a0}TycYlrf)v$HJ|GQz@s ztvb&c8KWk|;fuC!puQ0h@DnCbk(VbYJ?8zomrPWDBSOMvtMUtkZlvFf3 z<_EqaBErH*uaA$9J83H^;a&CuqH!T#rqee!r^hg|w2Ttu(rf`11ncOGW)l|C#zvVk zUD3!T5-Icqh&MAQC$)|2?|fb5*RQV??CkF^xWZy z3Kq}RUV!?nj0~!K@rcFVFE>s6JN3rkDfKGvo~`8b3xUG_3dXecOJjaWrb z$KvDT>+1NP(4BvSiRJ(0Kt}(soFr|NijIMyPUxV^q?D41YPSb0*Kb=o+z!A)eW`EL z8Ch;sFl^(A#&sEZdU|R?=+u3If5e@_s3|KOw)S<1-)~RiFX%;(RkoMNDJd<6zrQ|7 z)bLuxsP|(5exiA9Y-~KFiUo11{d#tGHj$Pah84Oj7rlg(lwn})#mQ>00x0ceyOakh zZmFs{^iOkhbKr)o#_n!zHnz4nXssZL4r{}p7BbM2O>Av#@#s}s_@P<6K*G4;h<1*Q zj4UTR8x-&e35g4O^Xke<`~?F4Q{%gLfj}l?uwc{y@~fq#rLImV(G5QELK`3ku;>cP z>DU*@!twZ*wthxqW#&L|AhEE;b?JO3z`+qjfI|S<1G)T1d;9X{CP$2TO<7u+-c+4C zLS9z3$b5_)87-MXNJR9gAS5IxXo0X?nGUW2U)pUBm?^QY6!j_E)d+#?<;%*Nns`4* zlL!S6W=pYyMHeqqE>s*eK{+`&Ev+PK|KMO;vR8@T{Xyb!>=ISfgu&peVM@eG;7rw- zp>}d|0suLk5U-t5tO=}nr){G1V$8{j3+d>0?Hd?dJ3FK)kp7nO9`Q5!2^S0jj|tS6 z85I>s?c;P2H#UBb`TP-@u{Jy%Ad!Mt3@Sy4vJsgu>Bs{~4h9`P5hM1vG4fo+oIP6V zM`$V^L_A+T>}+DPa?O?aW*)E-Xd>+8$dRwo(#;yn{PGN`(<&Hv9gJBHt?maF!qZLQb~Gs+9n4Vz4?o5flpdamGK9c_ zKeGXb7~j*ICH;>{G*M9loWUZE?{&RM)|#RAPPj)l3oj|1pR0kbuj zTnP+xbe%edYvYvzI)$9K5kf-nr3mi(=(Yv7f0JcsymZvE)(f2TB7g8z4F@bdG zj>irtIYYN^4Zxd|zQKt}LL!AQC?1)bN{WIa2gi4zqrvd}x$zp~2%s!b?O=XG;1*Dt z2v$x`zf|<6<=V}+RWhg^%BZT2exlG;Q;W;}o|lKd`SaF0Nfz_8acMxnrLk>(<;}Yr zg(W5ORk)tZHHtaJ6sV5tqk;&uR{p8ciGhJPSTNzL5(BT!WB2EaQF(Im>l#zOtARsP zbF<*t?>x2EZopJqgXyQ^y}e%8=tKHgXaH(X57x<2!otE}*y*3U3w`5SdU`r#xba@% zcVJ4atcKl0q(%SK1^8wrrQHeKN^7z}Dz3O47aLpYw{Jdv!B2R(4#?Nm*Fga_YFz-3 zvR{5U%Rp^li}i+AzJzW|6wG(JR*Z=F`n8qHUaz?iRKSzpa4=he=Z4@LL_}gDUw_Ya zQfB=7@Q_jfRz>*qtGqcjptrKUrorr6ln{?vfj0!27~uAnG|+N6DkTIQyg`VXSSHhTjZ zrRlO9sb+D!)4>Rvoz^*zez{HUEf1`&t_pgAr$TOy6#Ft!jsj##%BAIY-kCo;-fcTl zAXYLA405->8lZzuaoHEE-9{3^or4HSD#>Tb*B^IT@*U5ILkT_M_c$YUw19XT$kg|H z!f}c|FM-{Bl)il2X8s3e#_GxOal0td)%8la8Wbd(t{la%oD}bZ^1|#a>3X#uygNsj z^CVrKEwu#`>jnbXIli+l@#>YAoeaC8ILw$C_&|SZ9KpPET7O^yAkHa6h>1Bf>>C1? zETz600*h0IN3YY-(LpHhcNOGIf`-r&-UTtn4{;e29!^%PYsbY+qoAxTi~s=VR+yU` z2+8_$S~x3ZxWAOKkFRgXH>=|_s>>RHFyZaw)l~CRoX0C?7Ay=552y(8je)#rRR;wH zoo%CFrl+O(p@0@>{z$^E+yAX*P^`kmN|6%7Vi?SXdW`+xic6YUT2iF|KL!XAste}x z?6HuT*u9YP@7f<(QT;PhQ$JD-gN4)=p;p{nT_x;b!S^!#B$=UBYNB9Z@NI9qVIftT z8nBm*O_A9*`A$7x0-(uKT$nTxuE6=8(2KsU>>o_82gIvu&lG~4CUV!xUAz;e0VlOe z)8Q8kTw&t#fy5Q!Yk&&zzYvXSpTC5~#am?l#Yg`^4BjEx23%CLj(bGbi6;LCAQg8Rb8D9+bCS>xsp&kd3<`>!A=oNc*1Ag z?bkzQt_OXsh@3p-);-+7{)Fr5B-kuuO!)T$3n9#eNX0<^Qg)o_fCBHVjBGc(zcwImVxgTrpjKCnu+~;~vjM zCf(b*YtS=O)&Dd$Hj1WS4gDg%!gOXyUv_e%>L}Cs>C81C&Dp;y?kzrw26LUMjrbOhUCr=V1B3hFAc4hwj z36BTs3o}5NbDkl0nlk0H3(XLzeRRs--))Rna!UNOlK#j4N^zu2Oqg%4{f`g+^Tf2l zFF?*;|12*<$WMZ;lj);%k{NRa`wK9qPfbm2D@w`8$QU${kd#Ee{6Of_Z=4kn5FnfN zD`6MJ-qFs^4e;gJel6aJ-s{(miM+0XLaA5t)>3Rr@w@l#aXW2ID~G8&cek#+g1oS& zFo`lmno-a_0frUx@qM3wks{b1(5`19GNJ0G8z*nJNSba8R9enDRsKrKixe`6SWdU{?M31*rY8#~YX zQ|YOM0)&AG063VCko%`*dPYW6R1`P*?%v*bsi~5?`#HR{mTuV7pa%onz(P=orTKZk zcX^6xii(QBAO0uu880!G6A-x0Ku}@A`|K@ZHc~uK5j)fgofmWa&;TABcIckV{`PjE zY935+VbFUu!p*n>GVft|FGm9Xjz943e?f|+eRk(Ppuke-{AXpw-@XZr2Y^^TiU0DY z7XbT*(~}cBu7nDAVj`k>t$06}P+2=S3`#YDSO>WM=^8R-BM-?nBLQO?ZF)F2|g!6ZR!ENZm>0s!g|W+BxGVngEHTwcZu zfFX@928qKsc7`^D0oad_|IE_TuZ%mDZ)I}& zjE)!^e^@*n%GaQ!pD$NNM@KIb35M|-Cerdzdg(tfdXX#8rz=uxbVX~j;bGpSqNEhv z{2TgY*3_uq#KXbCl#!Q@7}n;I_s$9T?)SY(l$0}lHO3Z)`t|gz|4|Ovt0RBW$LIDk zvQ#zCNuYOlcz9xhKJNSw=*un_I8}JLHIYgp;nLnJd5S9dB(JbSTXi69Lx~|;NDjAg z^h2lt062>P*E*8zPa=Sg(Iz54miJHKs*^0jFr^o7>5StDadf{L8a%x+_sq=9dbG&a z)@@(h_&y^#7@Xg(sH}ui+8PZG4o(+~;-XBxJIDVtO*@e3t7xkywbg88($NRN@8rp< zdELN!8sUwo=HUWN{;;#N1M6Xq6Gfd3uzTU`I131SJvq0`ETjKV?2T0RR91 literal 0 HcmV?d00001 diff --git a/resources/images/tizen.png b/resources/images/tizen.png new file mode 100644 index 0000000000000000000000000000000000000000..56e81e8f9b4a9f4ca8caa56e0d7ea14594501311 GIT binary patch literal 15461 zcmbVz2|U#8+pkt4`pL34tvQk(%owV~KpLK>c}r<9KR%S@5b{+GP0LRBqW^qUTCN*=~!-?p24I_~d05vFc@Cg=1kc zUc85M?mw@kaVxY!ml-c&`4Pd-;5vT5R4?lgO2^%fUR~x4Mr>?YpPJoF^442#%2^K2 zc6SNbT^(4gu9jG5i8L5_oai|bvtl_{Z06c^>TbN_OEIJJ;6av;OX|?q`AHI{!NmNe zDxW`H;iHsfFZuk5MyC%B4qk=P;>PifEezfyZu6tc^4#eD+>`Fp$fXxoP0iOy&ma(x zYCMu)+Dz9e$`ci5il+Z`s+AzTH9EvVNgjmPm1K>cOR}$w&7TU1v(i#m(|Rlz-<4pC zVdJPx4<&j@u7>G9Hs(DpS@7#E3cwRLa!ouf-}Ks?*RbgN`fQkuX+eNmNW5a9s-)1y zRubE>I%G32qXe0K;+{G|2m0t9tlSAx{G0E!@azS!-_2R{|x=eRBYAX&_?A3qrm8#(~Wge*P2d>TxQ<7~A zq?41fjFOAl6B7&k>ODD}GDYyacE1e|r%T`;a9&Bdx%Y)wD$lMyL_hJ>t04Wt#{*N= z*k!E4iErO0#*xLmf0i{a&E&DUosi|#fD_xjCr+HLw~MTgF{&(bRcS6OOs7#MSPqM7 zo(m^BPuyJ}p=Q6@#&(;F_EYCiat!molxgbo zqXth0RV2%neDve0;}-5*NRnK+^5UfCkpBJB-R)m3+?O*PH$teHs6{(Z2r5JyXRsX$ zM!l`a2KchY$L1N1rs~x*qJp@Pf3CIqNbdKe5>NB__0>OIeTPUq&F4^QmLSEqdh>zrtF*ie;tqiMiy zf5M#T;7|~pt!Y-%N!Euh$J(d~^oc>-fz{{Ib;{FxN9lG_70I0-Ro>d#^?@4urm}k~ zZi@wfCL0E51QhOU8a_P2<0kG7B4$o}rAT#0%4J7sk&vawD9LSM^w6Tktl&%UV$heB z&4t`9*M^g0wCw9Q-n#nI2t0aRRwj+y?v#P<)**qy*)aHBrUN7`Zy7u>NNOtu^(r)}ec@8#V;;1ubp{5HVKP##S$j?iXb2UGXCM zbH#+}Xl;LS_LW<(Cht#|>0O5A$qV;!CgKPcL{(mo%jESxi@pES2>SufgxbmsI1`kYyR=KlAcenVO{sb!eKnS_S12ob;tT;$GnD2myTc5%%CaNm?DNV3TA9% zCZ%3jQ%m&_O0toqE-l$HFjn;*$|tUhdahU>=9f&t|Gi6lTz*(*i%W3j22+M6FRG5p zi@+gUnypcC^gPul(RnN>oacXC9YRVePG20R=hEE#DbXS~>FFQK(0=Y5G8OGR#;OhF zc?)@Jx#-qa5-KbEU52{4l|jCWgnDoH+$ZK`uYLs)QPUw-%D9k&_JI3?49+pLhgxFz zq&&2A-yQ^aG!CKrg$y0F$H!Jb?2J#l56Oy*vc~c#t{kMFlb)d(-}o&b`?F=(v1ui- zw1q>WX2g2`dIgo|Sa`U)gZt6fwyAWK;W_b%F1bC!LZ@G59bv zQn#un`Ks{X(D*H}ps7I1=bT8o2P(wfB?6w!*y%$fbcePNXYW;5?$1>T$2?DT7$;J& zTzI)`6unG4C$Z=nUOAI*yqF=aQsNUQut30y*`_;n(lKBB=xMPMF0EUbe7uGm+%ChU zkyov}eb_5iBecMU?|C2LDvrDnHTCPf)E;TI%CqE6%&POv8_|WQYKvrBN3KTRW{Vpi zdk>hS`|5Ai)Z4Dnc^jNeef&E0n@_mtInl{9Hg)g*45NPaal@(j@X*=gP?{nA!}M7C zhr9RspB{gicG18di%6cK^6c($AWEkol2ZH3<%5pjf_1eS2-Y6`D-*|mG z!u$$l<=DokJh4_^a+-nmUUu8X&gxqgiMCk!;&R}4$9`#L`9Pib@u!h?9cjgU)%)8O z%{O^F`<~EmAC~lZOCsOAuC%SIJQa;UW$Wbn$V#UEy~Sf_P{K35#=GhJ7;Eciai163 zgDO?0QmfBBg%;y$4tZr;Gh{@Dr7QRA=DqwiJ|dck)m(cq4e|C#>y|^<#NI~_Lh!pz zIbI04gqL$*rBm3Ey^WkFpm?x6S5sAhZfV_(sP1oSk8Gdt={zAE6QrePoceND!@j>; zKrAhxdad6=kf6=Nsr%>x7g=e3U@A$%6SiOTT(`*Xk(h@`OoPuJ2M zsV}N*vz-Z^_ymnzU0t&zVN=Q`&yJ`$Ub%E29fnDdp|$SFdAy zeSKM#KfF&!u(h`z`}K=|%S9y2^cuawlW2t}{M6eXRY)#M+-QZg++2GUYCYP!J|Q6? zEG%s4n@{)s^H-%++!lUi{QUV-mfqbjXmDsKcl3T9RS>Bhf|!_CFT2l1aOy^FHcg#w zp?Q8M&z(CFL4$*XevhJ~qiLIa`}%NiVzhJ3=@cCtcsv=M1e8#yJI$y%gQV2d)Lu4R zm*v6Uk&)Yx$9t>6j*gCvuCEOZ4YR}~C6ku@r-Z|%o;f-WR5wH)uHub1;h1=OidOVZ zO->#iAM3JkWAgG;gCf`Jy1MLFhRYs2cu@7%cqQN4`yGc-pI<%vsgF`!qj9pk%boF<>bZ&oOK){BWr0dGCX>-_>=z(g^ z!HcD%(%%oNf`V|0_vR!|_qXPIY7PhXy$cAqT>NKZVtqb6i9Nb? zbaXUa^2Dt#OLwX%w5_FuSg@MG?+q}HIRM~Lc5IQ=#wis@U3wm0*zbT3Hy_bi} zNatwmJ`r`s3AEMMPoYod(69b_u&5*|Awno_AM|?0@mYkqp<3SFoNPo*H90#u3#3zqW;;Ac-EYxhzQ2SyeGA$E~}%q&PElkt4;d>i*L3q`Y0(W zlO(+3f;hR3$9Pjr?-Uyg#`{-DypT!lw&a&dUGLR48p$(}R#sLvHBHUUUA-Qv62~v^ zHuC$o+wO?#ZtiA?x$C)rGFCJ3#BR$a^8H1lQw78Y@4%d%`O9NHu&U-W7SENMW;OY# zLmM-*^-D<93=Qdt-90>TO|?yqVv~}%haKUFtLda^VX{}+nwzoVgTE(=Q)02Oun4I$ zsBjSx6)hY~G;w5q^5jX~AhT@P)xL>VvzeKh$+yuQ+6rls%T*~Ubt&;ro)Queu%v|2 z2vLxe2lrpTe0g?yI>^GP(e=63ZuGl%0h{d&WIt&YW z`Y2w|mMNvY{4P^#OG|`88g28f=+=UQ0zbctsE(y28*c9042|@H#;7Q=D#O#H)1yG| zc-O5z-Ftg`bfPYKMP+4WGO4Jg-}!KG%#Bvy)2?*OGAz%}6Z`CDr>9%YbtbS!znUt2 z+Vgp4c9vkn8f9bD+1a_ID79XVl_M0hUsO~Z+c68jeR8r}Q&LjGpx~W27fvfuw|P|Q zzS&@^c3)Rl7dAUPdwIGgGJCYH=<8R0A)yMmWnp2Yi;;kUKz4REDXVhB$o1i`j2E9{ z1nyioV?t6m|K_UwAuBTzH|hL0p1LI7bH>8BfAgAud;ON@|D&r*h4Hb4#oYLKo>|LV zUu?oj<_o0-W?G6J=6qe7mo8nh={Dm{5OrOFij#2q^CQQg!jE-{Am!snM2+Bt+}}wU}C7)R{9Df7INQHN=2n>ZEfwWa^HVAd)RazE)SK2 z2koqmopy?@5~+E3cqk~~V%innMn>vhDRf;Oh2!z<+qa;gpu|M_5G>y2f+EUaJn$;m38WgSEOg4q0xi>Lq$aNqo*ge*D5$@N|=eHU$@G`86HocK6P+# zfUA)a192$TojPM42ij(en;hC*5t>M(m__FYhHz=7YkcOfmD5c_08CH*dO%fV zA-G}|w>>`alool^iN{nPEMRB^ZN`OH8iGkVU-)uxa(bN}@7^SlcXZ@yi|@8w(6+sE_Mi@xiB+1NnR&t+>*sQ^l`eUW8;)pjaImn6gY^jM=k#>ETyA9P z^^2Us!h0pF!tCs=-QC?|V@7OGt*j=6xi~qM-urq_2DADVDaLS#`y9DRNuBS!HY~-M zm61WrZT{qm?QrROIQl4cZ+2N*)O}<6^)x)Bye@PYgu4*I5v-V?Urkr5gin(TK|Sy)oSAAkS;om3okVlxCtK_~Le z>|@cfVzJGDx}hN#mu}fJK>CM@iuJnZhDlF=oZbg*S$(vjxO3o3DB-qNi!Bnixwd9$ zY3cCn*{hHcQI{nueT)`{9M`|FuyD=aPcPftwtxgm8jVKphzDXY9E;>bgM&*;OAcCC z;>kCI5ujqsJK~C*7qtMdw5Z6)q9P-u5wNFXT?~>w$TamU@n1AE+uN1&_4QG~F)=Zv z1NDJ~g+o&BzU}R~-5|2N??!Ry8@{v3zpI}An+p5i|ILNB2E{T^(2pMV?yXN*bS2*Q z*}H~?+$M5ycD{M@CN!GOW@Qa_gL0?&L~+l6pE**=*O_+QesCxztF|YKACA}h3cEW* z63QwnDA3Z<8lsQ44-P!engcZ{3CYIBhE6$G$eerPTy7KbrWksC^1%m@(iUkd*dY>< zx9{G4?q5v!@Il7}i9|xH?%MR+U1`L|c5s&7Yof6y>fV@XJIqzj&;(SgdkmY7K={d| z28V@pwztz-3dyA2;p5Xt?anf&D9*}KVpD-Oq^v9$-ytF*^5Vq{6bc3FOfmHN(;G~js=T5?TU&d|tiFSyuCr5FR<`-mr%%6s>u43&jg$j~6)YMKOBow~RATXj78|W_ zb1{{Kl(em_&D+aMrzpnAXFr%V@p=jXRgoSYDQV=JH}?=dpC4LVS!HHqpd1~UQ-GNT zGWe8YFd_a9A20k_TGC`Aqit@Pc~*uz`KidQyZrN94(Wx?Fkoc_)oBR{2Cl9pKce%; zx07B6zk0>a%}qHcA|WAh=gyt$*FUDG%l=Utz!MTGNmGoWm-PAIpO=x*GB6N(^G(qC z^XKE@;&k3(i##tbF21GlnJA*g?C0XPaI=H-C@D$A8zMYd9O!tw@g3?JzbyH|sd`4+ zjQXIEcF=`B>8bGnG7u6NDhIenqoa4zP{5*-cAXt=vnSc;E>_RfUhH%C^aOhLE;`!Z&u?p$XWK)3alps_en3Orxr-MsitYS1 zy+DWc4gXqQV+bXKm>Ul>GczF8<7h2RM`tHX%He8_QF>3X^v~hp;hGFMBESclo0?k9 zB$utX7kbs_-}so?ot_+5xGa-Us3b|;uB4wlhc*1Bz8ji#*c5nyWzYtL+JHv}Tf*r( zZpO%@s_l(X=d&hxsk1~@0S-^ry?*^Vl2ygUoHw@NCU@mp-MtI5F9@*41Fj|q z2Fe1usHmviyNA_`0ziiYPTPD58ynE1P??jN*>_}Ve}7*@SQt=bpwNO;OROPkIR9c=h2* zy}Lh6&~`3c!^Y<3;=+PVI6WObJy*LDu9da5^WB8_`1p_zJYsSRii5*L{o`K2!U3=8 z?-9^;ghfQ~QJm~fC}8-;JQpur+BO1A8yX%KvmNB0z;a7$PGB6?1VUg!74~1Q#lPt8 z-^f`pnVEIzSUj)S(v`5_x4=w+fB$c<4*19u)BrTTM~@y&HHRmOdloCC)yZCVSoV zl$J9psi?4~{Q2|e1heJg4FHz+ySv-O@k%plNo3N!?Oi;^%MU0G$+*MmY@wh9EEi87I3cGMIR#sL{cSkn6 zBv1SF?MGb4yb)yNIVcBtd3j-Z2abR@ z&RSAG8zVzAo)6y_Gco~S zGbt!3-C%MGfVbrl6+MjBHU#okq>x6!avSs~8LmGN=E=qo?jbuXtA$7vi40A4{L2@J zuU!pjXlQu-`l?`Ix!d|=VqzkIhn9Qo%S-Sf;9aX9FkAO!W#r^2KYX~ozFwR0GQQXN z^s-U1>YA7eqPn^o$TrAB&LmDh8<(#I1?pbhtnFwLHGpi;wwmk-V(uG&3;36%m6Vj8 zJ>w;wcPbC0_xMs?KG@TF znW*2@8Y(GWC4Qu(HTj|THgVn7mJ?Hf2lki#MP?=@zXt%{@ruG>@R}uq#_;ALAt4T) z^MC%Z{c49F6&5lx6|)NoxxT5lwY7c1T~}AvaOjLeU9)T#dD2Q|QWFsok+oQupRZf$ zU}9vH1bkI08Ha#iRyfR-snR&!k(PCdjhB~1`zo@>QwlQ;y`Rg%)yT)khb1y&_bpI_ zA3s#ru~bS`;zeC^TFiJ2nIc;n1Uk&&g*KsSyp}PwwEWV0oMTuO7o>CbuBhnd#)jW9 zb!by@v7m454>SgpPfH{#-eE^eiyC`0;@8knd`t{$gd8w}tCyusOp)Ag?O zM##uZkCux14M`0-qFaCc`Xyl9m)E$zIY$#J<6En0U~miw932&vcT#-%(c|YQ`N_4R z-@l2}6cs}vBYRXO667OUz;y~1Vz8{lcbJhDelt9b%+`v3^X3QW6!e*(hUJAdF3ro& zUtg(ME!NZUD%01b@*0nM`}Xbo_upT#R)>&UTU!2D+yu}-($dm5 zZ-{_axa&ebb|3W(_la&mDg$WSygG79Mf^*11_^(8ho_G!^95wrz*VTXHr?(5^e zge2YlMrd2LP;Yx;28J#cWxzyb<*+@8$RGlGvEO}tETfrc?vC41esd5TBjbzPEG#Tw z5#>oe$IweLLHGY@RYWMZ_IyoT-^1eouv}DB^tN3)%fmP`Q&T?FWCNHc1pEo9{fnfe zq|gxuV*KEY#U$)qL#U}msArhTlEaY&~2l-SDcAJldrKz(s?62kvZ6JB* zgNWnjn3(>iP?~h5*g6HkrmD)y&&mm{6eYGpeFGpk=9G(5OU8UenVC(&-h-8DEk7z` z`(OE5f5;tDC<2Nrgyx3_m-U_WN%yNw_Nh~{5k)Id+g(AAztMiZU?wsuwaztZe~Cfon*`FQJF zU|?3w;-Y-n(ZVIzA5+=;OmZV3!-0=m0fm~gDeqm zV{@}3t&q!-&d#Sjs12^$w{L@tNlBT^T+volRsDvd^~~YyQxeN~YZnkMc$_Cg7wYZio@-bH&KY$^t{&UhJRptIZ~<1Anf#sHmu<lf4&&tUrlwEzz}W*T~4oh>7z-YTw^!umbRtK_Iraws2f6}ZYoH}bND9CPzrSP6PmP_~*W0_jfXTJuk1Mk7 z2V1eQ?)Y%GX0uZi5e01G!v{`@6X2pd=yZ4kl1x}sGD^y+%$G(D2Q?+*!eIv0$J$V} zP{>GR=LeBZQ+*P7JG&L|`hva`7WQ;^-(h970QGWaGF3iqdmW(hL9No#9<4Vs;N8Y!c)6ym`(z?vc5V(795fZc+K2Ii%VRZ? z{QP8;6v)`%YtXYqDuUb-cQ-frVwI|5qQJrhPc2GsIK3l5wBL*u%&8W$$vE>u;I8h? zVRT>@@bhb8dc$ahl!1Omw~mjGL!Udbg-uA5L?&rZN@U&1KZ+!c_s z=|~m$mj6(5fQ{hM8N7!xy~5GD?7V_m#c+fJSal9 zjXo;@rl0dpoRSoQ)ARHDA)`+X3`VXu6Rzn?3lm97N~U&y>9y)gk{m-XC%BFdfc#N& zJ2`SsuD|wWR(yAuxzgugK7AFYXV%sniUAt=sUL!hl}cU%1-i6!1f9D%oMClgf!$_u zVIflsb7nCTOkD5P)7K9?d57(hKKWpM{Q~j@kwTh!;vBS3C3D^6&z}RfZ?CMZOcJy7 z{QmuCWyMYnE~CGH3%fl;Nfui7b7gCB_^BdaY4-gJDu4cf2i|d$0A5AeJzCLNAh*fGb=WXmq z>FLEium+BD3w)A(Bv_2SaW6qEgtSn(+^DUsMSS%>+<`W?J_x-Tnpud9P7(OXA(;GY z{ovM;C={w94e_YEpcB8|uTEH7N}Ze`Oft&|e9cvxCF+l${-y z!U4|qlZw*Py)*BHHCjPjOsx7~fde?)DIU4jZ7zrrB@Dk%kdoF1lmdjr@jg)iD+!_m z0|UCQ&3GYu!xB5Xcvm$xGRP4SW&lYZ=?p%5j9k}C^~95ZFcjqLf)tmP4Fti1k8e=v zmakgd*C%-APCnEW*gv_sDrxEq0bm4a0o=J|h4UH{pc{$HQ(UE(?|T>`Tq zGc$92s<|ssTt7{H0p%G;S$e4m)W#$U zv}~Xm5Xzoq8cTJdBcxzS`1$#LKeHq}SXo(_6y)Uxif#3^wBFSk?=6dRv9alVwNyK8 zUL+vy+7#<5><0k+yEj^dutd&71PB0DQ||rTWaWyfsj0M-6u`}vhq&T(VqgK#wl>9T zAiG#xwtY=4px`JE$%B;@yJvY-qwnfDh~BE#n`jVUz4kXwFq-UOTjbSQ-zW@dDdl5`WdjZ10X^7FDgc5Fi z^27rnNm_F$YzkiH0-+cY4b2c_Hk#}gE?gMM1ThbsK5WX+b6H?V&f~dt%K_h_NLa-Z zK6%$BfHBDRy9r^@z?_+`U%!{z55%FhRRQ7y6f;x@MA>yIjp8OC!`$3TkzDBcv=|-2 zC6METg9kf9_JuAwQ-D^Gu`S^^K6^&Ng_J{B6&=8*q7kw)dw9H7PYCr7#RQ&#{KJPg zQ~qfnPv8SSx;O$D09JsdsIMQ75X<^aq!>@BhL~MB0Za}@2 zQjg!I4#Q>sc>=Ng-$o8lhTC@KL2Uf|kXoji7slT9@boVzR)%K$_5|j(DL!XyD=b4`T3m zju@5X<_2CP2idFV&#{;`wzomoFaP;-Jq1$VcNbkcA;l`d3y&6BR?f|sp}C5Nj#hW-qa++z>q{JdGy1|8cvg-px`7)Fk*6Q zs@{jm%*>2ax4;ZC4Y2Nkvlti{WGSnw|AcnqK>Tg3;Dp>?2aX+dZrGOk`uglqY^{GP z2yHK9^X5?mv#eWUl92tV{nKGHUIBjoKTdargoMDWh-}eRSBG}P?UjGU;W&T@D_|m# z2nz^5Ou7E+YmP9)PvjDpo}2hdJ~{u*feh;(v$6l;`E%>>jqpS+4i0dMslkVYDn684 zro+m4tYT?z--SW~v}$Sfjh*ZW6_;9c(I-o}yNh`C&8Y$#37fLy0EFsUGD<}v5D8kx+n~g zNZ|+|DakC&C~N}S_aGd3KI7xyz^Avc=HTEE2?Oy$zL0BJr6>Fz&UJBF-tA@-=se+L zhpI7By_;vQvIsG_#7;1KLK18S$tu`J2&g?71fWzevce_%P1lP&G+!gVjFFmJH;ClO z78jT<0QyvhtcIvPC50(@gRe_W!@!`*q&}cz)MF7s1SkUpNU$H_N3j-(>uYPjOHorH z+|_ajke@uUN~PzGf8z^_T3J{K?Y#p@1d9O_7M^4^05cE}aBhvd#a(l>0iO2Q$cQbf zVsE)*Yz5|RN?8Hw(v{OmT|RYNp52Gn{$MQBiM8%Y4%5QM#(hK*5t^Y|P7M2K0xUZ**&X#A$*E)_>EZk5KEA z2iuF_M+Q`jd@CX_QBeu+-GI~xBn!+^yby%R4&Pd12NY@^?Ojn;wta#G6WiE$Tt$}o zcwpTxAb=zyFBfd2kp9cq*Z=@$LoDmrJ7XV$&R$RepApZu_tOIz86ODzcw@IwSpzns zmF|V$5Fmj)X?!{;W2S`>74hhjnT+(rI6+%#nwJG!C6FGzPiIVlQxvVx_*P3_pN4^f+vy3X zBFr#77Wmunc-rj)M-S>}U>2YYEERu$f0*h0jlW~RMvi;w@NySWU4Zx0RNom59FxDC zZ*iJx>Z<`TuL0#zWyrl13pWP}bV*7Z(<_sj|M|1|n~EQRrbH27%)yKwxH4xV=x9w^ z(7P3dG&7rqI2UHZDk?+|6&yO^1Tr!*Y#ev8KY|Mz8u}2x6XY^Xd&KM7T3NxTiOVZf zNPA37H@SL%byXiH77VcR^78IfS!fp_tgN{t|D2)OYGM3*TJt(>t=zFY|eJnmj%+W`1N05^s9NSkHSHe}3f(Iw~&ipp_#R`XV+Nb0~(?Y2Auo<>M3{5%q0XjFXS`mQHp ztA#a*sM|DLoF%F&mTwNm>Wa$cU0huL%DbvmNuaI2f6vCbv%Q_ITPWidB8Py%8Z8>) zpKa9gN=jmGYadI^VZ;pl%=ma3{i`@Q-(mye+5Jdal&+`1y%gSxgk{gxs(|?lNSg`1 z%6oX+C9Ybl!=so1nhV~quSz?z7`l7dR&FIg#rorW_wGG?daF}t_y(hsv-1;fumyqP zLkK*OFm#>L0|F2uqp^7V>ZfWaaJTtH1P`R8FA#&$gA*IvrdtAI9+9lfehz%Yqy_FV zXCrd?Dd6{TT9j8R6uft2OR1H z9biQm|s#- zvzSxS+S&?~%)bc04kQBJ)vIP9*o5?)?Cg`mb~CNfFg*k<+8lOOQ}Y+J%=(vrZ-V|( zsAf7>9HDnLliDUa%rK&+Brk80|8-DKPj3*AY0Pa3zi$A-c5dB*i(~5Fw&zPELQ;y0 zwbFY)JeQT05~)F!Qd4t!y@uUDSJxc`*xzBi?p58u&cFQI>4H$I&?Yc)MqP$%rB9=^ zpVM&rVL2?bnE&^$CjB=97swa5j z!jzRDh~FZ;<+(Z6y)~1ad+wOlwl+|!{_nu2nE*SASPe8$YO1NSawpKv+nE5dd3iiq zp~u&C%AP%ObrsSVg-LQ4Qv1uJMe6AtOsQPY_+`vPqz2>PugE!IQb=b8HfIH*W?&{u zJI+8Q;bSjZ?yin8P*cBJyd03uO6IlIEz3!$kj8uK7G#W%Fj^h&@AwA2<2LGi%WSg& zptvc{Pgt%`iL73JiJGS|fz zV6)USUdu3_jhoOC5#2)oMS$>Jf*3#~|KeW*+Q`V38=CK0%#xFnSt8|2rJ)Q*^GyQ{ zb7jv@#Ep^?G}s7|M*KbNR4OzjtW32Hno~N%i7@qCfV?=0M*Y0JO(E+)phXmF&$HA&1} z{YxRZ?*K75Ib2|HXcgED6eKO{ocXlS0kXb)(aC@8ubd93L$)FaI0l@m!PS*>pCU`E zXWj|aAYdrv+`}}Orenw0&q374XWpKNlO7)41>;CeoGBOl7CHRj3j&D$K0~Dq*3w@y zRC#w{3OzS7)8kKaAb@COWaM0XEGZ3*A_B%qfne6Pao2D(>YaQ`r5uNJ>UA?*sm`8E}$r zm~(M}VXn!^$KWGlqP4ShYPDvjr*GW2kyi)nwF<-aQaI>xp=bqN?Iw>-u-M>XwBvR; z^UT8?9_Hi%i+vBKbr{^nUz`-)2SXT$1%*Fc;3-8QHcvY#ABg;5nL1nhC$SL}Kp(}0_*ERp$5mjDu^7&z#E5NO)M z_iG<%Y+NnrH_7xivfL4FAb8bqB`OKUU-xF0<~e>!-7<}2PFYC3p@$1!5y}_jjF|N-h3eT_Jfc;{o+d0+1C?b6hy>z<%4oM za|)zAg?H~JtkhyNObd7R_C`;Y4i4&3JPWBO&6H15hf|9Z2$h*yUQURMD~E;yP6C)W ziE|+0+Xc;aHkb@pyT;JYq+&))7MyhZFTm)W|I=>3w zaAT(@C2#IA#Yv)162(1(JBJ}|5H^5yw7^#K@b)Yo4GjEaab*$#N~r~*b{Kz`e)WoKn^a&bZX z>hJ5@5CaRl!fxcQi8SQLV2CDfOwnr~B>EhJg=O#Fe@#kR%VKUeUtF#X$Rge_bC+DHF+1Z{-9^5pYc+Wk$2HzXT Ol7FC#$dNLB`9A, + ChunEon Park , + Woohyun Jung , + Jaehwan Kim , + Juyung Seo , + + PROPRIETARY/CONFIDENTIAL + + This software is the confidential and proprietary information of + SAMSUNG ELECTRONICS ("Confidential Information"). You shall not + disclose such Confidential Information and shall use it only in + accordance with the terms of the license agreement you entered + into with SAMSUNG ELECTRONICS. + + SAMSUNG make no representations or warranties about the suitability + of the software, either express or implied, including but not limited + to the implied warranties of merchantability, fitness for a particular + purpose, or non-infringement. SAMSUNG shall not be liable for any + damages suffered by licensee as a result of using, modifying or + distributing this software or its derivatives. + +*/ + +#ifndef UG_MODULE_API +#define UG_MODULE_API __attribute__ ((visibility("default"))) +#endif + +#include +#include +#include +#include +#include +#include + +#include "setting-theme-efl.h" + +static Evas_Object *_parent = NULL; +static Elm_Genlist_Item_Class itc, itc2, edit_mode_itc; +static Eina_List *gtheme_list = NULL; +static Evas_Object *rdg = NULL; + +struct ug_down_theme_property +{ + int ext; + char name[SETTING_THEME_NAME_MAX_LEN]; +}; + +struct ug_theme_list +{ + struct ug_down_theme_property icon_theme; + struct ug_down_theme_property boot_ani_theme; + struct ug_down_theme_property key_snd_theme; + struct ug_down_theme_property efl_theme; + struct ug_down_theme_property gtk_theme; + struct ug_down_theme_property screen_image_theme; + struct ug_down_theme_property font_theme; + struct ug_down_theme_property vibrate_theme; +}; + +typedef enum +{ + THEME_TYPE_DEFAULT, + THEME_TYPE_DOWNLOAD, +} ug_theme_type; + +struct ug_theme_info +{ + ug_theme_type type; + char* name; +}; + +typedef struct _Item_Data Item_Data; +typedef struct _View_Data View_Data; +struct _View_Data { + Evas_Object *bg; + Evas_Object *nf; + Evas_Object *box; + Evas_Object *delete_btn; // 'Delete'/'Cancel' button + Evas_Object *more_btn; + Evas_Object *cbar; + Elm_Object_Item *del_btn_item; // 'Delete' button + + Evas_Object *genlist; + Elm_Object_Item *renamed_it; + + Evas_Object *select_all_layout; + Evas_Object *select_all_checkbox; + Eina_Bool select_all_checked; + int total_count; + int checked_count; + int default_theme_count; +}; + +struct _Item_Data { + Elm_Object_Item *it; // Genlist Item pointer + Eina_Bool checked; // Check status + char *label; + int idx; +}; + +struct ug_data { + Evas_Object *base; + Eina_List *theme_list; + struct ui_gadget *ug; + struct ug_theme_list theme; + View_Data *vd; +}; + +static Evas_Object* _create_layout_main( Evas_Object* parent, View_Data* vd ) +{ + Evas_Object *layout = elm_layout_add( parent ); + if( layout == NULL ) return NULL; + + elm_layout_theme_set( layout, "layout", "application", "default" ); + evas_object_size_hint_weight_set( layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + + //Background + Evas_Object *bg = elm_bg_add( layout ); + vd->bg = bg; + + if ( bg ) { + elm_object_style_set( bg, "group_list"); + evas_object_size_hint_weight_set( bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND ); + elm_object_part_content_set( layout, "elm.swallow.bg", bg ); + } + + evas_object_show( layout ); + + return layout; +} + +static void _setting_theme_def_response_cb( void *data, Evas_Object *obj, void *event_info ) +{ + evas_object_del(obj); +} + +static void _block_clicked_cb(void *data, Evas_Object *obj, void *event_info) +{ + // Popup remove code...ex + /*if (conformant) { + evas_object_del(conformant); + conformant = NULL; + } + if (del_timer) { + ecore_timer_del(del_timer); + del_timer = NULL; + } + evas_object_del(obj);*/ +} + +static int _load_index_file(struct ug_data* ugd, struct ug_theme_info* selected_theme) +{ + FILE* fp = NULL; + Eina_Strbuf* temp_str_buf = eina_strbuf_new(); + Eina_List *index_list = NULL; + Eina_List *elist = NULL; + char* meta_theme = NULL; + + eina_strbuf_append_printf( temp_str_buf, "%s/%s/%s", DOWNLOAD_THEME_FOLDER_PATH, selected_theme->name, DOWNLOAD_THEME_INDEX_FILE_NAME); + + if( !( fp = fopen( eina_strbuf_string_steal( temp_str_buf ), "r" ) ) ) { + + //make error popup : file not found + Evas_Object *popup = elm_popup_add( ugd->base ); + + if( popup == NULL ) { + eina_strbuf_free(temp_str_buf); + return -1; + } + + //TODO: Apply Strings to Multi Languange + elm_object_text_set( popup, _("No Theme Contents") ); + evas_object_smart_callback_add(popup, "block,clicked", _block_clicked_cb, NULL); + + elm_popup_timeout_set( popup, POPUP_ALERT_TIMOUT_DURATION ); + evas_object_smart_callback_add( popup, "response", _setting_theme_def_response_cb, NULL ); + evas_object_show( popup ); + + eina_strbuf_free(temp_str_buf); + return -1; + } + + // Read File + while( !feof( fp ) ) { + char temp_buffer[ SETTING_THEME_NAME_MAX_LEN ] = {0,}; + fgets( temp_buffer, SETTING_THEME_NAME_MAX_LEN, fp ); + index_list = eina_list_append( index_list, strdup(temp_buffer)); + } + + fclose(fp); + + // Parsing + EINA_LIST_FOREACH( index_list, elist, meta_theme ) { + + char *ptr; + char *meta = strtok_r( meta_theme, "=", &ptr); + + if(meta) { + + char *theme = strtok_r( NULL, "\n", &ptr); + if( theme == NULL ) continue; + + if( !strncmp( DOWNLOAD_THEME_ICON_THEME_KEYWORD, + meta, + strlen( DOWNLOAD_THEME_ICON_THEME_KEYWORD)) ) { + + ugd->theme.icon_theme.ext = 1; + strncpy(ugd->theme.icon_theme.name,theme,strlen(theme)); + + } + else if( !strncmp( DOWNLOAD_THEME_BOOT_ANIMATOR_THEME_KEYWORD, + meta, + strlen( DOWNLOAD_THEME_BOOT_ANIMATOR_THEME_KEYWORD)) ) { + ugd->theme.boot_ani_theme.ext = 1; + strncpy(ugd->theme.boot_ani_theme.name,theme,strlen(theme)); + } + else if( !strncmp( DOWNLOAD_THEME_KEY_SOUND_THEME_KEYWORD, + meta, + strlen( DOWNLOAD_THEME_KEY_SOUND_THEME_KEYWORD )) ) { + ugd->theme.key_snd_theme.ext = 1; + strncpy(ugd->theme.key_snd_theme.name,theme,strlen(theme)); + + } + else if( !strncmp( DOWNLOAD_THEME_EFL_THEME_KEYWORD, + meta, + strlen( DOWNLOAD_THEME_EFL_THEME_KEYWORD ) ) ) { + ugd->theme.efl_theme.ext = 1; + strncpy(ugd->theme.efl_theme.name,theme,strlen(theme)); + + } + else if( !strncmp( DOWNLOAD_THEME_GTK_THEME_KEYWORD, + meta, + strlen( DOWNLOAD_THEME_GTK_THEME_KEYWORD ) ) ) { + ugd->theme.gtk_theme.ext = 1; + strncpy(ugd->theme.gtk_theme.name,theme,strlen(theme)); + } + else if( !strncmp( DOWNLOAD_THEME_SCREEN_IMG_THEME_KEYWORD, + meta, + strlen( DOWNLOAD_THEME_SCREEN_IMG_THEME_KEYWORD ) ) ) { + ugd->theme.screen_image_theme.ext = 1; + strncpy(ugd->theme.screen_image_theme.name,theme,strlen(theme)); + + } + else if( !strncmp( DOWNLOAD_THEME_FONT_THEME_KEYWORD, + meta, + strlen( DOWNLOAD_THEME_FONT_THEME_KEYWORD )) ) { + ugd->theme.font_theme.ext = 1; + strncpy(ugd->theme.font_theme.name,theme,strlen(theme)); + } + else if( !strncmp( DOWNLOAD_THEME_VIBRATION_THEME_KEYWORD, + meta, + strlen( DOWNLOAD_THEME_VIBRATION_THEME_KEYWORD )) ) { + ugd->theme.vibrate_theme.ext = 1; + strncpy(ugd->theme.vibrate_theme.name,theme,strlen(theme)); + } + } + } + + // clear + eina_strbuf_free(temp_str_buf); + + EINA_LIST_FOREACH( index_list, elist, meta_theme ) { + index_list = eina_list_remove( index_list, meta_theme ); + free( meta_theme ); + } + return 0; +} + +static Evas_Object* _create_naviframe( Evas_Object* parent ) +{ + if( parent == NULL ) return NULL; + + Evas_Object *nf = elm_naviframe_add( parent ); + evas_object_show( nf ); + + return nf; +} + +static void _remove_files_in_dir( const char *folder_path ) +{ + struct stat statbuf; + char path_buf[ PATH_MAX ]; + DIR* dp = NULL; + struct dirent *entry = NULL; + char *mime = NULL; + char *splitter = NULL; + char *env = getenv( "UI_IDLECAPTURE_IMG_TYPE" ); + + if( !env ) { + return ; + } + + dp = opendir( folder_path ); + + if( dp == 0 ) { + return ; + } + + if( chdir( folder_path ) != 0 ) { + fprintf( stderr, "Failed to change directory!\n" ); + } + + while( ( entry = readdir( dp ) ) != NULL ) { + + stat( entry->d_name, &statbuf ); + + strcpy( path_buf, folder_path ); + + if( path_buf[ strlen( path_buf ) - 1 ] != '/' ) { + strcat( path_buf, "/" ); + } + + strcat( path_buf, entry->d_name ); + + //case of directory + if( S_ISDIR( statbuf.st_mode ) ) { + + if( strcmp( ".", entry->d_name ) == 0 || strcmp( "..", entry->d_name ) == 0 ) { + continue; + } + + _remove_files_in_dir( path_buf ); + continue; + //case of file + }else { + //Check is it jpeg type. + mime = (char *) efreet_mime_type_get( path_buf ); + + if( mime == 0 ) { + continue; + } + + while( (splitter = strpbrk( mime, "/" )) ) { + if( strncmp( mime, env, splitter - mime ) == 0 ) { + unlink( path_buf ); + continue; + }else { + mime = ++splitter; + } + } + + if( strncmp( mime, env, strlen( mime ) ) == 0 ) { + unlink( path_buf ); + } + } + + } + + if( chdir( ".." ) != 0 ) { + fprintf( stderr, "Failed to change directory!\n" ); + } + + closedir( dp ); +} + +static int _strncmp( const char *s1, const char *s2) +{ + const char *longer = NULL; + const char *shorter = NULL; + + if( strlen( s1 ) > strlen ( s2 ) ) { + longer = s1; + shorter = s2; + } else { + longer = s2; + shorter = s1; + } + + return strncmp( longer, shorter, strlen( longer ) ); +} + +static void _get_default_theme_list( const char *folder_path, Eina_List **theme_list ) +{ + struct stat statbuf; + char path_buf[ PATH_MAX ]; + DIR* dp = NULL; + struct dirent *entry = NULL; + + dp = opendir( folder_path ); + + if( dp == 0 ) { + return ; + } + + if( chdir( folder_path ) != 0 ) { + fprintf( stderr, "Failed to change directory!\n" ); + } + + while( ( entry = readdir( dp ) ) != NULL ) { + + stat( entry->d_name, &statbuf ); + strcpy( path_buf, folder_path ); + + if( path_buf[ strlen( path_buf ) - 1 ] != '/' ) { + strcat( path_buf, "/" ); + } + + strcat( path_buf, entry->d_name ); + + //case of directory + if( S_ISDIR( statbuf.st_mode ) ) { + + if( strcmp( ".", entry->d_name ) == 0 || strcmp( "..", entry->d_name ) == 0 ) { + continue; + } + + _get_default_theme_list( path_buf, theme_list ); + continue; + + //case of file + }else { + //TODO: TEMPORARY COMPARE. SHOULD BE REMOVED! + if( !_strncmp( entry->d_name, "tizen.edj") || + !_strncmp( entry->d_name, "tizen-black.edj") || + !_strncmp( entry->d_name, "default.edj") || + !_strncmp( entry->d_name, "default-desktop.edj") ) { + continue; + } + + struct ug_theme_info *new_info = (struct ug_theme_info*)calloc(1,sizeof(struct ug_theme_info)); + new_info->type = THEME_TYPE_DEFAULT; + new_info->name = strndup(entry->d_name, strpbrk( entry->d_name, ".") - entry->d_name ); + + *theme_list = eina_list_append( *theme_list, new_info ); + + } + } + + if( chdir( ".." ) != 0 ) { + fprintf( stderr, "Failed to change directory!\n" ); + } + + closedir( dp ); +} + +static void _get_theme_list( const char *folder_path, Eina_List **theme_list ) +{ + struct stat statbuf; + char path_buf[ PATH_MAX ]; + DIR* dp = NULL; + struct dirent *entry = NULL; + + dp = opendir( folder_path ); + + if( dp == 0 ) { + return ; + } + + if( chdir( folder_path ) != 0 ) { + fprintf( stderr, "Failed to change directory!\n" ); + } + + while( ( entry = readdir( dp ) ) != NULL ) { + + stat( entry->d_name, &statbuf ); + + strcpy( path_buf, folder_path ); + + if( path_buf[ strlen( path_buf ) - 1 ] != '/' ) { + strcat( path_buf, "/" ); + } + + strcat( path_buf, entry->d_name ); + + //in case of directory, add folder name to list. + if( S_ISDIR( statbuf.st_mode ) ) { + + if( strcmp( ".", entry->d_name ) == 0 || strcmp( "..", entry->d_name ) == 0 ) { + continue; + } + + struct ug_theme_info *new_info = (struct ug_theme_info*)calloc(1,sizeof(struct ug_theme_info)); + new_info->type = THEME_TYPE_DOWNLOAD; + new_info->name = strdup(entry->d_name); + *theme_list = eina_list_append( *theme_list, new_info); + } + } + closedir( dp ); +} + +static int _delete_idle_imgs() +{ + int ret = 0; + char *env = getenv( "UI_IDLECAPTURE_PATH" ); + + if( efreet_mime_init() == 0 ) { + return ret; + } + + if(!env) { + _remove_files_in_dir( IDLE_IMG_PATH ); + }else { + _remove_files_in_dir( env ); + } + + efreet_mime_shutdown(); + + return ret; +} + +static int _selected_theme_idx_get() +{ + Eina_List *elist = NULL; + struct ug_theme_info *theme_info = NULL; + + // set selected theme + char *theme_name = vconf_get_str(SETTING_THEME_SELECTED_THEME); + int idx = 0; + + EINA_LIST_FOREACH( gtheme_list, elist, theme_info ) { + + if( _strncmp( theme_info->name, theme_name ) == 0 ) { + FREE(theme_name); + return idx; + } + idx++; + } + FREE(theme_name); + return -1; +} + +static int exit_apps_iterfunc( const aul_app_info *info, void *data ) +{ + if( !info || !info->pkg_name) return 0; + + char *except_pkgs = (char *) getenv("SETTING_THEME_EXCEPT_PKGS"); + + if( except_pkgs ) { + + //TODO: should remove pkgs here!! + //It can be skipped setting app by using aul with pid. + + }else { + char* curr_menu = vconf_get_str("db/menuscreen/pkgname"); + + //TODO: Temporary comparison. Please remove this and implement above. + if( !_strncmp(info->pkg_name, "com.samsung.menu-screen") || + !_strncmp(info->pkg_name, "com.samsung.setting") || + !_strncmp(info->pkg_name, "com.samsung.live-magazine") || + !_strncmp(info->pkg_name, "com.samsung.live-data-provider") || + !_strncmp(info->pkg_name, "com.samsung.quickpanel") || + !_strncmp(info->pkg_name, "com.samsung.vtmain") || + !_strncmp(info->pkg_name, "com.samsung.call") || + !_strncmp(info->pkg_name, curr_menu) ) { + FREE(curr_menu); + return 0; + } + + FREE(curr_menu); + } + + aul_terminate_pid( info->pid ); + + return 0; +} + +static void _popup_default_theme_response_no_cb( void *data, Evas_Object *obj, void *event_info ) +{ + return; +} + +static void _popup_default_theme_response_yes_cb( void *data, Evas_Object *obj, void *event_info ) +{ + Item_Data *item_data = (Item_Data *)data; + if(item_data == NULL) return; + + struct ug_theme_info *theme_info = NULL; + theme_info = eina_list_nth(gtheme_list, item_data->idx); + + View_Data *vd = (View_Data *)evas_object_data_get(elm_object_item_widget_get(item_data->it), "view_data"); + if(vd == NULL) return; + + elm_radio_value_set(rdg, item_data->idx); + + // Change EFL Theme + Eina_Strbuf* efl_path = eina_strbuf_new(); + eina_strbuf_append_printf( efl_path, "%s/%s.edj", + DEFAULT_THEME_FOLDER_PATH, + item_data->label); + elm_theme_set(NULL, eina_strbuf_string_get(efl_path)); + elm_config_all_flush(); + vconf_set_str(VCONFKEY_SETAPPL_WIDGET_THEME_STR, eina_strbuf_string_get(efl_path) ); + eina_strbuf_free(efl_path); + + // Change Selected Theme Value + vconf_set_str(SETTING_THEME_SELECTED_THEME, item_data->label); + + _delete_idle_imgs(); + aul_app_get_running_app_info( exit_apps_iterfunc, NULL ); + elm_exit(); +} + +static void _cancel_button_clicked(void *data, Evas_Object *obj, void *event_info) +{ + if (!data) return; + Evas_Object *nf = (Evas_Object *) data; + elm_naviframe_item_pop(nf); +} + +static void _done_button_clicked(void *data, Evas_Object *obj, void *event_info) +{ + Evas_Object *btn1, *btn2; + Item_Data *item_data = (Item_Data *)data; + if(item_data == NULL) return; + + struct ug_theme_info *theme_info = NULL; + theme_info = eina_list_nth(gtheme_list, item_data->idx); + + View_Data *vd = (View_Data *)evas_object_data_get(elm_object_item_widget_get(item_data->it), "view_data"); + if(vd == NULL) return; + + //TODO: Test Code Should be removed - View_Data and && item_data->idx <= vd->default_theme_count + if (item_data->idx != _selected_theme_idx_get() && item_data->idx < vd->default_theme_count) { + + if (THEME_TYPE_DEFAULT == theme_info->type){ + // Show popup + Evas_Object *popup = elm_popup_add( vd->nf ); + if( popup == NULL ) { + return ; + } + + //TODO: Apply Multi Lanaguage to this string. + elm_object_text_set( popup, _("All Apps will be closed
to change theme") ); + + btn1 = elm_button_add(popup); + elm_object_text_set(btn1, _("IDS_COM_POP_YES")); + elm_object_part_content_set(popup, "button1", btn1); + evas_object_smart_callback_add(btn1, "clicked", _popup_default_theme_response_yes_cb, popup); + + btn2 = elm_button_add(popup); + elm_object_text_set(btn2, _("IDS_COM_POP_NO")); + elm_object_part_content_set(popup, "button2", btn2); + evas_object_smart_callback_add(btn2, "clicked", _popup_default_theme_response_no_cb, popup); + + evas_object_show( popup ); + } + + //TODO: Download Winset Setting +#if 0 + else { + if (_load_index_file(ugd,theme_info) == 0) { + Eina_Strbuf* efl_path = eina_strbuf_new(); + eina_strbuf_append_printf( efl_path, "%s/%s/%s/%s.edj", + DOWNLOAD_THEME_FOLDER_PATH, + theme_info->name, + DOWNLOAD_THEME_EFL_FOLDER_NAME, + ugd->theme.efl_theme.name); + vconf_set_str(VCONFKEY_SETAPPL_WIDGET_THEME_STR, eina_strbuf_string_get(efl_path)); + elm_theme_set(NULL, eina_strbuf_string_get(efl_path)); + elm_config_all_flush(); + eina_strbuf_free(efl_path); + } + } +#endif + + } + +} + +// This is called when check box status is changed +static void _item_check_changed_cb(void *data, Evas_Object *obj, void *event_info) +{ + Item_Data *item_data = (Item_Data *)data; + View_Data *vd = (View_Data *)evas_object_data_get(elm_object_item_widget_get(item_data->it), "view_data"); + if (vd == NULL) return; + + if (item_data->checked) vd->checked_count++; + else vd->checked_count--; + + // update select all check button + if (vd->select_all_layout) { + if ((vd->total_count - vd->default_theme_count) == vd->checked_count) + vd->select_all_checked = EINA_TRUE; + else + vd->select_all_checked = EINA_FALSE; + + elm_check_state_pointer_set(vd->select_all_checkbox, &vd->select_all_checked); + } +} + +// FIXME: Need proper method. +// FIXME: This would be only available for our theme but not 3rd parties' +static char* _rename_theme(const char * origin) +{ + if ( !_strncmp(origin, "tizen-hd") ) { + return strdup("White"); + } else if ( !_strncmp(origin, "tizen-black-hd") ) { + return strdup("Black"); + } + else return strdup(origin); +} + +static void _reveal_button_clicked(void *data, Evas_Object *obj, void *event_info) +{ + char *nf_title; + Evas_Object *cbar; + Evas_Object *cancel_btn; + Evas_Object *done_btn; + Evas_Object *nf; + Evas_Object *box; + Elm_Object_Item *ti; + Item_Data *item_data = (Item_Data *)data; + if (item_data == NULL) return; + + View_Data *vd = (View_Data *)evas_object_data_get(elm_object_item_widget_get(item_data->it), "view_data"); + if (vd == NULL) return; + + nf = vd->nf; + + // Create Controlbar + cbar = elm_toolbar_add(nf); + if (cbar == NULL) return; + elm_object_style_set(cbar, "naviframe"); + + cancel_btn = elm_button_add(cbar); + elm_object_style_set(cancel_btn, "naviframe_control/default"); + evas_object_size_hint_align_set(cancel_btn, EVAS_HINT_FILL, 0.5); + elm_object_text_set(cancel_btn, _("Cancel")); + evas_object_show(cancel_btn); + evas_object_smart_callback_add(cancel_btn, "clicked", _cancel_button_clicked, nf); + + done_btn = elm_button_add(cbar); + elm_object_style_set(done_btn, "naviframe_control/default"); + evas_object_size_hint_align_set(done_btn, EVAS_HINT_FILL, 0.5); + elm_object_text_set(done_btn, _("Done")); + evas_object_show(done_btn); + evas_object_smart_callback_add(done_btn, "clicked", _done_button_clicked, item_data); + + // Disable Button, If Currently Set + char *theme_name = vconf_get_str(SETTING_THEME_SELECTED_THEME); + if( _strncmp( item_data->label, theme_name ) == 0 ) { + elm_object_disabled_set(done_btn, 1); + } + FREE(theme_name); + + // For Consistent Look + ti = elm_toolbar_item_append(cbar, NULL, NULL, NULL, NULL); + elm_object_item_part_content_set(ti, "object", cancel_btn); + ti = elm_toolbar_item_append(cbar, NULL, NULL, NULL, NULL); + elm_object_item_part_content_set(ti, "object", done_btn); + + nf_title = _rename_theme(item_data->label); + + box = elm_box_add(nf); + evas_object_show(box); + + // TODO: Preview Image Should Get From Theme + if (item_data->idx < vd->default_theme_count) { + + Evas_Object* icon; + icon = elm_icon_add(nf); + + char* fn; + if (!_strncmp(item_data->label, "tizen-hd")) + fn = "tizen"; + else if (!_strncmp(item_data->label, "tizen-black-hd")) + fn = "tizen-black"; + else + fn = item_data->label; + + Eina_Strbuf* efl_path = eina_strbuf_new(); + eina_strbuf_append_printf( efl_path, "%s/%s.png", + IMG_DIR, + fn); + + elm_icon_file_set(icon, eina_strbuf_string_get(efl_path), NULL); + elm_icon_resizable_set(icon, 0, 0); + evas_object_size_hint_align_set(icon, 0.5, 0.5); + elm_box_pack_end(box, icon); + evas_object_show(icon); + + eina_strbuf_free(efl_path); + } + + Elm_Object_Item *navi_it = elm_naviframe_item_push(nf, nf_title, NULL, NULL, box, NULL); + elm_object_item_part_content_set(navi_it, "optionheader", cbar); + FREE(nf_title); + + // Remove Prev Button + Evas_Object *prev_btn = elm_object_item_part_content_get(navi_it, "prev_btn"); + evas_object_del(prev_btn); +} + +static void _gl_sel( void *data, Evas_Object *obj, void *event_info) +{ + Item_Data *item_data; + Elm_Object_Item *genlist_item = (Elm_Object_Item *) event_info; + if( genlist_item == NULL ) return; + + elm_genlist_item_selected_set(genlist_item, EINA_FALSE); + item_data = elm_object_item_data_get(genlist_item); + _done_button_clicked(item_data, NULL, NULL); +} + +static char* _gl_label_get(void *data, Evas_Object *obj, const char *part) +{ + Item_Data *item_data = (Item_Data *) data; + if(item_data == NULL) return NULL; + + if( strcmp(part, "elm.text") == 0 ) { + return _rename_theme(item_data->label); + } + return NULL; +} + +Evas_Object *_load_edj(Evas_Object *parent, const char *file, const char *group) { + Evas_Object *eo; + int r; + + eo = elm_layout_add(parent); + if (eo) { + r = elm_layout_file_set(eo, file, group); + if (!r) { + evas_object_del(eo); + return NULL; + } + } + + return eo; +} + +static Evas_Object *_gl_icon_get(void *data, Evas_Object *obj, const char *part) +{ + if(obj == NULL) return NULL; + + Item_Data *item_data = (Item_Data *) data; + if(item_data == NULL) return NULL; + + Evas_Object *icon; + + if (!elm_genlist_decorate_mode_get(obj)) { + if ( !strncmp( part, "elm.icon.1", strlen(part) ) ) { + // radio button + icon = elm_radio_add(obj); + elm_radio_state_value_set(icon, (int) item_data->idx); + evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); + elm_radio_group_add( icon, rdg ); + + // For avoidng user click + Evas_Object* fake_icon = _load_edj(obj, SETTING_THEME_EDJ, "fake_icon"); + elm_object_part_content_set(fake_icon, "icon", icon); + + return fake_icon; + } else if ( !strncmp( part, "elm.icon.2", strlen(part) ) ) { + // preview button + icon = elm_button_add(obj); + elm_object_style_set(icon, "reveal"); + evas_object_smart_callback_add(icon, "clicked", _reveal_button_clicked, item_data); + evas_object_propagate_events_set(icon, EINA_FALSE); + return icon; + } + } else { + if (!strcmp(part, "elm.edit.icon.1")) { // swallow checkbox or radio button + icon = elm_check_add(obj); + elm_check_state_pointer_set(icon, &item_data->checked); + evas_object_smart_callback_add(icon, "changed", _item_check_changed_cb, item_data); + return icon; + } + } + return NULL; +} + +static void _clear_theme_list(Eina_List *theme_list) +{ + Eina_List *elist = NULL; + struct ug_theme_info *theme_info = NULL; + EINA_LIST_FOREACH( theme_list, elist, theme_info ) { + theme_list = eina_list_remove( theme_list, theme_info ); + free( theme_info->name ); + free( theme_info ); + } +} + +static void _base_object_del_cb(void * data, Evas *e, Evas_Object *obj, void *event_info) +{ + struct ug_data *ugd = (struct ug_data *) data; + ugd->base = NULL; +} + +static void _back_button_clicked( void *data, Evas_Object *obj, void *event_info ) +{ + struct ug_data * ugd = (struct ug_data *) data; + + ug_destroy_me(ugd->ug); +} + +static void _check_select_all(View_Data *vd) +{ + Item_Data *it_data; + Elm_Object_Item *it; + + if (vd->select_all_checked) vd->checked_count = (vd->total_count - vd->default_theme_count); + else vd->checked_count = 0; + + it = elm_genlist_first_item_get(vd->genlist); + while(it) { + it_data = elm_object_item_data_get(it); + if (it_data) it_data->checked = vd->select_all_checked; + it = elm_genlist_item_next_get(it); + } + // Update all realized items + elm_genlist_realized_items_update(vd->genlist); +} + +static void _select_all_check_changed_cb(void *data, Evas_Object *obj, void *event_info) +{ + _check_select_all(data); +} + +static void _genlist_to_normal(View_Data *data) +{ + if (!data) return; + View_Data *vd = data; + Item_Data *item_data; + Evas_Object *genlist = vd->genlist; + Evas_Object *delete_btn = vd->delete_btn, *more_btn = vd->more_btn; + Elm_Object_Item *it, *ti; + Eina_List *elist = NULL; + struct ug_theme_info *theme_info = NULL; + int idx = 0; + + // Change background color to default background color + elm_object_style_set(vd->bg, "group_list"); + + // Change button label + elm_object_text_set(delete_btn, _("Delete")); + elm_object_text_set(more_btn, _("More winsets")); + + // Remove 'Select All' layout. + elm_box_unpack(vd->box, vd->select_all_layout); + evas_object_del(vd->select_all_layout); + vd->select_all_layout = NULL; + + // Unset edit mode + elm_genlist_decorate_mode_set(genlist, EINA_FALSE); + elm_genlist_select_mode_set(genlist, ELM_OBJECT_SELECT_MODE_ALWAYS); + + // Add Default Theme + idx = 0; + it = elm_genlist_first_item_get(genlist); + EINA_LIST_FOREACH( gtheme_list, elist, theme_info ) { + item_data = calloc(1, sizeof(Item_Data)); + item_data->label = theme_info->name; + item_data->idx = idx; + if (it) + item_data->it = elm_genlist_item_insert_before(genlist, &itc, (void *) item_data, NULL, it, ELM_GENLIST_ITEM_NONE, _gl_sel, NULL); + else { + item_data->it = elm_genlist_item_append(genlist, &itc, (void *) item_data, NULL, ELM_GENLIST_ITEM_NONE, _gl_sel, NULL); + } + + idx++; + if (idx >= vd->default_theme_count) break; + } + + // Remove 'Delete' button + idx = 0; + it = elm_genlist_first_item_get(genlist); + while(it) { + idx++; + it = elm_genlist_item_next_get(it); + } + + if (idx <= vd->default_theme_count) { + elm_object_item_del(vd->del_btn_item); + ti = elm_toolbar_item_prepend(vd->cbar, NULL, NULL, NULL, NULL); + elm_object_item_part_content_set(ti, "object", NULL); + } + + // Change Genlist Item Class + idx = 0; + it = elm_genlist_item_prepend(genlist, &itc2, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); + elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); + + it = elm_genlist_first_item_get(genlist); + while(it) { + if(idx != 0) { + elm_genlist_item_item_class_update(it, &itc); + } + it = elm_genlist_item_next_get(it); + ++idx; + } +} + +static void _delete_button_clicked(void *data, Evas_Object *obj, void *event_info) +{ + if (!data) return; + View_Data *vd = data; + Item_Data *item_data; + Evas_Object *genlist = vd->genlist, *layout, *check; + Evas_Object *delete_btn = vd->delete_btn, *more_btn = vd->more_btn; + Elm_Object_Item *it; + int idx = 0; + + if (!elm_genlist_decorate_mode_get(genlist)) { + // Genlist will be in Edit Mode + + // Change background color to edit_mode color + elm_object_style_set(vd->bg, "edit_mode"); + + // Change button label + elm_object_text_set(delete_btn, _("Cancel")); + elm_object_text_set(more_btn, _("Done")); + + // Append 'Select All' layout + layout = vd->select_all_layout = elm_layout_add(vd->box); + elm_layout_theme_set(layout, "genlist", "item", "select_all/default"); + evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_FILL); + evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + + check = vd->select_all_checkbox = elm_check_add(vd->select_all_layout); + elm_check_state_pointer_set(check, &vd->select_all_checked); + evas_object_smart_callback_add(check, "changed", _select_all_check_changed_cb, vd); + elm_check_state_set(check, EINA_FALSE); + vd->select_all_checked = EINA_FALSE; + evas_object_propagate_events_set(check, EINA_FALSE); + elm_object_part_content_set(layout, "elm.icon", check); + + elm_object_part_text_set(vd->select_all_layout, "elm.text", "Select All"); + elm_box_pack_start(vd->box, vd->select_all_layout); + evas_object_show(vd->select_all_layout); + + // Delete Seperator Item + it = elm_genlist_first_item_get(genlist); + elm_object_item_del(it); + + // Delete Default Theme Item + idx = vd->default_theme_count; + it = elm_genlist_first_item_get(genlist); + while(it && idx > 0) { + item_data = elm_object_item_data_get(it); + it = elm_genlist_item_next_get(it); + + if (item_data) { + elm_object_item_del(item_data->it); + idx--; + } + } + + // Change Genlist Item Class + it = elm_genlist_first_item_get(genlist); + while(it) { + elm_genlist_item_item_class_update(it, &edit_mode_itc); + item_data = elm_object_item_data_get(it); + item_data->checked = EINA_FALSE; + it = elm_genlist_item_next_get(it); + } + vd->checked_count = 0; + + elm_genlist_decorate_mode_set(genlist, EINA_TRUE); + } else { + // Genlist will be in Normal Mode + _genlist_to_normal(vd); + } +} + +static void response_cb(void *data, Evas_Object *obj, void *event_info) +{ + if (obj != NULL) + evas_object_del(obj); +} + +static void _more_button_clicked(void *data, Evas_Object *obj, void *event_info) +{ + struct ug_data *ugd = (struct ug_data *) data; + if (ugd == NULL) return; + + View_Data *vd = ugd->vd; + if (vd == NULL) return; + + Item_Data *it_data; + Elm_Object_Item *it; + Evas_Object *genlist = vd->genlist; + + if (!elm_genlist_decorate_mode_get(genlist)) { + if(aul_launch_app("com.samsung.samsungapps", NULL) < 0) { + // Error Handling, Cannot Launch Samsung Apps + Evas_Object *popup = elm_popup_add(vd->nf); + elm_object_text_set(popup, "Samsung Apps is not installed"); + evas_object_smart_callback_add(popup, "block,clicked", _block_clicked_cb, NULL); + elm_popup_timeout_set(popup, 3.0); + evas_object_smart_callback_add(popup, "response", response_cb, NULL); + evas_object_show(popup); + } + } else { + // Done - Delete Selected Winset + it = elm_genlist_first_item_get(genlist); + while (it) { + it_data = elm_object_item_data_get(it); + it = elm_genlist_item_next_get(it); + + if ((it_data) && (it_data->checked)) { + elm_object_item_del(it_data->it); + vd->total_count--; + vd->checked_count--; + } + } + _genlist_to_normal(vd); + } + +} + +static void _set_genlist_item_styles(View_Data *vd) +{ + itc.item_style = "dialogue/1text.2icon.2"; + itc.func.text_get = _gl_label_get; + itc.func.content_get = _gl_icon_get; + itc.func.state_get = NULL; + itc.func.del = NULL; + itc.decorate_item_style = "edit_default"; + + itc2.item_style = "dialogue/seperator"; + itc2.func.text_get = NULL; + itc2.func.content_get = NULL; + itc2.func.state_get = NULL; + itc2.func.del = NULL; + + edit_mode_itc.item_style = "1text"; + edit_mode_itc.func.text_get = _gl_label_get; + edit_mode_itc.func.content_get = _gl_icon_get; + edit_mode_itc.func.state_get = NULL; + edit_mode_itc.func.del = NULL; + edit_mode_itc.decorate_item_style = "edit_default"; +} + +// Create genlist and append items +static Evas_Object *_create_genlist(struct ug_data *ugd) +{ + if( ugd == NULL ) return NULL; + View_Data *vd = ugd->vd; + Item_Data *item_data; + Evas_Object *genlist; + + // Create genlist + genlist = elm_genlist_add(vd->nf); + evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL); + + // Get Default Theme + Eina_List *theme_list = ugd->theme_list; + _get_default_theme_list( DEFAULT_THEME_FOLDER_PATH, &theme_list); + vd->default_theme_count = eina_list_count(theme_list); + + // Get Download Theme + _get_theme_list( DOWNLOAD_THEME_FOLDER_PATH , &theme_list ); + + //TODO: Test Code - START, Should be removed +#if 0 + struct ug_theme_info *new_info_r = (struct ug_theme_info*)calloc(1,sizeof(struct ug_theme_info)); + new_info_r->type = THEME_TYPE_DOWNLOAD; + new_info_r->name = strndup("Red", strlen("Red")); + eina_list_append( theme_list, new_info_r ); + + struct ug_theme_info *new_info_g = (struct ug_theme_info*)calloc(1,sizeof(struct ug_theme_info)); + new_info_g->type = THEME_TYPE_DOWNLOAD; + new_info_g->name = strndup("Green", strlen("Green")); + eina_list_append( theme_list, new_info_g ); + + struct ug_theme_info *new_info_b = (struct ug_theme_info*)calloc(1,sizeof(struct ug_theme_info)); + new_info_b->type = THEME_TYPE_DOWNLOAD; + new_info_b->name = strndup("Blue", strlen("Blue")); + eina_list_append( theme_list, new_info_b ); +#endif + //TODO: Test Code - END, Should be removed + ugd->theme_list = theme_list; + gtheme_list = eina_list_clone( ugd->theme_list ); + + Eina_List *elist = NULL; + struct ug_theme_info *theme_info = NULL; + int idx = 0; + + item_data = calloc(1, sizeof(Item_Data)); + item_data->label = NULL; + item_data->idx = idx; + item_data->it = elm_genlist_item_append(genlist, &itc2, (void *) item_data, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); + elm_genlist_item_select_mode_set(item_data->it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); + + EINA_LIST_FOREACH( gtheme_list, elist, theme_info ) { + item_data = calloc(1, sizeof(Item_Data)); + item_data->label = theme_info->name; + item_data->idx = idx; + item_data->it = elm_genlist_item_append(genlist, &itc, (void *) item_data, NULL, ELM_GENLIST_ITEM_NONE, _gl_sel, NULL); + idx++; + } + + evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL); + + vd->total_count = idx; + + // Check selected theme + idx = _selected_theme_idx_get(); + if (idx < 0) return genlist; + + // Create radio group + rdg = elm_radio_add( genlist ); + elm_radio_value_set( rdg, idx ); + + return genlist; +} + +static Evas_Object *create_fullview( Evas_Object *parent, struct ug_data *ugd ) +{ + Evas_Object *cbar; + Elm_Object_Item *ti; + + if(parent == NULL) return NULL; + + // Create layout data + View_Data *vd; + vd = calloc(1, sizeof(View_Data)); + ugd->vd = vd; + + // Create layout + Evas_Object *layout = _create_layout_main( parent, vd ); + if( layout == NULL ) return NULL; + + vd->nf = _create_naviframe( layout ); + if( vd->nf == NULL ) { + evas_object_del( layout ); + return NULL; + } + // Create Genlist + _set_genlist_item_styles(vd); + vd->genlist = _create_genlist(ugd); + + // Need by Item Check Changed Callback , Reveal Button Clicked Callback + evas_object_data_set(vd->genlist, "view_data", vd); + + // Create Box + vd->box = elm_box_add(vd->nf); + evas_object_size_hint_weight_set(vd->box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(vd->box); + + elm_box_pack_end(vd->box, vd->genlist); + evas_object_show(vd->genlist); + + elm_object_part_content_set( layout, "elm.swallow.content", vd->nf ); + + // Create Controlbar + vd->cbar = cbar = elm_toolbar_add(vd->nf); + if (cbar == NULL) return NULL; + elm_object_style_set(cbar, "naviframe"); + + vd->more_btn = elm_button_add(cbar); + elm_object_style_set(vd->more_btn, "naviframe_control/default"); + evas_object_size_hint_align_set(vd->more_btn, EVAS_HINT_FILL, 0.5); + elm_object_text_set(vd->more_btn, _("More winsets")); + evas_object_show(vd->more_btn); + evas_object_smart_callback_add(vd->more_btn, "clicked", _more_button_clicked, ugd); + + //If there is download winset, then enable delete button + if(vd->default_theme_count < vd->total_count) + { + vd->delete_btn = elm_button_add(cbar); + elm_object_style_set(vd->delete_btn, "naviframe_control/default"); + evas_object_size_hint_align_set(vd->delete_btn, EVAS_HINT_FILL, 0.5); + elm_object_text_set(vd->delete_btn, _("Delete")); + evas_object_show(vd->delete_btn); + evas_object_smart_callback_add(vd->delete_btn, "clicked", _delete_button_clicked, vd); + vd->del_btn_item = elm_toolbar_item_append(cbar, NULL, NULL, NULL, NULL); + elm_object_item_part_content_set(vd->del_btn_item, "object", vd->delete_btn); + } + else + { + ti = elm_toolbar_item_append(cbar, NULL, NULL, NULL, NULL); + elm_object_item_part_content_set(ti, "object", NULL); + } + ti = elm_toolbar_item_append(cbar, NULL, NULL, NULL, NULL); + elm_object_item_part_content_set(ti, "object", vd->more_btn); + + Evas_Object *back_btn = elm_button_add( vd->nf ); + elm_object_style_set(back_btn, "naviframe/back_btn/default"); + evas_object_smart_callback_add( back_btn, "clicked", _back_button_clicked, ugd ); + Elm_Object_Item *navi_it = elm_naviframe_item_push( vd->nf, _("IDS_ST_BODY_THEME"), back_btn, NULL, vd->box, NULL ); + + // add controlbar to naviframe + elm_object_item_part_content_set(navi_it, "optionheader", cbar); + elm_object_item_signal_emit(navi_it, "elm,state,optionheader,instant_close", ""); + + evas_object_event_callback_add(layout, EVAS_CALLBACK_DEL, _base_object_del_cb, ugd); + + return layout; +} + +static Evas_Object *create_frameview(Evas_Object *parent, struct ug_data *ugd) +{ + Evas_Object *base = NULL; + + // Create Frame view + + return base; +} + +static void *on_create(struct ui_gadget *ug, enum ug_mode mode, bundle *data, void *priv) +{ + Evas_Object *parent; + struct ug_data *ugd; + if (!ug || !priv) + return NULL; + + ugd = priv; + ugd->ug = ug; + + bindtextdomain(PKGNAME, MO_FILE_PATH); + + parent = ug_get_parent_layout(ug); + if (!parent) + return NULL; + + if (mode == UG_MODE_FULLVIEW) + ugd->base = create_fullview(parent, ugd); + else + ugd->base = create_frameview(parent, ugd); + + _parent = parent; + + return ugd->base; +} + +static void on_start(struct ui_gadget *ug, bundle *data, void *priv) +{ +} + +static void on_pause(struct ui_gadget *ug, bundle *data, void *priv) +{ + +} + +static void on_resume(struct ui_gadget *ug, bundle *data, void *priv) +{ + +} + + +static void on_destroy(struct ui_gadget *ug, bundle *data, void *priv) +{ + struct ug_data *ugd; + + if (!ug || !priv) + return; + + ugd = priv; + + // Free View Data + if (ugd->vd) { + if (ugd->vd->bg) { + evas_object_del(ugd->vd->bg); + ugd->vd->bg = NULL; + } + evas_object_data_set(ugd->vd->genlist, "view_data", NULL); + free(ugd->vd); + ugd->vd = NULL; + } + + _clear_theme_list( ugd->theme_list ); + ugd->theme_list = NULL; + + if( ugd->base ) { + evas_object_del(ugd->base); + ugd->base = NULL; + } + + eina_list_free( gtheme_list ); + gtheme_list = NULL; + + if( rdg != NULL ) { + evas_object_del( rdg ); + rdg = NULL; + } +} + +static void on_message(struct ui_gadget *ug, bundle *msg, bundle *data, void *priv) +{ +} + +static void on_event(struct ui_gadget *ug, enum ug_event event, bundle *data, void *priv) +{ + switch (event) { + case UG_EVENT_LOW_MEMORY: + break; + case UG_EVENT_LOW_BATTERY: + break; + case UG_EVENT_LANG_CHANGE: + break; + case UG_EVENT_ROTATE_PORTRAIT: + break; + case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN: + break; + case UG_EVENT_ROTATE_LANDSCAPE: + break; + case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN: + break; + default: + break; + } +} + +static void on_key_event(struct ui_gadget *ug, enum ug_key_event event, bundle *data, void *priv) +{ + if (!ug) + return; + + switch (event) { + case UG_KEY_EVENT_END: + ug_destroy_me(ug); + break; + default: + break; + } +} + +UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops) +{ + struct ug_data *ugd; + + if (!ops) + return -1; + + ugd = calloc(1, sizeof(struct ug_data)); + if (!ugd) + return -1; + + ops->create = on_create; + ops->start = on_start; + ops->pause = on_pause; + ops->resume = on_resume; + ops->destroy = on_destroy; + ops->message = on_message; + ops->event = on_event; + ops->key_event = on_key_event; + ops->priv = ugd; + ops->opt = UG_OPT_INDICATOR_ENABLE; + + return 0; +} + +UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops) +{ + struct ug_data *ugd; + + if (!ops) + return; + + ugd = ops->priv; + if (ugd) + free(ugd); +} + +// For Reset Operation +UG_MODULE_API int setting_plugin_reset(bundle *data, void *priv) +{ + //FIXME: Need to avoid hard coding for default theme name + char *value = vconf_get_str(SETTING_THEME_SELECTED_THEME); + + if (value && !strcmp(value, "tizen-black-hd")) + { + vconf_set_bool(SETTING_THEME_IS_THEME_CHANGED, 0); + } + else + { + vconf_set_bool(SETTING_THEME_IS_THEME_CHANGED, 1); + } + + FREE(value); + + // Change Selected Theme Value + vconf_set_str(SETTING_THEME_SELECTED_THEME, "tizen-black-hd"); + + // Change EFL Theme + Eina_Strbuf* efl_path = eina_strbuf_new(); + eina_strbuf_append_printf( efl_path, "%s/tizen-black-hd.edj", + DEFAULT_THEME_FOLDER_PATH); + vconf_set_str(VCONFKEY_SETAPPL_WIDGET_THEME_STR, eina_strbuf_string_get(efl_path) ); + eina_strbuf_free(efl_path); + + _delete_idle_imgs(); + aul_app_get_running_app_info( exit_apps_iterfunc, NULL ); + + return 0; +} diff --git a/setting-theme-efl.edc b/setting-theme-efl.edc new file mode 100644 index 0000000..0de0b6a --- /dev/null +++ b/setting-theme-efl.edc @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +collections { + group { + name: "fake_icon"; + parts { + part { name: "icon"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + min: 26 26; + align: 0.0 0.5; + } + } + part { name: "image"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + min: 100 50; + align: 0.5 0.5; + color: 0 0 0 0; + } + } + } + } +} diff --git a/setting-theme-efl.h b/setting-theme-efl.h new file mode 100755 index 0000000..dfff969 --- /dev/null +++ b/setting-theme-efl.h @@ -0,0 +1,84 @@ +/* + + Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved + + This file is part of libug-setting-theme-efl + Written by Shinwoo Kim , + ChunEon Park , + Woohyun Jung , + Jaehwan Kim , + Juyung Seo , + + PROPRIETARY/CONFIDENTIAL + + This software is the confidential and proprietary information of + SAMSUNG ELECTRONICS ("Confidential Information"). You shall not + disclose such Confidential Information and shall use it only in + accordance with the terms of the license agreement you entered + into with SAMSUNG ELECTRONICS. + + SAMSUNG make no representations or warranties about the suitability + of the software, either express or implied, including but not limited + to the implied warranties of merchantability, fitness for a particular + purpose, or non-infringement. SAMSUNG shall not be liable for any + damages suffered by licensee as a result of using, modifying or + distributing this software or its derivatives. + +*/ + +#ifndef __setting_theme_efl_H__ +#define __setting_theme_efl_H__ + +#include +#include + +#define PKGNAME "ug-setting-theme-efl" + +#define _EDJ(o) elm_layout_edje_get(o) +#define _(s) dgettext(PKGNAME, s) +#define dgettext_noop(s) (s) +#define N_(s) dgettext_noop(s) +#define FREE(arg) {free(arg); arg = NULL;} + +#define IDLE_IMG_PATH "/opt/etc/idle_image" +#define MO_FILE_PATH "/opt/ug/res/locale" +#define POPUP_ALERT_TIMOUT_DURATION 2 + +#define EDJ_PATH "/opt/ug/res/edje/ug-setting-theme-efl" +#define SETTING_THEME_EDJ EDJ_PATH"/setting-theme-efl.edj" + +#define IMG_DIR "/opt/ug/res/images/ug-setting-theme-efl" + +// platform theme definition +#define DEFAULT_THEME_ICON_PATH "/usr/share/icons" +#define DEFAULT_THEME_FOLDER_PATH "/usr/share/elementary/themes" +#define DEFAULT_THEME_ICON_NAME "default" +#define DEFAULT_THEME_SCREEN_IMAGE_HOME_PATH "/opt/media/Images and videos/Wallpapers/Home_default.png" +#define DEFAULT_THEME_SCREEN_IMAGE_LOCK_PATH "/opt/media/Images and videos/Wallpapers/Home_default.png" + +// Downloadable theme definition +#define DOWNLOAD_THEME_FOLDER_PATH "/opt/share/theme" +#define DOWNLOAD_THEME_INDEX_FILE_NAME "index.theme" +#define DOWNLOAD_THEME_EFL_FOLDER_NAME "elementary" +#define DOWNLOAD_THEME_SCREEN_IMAGE_FOLDER_NAME "screenimages" + +#define DOWNLOAD_THEME_ICON_THEME_KEYWORD "IconTheme" +#define DOWNLOAD_THEME_KEY_SOUND_THEME_KEYWORD "KeySoundTheme" +#define DOWNLOAD_THEME_EFL_THEME_KEYWORD "EFLTheme" +#define DOWNLOAD_THEME_GTK_THEME_KEYWORD "GTKTheme" +#define DOWNLOAD_THEME_SCREEN_IMG_THEME_KEYWORD "ScreenImageTheme" +#define DOWNLOAD_THEME_FONT_THEME_KEYWORD "FontTheme" +#define DOWNLOAD_THEME_VIBRATION_THEME_KEYWORD "VibrationTheme" +#define DOWNLOAD_THEME_BOOT_ANIMATOR_THEME_KEYWORD "BootAnimationTheme" + +// + +#define VCONKEY_SETTING_THEME_ICON_PATH "db/setting/theme" +#define SETTING_THEME_SELECTED_THEME "db/setting/selected_theme" +#define SETTING_THEME_SCREEN_IMAGE_HOME_FILE_NAME "home.png" +#define SETTING_THEME_SCREEN_IMAGE_LOCK_FILE_NAME "lock.png" +#define SETTING_THEME_IS_THEME_CHANGED "memory/mobile_hotspot/skin_changed" + +#define SETTING_THEME_NAME_MAX_LEN 255 + +#endif /* __setting_theme_efl_H__ */ -- 2.7.4